Release coccinelle-0.2.4rc5
[bpt/coccinelle.git] / parsing_cocci / parser_cocci_menhir.ml
index 17852c9..b6c84ca 100644 (file)
-
-# 23 "parser_cocci_menhir.mly"
-  
-
-(* Not clear how to allow function declarations to specify a return type
-and how to allow both to be specified as static, because they are in
-different rules.  The rules seem to have to be combined, which would allow
-functions to be declared as local variables *)
-
-(* Not clear how to let a function have a parameter of type void.  At the
-moment, void is allowed to be the type of a variable, which is wrong, and a
-parameter needs both a type and an identifier *)
-module Ast0 = Ast0_cocci
-module Ast = Ast_cocci
-module P = Parse_aux
-
-# 18 "parser_cocci_menhir.ml"
 exception Error
 
 type token = 
   | Tvolatile of (
-# 54 "parser_cocci_menhir.mly"
+# 56 "parser_cocci_menhir.mly"
       (Data.clt)
-# 25 "parser_cocci_menhir.ml"
+# 8 "parser_cocci_menhir.ml"
 )
   | Tvoid of (
-# 50 "parser_cocci_menhir.mly"
+# 52 "parser_cocci_menhir.mly"
       (Data.clt)
-# 30 "parser_cocci_menhir.ml"
+# 13 "parser_cocci_menhir.ml"
 )
   | Tunsigned of (
-# 51 "parser_cocci_menhir.mly"
+# 53 "parser_cocci_menhir.mly"
       (Data.clt)
-# 35 "parser_cocci_menhir.ml"
+# 18 "parser_cocci_menhir.ml"
 )
   | Tunion of (
-# 50 "parser_cocci_menhir.mly"
+# 52 "parser_cocci_menhir.mly"
       (Data.clt)
-# 40 "parser_cocci_menhir.ml"
+# 23 "parser_cocci_menhir.ml"
 )
   | Ttypedef of (
-# 53 "parser_cocci_menhir.mly"
+# 55 "parser_cocci_menhir.mly"
       (Data.clt)
-# 45 "parser_cocci_menhir.ml"
+# 28 "parser_cocci_menhir.ml"
 )
   | Tstruct of (
-# 50 "parser_cocci_menhir.mly"
+# 52 "parser_cocci_menhir.mly"
       (Data.clt)
-# 50 "parser_cocci_menhir.ml"
+# 33 "parser_cocci_menhir.ml"
 )
   | Tstatic of (
-# 53 "parser_cocci_menhir.mly"
+# 55 "parser_cocci_menhir.mly"
       (Data.clt)
-# 55 "parser_cocci_menhir.ml"
+# 38 "parser_cocci_menhir.ml"
 )
   | Tsigned of (
-# 51 "parser_cocci_menhir.mly"
+# 53 "parser_cocci_menhir.mly"
       (Data.clt)
-# 60 "parser_cocci_menhir.ml"
+# 43 "parser_cocci_menhir.ml"
 )
   | Tshort of (
-# 49 "parser_cocci_menhir.mly"
+# 51 "parser_cocci_menhir.mly"
       (Data.clt)
-# 65 "parser_cocci_menhir.ml"
+# 48 "parser_cocci_menhir.ml"
 )
   | Tregister of (
-# 53 "parser_cocci_menhir.mly"
+# 55 "parser_cocci_menhir.mly"
       (Data.clt)
-# 70 "parser_cocci_menhir.ml"
+# 53 "parser_cocci_menhir.ml"
 )
   | Tlong of (
-# 49 "parser_cocci_menhir.mly"
+# 51 "parser_cocci_menhir.mly"
       (Data.clt)
-# 75 "parser_cocci_menhir.ml"
+# 58 "parser_cocci_menhir.ml"
 )
   | Tlist
   | Tint of (
-# 49 "parser_cocci_menhir.mly"
+# 51 "parser_cocci_menhir.mly"
       (Data.clt)
-# 81 "parser_cocci_menhir.ml"
+# 64 "parser_cocci_menhir.ml"
 )
   | Tinline of (
-# 53 "parser_cocci_menhir.mly"
+# 55 "parser_cocci_menhir.mly"
       (Data.clt)
-# 86 "parser_cocci_menhir.ml"
+# 69 "parser_cocci_menhir.ml"
 )
   | Tfloat of (
-# 49 "parser_cocci_menhir.mly"
+# 51 "parser_cocci_menhir.mly"
       (Data.clt)
-# 91 "parser_cocci_menhir.ml"
+# 74 "parser_cocci_menhir.ml"
 )
   | Textern of (
-# 53 "parser_cocci_menhir.mly"
+# 55 "parser_cocci_menhir.mly"
       (Data.clt)
-# 96 "parser_cocci_menhir.ml"
+# 79 "parser_cocci_menhir.ml"
 )
   | Tenum of (
-# 50 "parser_cocci_menhir.mly"
+# 52 "parser_cocci_menhir.mly"
       (Data.clt)
-# 101 "parser_cocci_menhir.ml"
+# 84 "parser_cocci_menhir.ml"
 )
   | Tdouble of (
-# 49 "parser_cocci_menhir.mly"
+# 51 "parser_cocci_menhir.mly"
       (Data.clt)
-# 106 "parser_cocci_menhir.ml"
+# 89 "parser_cocci_menhir.ml"
 )
   | Tconst of (
-# 54 "parser_cocci_menhir.mly"
+# 56 "parser_cocci_menhir.mly"
       (Data.clt)
-# 111 "parser_cocci_menhir.ml"
+# 94 "parser_cocci_menhir.ml"
 )
   | Tchar of (
-# 49 "parser_cocci_menhir.mly"
+# 51 "parser_cocci_menhir.mly"
       (Data.clt)
-# 116 "parser_cocci_menhir.ml"
+# 99 "parser_cocci_menhir.ml"
 )
   | Tauto of (
-# 53 "parser_cocci_menhir.mly"
+# 55 "parser_cocci_menhir.mly"
       (Data.clt)
-# 121 "parser_cocci_menhir.ml"
+# 104 "parser_cocci_menhir.ml"
 )
   | Tattr of (
-# 55 "parser_cocci_menhir.mly"
+# 57 "parser_cocci_menhir.mly"
       (string * Data.clt)
-# 126 "parser_cocci_menhir.ml"
+# 109 "parser_cocci_menhir.ml"
 )
   | TXor of (
-# 91 "parser_cocci_menhir.mly"
+# 95 "parser_cocci_menhir.mly"
        (Data.clt)
-# 131 "parser_cocci_menhir.ml"
+# 114 "parser_cocci_menhir.ml"
 )
   | TWords
   | TWhy0
   | TWhy of (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 138 "parser_cocci_menhir.ml"
+# 121 "parser_cocci_menhir.ml"
 )
   | TWhile of (
-# 57 "parser_cocci_menhir.mly"
+# 59 "parser_cocci_menhir.mly"
        (Data.clt)
-# 143 "parser_cocci_menhir.ml"
+# 126 "parser_cocci_menhir.ml"
 )
   | TWhenTrue of (
-# 73 "parser_cocci_menhir.mly"
+# 77 "parser_cocci_menhir.mly"
        (Data.clt)
-# 148 "parser_cocci_menhir.ml"
+# 131 "parser_cocci_menhir.ml"
 )
   | TWhenFalse of (
-# 73 "parser_cocci_menhir.mly"
+# 77 "parser_cocci_menhir.mly"
        (Data.clt)
-# 153 "parser_cocci_menhir.ml"
+# 136 "parser_cocci_menhir.ml"
 )
   | TWhen of (
-# 73 "parser_cocci_menhir.mly"
+# 77 "parser_cocci_menhir.mly"
        (Data.clt)
-# 158 "parser_cocci_menhir.ml"
+# 141 "parser_cocci_menhir.ml"
 )
+  | TVirtual
   | TUsing
+  | TUnderscore
   | TTypedef
   | TTypeId of (
-# 59 "parser_cocci_menhir.mly"
+# 61 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 165 "parser_cocci_menhir.ml"
+# 150 "parser_cocci_menhir.ml"
 )
   | TType
+  | TTildeExclEq of (
+# 97 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 156 "parser_cocci_menhir.ml"
+)
+  | TTildeEq of (
+# 97 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 161 "parser_cocci_menhir.ml"
+)
   | TTilde of (
-# 98 "parser_cocci_menhir.mly"
+# 102 "parser_cocci_menhir.mly"
        (Data.clt)
-# 171 "parser_cocci_menhir.ml"
+# 166 "parser_cocci_menhir.ml"
 )
   | TSwitch of (
-# 57 "parser_cocci_menhir.mly"
+# 59 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 171 "parser_cocci_menhir.ml"
+)
+  | TSub of (
+# 97 "parser_cocci_menhir.mly"
        (Data.clt)
 # 176 "parser_cocci_menhir.ml"
 )
   | TString of (
-# 86 "parser_cocci_menhir.mly"
+# 90 "parser_cocci_menhir.mly"
        (string * Data.clt)
 # 181 "parser_cocci_menhir.ml"
 )
   | TStrict of (
-# 73 "parser_cocci_menhir.mly"
+# 77 "parser_cocci_menhir.mly"
        (Data.clt)
 # 186 "parser_cocci_menhir.ml"
 )
   | TStatement
   | TSizeof of (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
 # 192 "parser_cocci_menhir.ml"
 )
-  | TShOp of (
-# 95 "parser_cocci_menhir.mly"
+  | TShROp of (
+# 99 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
 # 197 "parser_cocci_menhir.ml"
+)
+  | TShLOp of (
+# 99 "parser_cocci_menhir.mly"
+       (Ast_cocci.arithOp * Data.clt)
+# 202 "parser_cocci_menhir.ml"
 )
   | TScriptData of (
-# 70 "parser_cocci_menhir.mly"
+# 74 "parser_cocci_menhir.mly"
        (string)
-# 202 "parser_cocci_menhir.ml"
+# 207 "parser_cocci_menhir.ml"
 )
   | TScript
   | TRuleName of (
-# 47 "parser_cocci_menhir.mly"
+# 49 "parser_cocci_menhir.mly"
       (string)
-# 208 "parser_cocci_menhir.ml"
+# 213 "parser_cocci_menhir.ml"
 )
   | TRightIso
-  | TReverse
   | TReturn of (
-# 57 "parser_cocci_menhir.mly"
+# 59 "parser_cocci_menhir.mly"
        (Data.clt)
-# 215 "parser_cocci_menhir.ml"
+# 219 "parser_cocci_menhir.ml"
 )
   | TPure
   | TPtrOp of (
-# 103 "parser_cocci_menhir.mly"
+# 107 "parser_cocci_menhir.mly"
        (Data.clt)
-# 221 "parser_cocci_menhir.ml"
+# 225 "parser_cocci_menhir.ml"
 )
   | TPtVirg of (
-# 106 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 226 "parser_cocci_menhir.ml"
+# 230 "parser_cocci_menhir.ml"
 )
   | TPragma of (
-# 78 "parser_cocci_menhir.mly"
-       (string)
-# 231 "parser_cocci_menhir.ml"
+# 62 "parser_cocci_menhir.mly"
+       (Ast_cocci.added_string * Data.clt)
+# 235 "parser_cocci_menhir.ml"
 )
   | TPosition
   | TPosAny
   | TPlusFile of (
-# 82 "parser_cocci_menhir.mly"
+# 86 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 238 "parser_cocci_menhir.ml"
+# 242 "parser_cocci_menhir.ml"
 )
   | TPlus0
   | TPlus of (
-# 97 "parser_cocci_menhir.mly"
+# 101 "parser_cocci_menhir.mly"
        (Data.clt)
-# 244 "parser_cocci_menhir.ml"
+# 248 "parser_cocci_menhir.ml"
 )
   | TPathIsoFile of (
-# 78 "parser_cocci_menhir.mly"
+# 82 "parser_cocci_menhir.mly"
        (string)
-# 249 "parser_cocci_menhir.ml"
+# 253 "parser_cocci_menhir.ml"
 )
   | TParameter
   | TPOEllipsis of (
-# 72 "parser_cocci_menhir.mly"
+# 76 "parser_cocci_menhir.mly"
        (Data.clt)
-# 255 "parser_cocci_menhir.ml"
+# 259 "parser_cocci_menhir.ml"
 )
   | TPCEllipsis of (
-# 72 "parser_cocci_menhir.mly"
+# 76 "parser_cocci_menhir.mly"
        (Data.clt)
-# 260 "parser_cocci_menhir.ml"
+# 264 "parser_cocci_menhir.ml"
 )
   | TPArob
   | TOrLog of (
-# 88 "parser_cocci_menhir.mly"
+# 92 "parser_cocci_menhir.mly"
        (Data.clt)
-# 266 "parser_cocci_menhir.ml"
+# 270 "parser_cocci_menhir.ml"
 )
   | TOr of (
-# 90 "parser_cocci_menhir.mly"
+# 94 "parser_cocci_menhir.mly"
        (Data.clt)
-# 271 "parser_cocci_menhir.ml"
+# 275 "parser_cocci_menhir.ml"
 )
   | TOn
   | TOPar0 of (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 277 "parser_cocci_menhir.ml"
+# 281 "parser_cocci_menhir.ml"
 )
   | TOPar of (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 282 "parser_cocci_menhir.ml"
+# 286 "parser_cocci_menhir.ml"
 )
   | TOInit of (
-# 100 "parser_cocci_menhir.mly"
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 287 "parser_cocci_menhir.ml"
+# 291 "parser_cocci_menhir.ml"
 )
   | TOEllipsis of (
-# 72 "parser_cocci_menhir.mly"
+# 76 "parser_cocci_menhir.mly"
        (Data.clt)
-# 292 "parser_cocci_menhir.ml"
+# 296 "parser_cocci_menhir.ml"
 )
   | TOCro of (
-# 101 "parser_cocci_menhir.mly"
+# 105 "parser_cocci_menhir.mly"
        (Data.clt)
-# 297 "parser_cocci_menhir.ml"
+# 301 "parser_cocci_menhir.ml"
 )
   | TOBrace of (
-# 100 "parser_cocci_menhir.mly"
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 302 "parser_cocci_menhir.ml"
+# 306 "parser_cocci_menhir.ml"
 )
   | TNothing
   | TNotEq of (
-# 93 "parser_cocci_menhir.mly"
+# 97 "parser_cocci_menhir.mly"
        (Data.clt)
-# 308 "parser_cocci_menhir.ml"
+# 312 "parser_cocci_menhir.ml"
 )
   | TNever
   | TName
   | TMul of (
-# 98 "parser_cocci_menhir.mly"
+# 102 "parser_cocci_menhir.mly"
        (Data.clt)
-# 315 "parser_cocci_menhir.ml"
+# 319 "parser_cocci_menhir.ml"
 )
   | TMinusFile of (
-# 82 "parser_cocci_menhir.mly"
+# 86 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 320 "parser_cocci_menhir.ml"
+# 324 "parser_cocci_menhir.ml"
 )
   | TMinus of (
-# 97 "parser_cocci_menhir.mly"
+# 101 "parser_cocci_menhir.mly"
        (Data.clt)
-# 325 "parser_cocci_menhir.ml"
+# 329 "parser_cocci_menhir.ml"
 )
   | TMid0 of (
-# 76 "parser_cocci_menhir.mly"
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 330 "parser_cocci_menhir.ml"
+# 334 "parser_cocci_menhir.ml"
 )
   | TMetaType of (
-# 64 "parser_cocci_menhir.mly"
+# 67 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 335 "parser_cocci_menhir.ml"
+# 339 "parser_cocci_menhir.ml"
 )
   | TMetaStmList of (
-# 64 "parser_cocci_menhir.mly"
+# 67 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 340 "parser_cocci_menhir.ml"
+# 344 "parser_cocci_menhir.ml"
 )
   | TMetaStm of (
-# 64 "parser_cocci_menhir.mly"
+# 67 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 345 "parser_cocci_menhir.ml"
+# 349 "parser_cocci_menhir.ml"
 )
   | TMetaPos of (
-# 67 "parser_cocci_menhir.mly"
+# 71 "parser_cocci_menhir.mly"
        (Parse_aux.pos_info)
-# 350 "parser_cocci_menhir.ml"
+# 354 "parser_cocci_menhir.ml"
 )
   | TMetaParamList of (
-# 65 "parser_cocci_menhir.mly"
+# 69 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
-# 355 "parser_cocci_menhir.ml"
+# 359 "parser_cocci_menhir.ml"
 )
   | TMetaParam of (
-# 64 "parser_cocci_menhir.mly"
+# 67 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 360 "parser_cocci_menhir.ml"
+# 364 "parser_cocci_menhir.ml"
 )
   | TMetaLocalIdExp of (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 365 "parser_cocci_menhir.ml"
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 369 "parser_cocci_menhir.ml"
 )
   | TMetaLocalFunc of (
-# 61 "parser_cocci_menhir.mly"
+# 64 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 370 "parser_cocci_menhir.ml"
+# 374 "parser_cocci_menhir.ml"
 )
   | TMetaIterator of (
-# 62 "parser_cocci_menhir.mly"
+# 65 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 375 "parser_cocci_menhir.ml"
+# 379 "parser_cocci_menhir.ml"
+)
+  | TMetaInit of (
+# 68 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 384 "parser_cocci_menhir.ml"
 )
   | TMetaIdExp of (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 380 "parser_cocci_menhir.ml"
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 389 "parser_cocci_menhir.ml"
 )
   | TMetaId of (
-# 61 "parser_cocci_menhir.mly"
+# 64 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 385 "parser_cocci_menhir.ml"
+# 394 "parser_cocci_menhir.ml"
 )
   | TMetaFunc of (
-# 61 "parser_cocci_menhir.mly"
+# 64 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 390 "parser_cocci_menhir.ml"
+# 399 "parser_cocci_menhir.ml"
+)
+  | TMetaField of (
+# 68 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 404 "parser_cocci_menhir.ml"
 )
   | TMetaExpList of (
-# 65 "parser_cocci_menhir.mly"
+# 69 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
-# 395 "parser_cocci_menhir.ml"
+# 409 "parser_cocci_menhir.ml"
 )
   | TMetaExp of (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 400 "parser_cocci_menhir.ml"
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 414 "parser_cocci_menhir.ml"
 )
   | TMetaErr of (
-# 63 "parser_cocci_menhir.mly"
+# 66 "parser_cocci_menhir.mly"
        (Parse_aux.expinfo)
-# 405 "parser_cocci_menhir.ml"
+# 419 "parser_cocci_menhir.ml"
 )
   | TMetaDeclarer of (
-# 62 "parser_cocci_menhir.mly"
+# 65 "parser_cocci_menhir.mly"
        (Parse_aux.idinfo)
-# 410 "parser_cocci_menhir.ml"
+# 424 "parser_cocci_menhir.ml"
+)
+  | TMetaDecl of (
+# 68 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 429 "parser_cocci_menhir.ml"
 )
   | TMetaConst of (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 415 "parser_cocci_menhir.ml"
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 434 "parser_cocci_menhir.ml"
 )
   | TMPtVirg
   | TLogOp of (
-# 94 "parser_cocci_menhir.mly"
+# 98 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
-# 421 "parser_cocci_menhir.ml"
+# 440 "parser_cocci_menhir.ml"
 )
   | TLocal
   | TLineEnd of (
-# 73 "parser_cocci_menhir.mly"
+# 77 "parser_cocci_menhir.mly"
        (Data.clt)
-# 427 "parser_cocci_menhir.ml"
+# 446 "parser_cocci_menhir.ml"
 )
   | TIteratorId of (
-# 59 "parser_cocci_menhir.mly"
+# 61 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 432 "parser_cocci_menhir.ml"
+# 451 "parser_cocci_menhir.ml"
 )
   | TIterator
   | TIsoType
   | TIsoTopLevel
+  | TIsoToTestExpression
   | TIsoTestExpression
   | TIsoStatement
   | TIsoExpression
@@ -441,218 +461,241 @@ type token =
   | TIso
   | TInvalid
   | TInt of (
-# 86 "parser_cocci_menhir.mly"
+# 90 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 447 "parser_cocci_menhir.ml"
+# 467 "parser_cocci_menhir.ml"
 )
+  | TInitialize
+  | TInitialiser
   | TIncludeNL of (
-# 79 "parser_cocci_menhir.mly"
+# 83 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 452 "parser_cocci_menhir.ml"
+# 474 "parser_cocci_menhir.ml"
 )
   | TIncludeL of (
-# 79 "parser_cocci_menhir.mly"
+# 83 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 457 "parser_cocci_menhir.ml"
+# 479 "parser_cocci_menhir.ml"
 )
   | TInc of (
-# 84 "parser_cocci_menhir.mly"
+# 88 "parser_cocci_menhir.mly"
        (Data.clt)
-# 462 "parser_cocci_menhir.ml"
+# 484 "parser_cocci_menhir.ml"
 )
   | TIf of (
-# 57 "parser_cocci_menhir.mly"
+# 59 "parser_cocci_menhir.mly"
        (Data.clt)
-# 467 "parser_cocci_menhir.ml"
+# 489 "parser_cocci_menhir.ml"
 )
   | TIdentifier
   | TIdent of (
-# 59 "parser_cocci_menhir.mly"
+# 61 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 473 "parser_cocci_menhir.ml"
+# 495 "parser_cocci_menhir.ml"
 )
   | TIdExpression
   | TGoto of (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 479 "parser_cocci_menhir.ml"
+# 501 "parser_cocci_menhir.ml"
 )
   | TGenerated
   | TFunction
   | TFunDecl of (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 486 "parser_cocci_menhir.ml"
+# 508 "parser_cocci_menhir.ml"
 )
   | TFresh
   | TForall
   | TFor of (
-# 57 "parser_cocci_menhir.mly"
+# 59 "parser_cocci_menhir.mly"
        (Data.clt)
-# 493 "parser_cocci_menhir.ml"
+# 515 "parser_cocci_menhir.ml"
 )
   | TFloat of (
-# 86 "parser_cocci_menhir.mly"
+# 90 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 498 "parser_cocci_menhir.ml"
+# 520 "parser_cocci_menhir.ml"
 )
+  | TFinalize
+  | TField
   | TExtends
   | TExpression
   | TExists
   | TEver
   | TError
   | TEqEq of (
-# 93 "parser_cocci_menhir.mly"
+# 97 "parser_cocci_menhir.mly"
        (Data.clt)
-# 508 "parser_cocci_menhir.ml"
+# 532 "parser_cocci_menhir.ml"
 )
   | TEq of (
-# 106 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 513 "parser_cocci_menhir.ml"
+# 537 "parser_cocci_menhir.ml"
 )
   | TElse of (
-# 57 "parser_cocci_menhir.mly"
+# 59 "parser_cocci_menhir.mly"
        (Data.clt)
-# 518 "parser_cocci_menhir.ml"
+# 542 "parser_cocci_menhir.ml"
 )
   | TEllipsis of (
-# 72 "parser_cocci_menhir.mly"
+# 76 "parser_cocci_menhir.mly"
        (Data.clt)
-# 523 "parser_cocci_menhir.ml"
+# 547 "parser_cocci_menhir.ml"
 )
   | TDotDot of (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 528 "parser_cocci_menhir.ml"
+# 552 "parser_cocci_menhir.ml"
 )
   | TDot of (
-# 106 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 533 "parser_cocci_menhir.ml"
+# 557 "parser_cocci_menhir.ml"
 )
   | TDo of (
-# 57 "parser_cocci_menhir.mly"
+# 59 "parser_cocci_menhir.mly"
        (Data.clt)
-# 538 "parser_cocci_menhir.ml"
+# 562 "parser_cocci_menhir.ml"
 )
   | TDmOp of (
-# 96 "parser_cocci_menhir.mly"
+# 100 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 543 "parser_cocci_menhir.ml"
+# 567 "parser_cocci_menhir.ml"
 )
   | TDisable
   | TDepends
   | TDefineParam of (
-# 81 "parser_cocci_menhir.mly"
-       (Data.clt * token * int)
-# 550 "parser_cocci_menhir.ml"
+# 85 "parser_cocci_menhir.mly"
+       (Data.clt * token * int * int)
+# 574 "parser_cocci_menhir.ml"
 )
   | TDefine of (
-# 80 "parser_cocci_menhir.mly"
+# 84 "parser_cocci_menhir.mly"
        (Data.clt * token)
-# 555 "parser_cocci_menhir.ml"
+# 579 "parser_cocci_menhir.ml"
 )
   | TDefault of (
-# 57 "parser_cocci_menhir.mly"
+# 59 "parser_cocci_menhir.mly"
        (Data.clt)
-# 560 "parser_cocci_menhir.ml"
+# 584 "parser_cocci_menhir.ml"
 )
   | TDeclarerId of (
-# 59 "parser_cocci_menhir.mly"
+# 61 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 565 "parser_cocci_menhir.ml"
+# 589 "parser_cocci_menhir.ml"
 )
   | TDeclarer
+  | TDeclaration
   | TDec of (
-# 84 "parser_cocci_menhir.mly"
+# 88 "parser_cocci_menhir.mly"
        (Data.clt)
-# 571 "parser_cocci_menhir.ml"
+# 596 "parser_cocci_menhir.ml"
 )
+  | TCppConcatOp
   | TContinue of (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 576 "parser_cocci_menhir.ml"
+# 602 "parser_cocci_menhir.ml"
 )
   | TContext
   | TConstant
   | TComma of (
-# 106 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 583 "parser_cocci_menhir.ml"
+# 609 "parser_cocci_menhir.ml"
 )
   | TChar of (
-# 86 "parser_cocci_menhir.mly"
+# 90 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 588 "parser_cocci_menhir.ml"
+# 614 "parser_cocci_menhir.ml"
 )
   | TCase of (
-# 57 "parser_cocci_menhir.mly"
+# 59 "parser_cocci_menhir.mly"
        (Data.clt)
-# 593 "parser_cocci_menhir.ml"
+# 619 "parser_cocci_menhir.ml"
 )
   | TCPar0 of (
-# 76 "parser_cocci_menhir.mly"
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 598 "parser_cocci_menhir.ml"
+# 624 "parser_cocci_menhir.ml"
 )
   | TCPar of (
-# 76 "parser_cocci_menhir.mly"
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 603 "parser_cocci_menhir.ml"
+# 629 "parser_cocci_menhir.ml"
 )
   | TCEllipsis of (
-# 72 "parser_cocci_menhir.mly"
+# 76 "parser_cocci_menhir.mly"
        (Data.clt)
-# 608 "parser_cocci_menhir.ml"
+# 634 "parser_cocci_menhir.ml"
 )
   | TCCro of (
-# 101 "parser_cocci_menhir.mly"
+# 105 "parser_cocci_menhir.mly"
        (Data.clt)
-# 613 "parser_cocci_menhir.ml"
+# 639 "parser_cocci_menhir.ml"
 )
   | TCBrace of (
-# 100 "parser_cocci_menhir.mly"
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 618 "parser_cocci_menhir.ml"
+# 644 "parser_cocci_menhir.ml"
 )
   | TBreak of (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 623 "parser_cocci_menhir.ml"
+# 649 "parser_cocci_menhir.ml"
 )
   | TBang0
   | TBang of (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 629 "parser_cocci_menhir.ml"
+# 655 "parser_cocci_menhir.ml"
 )
   | TAssign of (
-# 107 "parser_cocci_menhir.mly"
+# 111 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
-# 634 "parser_cocci_menhir.ml"
+# 660 "parser_cocci_menhir.ml"
 )
   | TArobArob
   | TArob
   | TAny of (
-# 73 "parser_cocci_menhir.mly"
+# 77 "parser_cocci_menhir.mly"
        (Data.clt)
-# 641 "parser_cocci_menhir.ml"
+# 667 "parser_cocci_menhir.ml"
 )
   | TAndLog of (
-# 89 "parser_cocci_menhir.mly"
+# 93 "parser_cocci_menhir.mly"
        (Data.clt)
-# 646 "parser_cocci_menhir.ml"
+# 672 "parser_cocci_menhir.ml"
 )
   | TAnd of (
-# 92 "parser_cocci_menhir.mly"
+# 96 "parser_cocci_menhir.mly"
        (Data.clt)
-# 651 "parser_cocci_menhir.ml"
+# 677 "parser_cocci_menhir.ml"
 )
   | EOF
 
 and _menhir_jeton = token
 
+
+# 25 "parser_cocci_menhir.mly"
+  
+
+(* Not clear how to allow function declarations to specify a return type
+and how to allow both to be specified as static, because they are in
+different rules.  The rules seem to have to be combined, which would allow
+functions to be declared as local variables *)
+
+(* Not clear how to let a function have a parameter of type void.  At the
+moment, void is allowed to be the type of a variable, which is wrong, and a
+parameter needs both a type and an identifier *)
+module Ast0 = Ast0_cocci
+module Ast = Ast_cocci
+module P = Parse_aux
+
+# 699 "parser_cocci_menhir.ml"
 let _eRR =
   Error
 
@@ -666,280 +709,310 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
     fun _tok ->
       match _tok with
       | EOF ->
-          168
+          183
       | TAnd _ ->
-          167
+          182
       | TAndLog _ ->
-          166
+          181
       | TAny _ ->
-          165
+          180
       | TArob ->
-          164
+          179
       | TArobArob ->
-          163
+          178
       | TAssign _ ->
-          162
+          177
       | TBang _ ->
-          161
+          176
       | TBang0 ->
-          160
+          175
       | TBreak _ ->
-          159
+          174
       | TCBrace _ ->
-          158
+          173
       | TCCro _ ->
-          157
+          172
       | TCEllipsis _ ->
-          156
+          171
       | TCPar _ ->
-          155
+          170
       | TCPar0 _ ->
-          154
+          169
       | TCase _ ->
-          153
+          168
       | TChar _ ->
-          152
+          167
       | TComma _ ->
-          151
+          166
       | TConstant ->
-          150
+          165
       | TContext ->
-          149
+          164
       | TContinue _ ->
-          148
+          163
+      | TCppConcatOp ->
+          162
       | TDec _ ->
-          147
-      | TDeclarer ->
-          146
+          161
+      | TDeclaration ->
+          160
+      | TDeclarer ->
+          159
       | TDeclarerId _ ->
-          145
+          158
       | TDefault _ ->
-          144
+          157
       | TDefine _ ->
-          143
+          156
       | TDefineParam _ ->
-          142
+          155
       | TDepends ->
-          141
+          154
       | TDisable ->
-          140
+          153
       | TDmOp _ ->
-          139
+          152
       | TDo _ ->
-          138
+          151
       | TDot _ ->
-          137
+          150
       | TDotDot _ ->
-          136
+          149
       | TEllipsis _ ->
-          135
+          148
       | TElse _ ->
-          134
+          147
       | TEq _ ->
-          133
+          146
       | TEqEq _ ->
-          132
+          145
       | TError ->
-          131
+          144
       | TEver ->
-          130
+          143
       | TExists ->
-          129
+          142
       | TExpression ->
-          128
+          141
       | TExtends ->
-          127
+          140
+      | TField ->
+          139
+      | TFinalize ->
+          138
       | TFloat _ ->
-          126
+          137
       | TFor _ ->
-          125
+          136
       | TForall ->
-          124
+          135
       | TFresh ->
-          123
+          134
       | TFunDecl _ ->
-          122
+          133
       | TFunction ->
-          121
+          132
       | TGenerated ->
-          120
+          131
       | TGoto _ ->
-          119
+          130
       | TIdExpression ->
-          118
+          129
       | TIdent _ ->
-          117
+          128
       | TIdentifier ->
-          116
+          127
       | TIf _ ->
-          115
+          126
       | TInc _ ->
-          114
+          125
       | TIncludeL _ ->
-          113
+          124
       | TIncludeNL _ ->
-          112
+          123
+      | TInitialiser ->
+          122
+      | TInitialize ->
+          121
       | TInt _ ->
-          111
+          120
       | TInvalid ->
-          110
+          119
       | TIso ->
-          109
+          118
       | TIsoArgExpression ->
-          108
+          117
       | TIsoDeclaration ->
-          107
+          116
       | TIsoExpression ->
-          106
+          115
       | TIsoStatement ->
-          105
+          114
       | TIsoTestExpression ->
-          104
+          113
+      | TIsoToTestExpression ->
+          112
       | TIsoTopLevel ->
-          103
+          111
       | TIsoType ->
-          102
+          110
       | TIterator ->
-          101
+          109
       | TIteratorId _ ->
-          100
+          108
       | TLineEnd _ ->
-          99
+          107
       | TLocal ->
-          98
+          106
       | TLogOp _ ->
-          97
+          105
       | TMPtVirg ->
-          96
+          104
       | TMetaConst _ ->
-          95
+          103
+      | TMetaDecl _ ->
+          102
       | TMetaDeclarer _ ->
-          94
+          101
       | TMetaErr _ ->
-          93
+          100
       | TMetaExp _ ->
-          92
+          99
       | TMetaExpList _ ->
-          91
+          98
+      | TMetaField _ ->
+          97
       | TMetaFunc _ ->
-          90
+          96
       | TMetaId _ ->
-          89
+          95
       | TMetaIdExp _ ->
-          88
+          94
+      | TMetaInit _ ->
+          93
       | TMetaIterator _ ->
-          87
+          92
       | TMetaLocalFunc _ ->
-          86
+          91
       | TMetaLocalIdExp _ ->
-          85
+          90
       | TMetaParam _ ->
-          84
+          89
       | TMetaParamList _ ->
-          83
+          88
       | TMetaPos _ ->
-          82
+          87
       | TMetaStm _ ->
-          81
+          86
       | TMetaStmList _ ->
-          80
+          85
       | TMetaType _ ->
-          79
+          84
       | TMid0 _ ->
-          78
+          83
       | TMinus _ ->
-          77
+          82
       | TMinusFile _ ->
-          76
+          81
       | TMul _ ->
-          75
+          80
       | TName ->
-          74
+          79
       | TNever ->
-          73
+          78
       | TNotEq _ ->
-          72
+          77
       | TNothing ->
-          71
+          76
       | TOBrace _ ->
-          70
+          75
       | TOCro _ ->
-          69
+          74
       | TOEllipsis _ ->
-          68
+          73
       | TOInit _ ->
-          67
+          72
       | TOPar _ ->
-          66
+          71
       | TOPar0 _ ->
-          65
+          70
       | TOn ->
-          64
+          69
       | TOr _ ->
-          63
+          68
       | TOrLog _ ->
-          62
+          67
       | TPArob ->
-          61
+          66
       | TPCEllipsis _ ->
-          60
+          65
       | TPOEllipsis _ ->
-          59
+          64
       | TParameter ->
-          58
+          63
       | TPathIsoFile _ ->
-          57
+          62
       | TPlus _ ->
-          56
+          61
       | TPlus0 ->
-          55
+          60
       | TPlusFile _ ->
-          54
+          59
       | TPosAny ->
-          53
+          58
       | TPosition ->
-          52
+          57
       | TPragma _ ->
-          51
+          56
       | TPtVirg _ ->
-          50
+          55
       | TPtrOp _ ->
-          49
+          54
       | TPure ->
-          48
+          53
       | TReturn _ ->
+          52
+      | TRightIso ->
+          51
+      | TRuleName _ ->
+          50
+      | TScript ->
+          49
+      | TScriptData _ ->
+          48
+      | TShLOp _ ->
           47
-      | TReverse ->
+      | TShROp _ ->
           46
-      | TRightIso ->
+      | TSizeof _ ->
           45
-      | TRuleName _ ->
+      | TStatement ->
           44
-      | TScript ->
+      | TStrict _ ->
           43
-      | TScriptData _ ->
+      | TString _ ->
           42
-      | TShOp _ ->
+      | TSub _ ->
           41
-      | TSizeof _ ->
+      | TSwitch _ ->
           40
-      | TStatement ->
+      | TTilde _ ->
           39
-      | TStrict _ ->
+      | TTildeEq _ ->
           38
-      | TString _ ->
+      | TTildeExclEq _ ->
           37
-      | TSwitch _ ->
+      | TType ->
           36
-      | TTilde _ ->
+      | TTypeId _ ->
           35
-      | TType ->
+      | TTypedef ->
           34
-      | TTypeId _ ->
+      | TUnderscore ->
           33
-      | TTypedef ->
-          32
       | TUsing ->
+          32
+      | TVirtual ->
           31
       | TWhen _ ->
           30
@@ -1050,8 +1123,12 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           Obj.repr ()
       | TContinue _v ->
           Obj.repr _v
+      | TCppConcatOp ->
+          Obj.repr ()
       | TDec _v ->
           Obj.repr _v
+      | TDeclaration ->
+          Obj.repr ()
       | TDeclarer ->
           Obj.repr ()
       | TDeclarerId _v ->
@@ -1092,6 +1169,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           Obj.repr ()
       | TExtends ->
           Obj.repr ()
+      | TField ->
+          Obj.repr ()
+      | TFinalize ->
+          Obj.repr ()
       | TFloat _v ->
           Obj.repr _v
       | TFor _v ->
@@ -1122,6 +1203,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           Obj.repr _v
       | TIncludeNL _v ->
           Obj.repr _v
+      | TInitialiser ->
+          Obj.repr ()
+      | TInitialize ->
+          Obj.repr ()
       | TInt _v ->
           Obj.repr _v
       | TInvalid ->
@@ -1138,6 +1223,8 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           Obj.repr ()
       | TIsoTestExpression ->
           Obj.repr ()
+      | TIsoToTestExpression ->
+          Obj.repr ()
       | TIsoTopLevel ->
           Obj.repr ()
       | TIsoType ->
@@ -1156,6 +1243,8 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           Obj.repr ()
       | TMetaConst _v ->
           Obj.repr _v
+      | TMetaDecl _v ->
+          Obj.repr _v
       | TMetaDeclarer _v ->
           Obj.repr _v
       | TMetaErr _v ->
@@ -1164,12 +1253,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           Obj.repr _v
       | TMetaExpList _v ->
           Obj.repr _v
+      | TMetaField _v ->
+          Obj.repr _v
       | TMetaFunc _v ->
           Obj.repr _v
       | TMetaId _v ->
           Obj.repr _v
       | TMetaIdExp _v ->
           Obj.repr _v
+      | TMetaInit _v ->
+          Obj.repr _v
       | TMetaIterator _v ->
           Obj.repr _v
       | TMetaLocalFunc _v ->
@@ -1252,8 +1345,6 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           Obj.repr ()
       | TReturn _v ->
           Obj.repr _v
-      | TReverse ->
-          Obj.repr ()
       | TRightIso ->
           Obj.repr ()
       | TRuleName _v ->
@@ -1262,7 +1353,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           Obj.repr ()
       | TScriptData _v ->
           Obj.repr _v
-      | TShOp _v ->
+      | TShLOp _v ->
+          Obj.repr _v
+      | TShROp _v ->
           Obj.repr _v
       | TSizeof _v ->
           Obj.repr _v
@@ -1272,18 +1365,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           Obj.repr _v
       | TString _v ->
           Obj.repr _v
+      | TSub _v ->
+          Obj.repr _v
       | TSwitch _v ->
           Obj.repr _v
       | TTilde _v ->
           Obj.repr _v
-      | TType ->
+      | TTildeEq _v ->
+          Obj.repr _v
+      | TTildeExclEq _v ->
+          Obj.repr _v
+      | TType ->
           Obj.repr ()
       | TTypeId _v ->
           Obj.repr _v
       | TTypedef ->
           Obj.repr ()
+      | TUnderscore ->
+          Obj.repr ()
       | TUsing ->
           Obj.repr ()
+      | TVirtual ->
+          Obj.repr ()
       | TWhen _v ->
           Obj.repr _v
       | TWhenFalse _v ->
@@ -1346,19 +1449,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           Obj.repr _v
   
   let default_reduction =
-    (16, "\000\000\000\000\001/\0010\000\000\0012\0011\000\001\000\000\001j\000\000\000\000\000\136\000\000\000\000\001\229\000\142\000\000\001\019\000\000\001\030\001\022\001\016\001(\002\212\002\211\000\000\001\020\000\000\001\031\001\023\001\017\001)\001\021\000\000\001 \001\024\001\026\000\000\001,\002~\001+\001!\001\025\000\135\001\018\001'\000\000\000\000\001&\000\000\000\000\000\000\000\000\000\000\001^\000\235\002\202\000\000\000\000\000\000\000\000\000\000\002\207\000\000\001#\000\000\002\209\000\000\000\000\000\000\003\015\002H\000\000\003\013\000\000\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\012\003\014\002N\001\007\002M\001\005\001\006\002L\002K\002J\002F\000\000\000\000\002G\000\208\000\000\002I\000\000\003\011\000\000\002\242\001\004\002)\000\000\000\000\002,\000\000\000\015\000\000\000\000\000\000\000\000\000\209\002E\002Q\000[\000\021\000]\000\000\000\000\000c\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\000\000\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130\002\n\000R\000\218\000^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\\\000T\000\000\000S\001\015\000\000\000\000\000\140\000\219\000\000\002/\000\220\000\014\000\016\000\000\000\000\000\143\000\000\000\141\000\000\000\000\000\223\000\000\000\000\002*\002-\000\000\002+\002.\002\243\002\241\000\000\002O\002\240\000\000\002i\000\000\000\000\002h\002g\002f\002e\002d\002`\000\000\000\000\002a\000\000\002c\000\000\000\000\003\000\0027\000\000\000\000\002:\000\000\000\000\002=\000\000\000\000\0028\002;\000\000\0029\002<\002k\002_\003\001\002\255\002\254\000g\000h\000\000\000\000\000W\000\000\000V\000\230\000\000\001\221\000\000\000\000\000\000\000\000\000\000\000\213\001\227\000\000\000\000\001\130\000U\0001\000\206\000_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\000\000\0003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002P\000\000\000\144\000\000\000\000\001\205\000\000\001x\001\186\000\000\000\000\001\204\000\000\001v\001\185\000\000\000\000\000d\000\000\002j\000\000\000\000\003\003\003\002\000\000\001\222\000\000\000\000\002\245\002\244\000\000\000Q\000\150\000\000\001`\000\000\002\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\241\000\154\000\000\000\000\000n\000o\001\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\163\001\210\000\000\000\151\000\158\000\000\001\212\000\000\000\000\000\000\000\000\000\152\000\164\000\000\001f\000\000\000\000\002\204\000\000\000\000\000\138\000\000\000\000\002\203\000\000\000\000\000\000\002\206\002\210\000\000\000\000\000\000\001$\000\000\000\217\000\000\001%\000\000\000\000\001I\000\000\001H\000\000\001V\000\000\001l\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\147\000\000\000\000\000\000\000\000\000\149\000\000\000\145\000\000\002\238\000\000\000\192\002\237\000\000\000\000\000\148\000\000\000\146\002\198\002\200\002\201\002\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002o\000\000\000\000\000\000\000\000\002v\000\000\000\000\002u\002t\002s\002r\002q\001E\002m\000\000\000\000\002n\000\000\002p\000\000\000\000\003\007\002>\000\000\000\000\002A\000\000\000\000\002D\000\000\000\000\002?\002B\000\000\002@\002C\002x\002l\003\008\003\006\003\005\000i\000j\000\000\000\000\000Z\000\000\000Y\000\000\002w\000\000\001\187\000X\000?\000\229\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\n\003\t\000\000\002\189\000\000\002\188\000\000\000\000\000\000\000\000\003\022\000\000\000\000\000\000\003\023\000\000\000\018\000\000\000\000\000\000\003\018\000\000\001\132\000\000\000\000\000\000\000\165\002\179\001\\\000\000\000\156\001[\0014\0013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\210\000\211\000\198\000\000\001h\000\000\000\000\000\197\000\193\000\000\000\200\000\194\000\199\000\000\002\191\000\000\002\190\002\176\000\000\000\000\000\000\000\000\000\000\002\185\000\000\000\000\000\000\000\000\000\000\002\186\002\178\000\000\002\192\000\000\002\180\000\000\000\169\000\000\002\195\000\155\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000w\000\000\000\000\000\000\002U\000\000\000\000\000\000\002]\000\000\000\000\002\\\000\000\002\252\002[\002Z\002Y\002X\002W\002S\000\000\000\000\002T\000\000\002V\000\000\000\000\002\249\0020\000\000\000\000\0023\000\000\000\000\0026\000\000\000\000\0021\0024\000\000\0022\0025\002^\002R\002\250\002\248\002\247\002\251\000\000\000\000\000\000\000e\000f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\215\0017\000\000\000\000\000\000\001=\000\000\000\000\001>\000#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001<\001A\000\000\001;\000\000\000\000\001C\000\000\000\000\000\000\000\000\000\000\000\000\000t\000q\000r\001D\001@\000\000\000\000\001?\0019\000\000\0018\000\000\000\185\000\000\002\157\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\188\000\000\000\000\000\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\n\000\000\000\000\000\000\000\178\000\000\000\175\000\000\000\000\000\000\000\000\000\000\000\186\000\000\000\182\000\000\000\000\002\216\000\000\002\223\000\171\000\000\000\000\000\000\000\000\000\183\000\000\000\179\000\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\187\000\000\000\000\000\190\000\000\002\217\000\170\000\000\002\218\000\000\002\225\000\000\000\000\000\000\000\000\000\189\000\000\000\173\000\000\000\000\000\000\000\000\001\t\000\000\000\000\000\000\000\177\000\000\000\174\000\000\000\000\000\000\000\000\000\000\000\184\000\000\000\180\000\167\000\166\000\000\002\226\002\227\000\000\002\228\000\000\002\229\000\000\0015\002\183\000\000\000\000\001\209\000\000\001\128\001\191\000\000\002\177\000\000\000\000\000\000\002\182\000\000\000\000\000\000\000\253\000\000\000\247\000\000\000\248\000\000\001\002\000\246\001\001\000\000\002\194\001\003\000\000\000\172\000\000\000\000\000\000\000\000\000\255\000\250\001\206\000\000\000\251\000\000\000\252\000\000\001z\001\188\000\000\000\000\000\000\001\217\000\000\001\215\000\000\000\000\001\219\001\213\000\000\001\220\001\214\000\000\002\196\001\223\000\000\000\168\000\000\000\000\001\207\000\000\001|\001\189\000\000\003\019\000\000\003\016\000\000\003\017\000\019\000\020\000\000\000\000\002\141\000\000\002\140\000\000\000\000\002\143\000\000\002\142\000\000\000\000\000\000\001\250\000\000\000\000\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\002\004\000\000\000\000\001\244\000\000\000\000\001\247\000\000\000\000\000\000\001\251\000\000\000\000\001\255\000\000\000\000\001\208\000\000\000\000\001\248\000\000\000\000\001\252\002\138\001\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\002\003\000\000\002\139\000\000\000\000\000\000\000\000\002\002\000\000\001\242\000\000\001\243\000\000\000\000\001\246\000\000\000\000\000\000\001\249\000\000\000\000\001\253\000\000\001~\001\190\000\000\002\144\000\000\000\000\000\000\003\020\000\017\000u\000\000\003\021\000\000\000\000\002\153\000\000\000\000\002\197\000a\000\000\000\000\000\000\000b\000\000\002\187\000\000\001b\002\184\000\000\000\000\001O\000\000\001N\000\000\001W\000\000\001r\000\000\000\000\000\000\001M\000\000\001L\000\000\001T\000\000\001p\000\000\000\000\000\000\001Q\000\000\001P\000\000\001U\000\000\001t\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\001K\000\000\001J\000\000\001X\000\000\001n\000\000\000\000\000\000\001S\000\002\000\000\000N\000O\000M\001Y\000\003\000\000\000\000\002{\000\000\002\008\000\000\002\129\002\131\000\000\000\000\001\155\002\132\002\130\000\128\000\000\000\000\002\175\000\000\000\000\000\000\000z\000\000\000\000\002\163\000\000\001\237\001\236\001\150\002\136\002\127\002\128\000\000\001\182\000\000\002|\000\000\000\000\000|\000\000\000\000\002\167\000\000\001\164\000\000\000\000\001\161\000\000\000\000\000\000\001\163\000\000\001\162\000\000\000\000\000\000\000\000\000\000\000\000\001\183\000\000\001\159\000\000\001\158\000\000\000v\000\000\000\000\002\155\000\000\000\000\001\154\000\000\000\000\000~\000\000\000\000\002\171\000\000\000\000\000\000\000{\000\000\000\000\002\165\000\000\001\233\001\232\001\146\002\134\000\000\001\169\000\000\000\000\000\000\001\166\000\000\001\171\000\000\000\000\001\167\000\000\000\000\001\168\000\000\000\000\000\000\001\157\000\000\000\000\000\000\000\000\000\000\000\000\001\184\000\000\001\160\000}\000\000\000\000\002\169\000\000\000\000\000\000\001.\000y\001-\000\000\000\000\002\161\000\000\001\231\001\230\001\144\002\133\000\000\000\127\000\000\000\000\002\173\000\000\000\000\000\000\000\000\001\235\001\234\001\148\002\135\000\000\001\176\000\000\001\180\000\000\000\000\001\172\000\000\000\000\000\000\001\165\000\000\001\170\000\000\000\000\000\000\000\000\000\000\000\000\001\179\001\153\000\000\001\178\000\000\000\000\000\000\000\000\001\175\000\000\000\000\001\174\000\000\001\173\000\000\000\000\000\000\000\000\001\177\000\000\001\181\000\000\000\000\001Z\000\004\000\000\001\156\000\005\000\000\000\000\000\233\000\006\000\000\001\195\001\196\001\194\000\000\000\000\000\000\000\000\000\000\000\000\000x\000\000\000\000\002\159\000\000\000\224\001\193\001\138\002\213\001\140\000\000\000\007\000\000\001\198\001\199\001\197\000\000\000\000\000\000\000\000\000\000\000\000\000\234\000\237\000\000\000\000\000\000\000\000\000\242\000\244\000\243\000\238\000\240\000\239\000\000\000\000\000\000\000\000\000\000\002\219\002\232\000\000\002\220\000\000\002\221\000\000\000\000\002\214\000\000\000\000\000\000\000\000\002\231\000\000\000\000\002\230\001\203\001\202\000\000\000\000\001\142\000\000\001\192\001\200\000\000\000\000\000\000\000\000\001\239\000\000\000\000\000l\000m\000\000\000\000\000\000\001\238\000\000\000\161\000\000\001d\000\000\000\000\000\160\000\157\000\000\000\000\000\000\000\000\001\008\000\000\000\000\002\235\000\000\002\236\000\000\000\000\001\226\001\224\000\000\001\225\000\008\000\000\000\t\000\000\002\025\002\026\002\024\000\000\000\000\002\023\000\000\000\n\000\000\002\028\002\029\002\027\000\000\002\031\000\000\000\000\000\000\002\017\000\000\000\000\002\019\000\000\002\013\000\000\002\015\000\000\002\020\000\000\002\021\002\014\002\012\002 \001\152\000\000\002\022\000\000\002\"\000\000\002!\000\000\002#\000\000\002\137\000\011\000\000\000\000\000\000\000\000\000\000\000\000\002$\000\000\000\000\002'\000\000\002&\000\000\002%\000\201\000\000\000\000\000\000\000\000\000\202\002(\000\000\000\000\002\148\000\000\000\000\000\232\000\000\000\000\000\000\000\000\000\000\002\151\000k\000\000\000\000\000\207\000\000\000\000\000\227\000\226\000\225\000\000\001G\000\000\002\147\001\136\001\134\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\000\000\000\000\000\000\000\000\002\145\000\000\000\013\000\000\000\000\000\000\000\000\000\000\002\149")
+    (16, "\000\000\000\000\002\224\000u\000\000\000\000\003/\001h\000\000\001f\001g\001e\000\000\001j\001i\000\001\000\000\001\156\000\000\000\000\000\133\000\000\000\000\001\146\000\182\000\000\000\000\000\169\000\000\000\000\000\174\000\173\000\000\000\170\000\000\000\168\000\000\000\000\000\000\000\172\000\000\000\171\003h\003g\000\000\000\000\000\162\000\000\000\000\000\167\000\166\000\000\000\163\000\000\000\161\000\000\000\000\000\000\000\165\000\000\000\164\000\000\000\176\000\000\000\000\000\181\000\180\000\000\000\177\000\000\000\184\000\000\000\000\000\000\001b\000\000\000\000\000\000\001a\000\000\000\000\0015\0014\0013\0012\0011\0010\000\000\001\029\002&\000\000\000\000\002%\000\000\000\000\000\000\000\145\000\000\000\000\000\144\002)\001.\000\000\000\000\000\186\000\000\000\000\000\000\000\000\000\187\000\185\000\000\000\183\000\132\000\000\000\175\000\000\000\192\000\000\000\000\000\000\000\179\000\000\000\000\000\000\003\\\003b\000\000\000\000\000\000\000\000\000\000\003]\003^\000\000\000\000\000\189\000\000\003`\000\000\000\000\000\000\003\230\002\170\000\000\003\228\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\227\003\229\002\176\001]\002\175\001[\001\\\002\174\002\173\002\172\002\168\000\000\000\000\002\169\001\023\000\000\002\171\000\000\003\226\000\000\000g\001Z\002\139\000\000\000\000\002\142\000\000\000\000\000\000\000\000\000\000\000\000\001\024\002\167\002\179\000_\000\021\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\000\000\000\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\002f\000V\001\"\000b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000X\000\000\000W\000\000\002\204\000\000\000\227\000\000\000\000\001\253\000\000\001\170\001\234\000\000\000\000\001\252\000\000\000\000\000\214\000\000\000\000\000\201\000\000\000\000\000\206\000\205\000\000\000\202\000\000\000\200\000\000\000\000\000\000\000\204\000\000\000\203\000\000\000\000\000\194\000\000\000\000\000\199\000\198\000\000\000\195\000\000\000\193\000\000\000\000\000\000\000\197\000\000\000\196\000\000\000\208\000\000\000\000\000\213\000\212\000\000\000\209\000\000\000\216\000\000\000\000\000\000\000\000\000\218\000\000\000\000\000\000\000\000\000\219\000\217\000\000\000\215\000\000\000\207\000\000\000\224\000\000\000\000\000\000\000\211\000\000\000\000\000\000\000\000\000\223\000\000\000\000\000\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002L\000\232\000\000\000\000\000\000\000\000\000\000\002:\002K\002\002\000\000\000\000\000\000\000\000\000\000\001-\000\236\000\000\002\003\000\000\000\000\000\000\000\000\000\231\000\229\000\157\000\000\000\000\000\156\002>\002;\000\000\000\000\003d\000\000\003c\000\000\000\000\000\000\000\000\000\000\000\221\000\000\000\000\000\000\000\000\000\222\000\220\000\000\000\000\003f\003a\000\210\000\000\001\168\001\233\000\000\002\202\002\201\000\015\002\200\002\199\002\198\002\194\000\000\000\000\000\000\002\203\002\195\000\000\002\197\000\000\000\000\000k\002\153\000\000\000\000\002\156\000\000\000\000\000\000\000\000\000\000\000\000\000[\000\000\000Z\000\137\002\205\002\193\000\014\000\016\000Y\0003\001\021\000c\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0004\000\000\0005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\023\002\027\000\000\000\000\000\136\001%\001#\000\000\002\159\000\000\000\000\002\154\002\157\000\000\002\155\002\158\003\215\003\216\003\214\003\213\002\024\000\000\002\145\000\000\000\000\002\140\002\143\000\000\002\141\002\144\003\201\003\202\003\200\000\000\002\177\003\199\000\000\000\000\000l\001:\000\000\002\012\000\000\000\000\000\000\000\000\000\000\001\027\002\018\000\000\000\000\001\180\000\000\002\178\000\000\000\000\000h\000\000\000\000\003\218\003\217\000\000\002\r\000\000\000\000\003\204\003\203\000\000\000U\000\228\000\000\001\148\000\000\003e\000\000\000\000\000\000\000\000\000\190\000\188\000\000\001!\000\000\000\000\000\191\000\178\000\000\000\000\001|\000\000\001{\000\000\001\138\000\000\001\158\000\000\000\000\000\000\003\152\000\000\000\000\003\139\000\000\000\000\003\144\003\143\000\000\003\140\000\000\003\138\000\000\000\000\000\000\003\142\000\000\003\141\000\000\000\000\003\132\000\000\000\000\003\137\003\136\000\000\003\133\000\000\003\131\000\000\000\000\000\000\003\135\000\000\003\134\000\000\003\146\000\000\000\000\003\151\003\150\000\000\003\147\000\000\003\154\000\000\000\000\000\000\000\000\003\156\000\000\000\000\000\000\000\000\003\157\003\155\000\000\003\153\000\000\003\145\000\000\003\162\000\000\000\000\000\000\003\149\000\000\000\000\003\195\000\000\000\000\000\000\000\000\003\161\003\148\000\000\003\197\000\000\000\000\003?\003\196\000}\000\000\001\t\000\000\000\000\000\000\000\000\003\159\000\000\000\000\000\000\000\000\003\160\003\158\000\000\000\000\003\184\000\000\000\000\003\171\000\000\000\000\003\176\003\175\000\000\003\172\000\000\003\170\000\000\000\000\000\000\003\174\000\000\003\173\000\000\000\000\003\164\000\000\000\000\003\169\003\168\000\000\003\165\000\000\003\163\000\000\000\000\000\000\003\167\000\000\003\166\000\000\003\178\000\000\000\000\003\183\003\182\000\000\003\179\000\000\003\186\000\000\000\000\000\000\000\000\003\188\000\000\000\000\000\000\000\000\003\189\003\187\000\000\003\185\000\000\003\177\000\000\003\194\000\000\000\000\000\000\003\181\000\000\000\000\000\000\000\000\003\193\003\180\000\000\000\000\000\000\000\000\003\191\000\000\000\000\000\000\000\000\003\192\003\190\003X\003Z\003[\003Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\234\000\246\000\233\000\000\000\000\000r\000\000\000\000\000\000\002\183\000\000\000\000\000\000\002\191\000\000\000\000\002\190\000\000\003\211\002\189\002\188\002\187\002\186\002\185\001x\002\181\000\000\000\000\002\182\000\000\002\184\000\000\000\000\000\000\000\000\000\000\000i\002\146\000\000\000\000\002\149\000\000\000\000\002\152\000\000\000\000\002\147\002\150\000\000\002\148\002\151\002\192\002\180\000j\003\208\003\209\003\207\003\206\003\210\000\000\000\000\000\000\000\000\001\020\001\019\000\000\000\000\000\000\000\000\000\000\000\000\001r\000\000\001\031\001p\000\000\001\018\000\000\002-\000\000\000\000\001u\000\000\000\000\001v\000\000\001\154\000$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000%\000\000\000&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002,\000\000\000\000\000\000\000\149\000\000\000\000\000\148\0020\001)\000\000\001t\001w\000\000\001q\000\000\001\002\000\000\003)\000\000\000\000\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\000\000\000\001`\000\000\000\000\000\000\000\251\000\000\000\248\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\255\000\000\000\000\000\000\000\000\001\000\000\000\000\252\000\000\000\000\000\000\002\209\000\000\000\000\000\000\000\000\002\216\000\000\000\000\002\215\002\214\002\213\002\212\002\211\002\207\000\000\000\000\002\208\000\000\002\210\000\000\000\000\000m\002\160\000\000\000\000\002\163\000\000\000\000\002\166\000\000\000\000\002\161\002\164\000\000\002\162\002\165\002\218\002\206\003\222\003\223\003\221\003\220\000n\000\000\000\000\000^\000\000\000]\000\000\002\217\000\000\001\235\000\\\000B\0019\000d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000C\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\131\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\225\003\224\000\000\003O\000\000\003N\000\000\000\000\000\000\000\000\003\237\000\000\000\000\000\000\003\238\000\000\000\018\000\000\000\000\000\000\003\233\000\000\001\182\000\000\000\000\000\000\000\237\003E\001\144\001\143\001l\001k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\001\025\000\000\000\000\002\030\000\000\000\000\000\140\002\"\002\031\001'\001\n\000\000\001\012\001\011\000\000\003Q\000\000\003P\003B\000\000\000\000\000\000\000\000\000\000\003K\000\000\000\000\000\000\000\000\003L\003D\000\000\003R\000\000\003F\000\000\000\241\001m\000\000\003U\000\000\001o\000\000\000\000\003n\000\000\003u\000\243\000\000\000\249\000\000\003o\000\242\000\000\003p\000\000\003w\000\000\000\000\000\000\000\000\001\006\000\000\000\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\001\007\000\000\000\000\000\000\000\000\001_\000\000\000\000\000\000\000\250\000\000\000\247\000\000\000\000\000\000\000\000\000\000\001\001\000\000\000\253\000\239\000\238\000\000\003x\003y\000\000\003z\000\000\003{\000\000\001n\003I\000\000\000\000\002\001\000\000\001\178\001\239\000\000\003C\000\000\000\000\000\000\003H\000\000\000\000\000\000\001S\000\000\001M\000\000\001N\000\000\001X\001L\001W\000\000\003T\001Y\000\000\000\244\000\000\000\000\000\000\000\000\001U\001P\001\254\000\000\001Q\000\000\001R\000\000\001\172\001\236\000\000\000\000\000\000\002\b\000\000\002\006\000\000\000\000\002\n\002\004\000\000\002\011\002\005\000\000\003V\002\014\000\000\000\240\000\000\000\000\001\255\000\000\001\174\001\237\000\000\003\234\000\000\003\231\000\000\003\232\000\019\000\020\000\000\000\000\003\r\000\000\003\012\000\000\002N\000\000\003\015\000\000\003\014\000\000\000\000\000\000\002V\000\000\000\000\002Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002]\000\000\000\000\002`\000\000\002P\000\000\000\000\002S\000\000\000\000\000\000\002W\000\000\000\000\002[\000\000\000\000\002\000\000\000\000\000\002T\000\000\000\000\002X\003\n\002Q\000\000\003\011\000\000\000\000\000\000\000\000\002^\000\000\002M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\\\000\000\000\000\002_\000\000\002O\000\000\000\000\002R\000\000\000\000\000\000\002U\000\000\000\000\002Y\000\000\001\176\001\238\000\000\003\016\000\000\000\000\000\000\003\235\000\017\000p\000\000\003\236\000\000\000\000\003%\000\000\000\000\003W\000e\000\000\000\000\000\000\000f\000\000\003M\000\000\001\150\000\000\001\152\003J\000\000\000\000\001\130\000\000\001\129\000\000\001\139\000\000\001\164\000\000\000\000\000\000\001\128\000\000\001\127\000\000\001\136\000\000\001\162\000\000\000\000\000\000\001\135\000\000\000\000\000\000\001\132\000\000\001\131\000\000\001\137\000\000\001\166\000\000\000\000\000\000\001\133\000\000\000\000\000\000\001~\000\000\001}\000\000\001\140\000\000\001\160\000\000\000\000\000\000\001\134\000\002\000\000\000R\000S\000\000\000\000\002\234\002\238\002\242\002\230\002\227\000\000\000\000\002\239\002\246\002\231\002\245\002\229\002\244\002\233\002\225\002\232\002\241\002\228\002\235\002\226\002\237\002\243\002\240\002\236\001\201\001\200\000{\000\000\000\000\003;\000\000\000\000\003\031\000\000\000\000\003!\003 \003\000\000\000\000\000\003A\002\248\002\247\002\249\000\000\001\215\000Q\001\141\000\003\000\000\000\000\002\221\000\000\002d\000\000\000|\000\000\000\000\003=\000\000\000\000\000\000\000t\000\000\000\000\003-\000\000\002H\002G\001\194\003\001\000\000\001\230\000\000\002\222\000\000\000\000\000v\000\000\000\000\0031\000\000\001\212\000\000\000\000\001\206\000\000\000\000\000\000\001\211\000\000\001\208\000\000\000\000\000\000\001\184\001\183\000\000\000\000\000\000\001\231\000\000\001\204\000\000\001\203\000\000\000q\000\000\000\000\003'\000\000\000\000\001\199\000\000\000\000\000y\000\000\000\000\0037\000\000\000\000\003\b\000\000\003\007\000\000\000\000\000\000\002F\002E\003\005\002l\002\252\003\006\000\000\001\218\000\000\000\000\000\000\001\214\000\000\001\220\000\000\000\000\001\207\000\000\000\000\000\000\002\254\000z\000\000\000\000\0039\000\000\002\253\000\000\001\216\000\000\000\000\001\217\000\000\000\000\001\210\000\000\000\000\001>\000\000\001=\000\000\000\000\000\000\000\000\000\000\001\232\000\000\001\205\000\000\001<\000\000\002\020\000w\000\000\000\000\0033\000\000\000\000\000\000\000\000\003j\003i\000\000\000\000\001d\000s\001c\000\000\000\000\003+\000\000\002@\002?\002B\002\250\002h\002A\001;\000\000\000x\000\000\000\000\0035\000\000\000\000\000\000\000\000\002D\002C\003\004\003\002\002j\002\251\003\003\000\000\001\225\000\000\001\228\000\000\000\000\001\221\000\000\000\000\000\000\001\213\000\000\001\219\000\000\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\001\198\000\000\000\000\001\227\000\000\001\226\000\000\000\000\000\000\000\000\001\224\000\000\000\000\001\223\000\000\001\222\000\000\000\000\001\229\000\000\000\000\001\142\000\004\000\000\001\202\000\005\000\000\000\000\001A\000\006\000\000\001\243\001\244\001\242\000\000\001\241\003k\001\190\000\000\000\007\000\000\001\246\001\247\001\245\000\000\000\000\000\000\000\000\001C\000\000\000\000\000\000\000\000\001H\001J\001I\001D\001F\001E\000\000\000\000\000\000\000\000\000\000\003q\003~\000\000\003r\000\000\003s\000\000\000\000\003l\000\000\000\000\000\000\000\000\003}\000\000\000\000\003|\001\251\001\250\000\000\000\000\001\192\001\240\001\248\000\000\000\000\000\000\000\000\000\000\002J\000\000\000\000\000\000\000\000\000\000\0023\002I\000\000\000\000\000\000\000\153\000\000\000\000\000\152\0027\0024\001+\000\235\000\000\000\000\000\000\000\000\001^\000\000\003\129\000\000\003\130\000\000\000\000\002\017\002\015\000\000\002\016\000\b\000\000\000\t\000\000\002{\002|\002z\000\000\002y\000\000\000\n\000\000\002~\002\127\002}\000\000\002\129\000\000\000\000\000\000\002s\000\000\000\000\002u\000\000\002o\000\000\002q\000\000\002v\000\000\002w\000\000\002p\002n\002\130\001\196\002x\000\000\002\132\000\000\002\131\000\000\002\133\000\000\003\t\000\011\000\000\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\002\137\000\000\002\136\000\000\002\135\001\r\000\000\000\000\000\000\000\000\001\014\002\138\000\000\000\000\000\000\003\021\000\000\003\020\000\000\000\000\000\000\000\000\003\022\000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\003#\000o\000\000\000\000\001\022\000\000\0017\0016\000\000\001z\000\000\003\019\001\188\001\186\000\000\000\000\000\000\000\000\003\023\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\018\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\030\000\000\000\000\003\029\000\000\003\026\000\000\000\000\000\000\000\000\000\000\003\027\000\000\000\000\000\000\003\028\000\r\000\000\003\024\000\000\003\025")
   
   let error =
-    (169, "\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\254\000\000\000\000\000\000\000\015Z\175\000\008\001\000\000\008\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\1280\128\000\016\204\t\128@\016\016\000@\000\004\200b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\191G\000\016\006\016\000\018\025\1290\008\002\002\016\008\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'P\192\004\001\132\000\004\134`L\002\000\128\132\002\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000_\163\128\008\003\008\000\t\012\192\152\004\001\001\008\004\000\000L\134 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\168`\002\000\194\000\002C0&\001\000@B\001\000\000\019!\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000N\161\128\008\003\008\000\t\012\192\152\004\001\001\008\004\000\000L\134 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\016\002\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000%P\192\004\001\132\000\004\198`L\002\000\128\132\002\000\000&C\023\173W\128\004\000\128\000\004\016\016\000\000\000\000@\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\128\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\000\128\000\128H\t\128@\000\016\128@\000\004\192b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\144\002\000\000\016@@\000\000\000\001\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\004\000\128\000\004\016\016\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000 \000\000\000\000\000\001\235U\224\001\000 \000\001\004\004\000\000\000\000\016\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\016\002\000\000\016@@\000\000\000\001\000\000@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000\000\000\000\000\000 \000\008\128\000\000\000\000\000R\000\002A\160P\027\180\000\004\144\008\004\000B\017\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003v\128\000\146\001\000\128\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@\000\002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131@\1607h\000\t \016\000\000\132\002\008\000\000\000\000R\000\002A\160P\027\180\000\004\144\008\004\000B\001\004\000\000\000\000)\000\001 \208(\013\218\000\002H\004\002\000!\000\130z\213x\000T\136\000\144h\021\006\237\000\001$\002\001\000\016\128A=j\188\000*D\000H4\n\131v\128\000\146\001\000\128\008@ \128\000\000\000\005 \000$\026\005\001\187@\000I\000\128\000\004 \016OZ\175\000\n\145\000\018\013\002\160\221\160\000$\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001 \208(\013\218\000\002H\004\002\000!\000\130\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131@\1607h\000\t \016\008\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001 \208(\013\218\000\002H\004\002\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\008\140\019e\146\192\000\n\000\132\000\003\186\002'\135p\000\000\000\000\000\000\000\000\000\000\004\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\001R \002A\160T\027\244\000\004\144\008\004\000BA\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000@ \131\000\150\000\000P\000\000\000\029\144\0014;\128\000\000\000\n@\000H4\n\003v\128\000\146\001\000\128\008@ \128\000\000H\000\017\008&\194%\128\000\020\001\000\000\007d\000O\014\224\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\017\008&\194%\128\000\020\001\000\000\006d\000O\006\224\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\002!\004\216D\176\000\002\128 \000\000\204\128\t\224\220\000\000\000\000R\000\002A\160P\027\180\000\004\144\008\004\000B\001\004\000\000\002@\000\136A6\017,\000\000\160\008\000\0003 \002x7\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\001\000\016\128A\000\000\000\144\000\"\016M\132K\000\000(\002\000\000\012\200\000\158\013\192\000\000\000\005 \000$\026\005\001\187@\000I\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\129@n\208\000\018@ \016\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\002A\160P\027\180\000\004\144\008\004\000B\001\004\000\000\002@\000\136A6\017,\000\000\160\008\000\0003 \002x7\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\001\000\016\128A\000\000\000\144\000\"\016M\132K\000\000(\002\000\000\012\200\000\158\013\192\000\000\000\005 \000$\026\005\001\187@\000I\000\128@\004 \016@\000\000$\000\008\132\019a\018\192\000\n\000\128\000\0032\000'\131p\000\000\000\001H\000\t\006\129@n\208\000\018@ \016\001\008\004\016\000\000\t\000\002!\004\216D\176\000\002\128 \000\000\204\128\t\224\220\000\000\000\000R\000\002A\160P\027\180\000\004\144\008\004\000B\001\004\000\000\002@\000\136A6\017,\000\000\160\008\000\0003 \002x7\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\001\128\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\005 \000$\026\005\001\187@\000I\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\001\000\016\128A\000\000\000\144\000\"\016M\132K\000\000(\002\000\000\012\200\000\158\013\192\000\000\000\005 \000$\026\005\001\187@\000I\000\128@\004 \016@\000\000$\000\008\132\019a\018\192\000\n\000\128\000\0032\000'\131p\000\000\000\001H\000\t\006\129@n\208\000\018@ \016\001\008\004\016\000\000\t\000\002!\004\216D\176\000\002\128 \000\000\204\128\t\224\220\000\000\000\000R\000\002A\160P\027\180\000\004\144\008\004\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003v\128\000\146\001\000\128\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\192\000\000C \000\000\000@@\001\000\000\019 \008\tT0\001\000a\000\001!\152\019\000\128 !\000\128\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\214\171@\002\000@\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000 \012 \000\0042\002`\016\004\004\000\016\000\0012\024\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\015Z\175\000\n\145\000\018\013\002\160\223\160\000$\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131@\1607h\000\t \016\008\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\001H\000\t\006\129@n\208\000\018@ \000\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@\000\002\016\008 \000\000\000\001H\000\t\006\129@n\208\000\018@ \016\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\002A\160P\027\180\000\004\144\008\000\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\000\000\016\128A\000\000\000\000\n@\000H4\n\003v\128\000\146\001\000\000\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\004D\008\178I@\000\004\000B\000\000\213\001\016\1948\000\000\000\000\000\000\000\000\000\000\002\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\170\240\000\169\016\001 \208*\013\250\000\002H\004\002\000! \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000$\026\005\001\187@\000I\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000D\000\139\000\148\000\000@\004\000\000\013\016\001\012#\128\000\000\000\n@\000H4\n\003v\128\000\146\001\000\128\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\001\000\000\008\000\000\000\000\001\n@\000H4\n\003v\128\000\146\001\000\000\008@ \128\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001 \208(\013\218\000\002H\004\000\000!\000\130\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\001\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\001\016\002,\002P\000\001\000\016\000\000$@\0040\014\000\000\000\000)\000\001 \208(\013\218\000\002H\004\000\000!\000\130\000\000\001 \000D\000\139\000\148\000\000@\004\000\000\t\016\001\012\003\128\000\000\000\n@\000H4\n\003v\128\000\146\001\000\000\008@ \128\000\000H\000\017\000\"\192%\000\000\016\001\000\000\002D\000C\000\224\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@\000\002\016\008 \000\000\018\000\004@\008\176\t@\000\004\000@\000\000\145\000\016\1928\000\000\000\000\164\000\004\131@\1607h\000\t \016\000\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001 \208(\013\218\000\002H\004\000\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003v\128\000\146\001\000\000\008@ \128\000\000H\000\017\000\"\192%\000\000\016\001\000\000\002D\000C\000\224\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@\000\002\016\008 \000\000\018\000\004@\008\176\t@\000\004\000@\000\000\145\000\016\1928\000\000\000\000\164\000\004\131@\1607h\000\t \016\000\000\132\002\008\000\000\004\128\001\016\002,\002P\000\001\000\016\000\000$@\0040\014\000\000\000\000)\000\001 \208(\013\218\000\002H\004\000\000!\000\130\000\000\001 \000D\000\139\000\148\000\000@\004\000\000\t\016\001\012\003\128\000\000\000\n@\000H4\n\003v\128\000\146\001\000\000\008@ \128\000\000H\000\017\000\"\192%\000\000\016\001\000\000\002D\000C\000\224\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@0\002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\164\000\004\131@\1607h\000\t \016\000\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001 \208(\013\218\000\002H\004\000\000!\000\130\000\000\001 \000D\000\139\000\148\000\000@\004\000\000\t\016\001\012\003\128\000\000\000\n@\000H4\n\003v\128\000\146\001\000\000\008@ \128\000\000H\000\017\000\"\192%\000\000\016\001\000\000\002D\000C\000\224\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@\000\002\016\008 \000\000\018\000\004@\008\176\t@\000\004\000@\000\000\145\000\016\1928\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\005 \000$\026\005\001\187@\000I\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000@\000z\213x\000@\008\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000R\000\002A\160P\027\180\000\004\144\008\004\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\021\"\000$\026\005A\187@\000I\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000T\136\000\144h\021\006\237\000\001$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\008\000\000\000\000\000\000\000\008\000\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$P\192\000\000\004\000\004\002@L\002\000\000\132\002\000\000&\003\016\018(`\000\000\002\000\002\000 &\001\000\000B\001\000\000\019\001\136\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\016\002\000\000\016\000F\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\004\002\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\245\170\240\000\128\016\000\000\128\0020\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000 \000\000\000\000\128\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\245\170\240\000\128\016\000\000\128\0020\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000=j\188\000 \004\000\000 \000\140\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000@\000\000\000\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\015Z\175\000\008\001\000\000\008\000#\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\004\000\128\000\004\016\016\000\000\000\000@\000\000\000\000 \003\214\171\192\002\000@\000\002\008\008\000\000\000\000 \000\008\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\181Z\000\016\002\000\000\000\000@\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002U\012\000@\024@\000Lf\004\192 \008\008@ \000\002d1z\213x\000@\008\000\000A\001\000\000\000\000\004\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\008\000\000\000\000\000\000\001z\213x\000@\008\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\016\002\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\016\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\\\137\000\128c\021\199\239\008\003\245\006\000#X\129A\000\145C\000\000\000\000\000\016\008\0010\000\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\015Z\175\000\008\001\000\000\008\000#\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\170\240\000\128\016\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\002\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\n\129\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\007\173W\128\004\000\128\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\235U\160\001\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\128\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\004\007 @ \024\133\017\251B\000\253A\128\008\198 P@\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\129@n\208\000\018@ \016\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000?\250\254\008.D\128H5\n\227\247\132\001\250\131\000\145\236a\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\016\012\002\128\221\160\000d\128@\000\002\016\008 \000\000\000\001H\000\008\006\001@n\208\0002@ \000\001\008\004\019\214\171\192\002\164@\004\131@\1687h\000\t \016\008\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\n@\000@0\n\003v\128\001\146\001\000\000\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000@0\n\003v\128\001\146\001\000\000\008@ \128\000\000\000\005 \000$\026\005\001\187@\000I\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\008\006\001@n\208\0002@ \000\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\002\001\128P\027\180\000\012\144\008\000\000B\001\004\000\000\000\000)\000\001\000\192(\013\218\000\006H\004\000\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\017\024&\203%\128\000\020\001\008\000\007T\004\n\014\224\000\000\000\000\000\000\000\000\000\000\008\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\171\192\002\164@\004\131@\1687\232\000\t \016\008\000\132\130\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\001\016\130l\"X\000\001@\016\000\000t@\000\160\238\000\000\000\000)\000\001 \208(\013\218\000\002H\004\002\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003v\128\000\146\001\000\128\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\008\132\019a\018\192\000\n\000\128\000\003\"\000\005\003p\000\000\000\001H\000\008\006\001@n\208\0002@ \000\001\008\004\016\000\000\t\000\002!\004\216D\176\000\002\128 \000\000\200\128\001@\220\000\000\000\000R\000\002\001\128P\027\180\000\012\144\008\000\000B\001\004\000\000\002@\000\136A6\017,\000\000\160\008\000\0002 \000P7\000\000\000\000\020\128\000\128`\020\006\237\000\003$\002\000\000\016\128A\000\000\000\144\000\"\016M\132K\000\000(\002\000\000\012\136\000\020\013\192\000\000\000\005 \000 \024\005\001\187@\000\201\000\128\000\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\008\006\001@n\208\0002@ \000\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\002\001\128P\027\180\000\012\144\008\000\000B\001\004\000\000\002@\000\136A6\017,\000\000\160\008\000\0002 \000P7\000\000\000\000\020\128\000\128`\020\006\237\000\003$\002\000\000\016\128A\000\000\000\144\000\"\016M\132K\000\000(\002\000\000\012\136\000\020\013\192\000\000\000\005 \000 \024\005\001\187@\000\201\000\128\000\004 \016@\000\000$\000\008\132\019a\018\192\000\n\000\128\000\003\"\000\005\003p\000\000\000\001H\000\008\006\001@n\208\0002@ \000\001\008\004\016\000\000\t\000\002!\004\216D\176\000\002\128 \000\000\200\128\001@\220\000\000\000\000R\000\002\001\128P\027\180\000\012\144\008\000\000B\001\004\000\000\002@\000\136A6\017,\000\000\160\008\000\0002 \000P7\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\001\128\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\005 \000 \024\005\001\187@\000\201\000\128\000\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\008\006\001@n\208\0002@ \000\001\008\004\016\000\000\t\000\002!\004\216D\176\000\002\128 \000\000\200\128\001@\220\000\000\000\000R\000\002\001\128P\027\180\000\012\144\008\000\000B\001\004\000\000\002@\000\136A6\017,\000\000\160\008\000\0002 \000P7\000\000\000\000\020\128\000\128`\020\006\237\000\003$\002\000\000\016\128A\000\000\000\144\000\"\016M\132K\000\000(\002\000\000\012\136\000\020\013\222\181^\000\021\"\000$\026\005A\187@\000I\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\130A\160P\027\180\000\004\144\008\004\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\007\151\"@ \024\197q\251\194\000\253A\128\008\214 P@\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\129@n\208\000\018@ \016\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\016\000\000\000\000\000\001\008\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\175\224\130\228H\004\003\016\174?x@\031\1680\001\026\196\n\t\255\215\240Ar$\002A\168_\031\188 \015\212\024\004\141b\133\004\255\235\248<\185\018\001\000\198+\143\222\016\007\234\012\000F\177\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\251\255\015.D\128@1\139\227\247\140\001\250\147\008\017\236q\172\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\191\130\011\145 \016\012b\184\253\225\000~\160\192\004k\016('\255_\193\005\200\144\t\006\161|~\240\128?P`\0185\138\020\019\255\175\224\130\228H\004\131P\174?x@\031\1680\t\026\196\026\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\"0M\150K\000\000(\002\016\000\014\232\008\148\029\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001 \208(\013\218\000\002H\004\002\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\008\014@\128@1\n#\246\132\001\250\131\000\017\140@\160\128\000\000\004\007 @ \024\133\017\251B\000\253A\128\008\198 P@\000\000\000\000\000\000\000\000\000\000\008\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000A \208(\013\218\000\002H\004\002\000!\000\130\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\016H4\n\003v\128\000\146\001\000\128\008@ \128\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@ \002\018\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\128\228\008\004\003\016\162?h@\031\1680\001\024\196\n\008\000\000\000@r\004\002\001\136Q\031\180 \015\212\024\000\140b\005\004\000\000\000\000\000\000\000\000\000\000\000\128\000\000\008\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\002\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\000@\000\000\004\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\002A\160P\027\180\000\004\144\008\004\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\016\024 \201%\128\000\016\000\008\000\0034\004H\008\192\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\005H\128\t\006\129Po\208\000\018@ \016\001\t\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000@r\004\002\001\136Q\031\180 \015\212\024\000\140b\005\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\175\224\130\228H\004\131P\174?x@\031\1680\t\026\196\n\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\239\252<\185\018\001\000\198/\143\2220\007\234L G\177\198\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\004\000\128\000\004\000\016\000\000\000\000@\000\000\000\000\000\000\t\0200\000\000\000\000\001\000\128\019\000\000\000!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\245\170\240\000\128\016\000\000\128\0020\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000 \000\008\000\000\000\000\000\000R\000\002A\168P\027\180\000\004\144\008\004\000B\001\004\000\000\000\000)\000\001\000\204(\013\218\000\006H\004\002\128!\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000@0\n\003v\128\001\146\001\000\000\008@ \128\000\000\000\005 \000$\026\005\001\187@\000I\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\171\192\002\164@\004\131@\1687h\000\t \016\008\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\128`\020\006\237\000\003$\002\000\000\016\128A\000\000\000\000\n@\000H4\n\003v\128\000\146\001\000\128\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\016\012\002\128\221\160\000d\128@\000\002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\003\000\1607h\000\025 \016\000\000\132\002\008\000\000\000\000R\000\002\001\128P\027\180\000\012\144\008\000\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000  A\146J\000\000 \000\016\000\004(\008\128\001\128\000\000\000\000\000\000\000\000\000\000\016\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\005H\128\t\006\129Po\208\000\018@ \016\001\t\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001 \208(\013\218\000\002H\004\002\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\005H\128\t\006\129Pn\208\000\018@ \016\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000R\000\002\001\128P\027\180\000\012\144\008\000\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H4\n\003v\128\000\146\001\000\128\008@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\001\000\000\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@ \002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000R\000\002\001\152P\027\180\000\012\144\008\001\000B\001\004\000\000\000\000)\000\001\000\204(\013\218\000\006H\004\002\128!\004\130\000\000\000\002\020\128\000\128f\020\006\237\000\003$\002\001@\016\130A\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000$\026\133\001\187@\000I\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\020\128\000\128f\020\006\237\000\003$\002\000@\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\002\144\000\016\012\194\128\221\160\000d\128@\008\002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\000\002\012\002P\000\001\000\000\000\000 @\004\000\012\000\000\000\000)\000\001\000\192(\013\218\000\006H\004\000\000!\000\130\000\000\001\000\000@\000\131\000\148\000\000@\000\000\000\008\016\001\000\003\000\000\000\000\n@\000@0\n\003v\128\001\146\001\000\000\008@ \128\000\000@\000\016\000 \192%\000\000\016\000\000\000\002\004\000@\000\192\000\000\000\002\144\000\016\012\002\128\221\160\000d\128@\000\002\016\008 \000\000\016\000\004\000\0080\t@\000\004\000\000\000\000\129\000\016\0000\000\000\000\000\164\000\004\003\000\1607h\000\025 \016\000\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001\000\192(\013\218\000\006H\004\000\000!\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000@0\n\003v\128\001\146\001\000\000\008@ \128\000\000@\000\016\000 \192%\000\000\016\000\000\000\002\004\000@\000\192\000\000\000\002\144\000\016\012\002\128\221\160\000d\128@\000\002\016\008 \000\000\016\000\004\000\0080\t@\000\004\000\000\000\000\129\000\016\0000\000\000\000\000\164\000\004\003\000\1607h\000\025 \016\000\000\132\002\008\000\000\004\000\001\000\002\012\002P\000\001\000\000\000\000 @\004\000\012\000\000\000\000)\000\001\000\192(\013\218\000\006H\004\000\000!\000\130\000\000\001\000\000@\000\131\000\148\000\000@\000\000\000\008\016\001\000\003\000\000\000\000\n@\000@0\n\003v\128\001\146\001\000\000\008@ \128\000\000@\000\016\000 \192%\000\000\016\000\000\000\002\004\000@\000\192\000\000\000\002\144\000\016\012\002\128\221\160\000d\128@\000\002\016\008 \000\000\016\000\004\000\0080\t@\000\004\000\000\000\000\129\000\016\0000\000\000\000\000\164\000\004\003\000\1607h\000\025 \016\000\000\132\002\008\000\000\004\000\001\000\002\012\002P\000\001\000\000\000\000 @\004\000\012\000\000\000\000)\000\001\000\192(\013\218\000\006H\004\000\000!\000\130\000\000\001\000\000@\000\131\000\148\000\000@\000\000\000\008\016\001\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000R\000\002\001\152P\027\180\000\012\144\008\005\000B\t\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\128f\020\006\237\000\003$\002\001@\016\130A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\005 \000 \025\133\001\187@\000\201\000\128P\004 \144@\000\000\000\002\144\000\016\012\194\128\221\160\000d\128@\008\002\016H \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\164\000\004\0030\1607h\000\025 \016\n\000\132\018\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\001H\000\008\006a@n\208\0002@ \004\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\003\214\171\192\002\000@\000\002\000\008\192\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H5\n\003v\128\000\146\001\000\128\008@ \128\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\001\000\001 \000\000\000\000\000\000\000 \000\008\000\000\000\000\000\000\000\000\128\000\144\000\000\000\000\000\000\000\016\000\004\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000@\008\000\000@\001\024\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000@\000\016\000\000\000\000\000\000\164\000\004\131P\1607h\000\t \016\008\000\132\002\008\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\181Z\000\016\002\000\000\000\000@\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000@\000\016\000\000\000\000\000\000\164\000\004\131P\1607h\000\t \016\008\000\132\002\008\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\004\023\"@ \024\197q\251\198\000\253A\128\008\214 P@\000\000\000\000\000\000\002\001\000\000\000\002\000\000\000\002 \000\000\003\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\175\224\130\228H\004\003\024\174?x\192\031\1680\129\026\196\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000D`\155,\150\000@P\004$\000\029\208\016(;\128\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\002\000\000\128\000\000\000\000\000\005 \000$\026\133\001\187@\000I\000\128@\004 \016@\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\003\214\171\192\002\000@\000\002\000\008\192\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n@\000H5\n\003v\128\000\146\001\000\128\008@ \128\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\128\000\000\001\000\000\000\001\016\000\000\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\235\248 \185\018\001 \212+\143\2220\007\234\012\"F\177\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\250\254\008.D\128@1\138\227\247\140\001\250\131\008\017\172@\172\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\005H\128\t\006\129Po\208\000\018@ \016\001\t\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\002`\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\015Z\175\000\008\001\000\000\008\000#\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\008\000\002\000\000\000\000\000\000\020\128\000\144j\020\006\237\000\001$\002\001\000\016\128A\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\214\171@\002\000@\000\000\000\008\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\008\000\002\000\000\000\000\000\000\020\128\000\144j\020\006\237\000\001$\002\001\000\016\128A\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\235\248 \185\018\001 \212+\143\2220\007\234\012\"F\177\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\004\002\000\000\000\004\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255_\193\005\200\144\t\006\161\\~\241\128?P`\0185\136\020\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\t\128@\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\016\000\000\000\000\004\007 @ \024\133\017\251B\000\253A\128\008\198 P@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\001\000\000\000\000\000\000\000\000\000\016\000\031\253\255\132\023#@&\026\133\241\251\198\001\253I\132\200\246:\214`\000\000\002\003\144 \016\012B\136\253\161\000~\160\192\004c\016( \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\175\224\130\228H\004\003\024\190?x@\031\1680\001\030\199\026\008\000\000\000\000\000\000\000@ \000\000\000\000\000\000\000\004\000\000\000\000\255\235\248 \185\018\001\000\198/\143\222\016\007\234\012\000G\177\198\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\008\004\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\191\130\011\145 \018\013B\248\253\225\000~\160\192${\028h \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\175\224\130\228H\004\131P\190?x@\031\1680\t\030\199\026\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\128\000\255\235\248 \185\018\001\000\198/\143\222\016\007\234\012\000F\177B\130\000\000\000\000\000\000\000\016\008\002\000\000\000\000\000\000\001\000\000 \000?\250\254\008.D\128@1\139\227\247\132\001\250\131\000\017\172P\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\016\000\000\000\000\000\000\008\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\235\248 \185\018\001 \212/\143\222\016\007\234\012\002F\177B\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000 &\000\000\000@\000\000\000\002\000\000\000\000\000\000\000 \000\192@\000\000\000\000 \000\000\008\000\000@\005\255\215\240Ar$\002\001\140W\031\188 \015\212\024\000\141b\005\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004 \024\008\000\000\000\000\004\000\000\001\000\000\008\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\004\023#@&\026\133q\251\194\001\253A\128H\214\"Po\254\191\130\011\145 \016\012b\184\253\225\000~\160\192\004k\016( \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\215\240Ar4\002a\168W\031\188 \031\212\024\004\141b%\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\128\000\255\235\248 \185\018\001 \212/\143\222\016\007\234\012\002F\177B\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@ \000\000\000@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\\\137\000\144j\021\199\239\024\003\245\006\001#X\129A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\191_\192\005H\144\008\006\001Pn\240\0002@ \000\005\136\020\016\000\000\000\000\164\001\004\131@\1607h\000\t \016\008\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\250\254\000*D\128@0\n\131w\128\001\146\001\000\000,@\160\128\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\001\000 \000\001\000\004\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000$\026\133\001\187@\000I\000\128@\004 \016@\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\016\002\000\000\016\000F\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\002A\168P\027\180\000\004\144\008\004\000B\001\004\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0010\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\161@n\208\000\018@ \016\001\008\004\016\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\170\208\000\128\016\000\000\000\002\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013B\128\221\160\000$\128@ \002\016\008 \000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\128\000\247\235\248\000\169\018\001\000\192*\013\222\000\006H\004\000\000\177\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000 0A\146K\000  \000\018\000\006(\008\016\017\128\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\161@n\208\000\018@ \016\001\008\004\016\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\001\000 \000\001\000\004`\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000$\026\133\001\187@\000I\000\128@\004 \016@\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000T\136\000\144h\021\006\253\000\001$\002\001\000\016\144A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000&\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144j\020\006\237\000\001$\002\001\000\016\128A\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007Z\173\000\008\001\000\000\000\000 \000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\000\001 \212(\013\218\000\002H\004\002\000!\000\130\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\004\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000 \000\000\002\002`\000\000\004\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\002\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\008@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\004\023\"@ \024\197q\251\194\000\253A\128\008\214 P@\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\000\002A\160P\027\180\000\004\144\008\004\000B\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\127\245\252\016\\\137\000\144j\021\199\239\008\003\245\006\001#\216\195A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\008\000\000\000\000\000\000\001\127\245\252\016\\\137\000\128c\021\199\239\008\003\245\006\000#X\129A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\004\023\"@ \024\197q\251\194\000\253A\128\008\214 P@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\016\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\000\000\016\128A\000\000\000\000\000\002\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000@\000\000\000\005 \000$\026\005\001\187@\000I\000\128\000\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\129@n\208\000\018@ \000\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\007 @ \024\133\017\251B\000\253A\128\008\198 P@\000\000\000\000\000\128\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\000\000\001\001\200\016\008\006!D~\208\128?P`\0021\136\020\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@r\004\002\001\136Q\031\180 \015\212\024\000\140b\005\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\129@n\208\000\018@ \000\001\008\004\016\000\000\000\000\000 \000\000\000\000\000\000\000 \000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\000@\008\000\000@\001\000\002\000\000\004\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000/\254\191\128\008\001\000\000\008\000 \000@\000\000\128\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\175\224\002\000@\000\002\000\008\000\016\000\000 \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\018\013\002\128\221\160\000$\128@\000\002\016\008 \000\000\000\000\000@\000\000\000\000\000\000\000@\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x@\225\008\137 B\001\000\000$\000\nP\144\000&\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\003\132\" \129\008\004\000\000\144\000)B@\000\152\000\000\245\170\240\001\194\016\000@\132\002\000\000H\000\020\161 \000L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016\004\002\000\000\016\000\000\000\000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\004\001\000\000\000\004\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\016\000\000\000@\000\001\000@\000\000\001\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\000\000\000\000\000\000\002\000\000\000\000\000\000\000\008\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 @\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\170\240\001\194\017\000@\132\002\000\000H\000\020\161 \000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=j\188\000p\132\000\016!\000\128\000\018\000\005(H\000\017\000\000\000\002\000\000\008\002\000\000\000\008\000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\016\000\000\000@\000\001\000@\000\000\001\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016\004\000\000\000\016\000\000\000\000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\128\000\000\002\000\000\000\000\000@\001\000\000\000\000\000\000@\000\001\000@\000\000\001\000\000\004\000\000 \000\128\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\008\002\000\000\000\008\000\000\000\000\001\000\004\000\000\000\000\000\001\000\000\004\001\000\000\000\132\000\000\016\000\000\128\002\000\000 \000\000\000\128\000\002\000\128\000\000\002\000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000 \000\000\128 \000\000\000\128\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\171\192\002\000@\000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000z\213x\000@\008\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\000\000\004\001\000\000\000\134\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000\000\000 \000\000\128 \000\000\000\128\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\001\000\000\000\004\000\000\016\004\000\000\000\016\000\000\000\000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\017\128\000\002\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016\004\000\000\000\016\000\000\000\000\002\000\008\000\000\000\000\000\002\000\000\008\002\000\000\000(\000\000 \000\001\000\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000@\016\000\000\000@\000\000\000\000\008\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\008\002\000\000\000\008\000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000 \000\000\128 \000\000\000\128\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016\004\000\000\000\024\000\000\000\000\002\000\008\000\000\000\000\000\002\000\000\008\002\000\000\001(\000\000 \000\001\000\004\000\000@\000\000\001\000\000\004\001\000\000\000\004\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\001\000@\000\000\001\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\128\000\002\000\128\000\000\002\000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\128\000\000\002\000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\004\000\000\000\016\000\000@\016\000\000\000@\000\000\000\000\008\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\001\000@\000\000\001\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000 \008\000\000\000 \000\000\000\000\004\000\016\000\000\000\000\000\004\000\000\016\004\000\000\000P\000\000@\000\002\000\008\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235u\224\001\128 \000\001\008\132\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\004\000\000\016\004\000\000\000X\000\000@\000\002\000\008\000\000\128\000\000\002\000\000\008\002\000\000\000\008\000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000=n\188\0000\004\000\000!\024\128\000\000\000\002\000\008\000\000\000\000\000\002\000\000\008\002\000\000\000\008\000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\001\000@\000\000\001\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\008\002\000\000\001\008\000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\128\000\002\000\128\000\000\002\000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\171\194\007\008DI\002\016\008\000\001 \000R\132\128\0010\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\028\006\237\000\001$\002\001\000\016\128A\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\001\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\012@\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\004\131@\1607h\000\t \016\000\000\132\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\008\000\000\000\000\000\020\128\000\144h\020\006\237\000\001$\002\000\000\016\128A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\\\137\000\144z\029\199\239\008\003\245&\017#X\129Y\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\223\248Ar$\002A\232W\031\188 \015\212\152D\141b\005fw\239\220\000\128\016\000\000\000\002\000\000\000\000\000@\000\000\000\000\000\001\"\134\000\000\000\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\029\251\247\000 \004\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\014\253\251\128\016\002\000\000\000\000@\000\000\000\000\008\000\000\000\000\000\000$P\192\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\002E\012\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\001\"\134\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\145C\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\030\\\137\000\128c\021\199\239\008\003\245\006\000#X\129A?\250\254\008.D\128@1\138\227\247\132\001\250\131\000\017\172@\160\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\191\130\011\145 \016\012b\184\253\225\000~\160\194\004k\016+0\000\000\000\000\000\000\001\000\128\000\000\000\000\000\000\001\016\000\000\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@ \016\000\000\000\000\000\000\000\"\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\250\254\008.D\128H5\n\227\247\132\001\250\131\008\145\172@\172\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\016\012\194\128\221\160\000d\128@(\002\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\215\240yr$\002\001\140W\031\188 \015\212\024\000\141b\005\004\255\235\248 \185\018\001\000\198+\143\222\016\007\234\012\000F\177\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000?\250\254\008.D\128@1\138\227\247\132\001\250\131\008\017\172@\172\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\191\131\203\145 \016\012b\184\253\225\000~\160\192\004k\016('\255_\193\005\200\144\008\0061\\~\240\128?P`\0025\136\020\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000{\247\254\000@\008\000\000@\001\000\000\000\000\004 \000\000\000\000\000\000\145C\000\000\000\000\000\016\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\003\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000=j\188\000 \004\000\000 \000\140\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\007\173W\128\004\000\128\000\004\000\017\128\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000@\008\000\000@\001\024\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\003\255\175\224\130\228H\004\131P\174?x@\031\1680\t\026\196\026\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\000\000 \000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\016\008\004\000\000\000\000\000\000\000\008\128\000\000\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\191\130\011\145 \018\013B\184\253\225\000~\160\194$k\016+0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\019\000\000\000 \000\128\000\000\000\196\000\000\000\000\000\128@\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\t\006\129\192n\208\000\018@ \016\001\008\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005 \000$\026\005\001\187@\000I\000\128@\004 \016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\003\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\191\240\130\228H\004\131\208\238?x@\031\1690\137\026\196\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\254\255\194\011\145 \018\015B\184\253\225\000~\164\194$k\016+0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\191\240\130\228H\004\003\024\174?x@\031\1690\129\026\196\n\204\000\000\000\000\000\000\000@ \000\000\000\000\000\000\000D\000\000\000b\255\239\252 \185\018\001\000\198+\143\222\016\007\234L F\177\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\251\255\008.D\128H5\n\227\247\132\001\250\147\008\145\172@\172\223\253\255\132\023\"@ \024\197q\251\194\000\253I\132\008\214 V`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\128\000\000\000\000\000\000\001\016\000\000\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\223\248Ar$\002A\168W\031\188 \015\212\152D\141b\005f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\\\137\000\144j\021\199\239\008\003\245&\017#X\129Y\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\255\132\023\"@$\026\133q\251\194\000\253I\132H\214 V`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\024\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\255\132\023\"@$\026\133q\251\194\000\253I\132H\214 V`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\128\000\000\000\000\000\000\001\016\000\000\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\223\248Ar$\002A\168W\031\188 \015\212\152D\141b\005f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\002`\000\000\004\000\016\000\000\000\024\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \002@\000\000\000\000\000\000\000\000\1458\001\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000 @\000\000\000\000\000\000 \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\008\016\000\000\000\000\000\000\008\000\000\000\016\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\004\000\128\000\000\000\000\001\000\000\004\008\000\000\000\000\000\000\004\000\000\000\008\000\000\000\000\016\000 \000 \000\000\000\000\000\000\000\140\000\128\001\000\160\000\000\000\000\000@\000\001\002\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\002\000\002\000\000\000\000\000\000\000\008\192\008\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000@\000\000\000\000\000\000\000\000\0018\001\128\000\001\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\008\000\000\000\000\000\000\000\000\000#\0000\000\000 \000\000\000\002\000\004\000\000\000\000\000\000\000\000\000\017\128\016\000\000\016\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\004`\004\000\128\004\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000F\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\008\192\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000 \000\000\000\000\000\000\000\000\000\156\000\192\000\000\128\000\000\000\008\000\016\000\000\000\000\000\000\000\000\000F\000`\000\000@\000\000\000\004\000\008\000\000\000\000\000\000\000\000\000#\000 \000\000 \000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\017\128\016\000\000\016\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\008\192\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000 \000\000\000\000\000\000\000\000\000\140\000\192\000\000\128\000\000\000\008\000\016\000\000\000\000\000\000\000\000\000F\000@\000\000@\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000#\000 \000\000 \000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\017\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")
+    (184, "\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\b\001\006\000\000\002\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\252\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001*\134\128(\b5A\001!\152\017\1284\002!\222\004\128\001\014d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001v\142\000\000\0001\000\001\000\024\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001v\142\000\000\0001\000\001\000\024\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\002\004\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\016\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\016\144\017\128\016\002\000\132\000\000\000\002d1z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\002\016\000 \000\002\b\b\000@\000\000\000\128\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000@\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\128\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000\000\000\000\000\000\000 \000\002 \000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\b\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\019\004\217d\176\000\000P\002\004\000\000n\128Bxw\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131H\1683\185\000\000\132\128@\b\000A \130z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\024\004\176\000\000P\002\000\000\000l\128\000hw\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000l\128\002xw\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\012\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000L\128\002x7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\b\000\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\b\000\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\016\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\016\144\017\128\016\002\000\132\000\000\000\002d1z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\000\000\000\004\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\000\000\000 \000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\000\000\000\000\128\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\128\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\016\144\017\128\016\002\000\132\000\000\000\002d1z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131H\1683\185\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\002\004Y$\160\000\000@\000\004\000\000j\128B0F\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131H\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\017$ \004\131H\1683\185\000\000\132\128@\000\000A \130z\213x\000\017$ \004\131H\1683\185\000\000\132\128@\b\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000h\128\0020F\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\012\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\001 \000\003\000\004X\004\160\000\000@\000\000\000\000H\128\0020\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\017$ \004\131H\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\017$ \004\131H\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\002\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000\000\000\000\000\000\000 \000\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\017\000\001\016\144\017\128\016\002\000\132\000\000\000\002d1z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\"\134\000\000\000\017\000\001\000\144\017\128\016\002\000\132\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\b\000\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\b\000\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\0001\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\0001\136\000\000$\000!\218\004\128\001\012\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\128\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\0001\136\000\000$\000!\218\004\128\001\012\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\b\000\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\b\000\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\0001\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\0001\136\000\000$\000!\218\004\128\001\012\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\128\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\0001\136\000\000$\000!\218\004\128\001\012\000\000z\213x\000\016\000 \000\002\b\b\000@\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000!\136\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\000\016\000 \000\002\000\b\000\006\000\000\000\128\000\000\006\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\002\004\025$\160\000\000@\000\004\000\000B\128B\004\006\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131H\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\000\130\000\000\001 \000\003\019\004\217d\176\000\000P\002\004\000\000n\128BTw\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\003\004\025$\176\000\000@\000\004\000\000f\128BDF\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\001$\000\004\0030\1603\153\000\001\132\128@\"\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\001$\000\004\0030\1603\153\000\001\132\128@\"\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001\000\000\003\000\004\024\004\160\000\000@\000\000\000\000@\128\002\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@\"\000A\004\130\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\017\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001 \000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\001\000\001 \000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\b\001\158\160\192\t\030Q\134\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\019\004\217d\176\000\000P\002\004\000\000j\128@Pw\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131H\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000h\128\000Pw\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\012\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7\000\000\000\000\001$\000\004\003\000\1603\153\000\001\132\128@\000\000A\000\130\000\000\001 \000\003\017\004\216D\176\000\000P\002\000\000\000H\128\000P7z\213x\000\017$ \004\131@\1683\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\001\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\030\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\004\000\000\000\000\000\000\001\002 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\016\174;\159\b\001\158\160\192\001\026Q\002\130\127\245\252\016\017\164(\004\131P\190;\159\b\001\158\160\192\t\026QB\130\127\245\252\030\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\030\017\164(\004\003\024\190;\159\024\001\158\164\192\001\030Q\198\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\127\245\252\016\017\164(\004\131P\190;\159\b\001\158\160\192\t\026QB\130\127\245\252\016\017\164(\004\131P\174;\159\b\001\158\160\192\t\026Q\006\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\001\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\001\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000\000\128\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131H\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\024\001\158\160\192\t\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\030\017\164(\004\003\024\190;\159\024\001\158\164\192\001\030Q\198\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\024\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\128@\000\000\000\016\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\024\001\158\160\192\001\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\019\004\217d\176\001\000P\002\004\128\000n\128@Pw\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\016\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\024\001\158\160\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\024\001\158\160\192\001\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131H\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\000\000\017\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\024\001\158\160\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\024\001\158\160\192\t\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\000\000\017\128\016\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\127\247\254\016\017\1648\004\195P\190;\159\024\003\158\164\192\025\030Q\214\179\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\190;\159\b\001\158\160\192\001\030Q\198\130\000\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000\b\000\000\000\000\127\245\252\016\017\164(\004\003\024\190;\159\b\001\158\160\192\001\030Q\198\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\190;\159\b\001\158\160\192\t\030Q\198\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\190;\159\b\001\158\160\192\t\030Q\198\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\127\245\252\016\017\164(\004\003\024\190;\159\b\001\158\160\192\001\026QB\130\000\000\000\000\000\000\000\000\128@\016\000\000\000\000\000\000\000\b\000\000@\000\127\245\252\016\017\164(\004\003\024\190;\159\b\001\158\160\192\001\026QB\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\016\000\000\000\000\000\000\000\b\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\190;\159\b\001\158\160\192\t\026QB\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\000\016\017\128\000\000\000\128\000\000\000\000@\000\000\000\000\000\000\000\016\000\192@\000\000\000\000\002\000\000\000\b\000\000\016\001\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\192@\000\000\000\000\002\000\000\000\b\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\1648\004\195P\174;\159\b\003\158\160\192\t\026Q\018\131\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\1648\004\195P\174;\159\b\003\158\160\192\t\026Q\018\131\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\127\245\252\016\017\164(\004\131P\190;\159\b\001\158\160\192\t\026QB\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\024\001\158\160\192\t\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000{\245\252\000\017$(\004\003\000\1683\159\000\001\132\128@\000\002Q\002\130\000\000\000\000\001$\001\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000{\245\252\000\017$(\004\003\000\1683\159\000\001\132\128@\000\002Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\017\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000{\245\252\000\017$(\004\003\000\1683\159\000\001\132\128@\000\002Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\003\003\004\025$\176\001\000@\000\004\128\000b\128@@F\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\017$ \004\131H\1683\185\000\000\132\128@\b\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\000\000\017\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000\016\000 \000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131P\1607\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\001\000\001\000\016\017\128\000\000\000\128\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\002\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\002\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\b\001\158\160\192\t\030Q\134\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\000\016\000 \000\002\000\b\000\006\000\000\000\128\000\000\006\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\164\b\004\003\016\162;\153\b\001\158\160\192\001\024Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\000\016\000 \000\002\000\b\000\006\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\127\245\252\000\016\000 \000\002\000\b\000\006\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\000\016\000 \000\002\000\b\000\006\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x@8\b$I\002\016\b\000\000$\000!J\020\128\001\140\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\128(\b\004A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000 \000\002\000\000\000\000\000\000\000  \000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\"\000\000\000\000\000\000\000  \000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\0008\b$A\002\016\b\000\000$\000!H\020\128\001\140\000\000z\213x\0008\b \001\002\016\b\000\000$\000!H\020\128\001\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$a\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\0008\b$\001\002\016\b\000\000$\000!H\020\128\001\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\0008\b \001\002\016\b\000\000$\000!H\020\128\001\132\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\004\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000\001\000\000\000\164\000!\218\004\128\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000!\000\000\000\164\000!\218\004\128\001\014\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000\161\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000z\213x\000\016\000 \000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\128(\b$A\000\001\128\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\004\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\017\000\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128.\b$A\000\005\000\000\000\164\000!\218\004\128\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\129(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\b\000\129(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\004\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\b@\128(\b$A\000\001\128\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000\001\128\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\128\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(H$A\000%\000\000\000\164\000!\218\004\128\001\014\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000\161\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\128\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\128\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\004\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006@\000\000\000\004\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128.\b$A\000\005\000\000\000\164\000!\218\004\128\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\221x\1288\b$A\002\017\b\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\128(\b\004A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128.H$A\000%\128\000\000\164\000!\218\004\128\001\014\000\000\000\b\000\128(\b$A\000!\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000z\221x\1288\b$A\002\017\136\000\000$\000!\218\004\128\001\012\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128(\b$A\000\001\000\000\000$\000!\218\004\128\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x@8\b$I\002\016\b\000\000$\000!J\020\128\001\140\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\2243\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131\208\238;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131\208\174;\159\b\001\158\164\192\t\026Q\002\179{\247\254\000\016\000 \000\002\000\b\000\000\000\000\000\004\000\000\000\000\000\000{\247\254\000\016\000 \000\002\000\b\000\000\000\000\000\004\000\000\000\000\000\000{\247\254\000\016\000 \000\002\000\b\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\001\"\134\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\001\"\134\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\001\"\134\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\030\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\179\000\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\000\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\b\001\158\160\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\0038\1603\153\000\001\132\128@*\000A\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\030\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\030\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\127\245\252\016\017\164(\004\003\024\174;\159\b\001\158\160\192\001\026Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000{\247\254\000\016\000 \000\002\000\b\000\000\000\000\000\132\000\000\000\000\000\000\001\"\134\000\000\000\000\000\001\000\000\017\128\000\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\000\000\000 \000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\000\000\000\000\128\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000z\213x\000\016\000 \000\002\b\b\192\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\b\001\158\160\192\t\026Q\006\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\000\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016\017\164(\004\131P\174;\159\b\001\158\160\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\001\000\001\000\000\017\128\000\000\000\132\000\000\000\000\0001\000\000\000\000\000\000\128\128 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\2243\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\000\004\131@\1603\153\000\000\132\128@\b\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131\208\238;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131\208\174;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\003\024\174;\159\b\001\158\164\192\001\026Q\002\179\000\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000\b\000\000\0001\127\247\254\016\017\164(\004\003\024\174;\159\b\001\158\164\192\001\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131P\174;\159\b\001\158\164\192\t\026Q\002\179\127\247\254\016\017\164(\004\003\024\174;\159\b\001\158\164\192\001\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\000\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131P\174;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131P\174;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131P\174;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\001\000\001\000\000\017\128\000\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131P\174;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128@\000\000\000\000\000\000\000\000\b\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016\017\164(\004\131P\174;\159\b\001\158\164\192\t\026Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000\001\000\001\000\000\017\128\000\000\000\132\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000@\000\000\000\000\000\000\000\000@\145.\000`\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000 \000\000\016\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\002\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\002\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000 \004\000\000\000\000\000\000 \000\001\002\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\128\000\000\000\016\000\000\000\000\000\000\000\001\006\000@\000 \020\000\000\000\000\000\000 \000\001\002\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\016\000\000\000\000\000\000\000\001\006\000@\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\014\000`\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\006\000`\000\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\002\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\014\000`\000\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\006\000`\000\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\006\000`\000\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000@\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")
   
   let action =
-    ((16, "\000\172\000\025\000\000\000\000\000\233\000\000\000\000\000\000\000\172\000\000\000\226)\238\000\000\000\129A\002\000\000\000\000\0252\000\000\030v\000\000\000\000\000\000\000\000\000\000\000\000\025\232\000\000\031,\000\000\000\000\000\000\000\000\000\000\031\226\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\215\000o\000\000)\238 \152CJ\000MA\182\000\000\000\000\000\000C\006\000\005*\152\000!CJ\000\000\000\151\000\000CJ\000\000\000y\000\0038.\000\000\000\0009\252\000\000;$\000\000;\1668.8.\018F\018F;$\018F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:~8.\000\000\000\000:~\000\000:~\000\000:~\000\000\000\000\000\000\020\158\000y\000\000\018F\000\000\027P8.\027n8.\000\000\000\000\000\000\000\000\000\000\000\000 \2228.\000\000!\2068.\"&8.#\0228.\000\0008.\000\0008.#n8.$^8.$\1828.%\1668.%\2548.\000?8.\000\000\000\000\000\000\000\000\000\0008.&\2388.'F8.(68.\000\000\000\0008.\000\000\000\000\031\002*\224\000\000\000\000\0005\000\000\000\000\000\000\000\000\023\026\000\129\000\000*\224\000\000\001\001\018F\000\0008.\000\140\000\000\000\000\000y\000\000\000\000\000\000\000\000\001\"\000\000\000\000\001&\000\000\001\206;$\000\000\000\000\000\000\000\000\000\000\000\000<L8.\000\000<L\000\000<L<L\000\000\000\000,\190\000y\000\000\018F\001\208\000\0008.\001\244\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A~8.\000\0008.\000\000\000\000\002j\000\000\000\006\028\228\003N8.\003f\000\000\000\000;$\000\006\000\000\000\000\000\000\000\000\000\000CF;$C\156;$D\128;$D\214;$\000\000;$\000\000;$E\186;$F\016;$F\244;$GJ;$H.8.\003:;$\000\000;$H\132;$Ih;$I\190\003\026\000\000\003 \000\000\000\0138.\000\000\000\013\000\000\000\000\000X)\238\000\000\000X\000\000\000\000\003P8.\000\000\003^\000\000\018F\003\132\000\000\000\000\004z\000\000\018F\003\248\000\000\000\000\004\000\000\000\000\000\000\003\000\000\005\014\000\000*\224I\232\004\250\005\026\000y\004\154\005RK\222\0001\000\000\000\000\000\191LH\000\000\000\000\000\000\005b\005h\000!\005\128K\222\000\176K\222\000\000\000\000\000\150\000\000\000\000\004\218\000\000\004\220\005\144K\222\004\224\000\000\000\000\000\191\000\000\004\254\005\216\000\000L\140K8\000\000\000y\005\222\000\000\023\026\000y\005\228\000\000\000\000)\004CJ\005\024\000\000\005\156\000\000\005,\000\000\000\025)\238\000\000)\238\000\000\005\028\000\000\000\025\000\000\015\190\008\030\005\236K\222\005H\006\030\000\000M\240\000\129\000\000\002<\002\232)\238\005T\000\000\000g\000\000\001$\000\000\006&\000\000\000\000\024B\000\129\000\000\000g\000\000\000\000\000\000\000\000\000\000\006:8.\005\138\018\236\006>8.\005\144\006<\000M\005\186\006\142\000\000=\226>d\018F\005\150\000\000\005\152>d\000\000\000\000\000\000\000\000\000\000\000\000\000\000>\1868.\000\000>\186\000\000>\186>\186\000\000\000\000\024Z\000y\000\000\018F\005\172\000\0008.\005\170\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000+l8.\000\0008.\000\000\005\180\000\000\000\013\000\000\000\000\000\000\000\000\000\000/\242>d0J>d1:>d1\146>d\000\000>d\000\000>d2\130>d2\218>d3\202>d4\">d5\0188.\005\218>d\000\000>d5j>d6Z>d6\178\018F\005\184\000\000\000\0008.\000\000\006\140\000\000\001N\006f8.\0062\000\000\006j8.\006:\000\000\000\214\000\000\006\142\006\142\001N\000\000\001N\000\000\015\190\006\142\006\142\000\000\000\000\000\000\022~\000\000\000\000\000\000\000\000\006~8.\005\208\018\236\019\188\000y\006\164\000\000\006\1348\212\006\1708\212\006\1948.\006\000\018\236\018\236\000y\001D\000!\000\000\000\000\000\000\001D\000\000\002r\000y\000\000\000\000\006\014\000\000\000\000\000\000\006\234\000\000\006\236\000\000\000\000\007\028\006\2148.\006(\007\002\000\000\021\142\006\228\018F\006@\018\236\000\000\000\000\006n\000\000\0009\000\000\005>\000\000\001N\000\000\000\000\006\186\000\000\026\210\008\030\007\000K\222\006P\007(\000\000\000y\000\000\002\0028.-f\000\000?<8.\006Z\000\000\018F\006Z\000\000\006\\\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\1468.\000\000?\146\000\000?\146?\146\000\000\000\000M,\000y\000\000\018F\006`\000\0008.\006^\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018F\006d@\020\000\000\000\0008.\000k8.\006d\006\150-f.\016,N\007\0208.\006\242\000\000\000\000\000y\006\178-f\000\000\006\180-f\000\000\000\000\012F@\020\013\150@\020\014\230@\020\017t@\020\000\000@\020\000\000@\020+8@\020<\016@\020M\186@\020M\238@\020N.@\020Nb@\020N\132@\020N\220\000\000\000\000\006\138\000\000\006\154.\186\000\000/d\006\164/d7\132\006\170/d\000\000\000\000\000\000\000\000\000\000\006\208-f\000\000\000\000\006\190\000\000\007\166\000\000\000y\000\000\001X\007\168\000\000\007\138\007z\000y\006\220\007\146K\222\006\226\002h\000\0008.\007\182\000\000\001f\001\030\003\190\007\152K\222\006\232\007\190\000\000\002\0208.\007\198\000\000\007\204\000\000\023\026\000y\002\1648.\007\208\000\000\007\212\000\000\011\206\0009\000\000\011\206\000\000\000\000\021\142\002\1668.\007\220\000\000\007\222\000\000\000\000\007\192\007\176\000y\007\026\007\206K\222\007 \002\156\000\0008.\007\244\000\000\0009\000\000\000\000\007\222\000\000\011\206\000\000\007\214\018F\007&\007\250\000\000\001f\000\000\007\224K\222\0076\008\n\000\000\003:8.\008\012\000\000\008\014\000\000\023\026\000y\003\2148.\008\018\000\000\008\022\000\000\000\000\000\000\007\222\000\000\000\000\0009\000\000\006\142\000\000\001p\000\000\000\000\001\158\019\188\000\000\001\158\000\000\000\000\007N\000\000\004\\\000\003\018\236\000\000\003\238\0009\003\238\000\000\0009\000\000\006\142\000\000\006\142\000\000\000\000\000\000\007H\000\000\000\000\007R\000\000\002B\005>\0009\003\238\000\000\000\000\000\000\0009\000\000\006\142\000\000\002B\000\000\000\000\003\186\000\015\015\190\000\000\018\224\000\000\t.\015\190\000\000\000\000\t.\000\000\000\000\007\\\000\000\000\000\007j\000\000\003\138\006\142\000\000\003\138\000\000\000\000\007\218\000\000\0009\000\000\006\142\000\000\000\000\000\000\017\0029V\000\000\008D\000\000\017\002\008F\000\000\008H\000\000\026\210\000y\002\174\000\0008.\008J\000\000\008,\008\028\000y\007\128\008BK\222\007\152\004\026\000\0008.\008p\000\000\001f\004r\000\0008.\008x\000\000\023\026\000y\005@\000\0008.\008z\000\000\003\228\017\002\000\000\021\142\005D\000\0008.\008|\000\000\000\000\000\000\008^\008P\000y\007\178\008fK\222\007\184\005N\000\0008.\008\140\000\000\004^\000\000\008p\018F\007\192\008\148\000\000\001\146\000\000\005T\000\0008.\008\154\000\000\023\026\000y\005j\000\0008.\008\158\000\000\003\228\000\000\000\000\007\214\000\000\004^\005\n\008J\000\000\000\000\000\000\008N\000\000\002\022\000\214\000\000\015\190\008\158\000\000\000\0008.\008\008\006\142\000\000\007\230\000\000\000M\000\000\000\000\001f\015\190\000\000\015\190\000\000\007\246\000\000\001f\000\000;$\002\136;$\000\000;$\000\000\008\012\000\000\002\136\000\000\018\236\002\154\018\236\000\000\018\236\000\000\008\014\000\000\002\154\000\000;$\002\136\008\016\000\000=\154\000y\003v=\154\000\000=\154\000\000\008\018\000\000\003v\000\000;$\002\136\008\022\000\000\000\000\023\206\000\000\000\000\000\000\000\000\000\000\0278\028\190\000\000\006\200\000\000\003r\000\000\000\000\008V\000y\000\000\000\000\000\000\000\000\000o\003r\000\000\003\194\000\242\000\242\000\000\002\134\000\242\000\000\008.\000\000\000\000\000\000\000\000\000\000\000\000\008\174\000\000\029\234\000\000*T\003r\000\000\004\182\003r\000\000\008\192\000\000\003r\008\194\000\000\004\194\0178\008\206\000\000\008\208\000\000\006\018\018\190\003r\008\\\003r\008\216\000\000\008\218\000\000\008\220\000\000)\238\000\000\002\154)\238\000\000\008d\002\212\000\000\000\184\003r\000\000\004\222\003r\000\000\004\004\002\166\000y\000\000\000\154\000y\000\000\008f\000\000\000\000\000\000\000\000\008\232\000\000\007b\020L\008\234\000\000\008\236\000\000\003r\008\238\000\000\003r\008\244\000\000\008\208\003r\008\252\000\000\n\028\0178\003r\008\132\003r\t\000\000\000\t\006\000\000\000\000\005\018\003r\000\000\004f\002\142\001&\000\000\000\000\000\000\003\000\001&\000\000\008\142\000\000\000\000\000\000\000\000\003r\000\000\005\"\003r\000\000\004\224\003V\000y\008\150\000\000\000\000\000\000\000\000\t\020\000\000\t\022\000\000\003r\t$\000\000\n\184\020L\t.\000\000\t0\000\000A\006\008\226\t\014\0160\003r\t:\000\000\000\000\t<\000\000\t\018A\006\003r\t@\000\000\003r\tB\000\000\tD\000\000\012\008\008\204\003r\tV\000\000\tZ\000\000\000y\008\216\000\000\000\000\023\206\000\000\000\000\002>\t\184\000\000\000\000\003h\000\000\000\000\000\0008.\003\026\n\002\t,\t\174;$\000\000\002&;$\000\000\t\000\000\000\000\000\000\000\000\000\000\000\002\158\000\000\003l\000\000\000\000\000\000\003\238K\134\008\254K\134K\134\008\254\000\000\000\000\t.\t.\t.\t.\000\000\000\000\000\000\000\000\000\000\000\000\001N\015\190\t\198\013\030\0009\000\000\000\000\0009\000\000\007\222\000\000-f\t\004\000\000\001N\015\190\t\012\014n\000\000\001N\013\030\000\000\000\000\000\000=\232\nN\000\000\003\026\000\000\000\000\tZ\001\230\t\206L\250\000\000\004\210M>\000\000\000\000\t\212\t\196\000y\000\000\000y\000\000\004\210\000\000\004\212L\250\000\000\000\000\t.\t\220\006\142\t6\000\000\n\198\0009\000\000\007\222\000\000\002\226\000N\000\000\000\000\t\242\000\000\000\000\002>\000\000\003\184\000\000\000\000\000\0008.\003\026\000\000\002\158\000\000\004R\000\000\000\000\000\000\005>\000\000\n~\001\024\n~\000\000\006\142\n~\000\000\001\024\000\000\006\142\000\000\006\142\000\000\006\142\000\000\000\000\000\000\000\000\000\000\003\026\000\000\006\142\000\000\001\024\000\000\006\142\000\000\0042\000\000\000\000\t.\t\156\000y\004r\n.\003\024\000\000\003\024\n^\000\000\n`\000\000\nb\000\000\000\000\003\220\003\024\017\154\003\024\000\000\000\000\005.\tt\000\000\t.\nf\000\000\005\218\008z\nx\011\026\nx\000\000\000\000\006\028\000y\000\000\006`\t\210\000\000\000\000\000\000\001\206\000\000\t\132\000\000\000\000\000\000\000\000\t.\005\218\008z\006\028\006`\001\206\t\144\000\000\005\218\008z\006\028\006`\001\206\t\150\000\000\000y\000\000\n\142\n\140\t\214\000y\n*\000\000"), (16, "\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\000:\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\t\146\002\206\002\150\000\n\n\209\003u\005q\000\158\000\194\008J\n\209\006\002\n\209\n\209\n\209\000\218\007]\n\209\008~\n\181\005q\n\209\n\209\000\014\n\209\000\023\000\027\005y\003\245\000\218\008J\007]\000\250\n\209\005>\000\162\n\209\n\209\005\145\008~\000\198\006\001\n\209\n\209\005q\n\209\001\026\n\209\000\242\011u\004\138\000\158\n\209\t\002\n\209\n\209\n\209\n\209\n\209\022\031\n\174\001\006\n\209\n\209\n\209\n\209\n\209\n\209\022#\n\209\n\209\n\209\n\209\003\t\017\150\006\n\n\209\n\209\022&\000\162\007]\011u\011\174\002J\006\194\t\158\n\209\n\209\n\209\n\209\n\209\n\209\n\209\016Z\n\209\000\006\n\209\t\n\005\129\n\209\004\162\n\141\n\209\n\209\003\245\002a\t\158\002\166\n\209\002a\005y\013\174\n\209\011u\011u\n\209\003\198\005Z\011u\n\209\n\209\n\209\n\209\008r\n\209\n\209\005\217\007]\005y\n\209\n\209\n\209\005y\n\209\005\169\n\209\n\209\006\001\n\209\007]\n\209\n\209\000\158\017z\n\209\n\209\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\008v\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\t\146\017\166\000\162\004\173\006\t\008N\008^\008n\005\209\008J\006\t\n\141\006\t\006\t\006\t\n\141\n\141\006\t\008~\004\017\008\021\006\t\004\173\018z\006\t\000.\006\"\016\162\016\202\016\242\017\002\017.\nm\006\t\016\130\006j\007I\002\222\018\162\013\006\007I\014\170\006\t\006\t\013\006\n\141\014\174\006\t\006\t\005f\014\178\n\141\006\t\002\133\006\t\006\t\006\t\006\t\006\t\005\161\005\161\015\214\006\t\006\t\006\t\006\t\006\t\006\t\019F\006\t\006\t\006\t\006\t\000\162\000\162\001^\006\t\006\t\012\022\001j\001^\008=\016.\012\022\001j\t\158\004\173\006\t\006\t\006\t\006\t\006\t\006\t\013~\006\t\013\138\006\t\001^\016\138\006\t\012\022\001j\006\t\006\t\004\173\000J\000\162\000N\006\t\000V\002\254\000\162\003\n\008=\008=\006\t\000Z\nm\008=\006\t\006\t\006\t\006\t\t\006\006\t\006\t\nm\005\153\000\162\006\t\006\t\006\t\006)\011\206\006)\006\t\006\t\006)\006\t\001^\006\t\006\t\001f\001j\006\t\006\t\006)\006)\006)\006)\006)\006)\006)\006)\006)\006)\006)\005\193\006)\006)\006)\006)\006)\006)\006)\006)\006)\006)\012\002\023\154\000\162\005\249\006)\020f\006)\000^\n]\013\254\006)\016\170\006)\006)\006)\006)\005q\006)\006)\006)\016\210\006)\006)\000n\006)\000r\012\194\000z\003\018\003f\nm\nm\t\218\006)\000~\014\230\006)\005\021\005q\019B\006)\0126\006)\006)\006)\006)\006)\006)\005q\003r\011\206\018\150\006)\020f\006)\006)\006)\006)\006)\011\206\016B\013\006\006)\006)\006)\006)\006)\006)\020\162\006)\006)\006)\006)\005q\nu\016\178\006)\006)\005q\002\150\019F\006)\023\006\012\006\016\218\005\225\000\162\006)\006)\006)\006)\006)\006)\000\130\006)\017r\006)\001^\000\162\006)\012\022\001j\006)\006)\023\n\nm\t\"\003\190\006)\012\198\003\013\023\014\006)\012V\012\138\006)\017\178\017v\014\234\006)\006)\005q\006)\n\133\006)\006)\018b\017z\000\162\006)\017\014\011\206\011\206\ne\005\185\005q\006)\003\206\006)\019\142\006)\006)\007!\005\201\006)\006)\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\017\134\000\146\020\222\000\150\006\150\000\154\000\174\000\178\000\182\006\154\020\230\023\022\013\006\020\138\004\169\006\158\014~\007!\007!\003\214\019V\000\186\007!\001\030\006\174\006\202\nm\n}\006\206\000\162\004\013\013\"\000\190\004\169\004V\008:\004z\017\022\017\162\004\130\004\162\023.\023\030\000\162\001*\006!\006!\021\"\001^\011\206\006!\012\022\001j\008\146\006\214\021N\021Z\017\138\008\150\013\186\015\022\015^\006Q\001R\004\186\001V\003\209\000\206\t\154\008\158\004\198\018\146\013\006\006\234\001^\008\162\006\238\008\166\001j\000\162\006\242\006\246\008\170\006\250\020w\020{\020\207\020\211\008\174\020\127\004\210\020\215\005\233\t\146\015\186\006A\005\177\004\169\006\254\007\002\008\178\008\182\007\006\008\186\015.\000\162\018\022\008\206\001^\013B\003\173\012\022\001j\008\218\007\014\004\169\005\209\006Q\004\222\0061\019>\004\138\004\138\021n\022?\022C\008\250\011\206\017v\022G\008\254\t:\003\209\t\166\023>\007\018\t>\005\241\017z\000\162\007\022\003\209\003\209\015\026\0069\0236\003\209\tF\004\234\007\026\006A\0061\0061\008u\004\246\001\154\0061\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\017\134\000\146\020\222\000\150\006\150\000\154\000\174\000\178\000\182\006\154\020\230\0031\015\214\019\138\005\n\006\158\n\149\008u\008u\0152\005\026\000\186\008u\001\030\006\174\006\202\0031\022\254\006\206\005\217\005\217\0069\000\190\022c\022g\008:\n\165\006I\022k\015J\004\162\015n\023.\000\162\001*\005\030\015\166\008J\001^\015\222\003-\012\022\001j\008\146\006\214\021N\008~\017\138\008\150\014\002\015\250\005&\n\157\001R\005*\001V\003\225\000\206\t\154\008\158\n\173\017\246\005R\006\234\001^\008\162\006\238\008\166\001j\000\162\006\242\006\246\008\170\006\250\005V\021\178\021\226\005^\008\174\005\137\002y\018\134\006I\005\130\005\138\005\142\005\150\003-\006\254\007\002\008\178\008\182\007\006\008\186\0031\000\162\018.\008\206\0031\0031\003\173\005\170\003-\008\218\007\014\005\174\005\209\0192\005\198\006Y\0031\005\214\015N\t\158\015r\019~\008\250\005\234\017v\015\170\008\254\t:\015\226\t\166\005\242\007\018\t>\005\250\017z\006\023\007\022\006.\003\225\015\254\0031\006\025\0236\tF\0066\007\026\006:\006Y\006Y\006Z\006r\001\154\006Y\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\017\134\000\146\020\222\000\150\006\150\000\154\000\174\000\178\000\182\006\154\020\230\023\134\006\162\006\170\006\178\006\158\006\186\006\190\006\198\006\222\006\230\000\186\003-\001\030\006\174\006\202\003-\003-\006\206\008\025\007>\007J\000\190\007\146\008\n\008:\0082\008F\003-\022\254\008R\008Z\008b\000\162\001*\008j\008\190\008J\008\198\008\214\008\222\008\025\008\230\008z\006\214\006\025\008~\017\138\008\150\006\025\006\025\008\025\003-\001R\008\238\001V\003\253\000\206\008\154\008\158\017j\023z\008\246\006\234\001^\008\162\006\238\008\166\001j\t2\006\242\006\246\008\170\006\250\tB\tJ\tV\011}\008\174\023\142\tZ\008\025\tb\003\141\023\146\006\025\tf\tr\006\254\007\002\008\178\008\182\007\006\008\186\tz\000\162\017r\008\206\t\138\t\174\003\173\t\190\t\198\008\218\007\014\t\202\t\242\t\254\n\006\008E\nZ\nf\n\154\t\158\n\182\n\186\008\250\n\202\017v\003\141\008\254\t:\003\253\t\166\008\025\007\018\t>\n\210\017z\n\226\007\022\003\253\003\253\n\238\011r\011z\003\253\tF\008\025\007\026\011\138\008E\008E\011\150\011\178\001\154\008E\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\018\202\000\146\011\194\000\150\006\150\000\154\000\174\000\178\000\182\006\154\011\202\011\222\011\230\011\234\011\242\006\158\011\246\011\254\012\014\012\"\012*\000\186\012.\001\030\006\174\006\202\012>\005q\006\206\012F\005q\012^\000\190\012f\005q\008:\005q\012\146\012\154\012\166\012\170\005q\005q\000\162\001*\012\178\012\182\008J\012\190\012\206\012\242\012\250\012\254\008z\006\214\013\014\008~\017\138\008\150\013\022\013\026\013*\0132\001R\013J\001V\013R\000\206\008\154\008\158\013\162\013\234\013\246\006\234\001^\008\162\006\238\008\166\001j\014j\006\242\006\246\008\170\006\250\014v\014\150\005q\011}\008\174\014\194\014\206\014\214\014\242\014\250\014\254\000\218\015\006\023b\006\254\007\002\008\178\008\182\007\006\008\186\015\n\000\162\001^\008\206\015\018\001f\001j\015\"\006\017\008\218\007\014\015:\015V\015z\015\138\011}\015\142\015\150\015\154\t\158\015\162\015\178\008\250\015\194\015\202\015\206\008\254\t:\015\234\t\166\016\006\007\018\t>\000\162\016\026\005q\007\022\016*\005q\016:\016R\016b\005q\tF\005q\007\026\016n\011}\011}\005q\005q\001\154\011}\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\016\151\000\146\020\254\000\150\006\150\000\154\000\174\000\178\000\182\006\154\021\002\016\191\016\231\016\255\017#\006\158\017;\017~\017\190\003\153\017\219\000\186\006\017\001\030\006\174\006\202\006\017\006\017\006\206\018\003\018\015\022\242\000\190\007e\003\153\008:\018\031\018'\006\017\002\150\018:\018C\018K\018S\001*\018n\018\174\008J\007e\018\195\018\211\018\219\018\231\008z\006\214\018\243\008~\018\250\008\150\019\003\019\022\019\031\006\017\001R\019'\001V\019b\000\206\008\154\008\158\019\150\019\171\019\179\006\234\001^\008\162\006\238\008\166\001j\019\191\006\242\006\246\008\170\006\250\019\207\019\215\005q\019\226\008\174\019\230\019\243\019\255\020\006\020\019\020\031\020'\0202\007e\006\254\007\002\008\178\008\182\007\006\008\186\020;\000\162\020C\008\206\023N\020O\003\193\020j\003\153\008\218\007\014\023R\003\153\003\153\020\142\019\n\020\146\020\150\020\174\t\158\021.\021V\008\250\021f\003\153\003\153\008\254\t:\021\158\t\166\021\166\007\018\t>\021\194\021\198\006\142\007\022\017v\006\146\021\242\007e\021\246\020\254\tF\006\150\007\026\021\254\017z\003\153\006\154\021\002\001\154\007e\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\022+\000\146\020\222\000\150\006\150\000\154\000\174\000\178\000\182\006\154\020\230\022\246\023\002\017\134\000:\006\158\023\018\023\026\023\"\023K\023V\000\186\023f\001\030\006\174\006\202\023\138\023\163\006\206\017r\011\230\006\142\000\190\023\207\006\146\008:\023\235\023\250\020\254\023\254\006\150\024\002\024\011\000\000\001*\006\154\021\002\000\000\000\000\000\000\000\000\017v\000\000\008\146\006\214\000\000\000\162\000\000\008\150\022z\000\000\017z\000\000\001R\000\000\001V\000\000\000\206\t\154\008\158\017\138\000\000\000\000\006\234\001^\008\162\006\238\008\166\001j\000\000\006\242\006\246\008\170\006\250\000\000\000\000\003\193\000\000\008\174\000\000\012\166\019\198\000\000\000\000\000\000\000\000\000\000\000\000\006\254\007\002\008\178\008\182\007\006\008\186\000\000\000\162\000\000\008\206\000\000\000\000\003\173\000\000\nU\008\218\007\014\000\000\000\000\000\000\000\000\008)\000\000\000\000\000\000\000\000\000\000\000\000\008\250\000\000\000\000\000\000\008\254\t:\000\000\t\166\000\162\007\018\t>\000\000\000\000\000\000\007\022\000\000\000\000\000\000\000\000\000\000\003\193\tF\017\138\007\026\000\000\008)\008)\000\000\000\000\001\154\008)\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\000\000\000\150\006\150\000\154\000\174\000\178\000\182\006\154\000\000\000\000\000\000\000\000\000\000\006\158\000\000\000\000\000\000\000\000\000\000\000\186\nU\001\030\006\174\006\202\nU\nU\006\206\017r\000\000\000\000\000\190\000\000\000\000\008:\000\000\000\000\nU\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\023j\000\000\017v\000\000\008\146\006\214\000\000\000\000\000\000\008\150\012n\000\000\017z\nU\001R\000\000\001V\000\000\000\206\t\154\008\158\000\000\n\254\000\000\006\234\001^\008\162\006\238\008\166\001j\000\000\006\242\006\246\008\170\006\250\000\000\000\000\020.\011Y\008\174\011\006\000\000\017\134\000\000\000\000\000\000\000\000\000\000\000\000\006\254\007\002\008\178\008\182\007\006\008\186\011\014\000\162\000\000\008\206\000\000\000\000\011N\011V\000\000\008\218\007\014\000\000\000\000\000\000\000\000\011Y\011.\000\000\000\000\011\022\000\000\011&\008\250\000\000\000\000\000\000\008\254\t:\000\000\t\166\000\162\007\018\t>\000\000\000\000\000\000\007\022\000\000\000\000\000\000\000\000\0116\000\000\tF\017\138\007\026\000\000\011Y\011Y\000\000\000\000\001\154\011Y\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\000\000\000\150\006\150\000\154\000\174\000\178\000\182\006\154\000\000\000\000\011>\000\000\000\000\006\158\000\000\000\000\000\000\011\030\000\000\000\186\000\000\001\030\006\174\006\202\000\000\000\000\006\206\000\000\000\000\004\229\000\190\000\000\000\000\008:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001*\000\000\011^\011F\000\000\000\000\000\000\000\000\000\000\008\146\006\214\000\000\000\000\000\000\008\150\0212\000\000\000\000\000\000\001R\000\000\001V\000\000\000\206\t\154\008\158\000\000\000\181\000\000\006\234\001^\008\162\006\238\008\166\001j\000\000\006\242\006\246\008\170\006\250\000\000\000\000\000\000\000\000\008\174\011\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\007\002\008\178\008\182\007\006\008\186\011\014\000\162\000\000\008\206\000\000\000\000\000\181\000\181\000\000\008\218\007\014\000\000\000\000\000\000\000\000\011\165\011.\000\000\000\000\011\022\000\000\011&\008\250\000\000\000\000\000\000\008\254\t:\000\000\t\166\000\000\007\018\t>\000\000\000\000\000\000\007\022\000\000\000\000\000\000\000\000\0116\000\000\tF\000\000\007\026\000\000\011\165\011\165\000\000\000\000\001\154\011\165\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\000\000\000\150\006\150\000\154\000\174\000\178\000\182\006\154\000\000\000\000\011>\000\000\000\000\006\158\000\000\000\000\000\000\011\030\000\000\000\186\000\000\001\030\006\174\006\202\000\000\000\000\006\206\000\000\000\000\000\181\000\190\000\000\000\000\008:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\181\011F\000\000\000\000\000\000\000\000\000\000\008\146\006\214\000\000\000\000\000\000\008\150\0212\000\000\000\000\000\000\001R\000\000\001V\000\000\000\206\t\154\008\158\000\000\000\157\000\000\006\234\001^\008\162\006\238\008\166\001j\000\000\006\242\006\246\008\170\006\250\000\000\000\000\000\000\000\000\008\174\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\007\002\008\178\008\182\007\006\008\186\011\014\000\162\000\000\008\206\000\000\000\000\000\157\000\157\000\000\008\218\007\014\000\000\000\000\000\000\000\000\011\161\000\157\000\000\000\000\011\022\000\000\011&\008\250\000\000\000\000\000\000\008\254\t:\000\000\t\166\000\000\007\018\t>\000\000\000\000\000\000\007\022\000\000\000\000\000\000\000\000\000\157\000\000\tF\000\000\007\026\000\000\011\161\011\161\000\000\000\000\001\154\011\161\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\000\000\000\150\006\150\000\154\000\174\000\178\000\182\006\154\000\000\000\000\000\157\000\000\000\000\006\158\000\000\000\000\000\000\011\030\000\000\000\186\000\000\001\030\006\174\006\202\000\000\000\000\006\206\000\000\000\000\000\157\000\190\000\000\000\000\008:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\157\000\157\000\000\000\000\000\000\000\000\000\000\008\146\006\214\000\000\000\000\004\149\008\150\0146\000\000\000\000\000\000\001R\000\000\001V\000\000\000\206\t\154\008\158\000\000\000\000\000\000\006\234\001^\008\162\006\238\008\166\001j\004\149\006\242\006\246\008\170\006\250\000\000\000\000\000\000\000\000\008\174\004\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\007\002\008\178\008\182\007\006\008\186\000\000\000\162\000\000\008\206\000\000\000\000\000\000\000\000\000\000\008\218\007\014\000\000\000\000\t\245\000\000\004\149\004\149\000\000\000\000\000\000\000\000\000\000\008\250\000\000\000\000\000\000\008\254\t:\000\000\t\166\000\000\007\018\t>\000\000\000\000\000\000\007\022\t\245\000\000\000\000\000\000\000\000\000\000\tF\000\000\007\026\000\000\0002\006&\000F\000b\001\154\000f\006\142\000j\000\134\006\146\000\138\004\149\000\146\000\000\000\150\006\150\000\154\000\174\000\178\000\182\006\154\000\000\000\000\000\000\000\000\004\149\000\000\000\000\000\000\000\000\000\000\000\000\000\186\000\000\001\030\000\000\006\202\000\000\017r\006\206\000\000\000\000\000\000\000\190\000\000\t\245\014\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\017v\000\000\000\000\000\000\014\198\006\214\000\000\000\000\000\000\000\000\017z\000\000\000\000\000\000\001R\000\000\001V\000\000\000\206\000\149\000\000\000\000\000\000\000\000\006\234\001^\000\000\006\238\001f\001j\000\000\006\242\006\246\008\170\006\250\019\014\000\000\000\149\n\001\000\000\017\134\000\000\000\000\000\000\000\000\000\000\003)\000\000\000\000\006\254\007\002\000\000\000\149\007\006\000\000\000\000\000\162\000\000\000\149\000\149\000\000\003)\n\001\000\000\000\000\007\014\000\000\000\000\000\149\000\000\000\000\011\022\000\000\000\149\000\000\000\000\000\000\003)\000\000\000\000\000\000\000\000\000\000\000\162\t\166\000\000\007\018\014\202\000\000\000\000\000\000\007\022\000\000\000\149\000\000\000\000\000\000\017\138\014\210\000\000\007\026\000\000\0002\0006\000F\000b\001\154\000f\000\000\000j\000\134\000\000\000\138\000\000\000\146\000\000\000\150\n\001\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\149\000\000\000\000\000\000\000\000\000\000\000\186\011\030\001\030\000\000\001\"\003)\000\000\001&\000\000\003)\003)\000\190\000\000\000\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\001*\000\000\000\000\001.\000\000\000\149\000\149\000\000\000\000\001F\001B\000\000\001J\003)\000\000\000\000\017r\000\000\000\000\001R\000\000\001V\003)\000\206\0236\000\000\000\000\000\000\000\000\001Z\001^\000\000\001b\001f\001j\001\190\001n\001r\017v\001v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017z\000\000\000\000\000\000\000\000\000\000\006\158\001z\000\000\000\000\001~\000\000\000\000\000\162\001\030\006\174\006\202\000\000\007]\006\206\000\000\000\000\001\134\t\146\000\000\0182\008:\000\000\000\000\000\000\017\134\001\138\008J\007]\000\000\001*\000\000\000\000\000\000\000\000\000\000\008~\000\000\001\142\008\202\006\214\000\000\000\000\001\146\008\150\000\000\003q\n\001\000\000\001R\000\000\001V\001\150\000\000\000\000\008\158\000\000\000\000\001\154\006\234\001^\008\162\006\238\008\166\001j\000\000\006\242\006\246\000\162\006\250\000\000\000\000\000\000\000\000\008\174\000\000\000\000\007]\000\000\000\000\000\000\000\000\017\138\000\000\006\254\007\002\008\178\008\182\007\006\008\186\000\000\000\162\000\000\008\206\000\000\000\000\000\000\000\000\000\000\008\218\007\014\000\000\n\001\t\158\000\000\006\158\000\000\000\000\000\000\000\000\000\000\000\000\008\250\001\030\006\174\006\202\008\254\t:\006\206\000\000\000\000\007\018\t>\000\000\007]\008:\007\022\000\000\000\000\000\000\000\000\000\000\000\000\tF\001*\007\026\007]\000\000\000\000\000\000\000\000\001\154\000\000\006\210\006\214\000\000\000\000\000\000\008\150\000\000\000\000\000\000\000\000\001R\000\000\001V\000\000\000\000\000\000\008\158\000\000\000\000\017r\006\234\001^\008\162\006\238\008\166\001j\000\000\006\242\006\246\000\000\006\250\000\000\000\000\000\000\000\000\008\174\000\000\000\000\000\000\000\000\000\000\017v\000\000\000\000\000\000\006\254\007\002\008\178\008\182\007\006\008\186\017z\000\162\000\000\008\206\000\000\000\000\000\000\000\000\000\000\008\218\007\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\185\000\000\008\250\011\185\000\000\000\000\008\254\t:\n\013\000\000\017\134\007\018\t>\000\000\000\000\000\000\007\022\000\000\011\185\000\000\000\000\000\000\011\185\tF\000\000\007\026\001\178\011\185\000\000\000\000\000\000\001\154\n\013\011\185\000\000\000\000\011\185\011\185\000\000\011\185\011\185\000\000\000\000\001\186\000\000\011\185\002\214\000\000\000\000\011\185\000\000\000\000\011\185\000\162\011\185\011\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\138\000\000\000\000\000\000\000\000\000\000\000\000\011\185\000\000\011\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\185\n\013\000\000\000\000\000\000\002\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\185\011\185\011\185\000\000\011\185\011\185\002\230\000\000\011\185\000\000\000\000\000\000\004\013\000\000\000\000\004\013\002\238\000\000\000\000\000\000\011\185\000\000\000\000\011\185\011\185\011\185\011\185\000\000\000\000\000\000\004\013\011\185\011\185\011\185\004\013\011\185\011\185\011\185\004\013\004\013\000\000\000\000\000\000\000\000\000\000\004\013\000\000\000\000\004\013\004\013\000\000\004\013\004\013\000\000\000\000\004\013\000\000\004\013\004\013\000\000\000\000\004\013\000\000\000\000\004\013\000\000\004\013\004\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\013\000\000\004\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\013\000\000\000\000\000\000\000\000\004\013\000\000\000\000\000\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\013\004\013\004\013\000\000\004\013\004\169\004\013\000\000\004\013\000\000\000\000\000\000\004\017\000\000\000\000\004\017\004\013\000\000\000\000\000\000\004\013\000\000\000\000\004\013\000\000\004\013\000\000\000\000\000\000\000\000\004\017\004\013\004\013\004\013\004\017\004\013\004\013\004\013\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\000\000\004\017\004\017\000\000\004\017\004\017\000\000\000\000\004\017\000\000\004\017\004\017\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\004\017\000\000\002\186\000F\000b\000\000\000f\000\000\000j\000\134\000\000\000\138\000\000\000\146\000\000\000\150\000\000\000\154\000\174\004\017\000\182\004\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\000\186\000\000\000\000\004\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\000\000\004\017\004\173\004\017\000\000\004\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\000\206\000\000\000\000\000\000\000\000\004\017\004\017\004\017\000\000\004\017\004\017\004\017\001=\001=\001=\001=\000\000\001=\000\000\001=\001=\000\000\001=\000\000\001=\000\000\001=\000\000\001=\001=\001=\001=\000\000\000\000\000\000\000\000\017F\000\000\000\162\000\000\000\000\000\000\000\000\001=\001=\001=\000\000\000\000\000\000\000\000\001=\000\000\000\000\000\000\000\000\001=\000\000\000\000\000\000\001=\000\000\000\000\000\000\001=\000\000\000\000\017J\000\000\000\000\001=\000\000\006~\006J\000b\000\000\000f\001=\006N\000\134\000\000\000\138\001=\000\146\000\000\000\150\000\000\000\154\000\174\000\000\000\182\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\000\000\012\013\000\000\000\000\012\013\000\000\001=\000\000\000\000\001=\000\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\013\000\000\000\000\000\000\012\013\001=\000\000\001=\007.\012\013\001=\000\000\001=\000\000\000\000\012\013\000\000\001=\012\013\012\013\001=\012\013\012\013\000\000\000\000\0076\000\206\012\013\007B\000\000\000\000\012\013\000\000\000\000\012\013\001=\012\013\012\013\001=\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017N\000\000\000\000\000\000\000\000\000\000\000\000\012\013\000\000\012\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\013\000\000\000\000\000\000\000\000\007N\0041\000\000\000J\0041\000N\0041\000V\0041\000\000\0041\000\000\000\000\000\000\000Z\0041\0041\012\013\012\013\012\013\000\000\012\013\000\000\007R\000\000\012\013\000\000\000\000\0041\000\000\000\000\000\000\000\000\007Z\000\000\000\000\000\000\000\000\0041\0041\012\013\000\000\012\013\000\000\0041\000\000\000\000\000\000\012\013\012\013\012\013\000\000\012\013\012\013\012\013\000\000\000\000\000\000\000\000\000\000\0041\000\000\000\000\0041\000\000\000\000\000\000\000\000\0041\0041\000\000\000\000\0041\000^\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\000\000\0041\0041\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0045\0041\000n\0045\000r\0045\000z\0045\000\000\0045\000\000\0041\000\000\000~\0045\0045\000\000\000\000\000\000\0041\000\000\000\000\000\000\000\000\0041\000\000\000\000\0045\000\000\000\000\000\000\000\000\000\000\0041\000\000\000\000\000\000\0045\0045\000\000\000\000\000\000\000\000\0045\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\000\000\0041\0041\000\000\0045\0041\000\000\0045\000\000\000\000\0041\0041\0045\0045\000\000\0041\0045\000\130\000\000\000\000\000\000\000\000\000\000\000\000\0045\000\000\000\000\0045\0045\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0045\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0045\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0045\0002\t\182\000F\000b\0045\000f\000\000\000j\000\134\000\000\000\138\000\000\000\146\0045\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\0045\000\000\000\000\0045\0045\000\000\000\000\0045\000\000\000\000\000\190\000\000\0045\0045\000\000\000\000\000\000\0045\t\241\t\241\t\241\t\241\000\000\t\241\000\000\t\241\t\241\000\000\t\241\000\000\t\241\000\202\t\241\000\000\t\241\t\241\t\241\t\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\000\t\241\t\241\t\241\001\137\000\000\000\000\001\137\t\241\000\000\000\000\000\000\000\000\t\241\000\000\000\000\000\000\017^\000\000\001\137\000\000\017f\001\137\000\000\000\000\000\000\000\000\t\241\000\000\000\000\000\000\001\137\000\000\000\000\t\241\000\162\000\000\001\137\000\000\t\241\000\000\001\137\000\000\001\137\001\137\000\000\001\137\000\000\t\241\000\000\000\000\000\000\001\137\001\137\000\000\001\137\001\137\000\000\001\137\001\137\000\000\000\000\000\000\000\000\001\137\000\000\000\000\t\241\001\137\000\000\t\241\001\137\000\000\001\137\001\137\000\000\000\000\000\000\001\137\000\000\001\137\000\000\000\000\000\000\000\000\t\241\000\000\t\241\000\000\000\000\t\241\000\000\t\241\001\137\000\000\001\137\000\000\t\241\000\000\000\000\t\241\000\000\000\000\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\000\000\001\137\001\137\001\198\t\241\001\137\001\137\017\222\t\241\001\137\000\000\000\000\000\000\000\000\000\000\000\000\001\137\001\137\001\206\000\000\001\137\001\137\000\000\000\000\001\137\001\137\000\000\001\137\000\000\000\000\000\000\000\000\002\134\001\137\001\137\000\000\001\137\001\137\001\137\001\137\001\137\001\137\001\137\000\000\000\000\000\000\000\000\002z\001\137\001\137\000\000\001\137\001\137\001\137\t\225\t\225\t\225\t\225\000\000\t\225\000\000\t\225\t\225\000\000\t\225\000\000\t\225\000\000\t\225\000\000\t\225\t\225\t\225\t\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\225\t\225\t\225\000\000\000\000\000\000\000\000\t\225\000\000\000\000\000\000\000\000\t\225\000\000\000\000\000\000\000\000\003\202\000\000\000\000\000\000\000\000\003M\000\000\003M\000\000\t\225\003M\000\000\000\000\000\000\000\000\000\000\t\225\000\000\000\000\000\000\000\000\t\225\000\000\000\000\000\000\000\000\003M\000\000\000\000\003M\t\225\000\000\000\000\000\000\000\000\003M\003M\000\000\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\000\000\t\225\000\000\000\000\t\225\000\000\000\000\003M\003M\000\000\003M\003M\003M\000\000\003M\003M\000\000\003M\000\000\t\225\000\000\t\225\000\000\000\000\t\225\000\000\t\225\000\000\000\000\000\000\000\000\t\225\000\000\003M\t\225\000\000\003M\000\000\000\000\003M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003M\t\225\000\000\000\000\017b\t\225\t\229\t\229\t\229\t\229\000\000\t\229\000\000\t\229\t\229\000\000\t\229\000\000\t\229\000\000\t\229\003M\t\229\t\229\t\229\t\229\003M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003M\000\000\t\229\t\229\t\229\000\000\003M\000\000\000\000\t\229\000\000\000\000\000\000\000\000\t\229\000\000\000\000\000\000\017\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\229\000\000\000\000\000\000\000\000\000\000\000\000\t\229\000\000\000\000\000\000\000\000\t\229\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\t\229\004i\000R\004i\000\000\004i\000\000\004i\000\000\000\000\000\000\000\000\004i\004i\000\000\000\000\000\000\000\000\000\000\t\229\000\000\000\000\t\229\000\000\000\000\004i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004i\004i\t\229\000\000\t\229\000\000\004i\t\229\000\000\t\229\000\000\000\000\000\000\000\000\t\229\000\000\000\000\t\229\000\000\000\000\000\000\000\000\004i\000\000\000\000\004i\000\000\000\000\000\000\000\000\004i\004i\t\229\000\000\004i\004i\t\229\000\000\005q\000\000\000\000\000\000\004i\000\000\000\000\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004m\004i\000\000\004m\000v\004m\005q\004m\000\000\004m\000\000\004i\000\000\000\000\004m\004m\005q\005q\000\000\004i\000\000\000\000\000\000\000\000\004i\000\000\000\000\004m\000\000\000\000\000\000\000\000\000\000\004i\000\000\000\000\000\000\004m\004m\000\000\000\000\005q\000\000\004m\000\000\000\000\005q\002\150\000\000\000\000\005q\000\000\000\000\004i\000\000\000\000\004i\004i\000\000\004m\004i\000\000\004m\000\000\000\000\004i\004i\004m\004m\000\000\004i\004m\004m\000\000\000\000\000\000\000\000\000\000\000\000\004m\000\000\005q\004m\004m\000\000\000\000\000\000\000\000\000\000\005q\000\000\004q\004m\000\000\004q\000\142\004q\000\000\004q\000\000\004q\000\000\004m\005q\000\000\004q\004q\000\000\000\000\000\000\004m\000\000\000\000\000\000\000\000\004m\000\000\000\000\004q\000\000\000\000\000\000\000\000\005q\004m\000\000\005q\005q\004q\004q\005q\000\000\000\000\000\000\004q\000\000\000\000\000\000\000\000\000\000\005q\000\000\000\000\000\000\004m\000\000\000\000\004m\004m\000\000\004q\004m\000\000\004q\000\000\000\000\004m\004m\004q\004q\000\000\004m\004q\004q\000\000\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\004q\004q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\165\004q\000\000\004\165\000\000\004\165\000\000\004\165\000\000\004\165\000\000\004q\000\000\000\000\004\165\004\165\000\000\000\000\000\000\004q\000\000\000\000\000\000\000\000\004q\000\000\000\000\004\165\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\004\165\004\165\000\000\000\000\000\000\000\000\004\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\004q\002B\000\000\004q\004q\000\000\004\165\004q\000\000\004\165\000\210\000\000\004q\004q\004\165\004\165\001\250\004q\004\165\004\165\002\001\000\000\000\000\000\000\000\000\002\001\004\165\000\000\000\000\004\165\004\165\002\002\000\000\000\000\002\001\002\001\000\000\002b\002j\004\165\000\000\000\000\000\000\002\001\000\000\000\000\000\000\002\"\000\000\004\165\002\n\000\000\002\026\002\001\000\000\000\000\000\000\004\165\000\000\000\000\000\000\000\000\004\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\165\002*\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\004\165\000\000\000\000\004\165\004\165\000\000\000\000\004\165\000\000\000\000\000\000\000\000\004\165\004\165\000\000\002\001\0022\004\165\000\000\002\001\002\001\000\000\000\000\002\018\000\000\000\000\000\000\000}\000\000\000\000\000}\000\000\000\000\000\000\000\000\002\001\000\000\000\000\002\001\002\001\002\001\002\001\000\000\000\000\000\000\001\250\000\000\002\001\002\001\000}\002r\002:\002\001\000\000\000}\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000}\000}\000\000\000}\000}\000\000\000\000\000\000\000e\000}\000\000\000e\000\000\002\"\000\000\000\000\002\n\000\000\002\026\000}\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000\000\000\000\000e\000\000\000\000\000\000\000\000\000e\000\000\000\000\002*\000\000\000}\002\002\000\000\000\000\000e\000e\000\000\000e\000e\000\000\000}\000\000\000\000\000e\000\000\000\000\000\000\000e\000\000\000\000\002\n\000\000\002\026\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000}\0022\000\000\000\000\000}\000}\000\000\000\000\002\018\000\000\000e\000\000\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000}\000\000\000e\000}\000}\000}\000}\000\000\000\000\000\000\000\000\000\000\000}\000}\000\000\000}\002:\000}\000\000\000\000\000\000\000\000\000\000\000\000\000e\000e\000\000\000\000\000e\000e\000\000\000\000\002\018\000\000\000\000\000\000\000]\000\000\000\000\000]\000\000\000\000\000\000\000\000\000e\000\000\000\000\000e\000e\000e\000e\000\000\000\000\000\000\000]\000\000\000e\000e\000]\000e\000e\000e\000\000\000]\000\000\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000]\000\000\000]\000]\000\000\000\000\000\000\000a\000]\000\000\000a\000\000\000]\000\000\000\000\002\n\000\000\000]\000]\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\000\000\000\000\000\000a\000\000\000\000\000\000\000\000\000a\000\000\000\000\000]\000\000\000]\000a\000\000\000\000\000a\000a\000\000\000a\000a\000\000\000]\000\000\000\000\000a\000\000\000\000\000\000\000a\000\000\000\000\002\n\000\000\000a\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000]\000\000\000\000\000]\000]\000\000\000\000\002\018\000\000\000a\000\000\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000a\000]\000]\000]\000]\000\000\000\000\000\000\000\000\000\000\000]\000]\000\000\000]\000]\000]\000\000\000\000\000\000\000\000\000\000\000\000\000a\000a\000\000\000\000\000a\000a\000\000\000\000\002\018\000\000\000\000\000\000\000q\000\000\000\000\000q\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000a\000a\000\000\000\000\000\000\001\250\000\000\000a\000a\000q\000a\000a\000a\000\000\000q\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000q\000q\000\000\000q\000q\000\000\000\000\000\000\000i\000q\000\000\000i\000\000\000q\000\000\000\000\002\n\000\000\002\026\000q\000\000\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\000\000\000i\000\000\000\000\000\000\000\000\000i\000\000\000\000\002*\000\000\000q\002\002\000\000\000\000\000i\000i\000\000\000i\000i\000\000\000q\000\000\000\000\000i\000\000\000\000\000\000\000i\000\000\000\000\002\n\000\000\002\026\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000q\000q\000\000\000\000\000q\000q\000\000\000\000\002\018\000\000\000i\000\000\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000q\000\000\000i\000q\000q\000q\000q\000\000\000\000\000\000\000\000\000\000\000q\000q\000\000\000q\000q\000q\000\000\000\000\000\000\000\000\000\000\000\000\000i\000i\000\000\000\000\000i\000i\000\000\000\000\002\018\000\000\000\000\000\000\000m\000\000\000\000\000m\000\000\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000i\000i\000\000\000\000\000\000\001\250\000\000\000i\000i\000m\000i\000i\000i\000\000\000m\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000m\000m\000\000\000m\000m\000\000\000\000\000\000\000u\000m\000\000\000u\000\000\000m\000\000\000\000\002\n\000\000\002\026\000m\000\000\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\000\000\000u\000\000\000\000\000\000\000\000\000u\000\000\000\000\002*\000\000\000m\002\002\000\000\000\000\000u\000u\000\000\000u\000u\000\000\000m\000\000\000\000\000u\000\000\000\000\000\000\002\"\000\000\000\000\002\n\000\000\002\026\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000m\000\000\000\000\000m\000m\000\000\000\000\002\018\000\000\002*\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000\000\000u\000m\000m\000m\000m\000\000\000\000\000\000\000\000\000\000\000m\000m\000\000\000m\000m\000m\000\000\000\000\000\000\000\000\000\000\000\000\000u\0022\000\000\000\000\000u\000u\000\000\000\000\002\018\000\000\000\000\000\000\001\238\000\000\000\000\000\133\000\000\000\000\000\000\000\000\000u\000\000\000\000\000u\000u\000u\000u\000\000\000\000\000\000\001\250\000\000\000u\000u\000\133\000u\000u\000u\000\000\000\133\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000\133\000\133\000\000\000\133\002j\000\000\000\000\000\000\001\238\000\133\000\000\000y\000\000\002\"\000\000\000\000\002\n\000\000\002\026\000\133\000\000\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\000\000y\000\000\000\000\002*\000\000\000\133\002\002\000\000\000\000\000y\000y\000\000\000y\000y\000\000\000\133\000\000\000\000\000y\000\000\000\000\000\000\002\"\000\000\000\000\002\n\000\000\002\026\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\0022\000\000\000\000\000\133\000\133\000\000\000\000\002\018\000\000\002*\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\000\000\000y\000\133\000\133\000\133\000\133\000\000\000\000\000\000\000\000\000\000\000\133\000\133\000\000\002r\002:\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000y\0022\000\000\000\000\000y\000y\000\000\000\000\002\018\000\000\000\000\000\000\001\238\000\000\000\000\000\129\000\000\000\000\000\000\000\000\000y\000\000\000\000\000y\000y\000y\000y\000\000\000\000\000\000\001\250\000\000\000y\000y\000\129\000y\002:\000y\000\000\000\129\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000\129\000\129\000\000\000\129\002j\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\002\"\000\000\000\000\002\n\000\000\002\026\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002*\000\000\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\004\133\000\000\000\000\004\133\000\000\004\133\000\000\004\133\000\000\004\133\000\000\000\000\000\000\000\000\004\133\004\133\000\000\000\000\000\000\000\000\000\000\000\129\0022\000\000\000\000\000\129\000\129\004\133\000\000\002\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\004\133\000\000\000\000\000\129\000\000\004\133\000\129\000\129\000\129\000\129\000\000\000\000\000\000\000\000\000\000\000\129\000\129\000\000\000\129\002:\000\129\004\133\000\000\000\000\004\133\005\226\000\000\000\000\000\000\004\133\004\133\000\000\000\000\004\133\004\133\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\004\133\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\0002\0006\000F\000b\004\133\000f\000\000\000j\000\134\000\000\000\138\000\000\000\146\004\133\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\004\133\000\000\000\000\004\133\004\133\000\000\000\000\004\133\000\000\000\000\000\190\000\000\004\133\004\133\000\000\000\000\000\000\004\133\0002\0006\000F\000b\000\000\000f\000\000\000j\000\134\000\000\000\138\000\000\000\146\000\202\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\000\017\234\000\186\018\006\0002\000\214\000F\000b\018\018\000f\000\000\000j\000\134\000\190\000\138\000\000\000\146\000\000\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\018*\000\000\000\000\000\000\000\000\000\000\000\000\000\202\000\000\000\186\000\000\000\000\018V\000\000\000\000\000\000\000\000\000\000\000\000\005q\000\190\000\206\005q\000\000\005q\000\000\005q\000\000\005q\000\000\000\000\000\000\000\000\005q\005q\000\000\000\000\000\000\000\000\000\000\018v\000\202\000\000\018\198\000\000\000\000\005q\000\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\206\005q\005q\018\222\000\000\008\017\000\000\005q\018\234\000\000\018\246\000\000\000\000\000\000\000\000\019\006\000\000\000\000\019\182\000\000\000\000\000\000\000\000\005q\000\153\000\000\005q\000\000\000\000\000\000\000\000\005q\002\150\019\194\000\000\005q\005q\019\218\000\162\000\000\000\000\000\000\000\153\005q\000\000\000\000\005q\005q\000\000\000\000\001\161\000\000\000\000\001\161\000\000\000\000\005q\000\153\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\000\005q\000\000\001\161\000\000\000\000\000\000\001\161\000\153\005q\000\000\011\022\001\161\000\153\005q\000\000\000\000\000\000\001\161\000\000\000\000\001\161\001\161\005q\001\161\001\161\000\000\000\000\000\000\000\000\001\161\000\000\000\000\000\153\001\161\000\000\000\000\001\161\000\000\001\161\001\161\000\000\000\000\005q\000\000\000\000\005q\005q\000\000\000\000\005q\000\000\000\000\000\000\000\000\005q\005q\000\000\000\000\001\161\005q\001\161\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\000\000\000\001\161\000\000\000\000\000\000\011\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\001\161\001\161\007~\000\000\001\161\000\000\000\000\000\000\001\161\000\153\000\153\000\000\n\198\000\000\000\000\000\000\000\000\003U\000\000\003U\000\000\000\000\003U\001\161\000\000\001\161\000\000\000\000\000\000\000\000\000\000\007\134\001\161\001\161\000\000\001\161\001\161\001\161\003U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003U\003U\000\000\000\000\003U\003U\000\000\000\000\000\000\000\000\003U\000\000\003U\000\000\011\241\000\000\000\000\011\241\000\000\000\000\003U\003U\000\000\003U\003U\003U\000\000\003U\003U\000\000\003U\000\000\011\241\000\000\000\000\000\000\011\241\000\000\000\000\000\000\003V\000\000\000\000\000\000\000\000\003U\003U\011\241\000\000\003U\000\000\011\241\003U\011\241\011\241\000\000\000\000\003^\000\000\000\000\003j\003U\000\000\011\241\000\000\000\000\011\241\000\000\011\241\000\000\003U\000\000\003U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003U\000\000\000\000\000\000\000\000\003U\011\241\000\000\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\000\000\000\000\011\241\000\000\003U\000\000\000\000\003v\000\000\000\000\000\000\000\000\001\030\000\000\t\226\000\000\000\000\t\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\241\011\241\000\000\011\241\000\000\003z\000\000\011\241\001*\000\000\000\000\000\000\000\000\000\000\000\000\003\130\000\000\t\234\n\146\011\241\000\000\n\166\n\190\000\000\011\241\011\241\000\000\001R\000\000\001V\011\241\000\000\000\000\000\000\011\241\011\241\011\241\n\n\001^\000\000\n\014\008\166\001j\000\000\n\018\n\022\000\000\n\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\n\030\000\000\000\000\n\"\000\000\000\000\000\162\000\000\000\000\001\030\000\000\t\226\000\000\000\000\t\230\n*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\194\000\000\n\218\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\n.\000\000\000\000\t\234\n\146\n2\000\000\n\166\n\190\000\000\000\000\011\186\000\000\001R\n6\001V\000\000\000\000\000\000\000\000\001\154\000\000\000\000\n\n\001^\000\000\n\014\008\166\001j\000\000\n\018\n\022\000\000\n\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\n\030\000\000\000\000\n\"\000\000\000\000\000\162\000\000\000\000\001\030\000\000\t\226\000\000\000\000\t\230\n*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\194\000\000\n\218\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\n.\000\000\000\000\t\234\n\146\n2\000\000\n\166\n\190\000\000\000\000\011f\000\000\001R\n6\001V\000\000\000\000\000\000\000\000\001\154\000\000\000\000\n\n\001^\000\000\n\014\008\166\001j\000\000\n\018\n\022\000\000\n\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\n\030\000\000\000\000\n\"\000\000\000\000\000\162\000\000\000\000\001\030\000\000\t\226\000\000\000\000\t\230\n*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\194\000\000\n\218\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\n.\000\000\000\000\t\234\n\146\n2\000\000\n\166\n\190\000\000\000\000\005\005\000\000\001R\n6\001V\000\000\000\000\000\000\000\000\001\154\000\000\000\000\n\n\001^\000\000\n\014\008\166\001j\000\000\n\018\n\022\007\178\n\026\000\000\008\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\n\030\007\186\000\000\n\"\000\000\002\017\000\162\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\000\n*\007\194\000\000\000\000\002\017\002\017\000\000\008\018\008\026\n\194\000\000\n\218\001%\002\017\000\000\001%\000\000\007\226\000\000\000\000\007\202\n.\007\218\002\017\000\000\000\000\n2\000\000\000\000\000\000\007\186\000\000\001\189\000\000\001%\n6\000\000\000\000\000\000\001%\000\000\001\154\007\234\000\000\002\017\007\194\000\000\000\000\001%\001%\000\000\001%\001%\000\000\002\017\000\000\000\000\001%\000\000\000\000\000\000\007\226\000\000\000\000\007\202\000\000\007\218\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\017\007\242\000\000\000\000\002\017\000\000\000\000\000\000\007\210\000\000\007\234\000\000\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\002\017\000\000\002\017\000\000\000\000\000\000\000\000\000\000\000\000\002\017\002\017\000\000\008\"\007\250\002\017\000\000\000\000\000\000\000\000\000\000\000\000\001%\007\242\000\000\000\000\001%\000\000\000\000\000\000\007\210\000\000\000\000\000\000\001\013\000\000\000\000\001\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\001%\000\000\000\000\000\000\000\000\001\013\000\000\001%\001%\001\013\001%\007\250\001%\000\000\001\013\000\000\000\000\000\000\000\000\000\000\007\194\000\000\000\000\001\013\001\013\000\000\001\013\001\013\000\000\000\000\000\000\001\005\001\013\000\000\001\005\000\000\001\013\000\000\000\000\007\202\000\000\007\218\001\013\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001\013\000\000\001\013\001\005\000\000\000\000\001\005\001\005\000\000\001\005\001\005\000\000\001\013\000\000\000\000\001\005\000\000\000\000\000\000\001\005\000\000\000\000\007\202\000\000\001\005\001\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\013\001\013\000\000\000\000\001\013\000\000\000\000\000\000\007\210\000\000\001\005\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\005\001\013\000\000\001\013\000\000\000\000\000\000\000\000\000\000\000\000\001\013\001\013\000\000\001\013\001\013\001\013\000\000\000\000\000\000\000\000\000\000\000\000\001\005\001\005\000\000\000\000\001\005\000\000\000\000\000\000\007\210\000\000\000\000\000\000\001\t\000\000\000\000\001\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\001\005\000\000\000\000\000\000\000\000\001\t\000\000\001\005\001\005\001\t\001\005\001\005\001\005\000\000\001\t\000\000\000\000\000\000\000\000\000\000\001\t\000\000\000\000\001\t\001\t\000\000\001\t\001\t\000\000\000\000\000\000\001\025\001\t\000\000\001\025\000\000\001\t\000\000\000\000\007\202\000\000\001\t\001\t\000\000\000\000\000\000\000\000\000\000\000\000\007\186\000\000\000\000\000\000\001\025\000\000\000\000\000\000\000\000\001\025\000\000\000\000\001\t\000\000\001\t\007\194\000\000\000\000\001\025\001\025\000\000\001\025\001\025\000\000\001\t\000\000\000\000\001\025\000\000\000\000\000\000\001\025\000\000\000\000\007\202\000\000\007\218\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\001\t\000\000\000\000\001\t\000\000\000\000\000\000\007\210\000\000\007\234\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\t\000\000\001\t\000\000\000\000\000\000\000\000\000\000\000\000\001\t\001\t\000\000\001\t\001\t\001\t\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\000\000\001\025\000\000\000\000\000\000\007\210\000\000\000\000\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\001\025\000\000\000\000\000\000\000\000\007\186\000\000\001\025\001\025\001\017\001\025\001\025\001\025\000\000\001\017\000\000\000\000\000\000\000\000\000\000\007\194\000\000\000\000\001\017\001\017\000\000\001\017\001\017\000\000\000\000\000\000\001\021\001\017\000\000\001\021\000\000\001\017\000\000\000\000\007\202\000\000\007\218\001\017\000\000\000\000\000\000\000\000\000\000\000\000\007\186\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\017\000\000\001\017\007\194\000\000\000\000\001\021\001\021\000\000\001\021\001\021\000\000\001\017\000\000\000\000\001\021\000\000\000\000\000\000\001\021\000\000\000\000\007\202\000\000\007\218\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001\017\000\000\000\000\001\017\000\000\000\000\000\000\007\210\000\000\007\234\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\001\017\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\001\017\001\017\000\000\001\017\001\017\001\017\000\000\000\000\000\000\000\000\000\000\000\000\001\021\001\021\000\000\000\000\001\021\000\000\000\000\000\000\007\210\000\000\000\000\000\000\001\029\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\001\021\000\000\000\000\000\000\000\000\007\186\000\000\001\021\001\021\001\029\001\021\001\021\001\021\000\000\001\029\000\000\000\000\000\000\000\000\000\000\007\194\000\000\000\000\001\029\001\029\000\000\001\029\001\029\000\000\000\000\000\000\007\178\001\029\000\000\001-\000\000\007\226\000\000\000\000\007\202\000\000\007\218\001\029\000\000\000\000\000\000\000\000\000\000\000\000\007\186\000\000\000\000\000\000\001-\000\000\000\000\000\000\000\000\001-\000\000\000\000\007\234\000\000\001\029\007\194\000\000\000\000\001-\001-\000\000\001-\008\026\000\000\001\029\000\000\000\000\001-\000\000\000\000\000\000\007\226\000\000\000\000\007\202\000\000\007\218\001-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\007\242\000\000\000\000\001\029\000\000\000\000\000\000\007\210\000\000\007\234\000\000\001-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001-\001\029\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\029\000\000\001\029\001\029\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001-\007\242\000\000\000\000\001-\000\000\000\000\000\000\007\210\000\000\000\000\000\000\007\178\000\000\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001-\000\000\001-\000\000\000\000\000\000\000\000\007\186\000\000\001-\001-\001!\008\"\007\250\001-\000\000\001!\000\000\000\000\000\000\000\000\000\000\007\194\000\000\000\000\001!\001!\000\000\001!\001!\000\000\000\000\000\000\007\178\001!\000\000\001)\000\000\007\226\000\000\000\000\007\202\000\000\007\218\001!\000\000\000\000\000\000\000\000\000\000\000\000\007\186\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\001)\000\000\000\000\007\234\000\000\001!\007\194\000\000\000\000\001)\001)\000\000\001)\008\026\000\000\001!\000\000\000\000\001)\000\000\000\000\000\000\007\226\000\000\000\000\007\202\000\000\007\218\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001!\007\242\000\000\000\000\001!\000\000\000\000\000\000\007\210\000\000\007\234\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001)\001!\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\000\001!\001!\000\000\001!\007\250\001!\000\000\000\000\000\000\000\000\000\000\000\000\001)\007\242\000\000\000\000\001)\000\000\000\000\000\000\007\210\001\030\000\000\t\226\000\000\000\000\t\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\001)\000\000\000\000\000\000\000\000\001*\000\000\001)\001)\000\000\001)\007\250\001)\000\000\t\234\n\146\000\000\000\000\n\166\n\190\000\000\000\000\000\000\000\000\001R\000\000\001V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\n\001^\000\000\n\014\008\166\001j\000\000\n\018\n\022\000\000\n\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\n\030\000\000\000\000\n\"\000\000\000\000\000\162\000\000\000\000\001\030\000\000\001\"\000\000\000\000\001&\n*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008>\000\000\n\218\000\000\000\000\000\000\001*\000\000\000\000\001.\000\000\000\000\n.\000\000\000\000\001>\001B\n2\001J\000\000\t\222\000\000\000\000\001\201\000\000\001R\n6\001V\000\000\000\000\000\000\000\000\001\154\000\000\000\000\001Z\001^\000\000\001b\001f\001j\000\000\001n\001r\000\000\001v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\000\000\000\000\001~\000\000\000\000\000\162\001\030\000\000\001\"\000\000\000\000\001&\000\000\000\000\001\134\000\000\000\000\000\000\000\000\000\000\000\000\008!\000\000\001\138\008!\000\000\000\000\001*\000\000\000\000\001.\000\000\000\000\000\000\000\000\001\142\001>\001B\000\000\001J\001\146\000\000\000\000\008!\000\000\008!\001R\000\000\001V\001\150\000\000\000\000\000\000\000\000\000\000\001\154\001Z\001^\000\000\001b\001f\001j\000\000\001n\001r\000\000\001v\000\000\000\000\000\000\000\000\001\030\000\000\001\"\000\000\000\000\001&\000\000\000\000\000\000\000\000\000\000\001z\000\000\000\000\001~\014\186\000\000\000\162\000\000\000\000\000\000\001*\000\000\000\000\001.\000\000\001\134\000\000\000\000\000\000\001>\001B\000\000\001J\000\000\001\138\000\000\000\000\000\000\000\000\001R\000\000\001V\000\000\000\000\000\000\000\000\001\142\000\000\000\000\001Z\001^\001\146\001b\001f\001j\000\000\001n\001r\000\000\001v\001\150\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\000\000\000\000\001~\000\000\000\000\000\162\001\030\000\000\001\"\000\000\000\000\001&\000\000\000\000\001\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\001*\000\000\000\000\001.\000\000\000\000\000\000\000\000\001\142\001>\004\226\000\000\001J\001\146\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\001\150\000\000\000\000\000\000\000\000\000\000\001\154\001Z\001^\000\000\001b\001f\001j\000\000\001n\001r\000\000\001v\000\000\000\000\000\000\000\000\001\030\000\000\001\"\000\000\000\000\001&\000\000\000\000\000\000\000\000\000\000\001z\000\000\000\000\001~\000\000\000\000\000\162\000\000\000\000\000\000\001*\000\000\000\000\001.\000\000\001\134\000\000\000\000\000\000\001>\001\130\000\000\001J\000\000\001\138\000\000\000\000\000\000\000\000\001R\000\000\001V\000\000\000\000\000\000\000\000\001\142\000\000\000\000\001Z\001^\001\146\001b\001f\001j\000\000\001n\001r\000\000\001v\001\150\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\000\000\000\000\001~\000\000\000\000\000\162\001\030\000\000\0012\000\000\000\000\0016\000\000\000\000\001\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\001*\000\000\000\000\001.\000\000\000\000\000\000\000\000\001\142\001:\001N\000\000\001J\001\146\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\001\150\000\000\000\000\000\000\000\000\000\000\001\154\003\022\001^\000\000\003\026\001f\001j\000\000\003\030\003\"\000\000\003&\000\000\000\000\000\000\000\000\001\030\000\000\0012\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\003*\000\000\000\000\003.\000\000\000\000\000\162\000\000\000\000\000\000\001*\000\000\000\000\001.\000\000\0036\000\000\000\000\000\000\001:\004\202\000\000\001J\000\000\000\000\000\000\000\000\000\000\000\000\001R\000\169\001V\000\000\000\000\000\000\000\000\003:\000\000\000\000\003\022\001^\003>\003\026\001f\001j\000\000\003\030\003\"\011\006\003&\003B\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\000\000\000\000\000\000\000\000\011\014\000\000\003*\000\000\000\000\003.\000\169\000\169\000\162\001\030\000\000\0012\000\000\000\000\0016\000\000\000\169\0036\000\000\011\022\000\000\011&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\000\001.\000\000\000\000\000\000\000\000\003:\001:\0032\0116\001J\003>\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\003B\000\000\000\000\000\000\000\000\000\000\001\154\003\022\001^\000\000\003\026\001f\001j\000\000\003\030\003\"\000\000\003&\000\000\000\000\000\000\000\000\000\000\000\000\000\169\000\000\000\000\000\000\000\000\000\000\000\000\011\030\000\000\003*\000\000\000\000\003.\000\000\000\000\000\162\000\000\000\000\000\000\000\169\000\000\000\000\000\000\000\000\0036\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\169\000\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003:\000\000\000\000\000\000\000\000\003>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\000\000\001\154\0002\006&\000F\000b\006>\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\000\000\000\150\006\150\000\154\000\174\000\178\000\182\006\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\000\000\000\000\000\000\000\000\000\000\000\000\0002\t\182\000F\000b\000\190\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\020\222\000\150\006\150\000\154\000\174\000\178\000\182\006\154\020\230\000\000\000\000\000\000\000\202\000\000\000\000\000\000\000\000\000\000\001\030\000\186\006\202\000\000\000\000\006\206\000\000\000\000\000\206\000\000\000\000\000\000\000\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001*\000\000\008\170\000\000\000\000\000\000\000\000\000\000\000\000\006\210\008*\000\000\000\202\000\000\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\000\000\000\000\000\000\000\162\000\206\000\000\000\000\006\234\001^\000\000\006\238\001f\001j\000\000\006\242\006\246\000\000\006\250\000\000\000\000\000\000\000\000\001\030\000\000\006\202\000\000\000\000\006\206\000\000\000\000\000\000\t\166\006\254\007\002\000\000\000\000\007\006\000\000\000\000\000\162\000\000\000\000\000\162\001*\000\000\000\000\000\000\003\173\007\014\000\000\000\000\000\000\006\210\006\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\001\030\000\000\006\202\000\000\007\018\006\206\000\000\006\234\001^\007\022\006\238\001f\001j\000\000\006\242\006\246\000\000\006\250\007\026\000\000\000\000\001*\000\000\000\000\001\154\000\000\000\000\000\000\000\000\000\000\006\210\007\n\006\254\007\002\000\000\000\000\007\006\000\000\000\000\000\162\001R\000\000\001V\000\000\000\000\000\000\000\000\000\000\007\014\000\000\006\234\001^\000\000\006\238\001f\001j\000\000\006\242\006\246\000\000\006\250\000\000\000\000\000\000\000\000\001\030\000\000\t\226\000\000\007\018\t\230\000\000\000\000\000\000\007\022\006\254\007\002\000\000\000\000\007\006\000\000\000\000\000\162\007\026\000\000\000\000\001*\000\000\000\000\001\154\000\000\007\014\000\000\000\000\000\000\t\234\t\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\001\030\000\000\t\226\000\000\007\018\t\230\000\000\n\n\001^\007\022\n\014\001f\001j\000\000\n\018\n\022\000\000\n\026\007\026\000\000\000\000\001*\000\000\000\000\001\154\000\000\000\000\000\000\000\000\000\000\t\234\n&\006\254\n\030\000\000\000\000\n\"\000\000\000\000\000\162\001R\000\000\001V\000\000\000\000\000\000\000\000\000\000\n*\000\000\n\n\001^\000\000\n\014\001f\001j\000\000\n\018\n\022\000\000\n\026\000\000\000\000\000\000\000\000\001\030\000\000\t\226\000\000\n.\t\230\000\000\000\000\000\000\n2\006\254\n\030\000\000\000\000\n\"\000\000\000\000\000\162\n6\000\000\000\000\001*\000\000\000\000\001\154\000\000\n*\000\000\000\000\000\000\t\234\n\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001R\000\000\001V\000\000\000\000\000\000\000\000\n.\000\000\000\000\n\n\001^\n2\n\014\001f\001j\000\000\n\018\n\022\000\000\n\026\n6\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\254\n\030\000\000\000\000\n\"\000\000\000\000\000\162\000\000\000\000\000\000\000\000\0002\0006\000F\000b\n*\000f\000\000\000j\000\134\007\141\000\138\017r\000\146\000\000\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\n.\000\000\000\000\000\000\000\000\n2\007\141\000\186\017v\000\000\000\000\000\000\000\000\000\000\n6\000\000\007\141\007\141\019\222\000\000\001\154\000\000\007\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202\000\000\007\141\000\000\000\000\018V\000\000\007\141\000:\017\134\000:\007\141\007\141\000\000\000\206\000\000\000\000\000\000\001\153\007\141\000\000\001\153\007\141\007\141\000\000\000\000\000\000\000\000\000\000\000\000\005q\000\000\007\141\005q\000\000\000\000\001\153\005q\000\000\005q\001\153\000\000\007\141\000\000\005q\005q\000\000\000\000\000\000\000\000\007\141\001\153\000\162\000\000\000\000\001\153\000\000\001\153\001\153\000\000\000\000\000\000\000\000\000\000\007\141\000\000\017\138\001\153\000\000\000\000\001\153\000\000\001\153\007\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\141\000\000\000\000\007\141\007\141\005q\000\000\007\141\001\153\000\000\000\000\000\000\007\141\007\141\000\218\000\000\000\000\007\141\000\000\000\000\001\153\000\000\000\000\000\000\000\000\007\141\000\000\000\000\007\141\007\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\141\000\000\000\000\000\000\000\000\001\153\003\166\000\000\001\153\000\000\000\000\000\000\001\153\000\000\000\000\000\000\000\000\000\000\007\141\000\000\000\000\000\000\000\000\005q\001\153\000\000\000\000\000\000\000\000\001\153\001\153\000\000\007\141\000\000\000\000\003\174\000\000\000\000\000\000\001\153\001\153\001\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\141\000\000\000\000\007\141\007\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\141\007\141\000\000\000\000\000\000\007\141\003]\003]\003]\003]\000\000\003]\000\000\003]\003]\000\000\003]\000\000\003]\000\000\003]\000\000\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\238\000\000\000\000\003]\000\000\0002\000\214\000F\000b\000\000\000f\000\000\000j\000\134\003]\000\138\000\000\000\146\000\000\000\150\000\000\000\154\000\174\000\178\000\182\003\254\000\000\000\000\004N\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\000\186\000\000\000\000\000\000\003]\000\000\004\006\000\000\000\000\000\000\002\t\000\190\003]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\014\000\000\000\000\000\000\002\t\000\000\004^\004f\000\000\000\000\000\237\000\202\000\000\000\237\000\000\000\000\004.\000\230\000\000\004\022\000\000\004&\000\000\000\000\000\000\000\206\000\000\000\000\004\006\003]\000\000\000\000\000\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0046\000\000\004\014\000\000\000\000\000\000\000\237\000\000\000\237\000\237\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\004.\000\000\000\000\004\022\000\162\004&\000\000\000\000\000\000\000\000\000\000\003]\000\000\000\000\000\000\000\000\000\000\004>\000\000\000\000\002\t\000\000\000\234\000\000\004\030\0046\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\237\000\000\000\000\000\000\002\t\002\t\000\000\000\000\011=\000\000\000\000\000\000\000\000\000\000\004n\004F\002\t\000\000\000\000\000\000\000\000\000\000\000\000\004>\000\000\000\000\000\237\000\000\000\213\000\000\004\030\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\237\000\000\000\000\000\000\000\213\000\237\000\237\000\000\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\237\004F\000\237\000\000\004\014\000\000\000\000\000\000\000\213\000\000\000\213\000\213\000\000\000\000\000\205\000\000\000\000\000\205\000\000\000\000\000\213\000\000\000\000\004\022\000\000\004&\000\000\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000\000\000\000\000\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\205\000\000\000\000\000\000\000\205\000\000\000\205\000\205\000\000\000\000\000\213\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000\000\004\022\000\000\000\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\000\213\000\000\000\000\000\000\004\030\000\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\205\000\000\000\000\000\000\000\213\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\213\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000\000\000\205\000\000\000\209\000\000\004\030\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000\000\000\000\000\209\000\205\000\205\000\000\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\205\000\205\000\205\000\000\000\209\000\000\000\000\000\000\000\209\000\000\000\209\000\209\000\000\000\000\000\225\000\000\000\000\000\225\000\000\000\000\000\209\000\000\000\000\004\022\000\000\000\209\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\000\004\014\000\000\000\000\000\000\000\225\000\000\000\225\000\225\000\000\000\000\000\209\000\000\000\000\000\000\000\000\000\000\000\225\000\000\000\000\004\022\000\000\004&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\000\000\000\000\209\000\000\000\000\000\000\004\030\0046\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\225\000\000\000\000\000\000\000\209\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\225\000\000\000\217\000\000\004\030\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\000\004\006\000\225\000\225\000\000\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\225\000\225\000\225\000\000\004\014\000\000\000\000\000\000\000\217\000\000\000\217\000\217\000\000\000\000\000\221\000\000\000\000\000\221\000\000\000\000\000\217\000\000\000\000\004\022\000\000\004&\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\000\000\000\000\000\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\000\004\014\000\000\000\000\000\000\000\221\000\000\000\221\000\221\000\000\000\000\000\217\000\000\000\000\000\000\000\000\000\000\000\221\000\000\000\000\004\022\000\000\004&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\217\000\000\000\000\000\000\004\030\0046\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\221\000\000\000\000\000\000\000\217\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\217\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\000\000\000\000\221\000\000\000\229\000\000\004\030\000\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\000\000\000\000\000\004\006\000\221\000\221\000\000\000\229\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\221\000\221\000\000\004\014\000\000\000\000\000\000\000\229\000\000\000\229\000\229\000\000\000\000\003\254\000\000\000\000\000\245\000\000\000\000\004.\000\000\000\000\004\022\000\000\004&\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\000\000\000\000\000\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0046\000\000\004\014\000\000\000\000\000\000\000\245\000\000\000\245\004f\000\000\000\000\000\229\000\000\000\000\000\000\000\000\000\000\004.\000\000\000\000\004\022\000\000\004&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004>\000\000\000\000\000\229\000\000\000\000\000\000\004\030\0046\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\229\000\245\000\000\000\000\000\000\000\229\000\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\229\000\229\000\229\000\000\000\000\000\000\000\000\000\000\000\000\004>\000\000\000\000\000\245\000\000\003\254\000\000\004\030\000\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\000\000\000\000\000\000\004\006\000\245\000\245\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\000\004n\004F\000\245\000\000\004\014\000\000\000\000\000\000\000\233\000\000\000\233\000\233\000\000\000\000\003\254\000\000\000\000\000\241\000\000\003\165\004.\000\000\003\165\004\022\000\000\004&\003\165\000\000\003\165\000\000\000\000\000\000\004\006\003\165\003\165\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0046\000\000\004\014\000\000\000\000\000\000\000\241\000\000\000\241\004f\000\000\000\000\000\233\000\000\000\000\000\000\000\000\002-\004.\000\000\000\000\004\022\000\000\004&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\165\000\000\004>\000\000\000\000\000\233\000\000\000\000\000\000\004\030\0046\000\000\002-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002-\000\233\000\241\002-\002-\000\000\000\233\000\233\000\000\000\000\000\000\000\000\000\000\002-\000\000\000\000\000\233\004F\000\233\000\000\000\000\000\000\000\000\000\000\000\000\004>\000\000\000\000\000\241\000\000\000\000\002-\004\030\000\000\000\000\000\000\003\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\241\002-\000\000\000\000\000\000\000\241\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\241\004F\000\241\000\000\000\000\000\000\002-\000\000\000\000\002-\002-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002-\002-\000\000\000\000\000\000\002-\0002\000\214\000F\000b\000\000\000f\000\000\000j\000\134\000\000\000\138\000\000\000\146\000\000\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\226\000F\000b\000\190\000f\006\142\000j\000\134\006\146\000\138\000\000\000\146\020\222\000\150\006\150\000\154\000\174\000\000\000\182\006\154\020\230\000\000\000\000\000\000\000\202\000\000\000\000\000\000\000\000\000\000\000\230\000\186\000\000\000\000\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\000\000\190\0002\005.\000F\000b\000\000\000f\000\000\000j\000\134\000\000\000\138\000\000\000\146\000\000\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\000\162\000\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\234\000\000\0002\005.\000F\000b\000\000\000f\000\000\000j\000\134\000\000\000\138\000\202\000\146\000\000\000\150\000\000\000\154\000\174\000\178\000\182\000\000\002)\000\000\000\000\003\173\000\206\000\000\000\000\000\000\0052\0056\000\000\000\186\000\000\0002\000\214\000F\000b\000\000\000f\000\000\000j\000\134\000\190\000\138\000\000\000\146\000\000\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202\000\000\000\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\206\000\000\000\000\005:\0052\0056\000\000\000\000\000\000\000\000\000\000\0002\005.\000F\000b\000\000\000f\000\000\000j\000\134\000\202\000\138\000\000\000\146\000\000\000\150\000\230\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\000\000\0002\005.\000F\000b\000\000\000f\000\000\000j\000\134\000\190\000\138\005B\000\146\011\213\000\150\000\000\000\154\000\174\000\178\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\162\000\000\000\000\000\202\011\213\000\186\000\000\000\000\000\000\000\000\000\000\000\000\nJ\000\000\000\000\000\000\000\190\000\206\000\000\011\213\000\000\021\170\0056\000\000\000\000\011\213\011\213\000\000\000\000\nR\000\000\000\000\n^\000\000\000\000\011\213\000\000\000\202\011\213\000\000\011\213\002!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\000\021\170\0056\000\161\000\000\000\000\011\213\000\000\0002\006B\006J\000b\000\000\000f\000\000\006N\000\134\000\000\000\138\021\174\000\146\011\006\000\150\nj\000\154\000\174\000\178\000\182\000\000\000\165\000\000\000\000\000\000\000\000\000\000\000\000\011\014\000\000\000\000\000\000\000\186\011\213\000\161\000\161\000\000\000\000\nn\011\006\011\213\000\000\000\000\000\190\000\161\021\182\000\000\011\022\nv\011&\000\000\000\000\011\213\000\173\011\014\000\000\000\000\000\000\000\000\000\000\000\165\000\165\000\000\000\000\006R\000\000\000\000\011\213\011\213\000\161\000\165\011\006\000\000\011\022\000\000\011&\000\000\000\000\000\206\n\254\000\000\000\000\000\000\000\000\000\000\000\000\011\014\000\000\000\000\000\000\000\000\000\000\000\173\000\173\000\000\0116\n\254\011\006\000\000\000\000\000\000\000\000\011.\000\000\000\161\011\022\000\000\011&\000\000\000\000\000\000\011\030\011\014\000\000\011\006\000\000\000\000\000\000\000\189\011V\000\000\000\000\000\000\000\161\000\000\000\000\000\000\0116\011.\011\014\000\165\011\022\000\000\011&\000\000\000\177\000\177\011\030\000\161\000\161\n\254\000\000\000\000\000\000\000\000\011.\000\000\000\000\011\022\000\165\011&\000\000\000\000\0116\000\000\000\000\000\000\000\000\011\006\000\000\000\000\000\000\011>\000\000\000\165\000\165\000\000\000\000\000\000\011\030\0116\000\000\000\000\011\014\000\000\000\000\000\000\000\000\000\000\000\185\011V\000\173\000\000\000\000\000\000\000\000\000\000\000\000\011>\011.\000\000\000\000\011\022\000\000\011&\011\030\000\173\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011>\000\000\000\189\000\000\000\000\000\000\000\000\011\030\000\000\0116\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011^\011F\000\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\177\011F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011>\000\000\000\000\000\000\000\000\000\000\000\000\011\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\011F"))
+    ((16, "\000\240\000\193\000\000\000\000\n\228\000\193\000\000\000\000\001\248\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\240\000\000\000u \136\000\000\019x\019x\000\000\000\0000n\019x\000\000D\016\019x\000\000\000\000\019x\000\000\019x\000\000\000\151\000%\019x\000\000\019x\000\000\000\000\000\00018\019x\000\000Db\019x\000\000\000\000\019x\000\000\019x\000\000\000O\000\234\019x\000\000\019x\000\000\019x\000\000D\150\019x\000\000\000\000\019x\000\000\019x\000\000\001J\001J\001J\000\000\000\164\001b\000\015\000\000\000|\000\015\000\000\000\000\000\000\000\000\000\000\000\000\001\212\000\000\000\000\000d\003v\000\000\000\146\004\206\001J\000\000\000\244\005p\000\000\000\000\000\000\001\178\019x\000\000?|\001J\001\190\019x\000\000\000\000\019x\000\000\000\000\019x\000\000\019x\000\000\0022\002\158\019x\000\000 \136D\016P2\000\000\000\000O\136\00323\004\004&P2\000\000\000\000\002~\019x\000\000P2\000\000\000\015\000x>.\000\000\000\000A\168\000\000E~\000\000E\2142\2262\226\024&\024&E~\024&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Bb2\226\000\000\000\000Bb\000\000Bb\000\0002\226\000\000\000\000\000\000\0280\000\015\000\000\020\230\024&1\1502\226\"V2\226\000\000\000\000\000\000\000\000\000\000\000\000#\1622\226$\1822\226%\0242\226&,2\226\000\0002\226\000\0002\226&\1422\226'\1622\226(\0042\226)\0242\226)z2\226*\1422\226\002\2102\226\000\000\000\000\000\000\000\000\000\0002\226*\2402\226,\0042\226,f2\226\000\000\000\0002\226\000\000\002\234\000\000\003\128\000\000\000\0212\226\000\000\000\021\000\000\000\000\002l \136\000\000\018\182\019x\000\000\001\002\019x\000\000F\146\019x\000\000\000\000\019x\000\000\019x\000\000\003\202\004\024\019x\000\000\019x\000\000\001\244\019x\000\000F\158\019x\000\000\000\000\019x\000\000\019x\000\000\004L\004\250\019x\000\000\019x\000\000\019x\000\000F\174\019x\000\000\000\000\019x\000\000\019x\000\000\004\206\001J\004\188\019x\000\000Db\001J\005\n\019x\000\000\000\000\019x\000\000\019x\000\000\019x\000\000\005n\005\216\019x\000\000D\150P2\005\128\019x\000\000T$Pz\000\000\002\186\006V\000\015\005\166\006\208P\230P\230\000\000\000\000\000\1995\bP\230\001<Q\152\000\000\000\000\000\000\001`\006\196\000\015\006\244P\230\000\000\000\000\006\138\000\000\006\210\007\164P\230\006\240\000\000\000\000\000\000\002\012Q\198\000\000\000\000\000\000\007\028\b<\000\000\bT\000\000\018\182\004\242P2\007j\019x\000\000F\146P2\007r\019x\000\000\000\000\000\015\bd\000\000\000\000\000\000\002l\000\000\000\000\020\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000G\1882\226\007\134\000\000\000\000G\188\000\000G\188E~\000\000\000\000>\196\000\015\000\000\020\230\002\228\023V\020\230T\0042\226\000\0002\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\024E~UzE~U\214E~V2E~\000\000E~\000\000E~V\142E~V\234E~WFE~W\162E~W\254E~XZ2\226\007\180E~\000\000E~X\182E~Y\018E~Yn\003x\021\182\000\000\000\000\003\220\022\134\000\000\000\000\000\000\007\154\000\0002\226\007\154\000\000\000\000\000\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\176\000\0002\226\007\176\000\000\000\000\000\015\000\000\000\000\000\000\000\000\000\000\007\188\000\000\000\000\007\194E~\000\000\000\000\007\194\000\000\000\000B\224\b\1282\226\bF\000\000\000\000E~\000\000\000\000\007\216\000\000\007\2382\226\000\000\024&\007\248\000\000\000\000\b\210\000\000\024&\b\002\000\000\000\000\b\n\000\000\000\000\000x\000\000\b\246\000\000F\158P2\b\014\019x\000\000\000\000\b\150\000\000\b\022\019x\000\000\000\000\000\019 \136\000\000 \136\000\000\b\n\000\000\000\019\000\000\017&#L\019N\000\000\003\154\019N\000\000\019N\019N\000\000\000\000\019N\000\000\019N\000\000\bP\b\132\019N\000\000\019N\000\000\006\186\019N\000\000\019t\019N\000\000\000\000\019N\000\000\019N\000\000\bZ\b\144\019N\000\000\019N\000\000\019N\000\000\019x\019N\000\000\000\000\019N\000\000\019N\000\000\005h\001J\b:\019N\000\000\019b\001J\bB\019N\000\000\000\000\019N\000\000\019N\000\000\019N\000\000\bt\b\172\019N\000\000 \136\b\\\000\000\019xP2\bV\019N\000\000\000\000\000\246\000\000\000\206\000\246\000\000\000\000\000\000\tD\000\000\006\000P2\b^\019N\000\000?bP2\bb\019N\000\000\000\000\024\250\019N\000\000\006\240\019N\000\000?b\019N\000\000\000\000\019N\000\000\019N\000\000\b\146\b\196\019N\000\000\019N\000\000\b(\019N\000\000?l\019N\000\000\000\000\019N\000\000\019N\000\000\b\160\b\210\019N\000\000\019N\000\000\019N\000\000?\228\019N\000\000\000\000\019N\000\000\019N\000\000\006\210\001J\b|\019N\000\000?\128\001J\b\128\019N\000\000\000\000\019N\000\000\019N\000\000\019N\000\000\b\176\b\222\019N\000\000?\218P2\b\136\019N\000\000\000\000\007\022P2\b\138\019N\000\000@\028P2\b\140\019N\000\000\000\000\000\000\000\000\000\000\000\000\t\\2\226\b\152\025\246\tb2\226\b\160\td3\004\000\000\000\000\000\000 \136\000\015\000\000\000v2\226-J\000\000H\1782\226\b\202\000\000\024&\b\216\000\000\b\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000I<2\226\000\000I<\000\000I<I\148\024&\b\220I\148\000\000\000\000Td\000\015\000\000\020\230\b\222\000\0002\226\b\220\000\000\000\000\000\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\226\001\0062\226\b\224\000\000\000\000-J-J\029\\\002\154\t\1602\226\000\000\tf\000\000\000\000\000\015\000\000\029\190\000\000\t\026-J\000\000\t\024-J\000\000\000<\000\000\000\0000FI\148G\028I\148Y\202I\148Y\210I\148\000\000I\148\000\000I\148Z&I\148Z.I\148Z\130I\148[@I\148[\148I\148[\156I\148[\240I\148[\248I\148\\\198\001\210-\212\000\000\002\150.\232-J\000\000\003..^\000\000\000\000\000\000\b\234\000\000\000\000\b\242\000\000\t\228\000\000\000\015\000\000\000v\t\232\000\000\000a\t\184\000\015\t\b\t\208P\230\t\012\002\\\000\0002\226\t\244\000\000\006.\007\218\t\216P\230\t\022\t\254\000\000\001J2\226\n\000\000\000\n\002\000\000\018\182\000\015\002\0242\226\n\004\000\000\n\006\000\000\000\015\004H2\226\n\b\000\000\n\n\000\000\002\166\tR\007$\000\000J\030Jv\024&\t*\000\000\t.Jv\000\000\000\000\000\000\000\000\000\000\000\000K\0002\226\000\000K\000\000\000K\000Jv\000\000\000\000\031\224\000\015\000\000\020\230\t0\000\0002\226\t.\000\000\000\000\000\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\1602\226\000\0002\226\000\000\t6\000\000\000\021\000\000\000\000\000\000\000\000\000\0003\148Jv3\244Jv5\bJv5hJv\000\000Jv\000\000Jv6|Jv6\220Jv7\240Jv8PJv9dJv9\1962\226\tfJv\000\000Jv:\216Jv;8Jv<L\024&\tD\000\000\000\0002\226\000\000\n,\000\000\001l\n\0022\226\t\200\000\000\n\b2\226\t\208\000\000\002\156\000\000\007$\007$\001l\000\000\001l\000\000\017&\007$\007$\000\000\000\000\000\000\000\000\000\000\000\000\n 2\226\t\\\025\246\026\206\000\015\nD\000\000\n,>.\nT>.\nV2\226\t|\025\246\025\246\007\174\006\190\004\172\bn\006\190\000\000\000\000\004\216\br\000\000\004\222\b\168\000\000\000\000\000\000\000\000\000\000\t~\000\000\000\000\nf\000\000\nl\000\000\000\000\n\166\nP2\226\t\140\nt\000\000\nV\020\230\t\146\025\246\000\000\000\000\t\190\000\000\000\021\000\000\005\182\000\000\000\000\001l\000\000\n\020\000\000\012\220\003\028\000\000\012\220\000\000\000\000\030r\000\000\003\028\000\000\000\000\n\000\000\000\012\220\000\000\n^\020\230\t\158\n\134\000\000\001\194\000\000\n^\000\015\t\174\nxP\230\t\180\0064\000\0002\226\n\156\000\000\n~P\230\t\186\n\166\000\000\004\2042\226\n\168\000\000\n\170\000\000\018\182\000\015\005\1782\226\n\172\000\000\n\174\000\000\000\000\000\000\n\000\000\000\000\000\000\026\000\000\007$\000\000\001\194\000\000\000\000\005\150\026\206\000\000\005\150\000\000\000\000\t\204\000\000\000\021\000\003\025\246\000\000\004H\000Q\004H\000\000\000\026\000\000\007$\000\000\007$\000\000\000\000\000\000\t\198\000\000\000\000\t\212\000\000\006\030\005\182\002\208\004H\000\000\000\000\000\000\007\188\000\000\007$\000\000\006\030\000\000\000\000\005\148\000Q\017&\000\000\002\030\000\000\b\146\017&\000\000\000\000\b\146\000\000\000\000\t\212\000\000\000\000\t\218\000\000\006N\007$\000\000\006N\000\000\000\000\nZ\000\000\000\026\000\000\007$\000\000\000\000\000\000\018\136@\184\000\000\n\196\000\000\018\136\000\000\n\198\000\000\n\204\000\000 \136\000\015\006\178\000\0002\226\n\208\000\000\003\006\n\160\000\015\t\240\n\186P\230\t\246\007\b\000\0002\226\n\222\000\000\007\028\000\0002\226\n\226\000\000\018\182\000\015\007X\000\0002\226\n\228\000\000\006\182\018\136\000\000\030r\007\170\000\0002\226\n\230\000\000\000\000\000\000\004\024\000\000\n\200\020\230\n\004\n\236\000\000\004t\000\000\n\190\000\015\n\014\n\218P\230\n\022\b\n\000\0002\226\011\024\000\000\bP\000\0002\226\011.\000\000\018\182\000\015\bR\000\0002\226\0110\000\000\006\182\000\000\000\000\nN\000\000\004\024\005\234\n\204\000\000\000\000\000\000\n\208\000\000\000{\002\156\000\000\017&\011&\000\000\000\0002\226\n\128\007$\000\000\nR\000\000\002\166\000\0003\004\000\000\000\000\000\\\017&\000\000\017&\000\000\n@\000\000\000\\\000\0002\226\004\1982\226\000\0002\226\000\000\nB\000\000\004\198\000\0002\226\004\198\nD\000\000\025\246\006$\025\246\000\000\025\246\000\000\nH\000\000\006$\000\0002\226\004\198\nJ\000\0003\004\006z3\004\000\0003\004\000\000\nL\000\000\006z\000\0002\226\004\198\nR\000\000\000\000\0280\000\000\000\000\n\198<\204\000\000\000\000\000\000\000\000\000\000\n\154\004H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\130<\204\000\000\005\026\003\198\000\000\n\158\000\193\000\000\000\000\000\000\003N\003\198\000\000\000\000\000\000\000\000\n\252\000\000\000\000\000\000\000\000\031\224!N\000\000K\180\000\000<\204\000\000\003H<\204\000\000\000b\000\132\000\132\000\000\004\"\000\132\000\000\nt\000\000\000\000\000\000\000\000\011\000\000\000!\204\000\000#L<\204\000\000\006\182<\204\000\000\011\004\000\000<\204\011\b\000\000M\"=\146\011\n\000\000\011\014\000\000M\212C\148<\204\000\000\000\000\n\136<\204\011\018\000\000\011\020\000\000\011\022\000\000 \136\000\000\006b \136\000\000\n\144\019N\000\000\003*<\204\000\000\005h<\204\000\000\004^\011\152\000\000\011\154\000\000<\204<\204\n\150\000\000\000\000\000\000\000\000\000\000\000\000\011$\000\000N,<\204\011&\000\000\011(\000\000<\204\0112\000\000<\204\n\220\000\193\000\000\000\000\006\228<\204\000\000\004^\000\000\011:\000\000<\204\011<\000\000<\204\011@\000\000A\128\019N\000\000\019N\000\000=\146<\204\n\188<\204\011L\000\000\011N\000\000\019N\000\000L\004\000\000\000\000\007z<\204\000\000\b\170\004\024\000\132\n\198\000\000\000\000\001\212\001\212\000\000\000\000\000\000\006\170\001\212\000\000\n\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000<\204\000\000\007\136<\204\000\000\000\003\000a\000\193\n\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011p\000\000\011r\000\000<\204\011t\000\000N\222<\204\011|\000\000\011~\000\000<\204\011\128\000\000\025T\011&Q\254\019bL\202\n\252\000\000<\204\011\134\000\000\011\136\000\000\011X\025T<\204\011\144\000\000<\204\011\146\000\000\011\156\000\000<\204\011\160\000\000\000\193\011\014\000\000\000\000\0280\000\000\000\000\002\142\012\000\000\000\000\000\001)\000\000\000\000\000\0002\226\000\000\000\000\000\000\002\218\000\000\000\216\000\000\000\000\000\000\004HH\206H\206H\206\000\000\000\246\000\246\000\246\000\246\000\000\000\000\000\000\000\000\000\000\000\000\001l\017&\011\248\014J\001R\000\000\000\000\002\166\000\000\n\000\000\000-J\011\"\000\000\001l\017&\011,\015\184\000\000\001l\014J\000\000\000\000\000\000H\206\000\246\000\000\000\000\000\000\011z\001\212\011\248R|R|\000\000\005\1926|R|\006\172SH\000\000\000\000\004&\011\232\000\015\000\000\007:Sr\000\000\000\000\000\000\000\000\000\000\0116\011\246\007$\0114\000\000\002\166\000\000\n\000\000\000\025\026\004\154\000\000\000\000\011\226\000\000\000\000\002\142\000\000\004\128\000\000\000\000\000\0002\226\000\000\002\218\000\000\004\174\000\000\000\000\000\000\005\182\000\000\011n\002\192\011n\000\000\007$\011n\000\000\0048\000\000\007$\000\000\007$\000\000\007$\000\000\t\138\000\000\000\000\000\000\000\000\000\000\007$\000\000\0048\000\000\007$\000\000K\134\000\000\000\000\006\142\011h\000\193\006\210\012\n\004@\000\000\004@\0122\000\000\0124\000\000\0126\000\000\000\000\007\016\004@\007\206\004@\000\000\000\000\002\b\003\240\0118\000\000\011:\000\000\011x\000\193\003\240\011B\000\000\000\192\012H\000\000\004\218\006R\012Z\005l\012Z\000\000\000\000\006\240\000\193\000\000\000\227\000\000\000\000\003\166\000\000\011L\000\000\000\000\000\000\011\140\000\193\003\240\011R\000\000\000\000\000\192\004\218\006R\006\240\000\227\003\166\011T\000\000\004\218\006R\006\240\000\227\003\166\011X\000\000\004\\\006\014\011t\000\193\011n\b$\b\140\011\152\000\193\000\000\011\154\000\193\000\000\011\248\000\000\011\128\006\154\011|\b$\012\006\000\000\011\132\b$\012$\000\000\000\000\b$\000\000\012(\000\000"), (16, "\r\025\r\025\r\025\r\025\r\025\r\025\r\025\r\025\r\025\r\025\r\025\b\025\r\025\r\025\r\025\r\025\r\025\r\025\r\025\r\025\r\025\r\025\029\178\r\254\016*\b\025\r\025\025\198\004\221\029\182\026\191\026\195\000\n\016^\r\025\026\199\024V\024^\r\025\r\025\025V\r\025\b\150\002z\r\025\017v\012\141\014*\002\134\r\025\r\025\r\025\000N\b\182\021\182\021\222\021\238\022\022\022&\022N\r\025\0007\000;\r\025\r\025\006\201\004\221\005:\017v\r\025\r\025\b\237\r\025\003\194\r\025\000\150\025\194\016*\b\025\r\025\000\n\r\025\r\025\r\025\r\025\r\025\016^\001F\001*\r\025\r\025\r\025\001J\r\025\r\025\r\025\001N\021\150\r\025\r\025\r\025\r\025\r\025\t\161\012\178\021N\r\025\r\025\017\134\b\158\000\154\000\226\0012\001R\012\157\006I\022\138\r\025\r\025\r\025\r\205\000\n\r\025\r\025\r\025\r\025\023f\r\025\004\249\r\025\011\146\b\025\r\025\011\150\0026\r\025\r\025\027\n\003\242\011\154\003\250\023j\004\n\b\025\011\158\027\014\018\190\r\025\007\230\004\018\r\025\000\006\000\"\007\001\r\025\r\025\r\025\r\025\012\245\006\161\r\025\017\134\r\025\005b\021\158\t\161\r\025\r\025\r\025\004\185\r\025\006\201\r\025\r\025\006q\r\025\006a\r\025\r\025\004\026\012\242\r\025\r\025\006\209\006\209\006\209\006\209\006\209\006\209\006\209\006\209\006\209\006\209\006\209\r\254\006\209\006\209\006\209\006\209\006\209\006\209\006\209\006\209\006\209\006\209\011\226\006I\t\242\001B\006\209\016.\016>\016N\004*\002z\007\001\001n\006\209\014*\002\134\012\157\006\209\006\209\b\137\006\209\r\230\006I\006\209\004\185\006\137\006I\004\249\006\209\016*\006\209\004\185\029~\004\249\004\249\001z\001\"\001&\016^\006\209\000.\000\230\b\153\005Z\004m\004\249\004\249\000\n\006\209\006\209\0016\004m\005\025\006\209\006\209\0046\001*\004>\006\209\004N\006\209\006\209\006\209\006\209\006\209\t\250\004V\001*\006\209\006\209\006\209\004\249\006\209\006\209\006\209\012\186\017\234\006\209\006\209\006\209\006\209\006\209\026\231\026\235\001\138\006\209\006\209\026\239\004A\000\n\000&\0025\017\238\012\229\006i\006i\004^\006\209\006\209\012\198\000\n\006\209\006\209\006\209\006\209\025n\006\209\014J\006\209\001.\000*\006\209\002z\017\134\006\209\006\209\014*\002\134\b\025\012\157\005F\002z\017v\029:\b\221\002\130\002\134\r\230\018\142\006\209\004n\016*\b\025\006\209\006\209\006\209\006\209\001b\003\149\006\209\016^\006\209\003\149\r\205\r\205\006\209\006\209\006\209\r\205\000\n\025r\006\209\006\209\014\026\006\209\022\230\006\209\006\209\000\n\012\218\006\209\006\209\006\241\006\241\006\241\006\241\006\241\006\241\006\241\006\241\006\241\006\241\006\241\016R\006\241\006\241\006\241\006\241\006\241\006\241\006\241\006\241\006\241\006\241\006\241\b\025\001\158\006\241\006\241\003\218\017v\004A\001\178\006\241\006\241\r\158\006\241\004A\004A\016*\006\241\006\241\b\165\006\241\026\174\006\241\006\241\016V\016^\004A\014j\006\241\016*\006\241\006\241\017\134\005\022\006\241\006\241\006\241\016*\016^\006\241\006\241\005\154\006\241\006\241\001\222\002e\016^\r\230\006\241\006\241\006\241\006\241\004A\006\241\029B\b\025\005M\001*\006\241\026\174\006\241\014\030\006\241\006\241\006\241\006\241\017v\b\025\006\241\006\241\006\241\020\014\006\241\006\241\006\241\016*\001\226\006\241\006\241\006\241\006\241\006\241\019\186\b\202\016^\b\210\006\241\b\226\006\241\019\190\000\n\002z\006\153\019\194\b\234\014*\002\134\006\241\006\241\002\006\017\134\006\241\006\241\006\241\006\241\002\030\006\241\006\241\006\241\014\158\r\170\006\241\004u\017\134\006\241\006\241\006\241\b\181\r\205\004u\021f\017\134\006\241\003j\b\242\006Q\006\241\021:\000\n\006\241\r\205\r\205\001&\006\241\006\241\r\205\006\241\012\237\022\246\006\241\012\253\006\241\005M\t\197\t\197\006\241\022\250\t\133\t\197\006n\024>\001*\006\241\ba\006\241\003\178\006\241\006\241\t\002\017\134\006\241\006\241\000R\000V\000f\000\170\b\186\000\174\011\146\000\178\000\246\011\150\000\254\022v\001\014\026\246\001\022\011\154\001\030\001\190\001\198\001\202\011\158\026\250\000\n\022z\r\186\022\138\011\162\r\205\r\205\023\006\020\154\002E\r\205\022~\001\210\022\130\023\018\023Z\002:\011\178\012\253\014\166\001.\022\134\014\170\029\018\017v\024V\024^\001\218\025Z\016\026\022\146\027\218\012\157\016*\022\150\002\014\003\194\029\190\002F\0076\022\154\027.\016^\bQ\029\022\b\141\003\186\016r\014\178\027Z\027f\029\026\016v\018\202\020\182\001*\022\158\002n\030*\002r\005)\001\238\017~\016~\004\030\024f\028/\014\198\002z\016\130\020\186\014\202\012\210\002\134\0283\005\225\014\206\014\210\011\198\011\202\014\214\004\"\004=\022\162\0286\016\134\022\166\029\n\000\n\007F\002z\021\190\t\169\002\021\014*\002\134\012&\014\218\012\157\022\170\016\138\016\142\014\222\016\146\022\174\000\n\022\178\016\166\022\182\022\186\005\005\022\190\004=\016\178\014\230\000\n\029\"\017\134\022\194\004\162\001~\022\198\006\161\014\134\023v\027z\003\149\000\n\016\210\004b\003\149\012\173\016\214\017\"\005)\011\206\022\202\005\198\014\234\001*\017&\022\206\022\210\r\230\014\238\005)\005)\t\197\t\197\029*\005)\017.\t\197\014\242\t\169\006\249\006\249\001*\021\198\002\182\006\249\000R\000V\000f\000\170\b\186\000\174\011\146\000\178\000\246\011\150\000\254\000\n\001\014\026\246\001\022\011\154\001\030\001\190\001\198\001\202\011\158\026\250\028O\028S\004=\011\249\011\162\028W\0182\000\n\004=\004=\016\226\004f\001\210\tz\b}\017\234\002:\011\178\001&\014\166\004=\029\n\014\170\028o\028s\004\170\r\230\001\218\028w\016\026\012\157\017\238\016\246\001*\b\157\017\002\bm\001*\002F\002%\006\129\016*\012\213\003\218\018\154\022\242\004=\016r\014\178\027Z\016^\002z\016v\019\018\030.\014*\002\134\002n\020\182\002r\0059\001\238\017~\016~\004\190\011\249\000\n\014\198\002z\016\130\000\n\014\202\012\210\002\134\020\186\012\133\014\206\014\210\011\198\011\202\014\214\012\133\012\133\021\246\017\130\016\134\003\218\029\142\000\n\n\022\001.\004\230\005\133\012\133\002z\018\n\012&\014\218\014*\002\134\016\138\016\142\014\222\016\146\024J\000\n\029\150\016\166\005i\001*\005\005\005\133\019\014\016\178\014\230\0029\t\014\004\249\t\022\012\133\t&\018R\004\234\004\254\030j\017\134\022.\t.\016\210\006\153\006\193\000\n\016\214\017\"\028\254\011\206\019\142\005\026\014\234\005\"\017&\r\230\000\n\nN\014\238\nV\0059\nf\027\190\000\n\021\254\017.\b\209\014\242\nn\007\t\007\t\t6\019\250\002\182\007\t\000R\000V\000f\000\170\b\186\000\174\011\146\000\178\000\246\011\150\000\254\006\153\001\014\026\246\001\022\011\154\001\030\001\190\001\198\001\202\011\158\026\250\005\133\nv\016\218\018\014\011\162\020n\005&\006\225\tF\005^\0226\n\254\001\210\006\225\006\225\006\169\002:\011\178\020*\014\166\005\133\001*\014\170\029f\005f\006\225\012\189\001\218\020>\016\026\000\n\001*\006\145\029z\029:\n\134\000\n\004\249\002F\006\177\029\210\016*\029~\004\249\004\249\011j\024&\016Z\014\178\012\221\016^\006\225\016v\012\149\000\n\004\249\004\249\002n\020Z\002r\005U\001\238\016z\016~\000\n\001*\019\254\014\198\002z\016\130\005v\014\202\012\210\002\134\016\222\006y\014\206\014\210\011\198\011\202\014\214\004\249\025\130\027\202\r\213\016\134\006\233\b\193\023\178\012\165\029\n\006\185\006\233\006\233\0049\012\189\012&\014\218\000\n\020~\016\138\016\142\014\222\016\146\029\166\000\n\005~\016\166\017v\020.\005\005\024\206\005\130\016\178\014\230\004=\n\146\016*\n\154\020B\n\170\005\138\016\218\005\129\012\197\017\134\016^\n\178\016\210\0049\006\233\012\205\016\214\017\"\005U\011\206\005M\029J\014\234\005e\017&\001*\005\129\005\174\014\238\005U\005U\020\214\029B\020^\005U\017.\030>\014\242\027\234\t\205\t\205\n\186\002U\002\182\t\205\000R\000V\000f\000\170\b\186\000\174\011\146\000\178\000\246\011\150\000\254\005\178\001\014\000\n\001\022\011\154\001\030\001\190\001\198\001\202\011\158\020\234\021\006\005\186\005\206\025J\011\162\030B\005\226\020\130\n\202\005\246\025\182\016\222\001\210\006:\0049\007\018\002:\011\178\017\134\014\166\0049\0049\014\170\007Z\030N\007f\030\147\001\218\b!\016\026\025V\005\129\0049\004\149\007\146\016\230\007\158\016\218\002F\005M\007\194\016*\b!\007\206\007\222\007\238\007\246\016Z\014\178\0049\016^\005\129\016v\b\014\001*\020\218\001*\002n\0049\002r\029B\001\238\016z\016~\016\218\b\022\025j\014\198\002z\016\130\b&\014\202\012\210\002\134\b2\b>\014\206\014\210\011\198\011\202\014\214\bJ\b^\001*\bn\016\134\b~\000\n\b\134\000\n\020\238\021\n\b\171\t\153\b\246\b!\012&\014\218\b\250\t:\016\138\016\142\014\222\016\146\t>\000\n\t\130\016\166\011\146\016\222\t\150\011\150\t\190\016\178\014\230\027\n\000\n\011\154\t\194\t\210\t\226\n\014\011\158\027\014\n\030\017\134\n2\nz\016\210\b\129\n~\bq\016\214\017\"\n\190\011\206\016\222\n\194\014\234\011\006\017&\011\026\011B\011F\014\238\011Z\011r\011\134\b!\011\166\011\174\017.\011\182\014\242\011\190\t\153\017\234\011\194\002)\002\182\b!\000R\000V\000f\000\170\b\186\000\174\011\146\000\178\000\246\011\150\000\254\017\238\001\014\011\250\001\022\011\154\001\030\001\190\001\198\001\202\011\158\012\006\012\014\012R\012r\012~\011\162\012\194\012\222\012\234\r\006\002z\r\018\r\206\001\210\014*\002\134\r\218\002:\011\178\r\226\014\166\r\246\014\002\014\170\014\n\014\014\014\022\014&\001\218\0146\016\026\014>\014B\014R\014Z\014r\014z\014\142\014\150\002F\014\162\014\186\016*\014\194\015\022\015\"\015j\000\n\016Z\014\178\015\234\016^\005\025\016v\016\018\016&\0162\016:\002n\016B\002r\016J\001\238\016z\016~\016\150\016\158\016\174\014\198\002z\016\130\016\182\014\202\012\210\002\134\016\190\016\198\014\206\014\210\011\198\011\202\014\214\016\206\017\030\017*\r\213\016\134\0172\017>\017B\017J\017N\017V\017^\017n\017\146\017\214\012&\014\218\017\222\017\226\016\138\016\142\014\222\016\146\017\242\000\n\017\250\016\166\017\254\018\006\018\022\018\030\018&\016\178\014\230\018*\018:\018B\018Z\018b\018\178\018\250\012\181\012\181\019\006\017\134\019z\019\134\016\210\019\166\019\210\019\226\016\214\017\"\019\234\011\206\020\006\020\018\014\234\020\026\017&\020\030\020&\0206\014\238\020J\020f\020\138\020\162\020\170\020\174\017.\020\190\014\242\020\198\r\213\r\213\020\202\020\210\002\182\r\213\000R\000V\000f\000\170\b\186\000\174\011\146\000\178\000\246\011\150\000\254\020\226\001\014\026\246\001\022\011\154\001\030\001\190\001\198\001\202\011\158\026\250\020\246\021\018\021&\0216\011\162\021F\021^\021n\021z\021\171\021\211\021\235\001\210\022\011\022#\022C\002:\011\178\022[\014\166\022r\022\142\014\170\022\254\023+\023\130\023\151\001\218\023\191\016\026\023\203\023\219\012\181\023\227\023\254\024\007\024\015\024\023\002F\0242\024Z\024b\024r\012\181\024\143\024\159\024\167\016r\014\178\012\181\012\181\024\179\016v\028\134\024\190\024\227\024\239\002n\024\251\002r\025\030\001\238\017~\016~\025'\025/\025b\014\198\002z\016\130\025\142\014\202\012\210\002\134\000\022\025\206\014\206\014\210\011\198\011\202\014\214\012\181\025\239\025\247\026\003\016\134\012\181\012\181\026\019\026\027\026'\0262\026B\026O\026W\026^\012&\014\218\026k\026w\016\138\016\142\014\222\016\146\026\127\000\n\026\139\016\166\026\151\026\178\005\005\027:\027b\016\178\014\230\027r\027\166\027\174\027\222\028\006\028\n\028\018\028;\029\002\029\014\029\030\029&\029.\016\210\029[\029c\029j\016\214\017\"\029w\011\206\029\130\029\146\014\234\029\199\017&\029\214\029\227\030\007\014\238\030#\0302\030:\030F\030R\030_\017.\030f\014\242\030n\t\177\t\177\030w\030~\002\182\t\177\000R\000V\000f\000\170\b\186\000\174\011\146\000\178\000\246\011\150\000\254\030\135\001\014\030\155\001\022\011\154\001\030\001\190\001\198\001\202\011\158\000\000\000\000\000\000\000\000\000\000\011\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\210\000\000\000\000\000\000\002:\011\178\000\000\014\166\000\000\000\000\014\170\000\000\000\000\000\000\000\000\001\218\000\000\016\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016r\014\178\000\000\000\000\000\000\016v\017\154\000\000\000\000\000\000\002n\000\000\002r\000\000\001\238\017~\016~\000\000\000\000\000\000\014\198\002z\016\130\000\000\014\202\012\210\002\134\000\000\000\000\014\206\014\210\011\198\011\202\014\214\000\000\000\000\000\000\r\177\016\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012&\014\218\000\000\000\000\016\138\016\142\014\222\016\146\000\000\000\n\000\000\016\166\000\000\000\000\000\000\000\000\000\000\016\178\014\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\210\000\000\000\000\000\000\016\214\017\"\000\000\011\206\000\000\000\000\014\234\000\000\017&\000\000\000\000\000\000\014\238\000\000\000\000\000\000\000\000\000\000\000\000\017.\000\000\014\242\000\000\r\177\r\177\000\000\000\000\002\182\r\177\000R\000V\000f\000\170\b\186\000\174\011\146\000\178\000\246\011\150\000\254\000\000\001\014\000\000\001\022\011\154\001\030\001\190\001\198\001\202\011\158\000\000\000\000\000\000\000\000\000\000\011\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\210\000\000\000\000\000\000\002:\011\178\000\000\014\166\000\000\000\000\014\170\000\000\000\000\000\000\000\000\001\218\000\000\016\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016r\014\178\000\000\000\000\000\000\016v\027>\000\000\000\000\000\000\002n\000\000\002r\000\000\001\238\017~\016~\000\000\000\000\000\000\014\198\002z\016\130\000\000\014\202\012\210\002\134\000\000\000\000\014\206\014\210\011\198\011\202\014\214\000\000\000\000\000\000\000\000\016\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012&\014\218\000\000\000\000\016\138\016\142\014\222\016\146\000\000\000\n\000\000\016\166\000\000\000\000\000\000\000\000\000\000\016\178\014\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\210\000\000\000\000\000\000\016\214\017\"\000\000\011\206\000\000\000\000\014\234\000\000\017&\000\000\000\000\000\000\014\238\000\000\000\000\000\000\000\000\000\000\000\000\017.\000\000\014\242\000\000\r\253\r\253\000\000\000\000\002\182\r\253\000R\000V\000f\000\170\b\186\000\174\011\146\000\178\000\246\011\150\000\254\000\000\001\014\000\000\001\022\011\154\001\030\001\190\001\198\001\202\011\158\000\000\000\000\000\000\000\000\000\000\011\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\210\000\000\000\000\000\000\002:\011\178\000\000\014\166\000\000\000\000\014\170\000\000\000\000\000\000\000\000\001\218\000\000\016\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016r\014\178\000\000\000\000\000\000\016v\027>\000\000\000\000\000\000\002n\000\000\002r\000\000\001\238\017~\016~\000\000\000\000\000\000\014\198\002z\016\130\000\000\014\202\012\210\002\134\000\000\000\000\014\206\014\210\011\198\011\202\014\214\000\000\000\000\000\000\000\000\016\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012&\014\218\000\000\000\000\016\138\016\142\014\222\016\146\000\000\000\n\000\000\016\166\000\000\000\000\000\000\000\000\000\000\016\178\014\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\210\000\000\000\000\000\000\016\214\017\"\000\000\011\206\000\000\000\000\014\234\000\000\017&\000\000\000\000\000\000\014\238\000\000\000\000\000\000\000\000\000\000\000\000\017.\000\000\014\242\000\000\r\249\r\249\000\000\000\000\002\182\r\249\000R\000V\000f\000\170\b\186\000\174\011\146\000\178\000\246\011\150\000\254\000\000\001\014\000\000\001\022\011\154\001\030\001\190\001\198\001\202\011\158\000\000\000\000\000\000\000\000\000\000\011\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\210\000\000\000\000\000\000\002:\011\178\000\000\014\166\000\000\000\000\014\170\000\000\000\000\000\000\000\000\001\218\000\000\016\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016r\014\178\000\000\000\000\000\000\016v\019F\000\000\000\000\000\000\002n\000\000\002r\000\000\001\238\017~\016~\000\000\000\000\000\000\014\198\002z\016\130\000\000\014\202\012\210\002\134\000\000\000\000\014\206\014\210\011\198\011\202\014\214\000\000\000\000\000\000\000\000\016\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012&\014\218\000\000\000\000\016\138\016\142\014\222\016\146\000\000\000\n\000\000\016\166\000\000\000\000\000\000\000\000\000\000\016\178\014\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\210\000\000\000\000\000\000\016\214\017\"\000\000\011\206\000\000\000\000\014\234\000\000\017&\000\000\000\000\000\000\014\238\000\000\000\000\000\000\000\000\000\000\000\000\017.\000\000\014\242\000\000\000R\000V\000f\000\170\002\182\000\174\011\146\000\178\000\246\011\150\000\254\000\000\001\014\000\000\001\022\011\154\001\030\001\190\001\198\001\202\011\158\000\000\000\000\000\000\003\230\003\238\000\170\000\000\000\174\000\000\0042\004v\000\000\004~\001\210\004\142\000\000\004\150\002:\004\158\004\202\014\166\004\210\000\000\014\170\000\000\000\000\000\000\000\000\001\218\000\000\019\198\000\000\000\000\000\000\000\000\000\000\004\218\000\000\000\000\002F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\214\014\178\000\000\004\226\000\000\000\000\000\000\000\000\000\000\000\000\002n\000\000\002r\000\000\001\238\000\000\000\000\000\000\000\000\000\000\014\198\002z\000\000\000\000\014\202\002\130\002\134\000\000\000\000\014\206\014\210\011\198\019\218\014\214\000\000\000\000\000\000\004\242\000\000\000\000\b\214\006A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012&\014\218\006A\000\000\006A\000\000\014\222\000\000\006A\000\n\t\026\006A\tZ\006A\006A\006A\006A\006A\014\230\000\000\000\000\000\000\006A\006A\006A\006A\006A\011}\011}\000\000\006A\011}\000\n\006A\006A\006A\000\000\006A\000\000\011\206\006A\000\000\014\234\006A\019\222\006A\000\000\006A\014\238\006A\000\000\006A\006A\006A\006A\019\230\006A\014\242\006A\006A\000Z\000\000\006A\002\182\006A\t\142\000\000\011}\000\000\006A\000Z\000\000\006A\006A\006A\006A\t\218\000\000\006A\000Z\006A\000Z\000\000\006A\006A\006A\006A\000\000\000\000\006A\000\000\000\000\006A\000\000\011}\000\000\006A\006A\000\000\006A\000\000\000\000\006A\000\000\000\000\006A\000\000\006A\006A\006A\006A\006A\006A\000\000\006A\000\000\000\000\006A\006A\006A\000\000\006A\006A\006A\006A\000\000\006A\006A\006A\006A\006A\006A\006A\006A\006A\006A\000\000\000\000\000\000\006A\006A\000\000\006A\006A\006A\006A\000\000\000\000\000\000\006A\000\000\000\000\000\000\000\000\006A\006A\011}\000\000\006A\000\000\006A\000\000\000\000\006A\006A\006A\006A\006A\000\000\000\000\006A\006A\000\000\000\000\006A\000\000\000\000\000\000\000\000\006A\006A\000\000\000\000\000\000\006A\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\001\190\001\198\001\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\210\000\000\000\000\000\000\002:\000\000\000\000\002N\000\000\000\000\002R\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002F\000\000\000\000\002J\000\000\000\000\000\000\000\000\000\000\002\218\002j\000\000\002f\000\000\000\000\006\014\000\000\000\000\000\000\002n\000\000\002r\000\000\001\238\000\000\000\000\000\000\000\000\000\000\006\018\002z\000\000\000\000\006\022\002\130\002\134\000\000\006\026\006\030\006\"\000\000\000\000\006&\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\006*\001\030\001\190\001\198\001\202\006.\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006>\000\000\001\210\000\000\000\000\000\000\002:\000\000\000\000\002N\000\000\006j\002R\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\006B\000\000\000\000\000\000\002F\000\000\006F\002J\000\000\004\141\000\000\000\000\000\000\002\218\002j\006J\002f\000\000\000\000\006\014\000\000\002\182\000\000\002n\000\000\002r\000\000\001\238\000\000\000\000\000\000\000\000\000\000\006\018\002z\000\000\000\000\006\022\002\130\002\134\000\000\006\026\006\030\006\"\000\000\000\000\006&\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\006*\001\030\001\190\001\198\001\202\006.\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006>\000\000\001\210\000\000\000\000\000\000\002:\000\000\000\000\002N\000\000\006j\002R\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\006B\000\000\000\000\000\000\002F\000\000\006F\002J\000\000\bU\000\000\000\000\000\000\002\218\002j\006J\002f\000\000\000\000\006\014\000\000\002\182\000\000\002n\000\000\002r\000\000\001\238\000\000\000\000\000\000\000\000\000\000\006\018\002z\000\000\000\000\006\022\002\130\002\134\000\000\006\026\006\030\006\"\000\000\000\000\006&\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\006*\001\030\001\190\001\198\001\202\006.\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006>\000\000\001\210\000\000\000\000\000\000\002:\000\000\000\000\002N\000\000\006j\002R\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\006B\000\000\000\000\000\000\002F\000\000\006F\002J\000\000\002\025\000\000\000\000\000\000\002\218\002j\006J\002f\000\000\000\000\006r\000\000\002\182\000\000\002n\000\000\002r\000\000\001\238\000\000\000\000\000\000\000\000\000\000\006\018\002z\000\000\000\000\006\022\002\130\002\134\000\000\006\026\006\030\006\"\000\000\000\000\006&\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\006*\001\030\001\190\001\198\001\202\006.\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006>\000\000\001\210\000\000\000\000\000\000\002:\000\000\000\000\002>\000\000\000\000\002B\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\006B\000\000\000\000\000\000\002F\000\000\006F\002J\000\000\be\000\000\000\000\000\000\002b\002^\006J\002f\000\000\000\000\000\000\000\000\002\182\000\000\002n\000\000\002r\000\000\001\238\000\000\000\000\000\000\000\000\000\000\002v\002z\000\000\000\000\002~\002\130\002\134\000\000\000\000\002\138\002\142\000\000\000\000\002\146\000\000\000\000\000\000\000\000\nB\nJ\000\170\000\000\000\174\000\000\n\142\n\210\000\000\n\218\000\000\n\234\002\150\n\242\000\000\n\250\011&\002\154\011.\000\000\000\n\011\146\000\000\000\000\011\150\000\000\000\000\000\000\027\n\002\162\011\154\000\000\000\000\0116\000\000\011\158\027\014\000\000\000\000\000\000\002\166\000\000\000\000\000\000\000R\b\190\b\198\000\170\011>\000\174\000\000\t\n\tN\002\170\tV\022v\tf\000\000\tn\002\174\tv\t\162\001\198\t\170\000\000\000\000\000\000\022z\002\178\017\234\000\000\000\000\000\000\000\000\002\182\000\000\000\000\022~\t\178\022\130\000\000\000\000\011N\000\000\000\000\017\238\000\000\022\134\000\000\000\000\000\000\000\000\000\000\026.\000\000\000\000\022\146\000\000\000\000\000\000\022\150\000\000\000\000\000\000\000\000\002z\022\154\000\000\000\000\014*\002\134\000\000\000\000\t\202\000\000\000\000\000\000\000\000\024\026\000\000\000\000\000\000\022\158\025:\000\000\000\000\000\000\t\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\005\025\000\000\022\162\000\000\011\162\022\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002:\011\178\022\170\014\166\000\000\000\000\014\170\022\174\000\n\022\178\000\000\022\182\022\186\016\026\022\190\000\000\000\000\000\000\000\000\000\000\000\000\022\194\002F\000\000\022\198\000\000\000\000\000\000\000\000\007\225\007\225\016\162\014\178\000\000\007\225\000\000\016v\000\000\000\000\022\202\000\000\002n\000\000\002r\022\206\022\210\000\000\016~\000\000\000\000\000\000\014\198\002z\016\130\000\000\014\202\012\210\002\134\000\000\000\000\014\206\014\210\000\000\000\000\014\214\000\000\000\000\000\000\000\000\016\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012&\014\218\000\000\000\000\016\138\016\142\014\222\016\146\000\000\000\n\000\000\016\166\000\000\000\000\000\000\000\000\011\162\016\178\014\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002:\011\178\000\000\014\166\016\210\000\000\014\170\000\000\016\214\017\"\000\000\000\000\000\000\016\026\014\234\000\000\017&\000\000\000\000\000\000\014\238\000\000\002F\000\000\000\000\000\000\000\000\017.\000\000\014\242\000\000\014\174\014\178\000\000\000\000\002\182\016v\000\000\000\000\000\000\000\000\002n\000\000\002r\000\000\000\000\000\000\016~\000\000\000\000\000\000\014\198\002z\016\130\000\000\014\202\012\210\002\134\000\000\000\000\014\206\014\210\000\000\000\000\014\214\000\000\000\000\000\000\000\000\016\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012&\014\218\000\000\000\000\016\138\016\142\014\222\016\146\000\000\000\n\000\000\016\166\000\000\000\000\000\000\000\000\000\000\016\178\014\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\210\000\000\000\000\000\000\016\214\017\"\000\000\000\000\000\000\000\000\014\234\000\000\017&\000\000\000\000\000\000\014\238\000\000\000\000\000\000\000\000\000\000\000\000\017.\000\000\014\242\000\000\001M\001M\001M\001M\002\182\001M\000\000\001M\001M\000\000\001M\000\000\001M\000\000\001M\000\000\001M\001M\001M\001M\000\000\000\000\015\021\000\000\022f\015\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001M\001M\001M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001M\000\000\015\021\015\021\000\000\000\000\001M\015\021\000\000\001M\002\206\015\021\000\000\001M\000\000\000\000\022j\015\021\000\000\001M\015\021\015\021\000\000\015\021\015\021\000\000\001M\002\214\000\000\015\021\007\150\001M\000\000\015\021\000\000\000\000\015\021\000\000\015\021\015\021\001M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\021\001M\015\021\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\021\000\000\000\000\000\000\001M\000\000\000\000\007\162\000\000\001M\000\000\001M\000\000\000\000\001M\000\000\022n\000\000\000\000\000\000\000\000\001M\000\000\001M\000\000\000\000\001M\015\021\015\021\000\000\015\021\015\021\007\166\000\000\015\021\000\000\000\000\000\000\000\000\000\000\000\000\001M\001M\007\174\000\000\000\000\001M\001M\015\021\000\000\000\000\015\021\015\021\015\021\015\021\005i\000\000\023.\005i\015\021\015\021\015\021\000\000\015\021\015\021\015\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005i\005i\000\000\000\000\000\000\005i\000\000\000\000\005i\005i\000\000\000\000\000\000\000\000\000\000\005i\000\000\000\000\005i\005i\000\000\005i\005i\000\000\000\000\005i\005e\005i\005i\005e\000\000\005i\000\000\000\000\005i\000\000\005i\005i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005e\005e\000\000\000\000\000\000\000\000\000\000\000\000\005e\005e\005i\000\000\005i\000\000\000\000\005e\000\000\000\000\000\000\000\000\000\000\005e\005e\005i\000\000\005e\000\000\000\000\005e\000\000\005i\005e\000\000\000\000\005e\000\000\005e\005e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005i\005i\000\000\005i\005\133\005i\000\000\005i\000\000\005e\000\000\000\000\000\000\000\000\000\000\000\000\005i\005e\000\000\000\000\005e\005i\000\000\000\000\005i\000\000\005i\000\000\005i\005e\000\000\000\000\005i\005i\005i\000\000\005i\005i\005i\000\000\005e\005e\000\000\000\000\000\000\005e\000\000\000\000\005e\005e\005e\000\000\000\000\005\129\005e\005e\005e\000\000\005e\005e\000\000\005e\005e\000\000\000\000\005e\000\000\005e\005e\000\000\005e\005e\000\000\005e\005e\000\000\005e\005e\000\000\000\000\000\000\005e\000\000\000\000\000\000\005e\005e\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005e\000\000\005e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005e\000\000\000\000\000\000\000\000\000\000\000\000\005e\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005e\005e\000\000\005e\005\129\005e\000\000\005e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005e\000\000\005e\000\000\000\000\000\000\000\000\000\000\005e\005e\005e\000\000\005e\005e\005e\011y\011y\011y\011y\000\000\011y\000\000\011y\011y\000\000\011y\000\000\011y\000\000\011y\000\000\011y\011y\011y\011y\000\000\000\000\015i\000\000\000\000\015i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011y\011y\011y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011y\000\000\015i\015i\000\000\000\000\011y\015i\000\000\023>\015\006\015i\000\000\023F\000\000\000\000\000\000\015i\000\000\011y\015i\015i\000\000\015i\015i\000\000\011y\015\014\000\000\015i\015\026\011y\000\000\015i\000\000\000\000\015i\000\000\015i\015i\011y\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\001\190\001\198\001\202\015i\011y\015i\000\000\011y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015i\001\210\000\000\000\000\011y\000\000\000\000\015&\000\000\011y\000\000\011y\000\000\000\000\011y\000\000\001\218\000\000\000\000\000\000\000\000\011y\000\000\011y\000\000\000\000\011y\015i\015i\000\000\015i\000\000\015*\000\000\015i\000\000\001\234\000\000\000\000\000\000\000\000\011y\011y\0152\000\000\000\000\023\154\011y\000\000\000\000\001\238\015i\000\000\015i\000\000\000\000\000\000\000\000\000\000\015i\015i\015i\000\000\015i\015i\015i\011i\011i\011i\011i\000\000\011i\000\000\011i\011i\000\000\011i\000\000\011i\000\000\011i\000\000\011i\011i\011i\011i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\011i\011i\011i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011i\000\000\000\000\000\000\000\000\000\000\011i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011i\011m\011m\011m\011m\000\000\011m\011i\011m\011m\000\000\011m\011i\011m\000\000\011m\000\000\011m\011m\011m\011m\011i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011m\011m\011m\000\000\000\000\000\000\000\000\000\000\000\000\011i\011m\000\000\011i\000\000\000\000\000\000\011m\000\000\000\000\023\158\000\000\000\000\000\000\000\000\000\000\011i\000\000\000\000\000\000\011m\011i\000\000\011i\000\000\000\000\011i\011m\000\000\000\000\000\000\000\000\011m\011i\000\000\011i\000\000\000\000\011i\000\000\000\000\011m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\001\153\011i\011i\000\000\000\000\000\000\023B\011i\000\000\000\000\000\000\011m\000\000\000\000\011m\000\000\000\000\000\000\000\000\000\000\001\153\001\153\000\000\000\000\000\000\001\153\000\000\011m\000\000\001\153\000\000\000\000\011m\000\000\011m\001\153\000\000\011m\001\153\001\153\000\000\001\153\001\153\000\000\011m\000\000\011m\001\153\000\000\011m\000\000\001\153\000\000\000\000\001\153\000\000\001\153\001\153\000\000\000\000\000\000\000\000\000\000\000\000\011m\011m\000\000\000\000\000\000\000\000\011m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\001\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\000\000\000\000\000\000\000R\b\190\b\198\000\170\000\000\000\174\000\000\t\n\tN\000\000\tV\000\000\tf\000\000\tn\000\000\tv\t\162\001\198\t\170\000\000\001\153\002\234\000\000\001\153\001\153\000\000\000\000\001\153\000\000\000\000\000\000\000\000\023\166\t\178\023\194\000\000\000\000\000\000\000\000\000\000\000\000\001\153\023\206\000\000\001\153\001\153\001\153\001\153\t\186\000\000\000\000\000\000\003\154\001\153\001\153\000\000\001\153\001\153\001\153\000\000\000\000\023\230\000\000\000\000\003\n\000\000\000\000\003b\t\202\000\000\000\000\000\000\000\000\024\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\214\000\000\000\000\000\000\000\000\003\018\003:\000\000\000\000\000\000\001\245\000\000\000\000\000\000\001\245\000\000\000\000\000\000\000\000\000\000\003\026\000\000\024:\001\245\001\245\024\146\003\130\003\138\000\000\000\000\000\000\000\000\001\245\000\000\000\000\000\000\003B\000\000\024\170\003\"\000\000\0032\001\245\024\182\000\000\t\129\000\000\000\000\024\230\000\000\000\000\000\000\000\000\000\000\000\000\024\242\000\000\024\254\000\000\000\000\025\250\000\000\000\000\000\000\003J\000\000\001\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\006\026\030\001\245\000\000\000\000\000\000\026*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\001\245\001\245\000\000\000\000\003*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\129\000\000\001\245\000\000\000\000\001\245\001\245\001\245\001\245\000\000\000\000\000\000\000\000\000\000\001\245\001\245\000\000\003\146\003Z\001\245\003\018\003:\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\000\000\000\003\026\000\000\000\000\000\129\000\129\000\000\000\129\000\129\000\000\000\000\000\000\000i\000\129\000\000\000i\000\000\003B\000\000\000\000\003\"\000\000\0032\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000i\000i\000\000\000\000\000\000\000i\000\000\000\000\000\000\000i\003J\000\000\000\129\000\000\000\000\003\026\000\000\000\000\000i\000i\000\000\000i\000i\000\129\000\000\000\000\000\000\000i\000\000\000\000\000\000\000i\000\000\000\000\003\"\000\000\0032\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\129\000\129\000\000\000\000\003*\000\000\000i\000\000\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000i\000\000\000\129\000\129\000\129\000\129\000\000\000\000\000\000\000\000\000\000\000\129\000\129\000\000\000\129\003Z\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000\000\000\000\003*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000\000\000i\000\000\000\000\000i\000i\000i\000i\000\000\000\000\000\000\000\000\000\000\000i\000i\000\000\000i\000i\000i\000]\000]\000\000\000\000\000\000\000]\000\000\000\000\000\000\000]\000\000\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000]\000\000\000]\000]\000\000\000\000\000\000\000a\000]\000\000\000a\000\000\000]\000\000\000\000\003\"\000\000\000]\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000a\000\000\000\000\000\000\000a\000\000\000\000\000\000\000a\000]\000\000\000]\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000a\000a\000]\000\000\000\000\000\000\000a\000\000\000\000\000\000\000a\000\000\000\000\003\"\000\000\000a\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000\000\000]\000]\000\000\000\000\003*\000\000\000a\000\000\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000a\000\000\000]\000]\000]\000]\000\000\000\000\000\000\000\000\000\000\000]\000]\000\000\000]\000]\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000\000\003*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000\000\000e\000\000\000a\000\000\000\000\000a\000a\000a\000a\000\000\000\000\000\000\000\000\000\000\000a\000a\000\000\000a\000a\000a\000e\000e\000\000\000\000\000\000\000e\000\000\000\000\000\000\000e\000\000\000\000\000\000\000\000\000\000\003\026\000\000\000\000\000e\000e\000\000\000e\000e\000\000\000\000\000\000\000u\000e\000\000\000u\000\000\000e\000\000\000\000\003\"\000\000\0032\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\018\003:\000\000\000\000\000\000\000u\000\000\000\000\000\000\000u\000e\000\000\000e\000\000\000\000\003\026\000\000\000\000\000u\000u\000\000\000u\000u\000e\000\000\000\000\000\000\000u\000\000\000\000\000\000\000u\000\000\000\000\003\"\000\000\0032\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000\000\000e\000e\000\000\000\000\003*\000\000\003J\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000u\000\000\000e\000e\000e\000e\000\000\000\000\000\000\000\000\000\000\000e\000e\000\000\000e\000e\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\000\000\000\000\000u\000u\000\000\000\000\003*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000\000\000\000\000m\000\000\000u\000\000\000\000\000u\000u\000u\000u\000\000\000\000\000\000\000\000\000\000\000u\000u\000\000\000u\000u\000u\003\018\003:\000\000\000\000\000\000\000m\000\000\000\000\000\000\000m\000\000\000\000\000\000\000\000\000\000\003\026\000\000\000\000\000m\000m\000\000\000m\000m\000\000\000\000\000\000\000q\000m\000\000\000q\000\000\000m\000\000\000\000\003\"\000\000\0032\000m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\018\003:\000\000\000\000\000\000\000q\000\000\000\000\000\000\000q\000m\000\000\000m\000\000\000\000\003\026\000\000\000\000\000q\000q\000\000\000q\000q\000m\000\000\000\000\000\000\000q\000\000\000\000\000\000\000q\000\000\000\000\003\"\000\000\0032\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000\000\000\000\000m\000m\000\000\000\000\003*\000\000\003J\000\000\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000q\000\000\000m\000m\000m\000m\000\000\000\000\000\000\000\000\000\000\000m\000m\000\000\000m\000m\000m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000q\000\000\000\000\000q\000q\000\000\000\000\003*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000y\000\000\000\000\000y\000\000\000q\000\000\000\000\000q\000q\000q\000q\000\000\000\000\000\000\000\000\000\000\000q\000q\000\000\000q\000q\000q\003\018\003:\000\000\000\000\000\000\000y\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\003\026\000\000\000\000\000y\000y\000\000\000y\000y\000\000\000\000\000\000\003\n\000y\000\000\000\137\000\000\003B\000\000\000\000\003\"\000\000\0032\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\018\003:\000\000\000\000\000\000\000\137\000\000\000\000\000\000\000\137\003J\000\000\000y\000\000\000\000\003\026\000\000\000\000\000\137\000\137\000\000\000\137\003\138\000y\000\000\000\000\000\000\000\137\000\000\000\000\000\000\003B\000\000\000\000\003\"\000\000\0032\000\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000y\000y\000\000\000\000\003*\000\000\003J\000\000\000\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000y\000\137\000\000\000y\000y\000y\000y\000\000\000\000\000\000\000\000\000\000\000y\000y\000\000\000y\000y\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\137\000\137\000\000\000\000\003*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\n\000\000\000\000\000}\000\000\000\137\000\000\000\000\000\137\000\137\000\137\000\137\000\000\000\000\000\000\000\000\000\000\000\137\000\137\000\000\003\146\003Z\000\137\003\018\003:\000\000\000\000\000\000\000}\000\000\000\000\000\000\000}\000\000\000\000\000\000\000\000\000\000\003\026\000\000\000\000\000}\000}\000\000\000}\000}\000\000\000\000\000\000\003\n\000}\000\000\000\133\000\000\003B\000\000\000\000\003\"\000\000\0032\000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\018\003:\000\000\000\000\000\000\000\133\000\000\000\000\000\000\000\133\003J\000\000\000}\000\000\000\000\003\026\000\000\000\000\000\133\000\133\000\000\000\133\003\138\000}\000\000\000\000\000\000\000\133\000\000\000\000\000\000\003B\000\000\000\000\003\"\000\000\0032\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000}\000}\000\000\000\000\003*\000\000\003J\000\000\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000}\000\133\000\000\000}\000}\000}\000}\000\000\000\000\000\000\000\000\000\000\000}\000}\000\000\000}\003Z\000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\133\000\133\000\000\000\000\003*\002:\000\000\000\000\011\234\000\000\000\000\011\238\000\000\000\000\000\000\000\000\000\000\000\000\000\133\000\000\000\000\000\133\000\133\000\133\000\133\000\000\000\000\002F\000\000\000\000\000\133\000\133\000\000\000\133\003Z\000\133\011\242\012J\000\000\000\000\012\178\012\202\012\206\000\000\000\000\000\000\002n\000\000\002r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\018\002z\000\000\000\000\012\022\012\210\002\134\000\000\000\000\012\026\012\030\000\000\000\000\012\"\000\000\000\000\000\000\000\000\002:\000\000\000\000\011\234\000\000\000\000\011\238\000\000\000\000\000\000\000\000\012&\012*\000\000\000\000\000\000\000\000\012.\000\000\000\000\000\n\000\000\002F\000\000\000\000\000\000\000\000\000\000\000\000\0126\000\000\011\242\012J\000\000\000\000\012\178\012\202\012\206\006a\000\000\012\214\002n\012\242\002r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\018\002z\012:\000\000\012\022\012\210\002\134\000\000\012>\012\026\012\030\000\000\000\000\012\"\004\157\000\000\000\000\012B\002:\000\000\000\000\011\234\000\000\002\182\011\238\000\000\000\000\000\000\000\000\012&\012*\000\000\000\000\000\000\000\000\012.\000\000\000\000\000\n\000\000\002F\000\000\000\000\000\000\000\000\000\000\000\000\0126\000\000\011\242\012J\000\000\000\000\012\178\012\202\012\206\006a\000\000\012\214\002n\012\242\002r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\018\002z\012:\000\000\012\022\012\210\002\134\000\000\012>\012\026\012\030\000\000\000\000\012\"\b\169\000\000\000\000\012B\002:\000\000\000\000\011\234\000\000\002\182\011\238\000\000\000\000\000\000\000\000\012&\012*\000\000\000\000\000\000\000\000\012.\000\000\000\000\000\n\000\000\002F\000\000\000\000\000\000\000\000\000\000\000\000\0126\000\000\011\242\012J\000\000\000\000\012\178\012\202\r\174\006a\000\000\012\214\002n\012\242\002r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\018\002z\012:\000\000\012\022\012\210\002\134\000\000\012>\012\026\012\030\000\000\000\000\012\"\002I\000\000\000\000\012B\000\000\000\000\000\000\000\000\000\000\002\182\000\000\001\177\000\000\000\000\001\177\012&\012*\000\000\000\000\000\000\000\000\012.\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0126\001\177\001\177\000\000\000\000\000\000\001\177\000\000\000\000\006a\001\177\000\000\000\000\012\242\000\000\000\000\001\177\000\000\000\000\001\177\001\177\000\000\001\177\001\177\012:\000\000\000\000\000\000\001\177\000\000\012>\000\000\001\177\000\000\000\000\001\177\b\185\001\177\001\177\012B\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\177\r*\001\177\000\000\000\000\003\133\000\000\000j\003\133\000r\000\000\000\130\003\133\001\177\003\133\000\000\000\000\000\000\000\138\003\133\003\133\000\000\000\000\000\000\r2\rZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r:\001\177\015V\000\000\001\177\000\000\r\130\r\138\001\177\000\146\003\133\000\000\000\000\000\000\003\133\000\000\rb\000\000\000\000\rB\000\000\rR\000\000\000\000\000\000\001\177\000\000\001\177\000\000\000\000\003\133\000\000\000\000\015^\001\177\001\177\000\000\001\177\001\177\001\177\000\000\000\000\003\133\000\162\rj\000\000\000\000\000\000\000\000\000\000\003\133\000\000\000\000\000\000\003\133\003\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\133\003\129\000\000\000\182\003\129\000\190\000\000\000\206\003\129\000\000\003\129\003\133\000\000\000\000\000\214\003\129\003\129\000\000\rr\000\000\000\000\003\133\000\000\000\000\000\000\rJ\003\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\201\000\000\000\000\000\000\000\000\000\222\003\129\005\201\000\000\000\000\003\129\000\000\000\000\000\000\000\000\r\146\rz\000\000\000\000\000\000\003\133\000\000\000\000\003\133\003\133\001\153\003\129\003\133\001\153\000\000\000\000\000\000\003\133\003\133\000\000\000\000\000\000\003\133\003\129\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\001\153\001\153\003\129\003\129\000\000\001\153\000\000\000\000\000\000\001\153\000\000\000\000\000\000\000\000\003\129\001\153\000\000\000\000\000\000\000\000\000\000\001\153\001\153\000\000\000\000\003\129\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\001\153\003\129\001\153\001\153\000\000\000\000\003\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\001\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\003\129\000\000\000\000\003\129\003\129\000\000\000\000\003\129\000\000\000\000\000\000\000\000\003\129\003\129\000\000\000\000\000\000\003\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\002\226\000\000\001\153\001\153\000\000\000\000\001\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\001\153\000\000\001\153\000\000\000\000\000\000\000\000\003\166\001\153\001\153\000\000\001\153\001\153\001\153\000R\000V\000f\000\170\b\186\000\174\011\146\000\178\000\246\011\150\000\254\000\000\001\014\000\000\001\022\011\154\001\030\001\190\001\198\001\202\011\158\002:\000\000\000\000\002>\000\000\000\000\002B\000\000\000\000\000\000\000\000\000\000\000\000\001\210\000\000\000\000\016\030\000\000\000\000\000\000\000\000\000\000\002F\000\000\000\000\002J\000\000\000\000\001\218\000\000\000\000\002Z\002^\000\000\002f\000\000\011\230\000\000\000\000\000\000\000\000\002n\000\000\002r\000\000\000\000\000\000\000\000\001\234\000\000\000\000\002v\002z\000\000\012\226\002~\002\130\002\134\000\000\000\000\002\138\002\142\001\238\000\000\002\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\138\000\000\001\250\015\226\000\000\000\000\011\198\011\202\002\150\000\000\000\000\000\000\000\000\002\154\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\186\002\162\000\000\000\000\002\005\000\000\000\000\000\000\002\005\000\n\000\000\000\000\002\166\t\145\015\154\000\000\000\000\002\005\002\005\000\000\015\242\015\250\000\000\000\000\0015\002\170\002\005\0015\000\000\000\000\015\194\002\174\000\000\015\162\t\145\015\178\002\005\000\000\006Y\011\206\002\178\000\000\000\000\000\000\000\000\000\000\002\182\015\146\015\186\006Y\000\000\000\000\0015\000\000\006Y\000\000\0015\000\000\015\202\000\000\002\005\000\000\015\154\000\000\000\000\0015\0015\000\000\0015\0015\000\000\002\005\000\000\000\000\0015\000\000\000\000\000\000\015\194\000\000\000\000\015\162\000\000\015\178\0015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\210\000\000\000\000\002\005\000\000\000\000\000\000\015\170\015\202\000\000\0015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0015\000\000\000\000\002\005\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\005\002\005\000\000\016\002\015\218\002\005\000\000\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\015\210\000\178\000\246\0015\000\254\000\000\001\014\015\170\001\022\000\000\001\030\001\190\001\198\001\202\000\000\000\000\001\029\000\000\000\000\001\029\000\000\000\000\000\000\000\000\0015\000\000\0015\000\000\001\210\000\000\000\000\000\000\000\000\0015\0015\000\000\0015\015\218\0015\001\029\001\029\000\000\000\000\001\218\001\029\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\015\154\000\000\000\000\001\029\001\029\000\000\001\029\001\029\000\000\001\234\001\017\000\000\001\029\001\017\000\000\005>\001\029\000\000\000\000\015\162\000\000\015\178\001\029\001\238\000\000\000\000\000\000\005.\0052\000\000\000\000\000\000\000\000\001\017\001\017\000\000\000\000\000\000\001\017\000\000\000\000\000\000\001\017\000\000\001\029\000\000\001\029\000\000\001\017\000\000\000\000\001\017\001\017\000\000\001\017\001\017\000\000\001\029\000\000\000\000\001\017\000\000\000\000\000\000\001\017\000\000\000\000\015\162\000\000\001\017\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\001\029\000\000\000\000\000\000\015\170\001\017\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\001\029\b\241\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\029\000\000\001\029\001\029\001\029\000\000\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\001\017\000\178\000\246\001\017\000\254\000\000\001\014\015\170\001\022\000\000\001\030\001\190\001\198\001\202\000\000\000\000\001\021\000\000\000\000\001\021\000\000\000\000\000\000\000\000\001\017\000\000\001\017\000\000\001\210\000\000\000\000\000\000\000\000\001\017\001\017\000\000\001\017\001\017\001\017\001\021\001\021\000\000\000\000\001\218\001\021\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\001\021\000\000\001\021\001\021\000\000\001\234\001\025\000\000\001\021\001\025\000\000\027\194\001\021\000\000\000\000\015\162\000\000\001\021\001\021\001\238\000\000\000\000\000\000\027\182\0052\000\000\000\000\000\000\000\000\001\025\001\025\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\025\000\000\001\021\000\000\001\021\000\000\015\154\000\000\000\000\001\025\001\025\000\000\001\025\001\025\000\000\001\021\000\000\000\000\001\025\000\000\000\000\000\000\001\025\000\000\000\000\015\162\000\000\015\178\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\021\000\000\000\000\000\000\015\170\001\025\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\000\000\001\021\b\213\001\021\000\000\000\000\000\000\000\000\000\000\000\000\001\021\001\021\000\000\001\021\001\021\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\000\000\001\025\000\000\000\000\000\000\015\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\001)\000\000\000\000\000\000\000\000\001\025\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\001\025\001\025\001\025\015\146\015\186\000\000\000\000\000\000\001)\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\015\154\000\000\000\000\001)\001)\000\000\001)\001)\000\000\000\000\001!\000\000\001)\001!\000\000\000\000\001)\000\000\000\000\015\162\000\000\015\178\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\186\000\000\000\000\000\000\001!\000\000\000\000\000\000\001!\000\000\015\202\000\000\001)\000\000\015\154\000\000\000\000\001!\001!\000\000\001!\001!\000\000\001)\000\000\000\000\001!\000\000\000\000\000\000\001!\000\000\000\000\015\162\000\000\015\178\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\001)\000\000\000\000\000\000\015\170\001!\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001!\000\000\000\000\001)\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\001)\001)\000\000\001)\001)\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001!\000\000\000\000\001!\000\000\000\000\000\000\015\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\000\000\001%\000\000\000\000\000\000\000\000\001!\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\000\001!\001!\000\000\001!\001!\001!\015\146\015\186\000\000\000\000\000\000\001%\000\000\000\000\000\000\001%\000\000\000\000\000\000\000\000\000\000\015\154\000\000\000\000\001%\001%\000\000\001%\001%\000\000\000\000\001-\000\000\001%\001-\000\000\000\000\001%\000\000\000\000\015\162\000\000\015\178\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\186\000\000\000\000\000\000\001-\000\000\000\000\000\000\001-\000\000\015\202\000\000\001%\000\000\015\154\000\000\000\000\001-\001-\000\000\001-\001-\000\000\001%\000\000\000\000\001-\000\000\000\000\000\000\015\194\000\000\000\000\015\162\000\000\015\178\001-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\000\000\001%\000\000\000\000\000\000\015\170\015\202\000\000\001-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001-\000\000\000\000\001%\000\000\001%\000\000\000\000\000\000\000\000\000\000\000\000\001%\001%\000\000\001%\001%\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\210\000\000\000\000\001-\000\000\000\000\000\000\015\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\138\000\000\000\000\001=\000\000\000\000\000\000\000\000\001-\000\000\001-\000\000\000\000\000\000\000\000\000\000\000\000\001-\001-\000\000\001-\001-\001-\015\146\015\186\000\000\000\000\000\000\001=\000\000\000\000\000\000\001=\000\000\000\000\000\000\000\000\000\000\015\154\000\000\000\000\001=\001=\000\000\001=\015\250\000\000\000\000\015\138\000\000\001=\0011\000\000\000\000\015\194\000\000\000\000\015\162\000\000\015\178\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\186\000\000\000\000\000\000\0011\000\000\000\000\000\000\0011\000\000\015\202\000\000\001=\000\000\015\154\000\000\000\000\0011\0011\000\000\0011\0011\000\000\001=\000\000\000\000\0011\000\000\000\000\000\000\015\194\000\000\000\000\015\162\000\000\015\178\0011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\210\000\000\000\000\001=\000\000\000\000\000\000\015\170\015\202\000\000\0011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\000\000\000\000\001=\000\000\001=\000\000\000\000\000\000\000\000\000\000\000\000\001=\001=\000\000\016\002\015\218\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\210\000\000\000\000\0011\000\000\000\000\000\000\015\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\138\000\000\000\000\0019\000\000\000\000\000\000\000\000\0011\000\000\0011\000\000\000\000\000\000\000\000\000\000\000\000\0011\0011\000\000\0011\015\218\0011\015\146\015\186\000\000\000\000\000\000\0019\000\000\000\000\000\000\0019\000\000\000\000\000\000\000\000\000\000\015\154\000\000\000\000\0019\0019\000\000\0019\015\250\000\000\000\000\000\000\000\000\0019\000\000\000\000\022v\015\194\000\000\000\000\015\162\000\000\015\178\0019\000\000\000\000\000\000\000\000\022z\000\000\000\000\000\000\000\000\000\000\000\000\024\186\000\000\000\000\022~\000\000\022\130\011\209\011\209\000\000\000\000\015\202\000\000\0019\022\134\000\000\000\000\000\000\000\000\000\000\022\138\000\000\000\000\022\146\0019\000\000\000\000\022\150\000\000\000\000\000\000\000\000\000\000\022\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024j\000\000\011\209\000\000\022\158\000\000\015\210\000\000\000\000\0019\000\000\000\000\000\000\015\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\209\0019\022\162\0019\000\000\022\166\000\000\022v\000\000\000\000\0019\0019\000\000\0019\015\218\0019\023\242\000\000\022\170\022z\000\000\000\000\000\000\022\174\000\n\022\178\000\000\022\182\022\186\022~\022\190\022\130\000\000\000\000\000\000\000\000\011\165\022\194\000\000\022\134\022\198\000\000\000\000\000\000\000\000\022\138\000\000\000\000\022\146\000\000\000\000\000\000\022\150\000\000\000\000\022\202\000\000\000\000\022\154\000\000\022\206\022\210\011\209\000\000\000\000\000\000\000\000\000\000\000\000\025\022\000\000\000\000\011\165\000\000\022\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\165\000\000\022\162\000\000\000\000\022\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002:\000\000\000\000\002>\000\000\022\170\002B\000\000\000\000\000\000\022\174\000\n\022\178\000\000\022\182\022\186\t\145\022\190\000\000\000\000\000\000\000\000\002F\000\000\022\194\002J\000\000\022\198\000\000\000\000\000\000\002Z\002^\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\002n\022\202\002r\000\000\000\000\000\000\022\206\022\210\011\165\000\000\002v\002z\000\000\000\000\002~\002\130\002\134\000\000\015M\002\138\002\142\015M\000\000\002\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\150\015M\015M\000\000\000\000\002\154\000\000\000\000\000\n\006^\000\000\000\000\000\000\000\000\000\000\000\000\015M\002\162\000\000\000\000\015M\000\000\015M\015M\000\000\000\000\006f\000\000\002\166\007^\000\000\000\000\015M\000\000\000\000\015M\000\000\015M\000\000\000\000\000\000\002\170\000\000\000\000\000\000\nZ\006A\002\174\000\000\000\000\n\158\006A\t\145\000\000\006A\000\000\002\178\006A\006A\000\000\015M\006A\002\182\006A\000\000\000\000\000\000\000\000\006A\006A\006A\000\000\000\000\006A\000\000\006A\000\000\000\000\006A\000\000\007j\000\000\000\000\006A\006A\006A\000\000\006A\000\000\006A\000\000\006A\006A\006A\000\000\000\000\006A\006A\006A\006A\015M\015M\006A\015M\000\000\007n\006A\015M\006A\n*\n\222\006A\006A\006A\000Z\000\000\007v\000\000\006A\000Z\000\000\015M\001\170\006A\011\018\015M\015M\000Z\006A\000Z\006A\000\000\015M\006A\000\000\006A\015M\015M\006A\006A\006A\000\000\006A\006A\006A\006A\000\000\006A\006A\006A\000\000\006A\006A\000\000\006A\006A\006A\006A\006A\000\000\000\000\006A\006A\006A\000\000\006A\006A\006A\006A\011R\006A\006A\000\000\006A\000Z\006A\006A\006A\006A\000Z\006A\006A\000\000\006A\006A\000\000\000\000\000\000\000\000\000\000\006A\000\000\000\000\006A\000\000\000\000\000\000\000\000\006A\006A\006A\006A\011~\006A\006A\006A\006A\000Z\006A\000\000\000\000\006A\000\000\006A\006A\000\000\006A\006A\000\000\000\000\006A\006A\006A\006A\000\000\006A\006A\006A\006A\000\000\006A\006A\000\000\006A\000\000\006A\006A\000\000\006A\000\000\006A\000\000\000\000\006A\002:\000\000\000\000\002>\000\000\006A\002B\000\000\000\000\006A\006A\006A\006A\000\000\006A\006A\019\202\006A\000\000\006A\006A\000\000\002F\000\000\006A\002J\000\000\006A\000\000\000\000\000\000\002Z\002^\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\002n\006A\002r\000\000\000\000\000\000\006A\006A\000\000\000\000\002v\002z\000\000\000\000\002~\002\130\002\134\000\000\000\000\002\138\002\142\000\000\000\000\002\146\025\002\000\000\025\n\000\000\000\000\000\000\000\000\000\000\025\018\000\000\000\000\000\000\000\000\0252\000\000\000\000\002\150\000\000\000\000\000\000\022z\002\154\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\022~\000\000\022\130\002\162\000\000\000\000\000\000\000\000\000\000\000\000\022\134\000\000\000\000\000\000\002\166\000\000\022\138\000\000\000\000\022\146\000\000\000\000\000\000\022\150\000\000\002:\000\000\002\170\002>\022\154\000\000\002B\000\000\002\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\022\158\025:\002F\002\182\000\000\002J\000\000\000\000\000\000\000\000\000\000\002Z\b6\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\002n\000\000\002r\000\000\000\000\000\000\022\162\000\000\000\000\022\166\002v\002z\000\000\000\000\002~\002\130\002\134\000\000\000\000\002\138\002\142\000\000\022\170\002\146\000\000\000\000\000\000\022\174\000\n\022\178\000\000\022\182\022\186\000\000\022\190\000\000\000\000\000\000\000\000\000\000\002\150\022\194\000\000\000\000\022\198\002\154\000\000\000\000\000\n\000\000\000\000\000\000\002:\000\000\000\000\002>\000\000\002\162\002B\022\202\000\000\000\000\000\000\000\000\022\206\022\210\000\000\000\000\002\166\000\000\000\000\000\000\000\000\000\000\002F\000\000\000\000\002J\000\000\000\000\000\000\002\170\000\000\002Z\002\158\000\000\002f\002\174\000\000\000\000\000\000\000\000\000\000\002n\000\000\002r\002\178\000\000\000\000\000\000\000\000\000\000\002\182\002v\002z\000\000\007\234\002~\002\130\002\134\000\000\000\000\002\138\002\142\000\000\004e\002\146\000\000\004e\000\000\000\000\004e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\150\000\000\000\000\000\000\004e\002\154\000\000\004e\000\n\000\000\000\000\000\000\000\000\004e\004e\000\000\004e\002\162\000\000\000\000\000\000\000\000\000\000\004e\000\000\004e\000\000\000\000\002\166\000\000\000\000\000\000\000\000\004e\004e\000\000\000\000\004e\004e\004e\000\000\002\170\004e\004e\000\000\022v\004e\002\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\178\022z\000\000\000\000\000\000\000\000\002\182\004e\000\000\000\000\000\000\022~\004e\022\130\000\000\004e\000\000\000\000\000\000\000\000\000\000\022\134\000\000\000\000\004e\000\000\000\000\022\138\000\000\000\000\022\146\000\000\000\000\000\000\022\150\000\000\000\000\000\000\000\000\000\000\022\154\000\000\000\000\000\000\000\000\000\000\006A\000\000\004e\006A\000v\023\238\000\000\006A\004e\006A\022\158\000\000\000\000\000\000\006A\006A\000\000\004e\000\000\000\000\000\000\000\000\000\000\004e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\165\000\000\022\162\000\000\000\000\022\166\006A\000\000\000\000\006A\000\194\000\000\000\000\006A\000\000\006A\000\000\000\000\022\170\000\000\006A\006A\000\000\022\174\000\n\022\178\000\000\022\182\022\186\006A\022\190\000\000\006A\001\242\000\000\006A\001\002\022\194\000Z\006A\022\198\006A\000\000\000\000\000\000\000\000\006A\006A\000\000\006A\006A\000\000\000\000\006A\006A\022\202\000\000\000\000\000\000\000\000\022\206\022\210\011\165\000\000\000\000\006A\000\000\000\000\000\000\000\000\006A\000\000\000\000\000\000\004\182\000\000\006A\000\000\000\000\000Z\006A\000\000\006A\000\000\000\000\000\000\006A\000\000\000\000\000\000\006A\006A\000\000\000\000\006A\006A\006A\000\000\000\000\000\000\004\246\000\000\000\000\000\000\000\000\000Z\006A\000\000\006A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006A\006A\000\000\000\000\006A\006A\000\000\000\000\006A\000\000\000\000\006A\006A\000\000\000\000\006A\006A\000\000\000\000\000\000\006A\006A\000\000\000\000\000\000\006A\000\000\006A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006A\000\000\000\000\000\000\000\000\006A\000\000\000\000\000\000\000\000\000\000\000\000\006A\000\000\000\000\006A\006A\000\000\000\000\006A\000\000\000\000\000\000\000\000\006A\006A\000\000\002:\000\000\006A\002N\000\000\000\000\002R\000\000\000\000\000\000\000\000\006A\000\000\000\000\006A\006A\000\000\000\000\006A\000\000\000\000\000\000\002F\006A\006A\002J\000\000\000\000\006A\000\000\000\000\002V\002j\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\002n\000\000\002r\002:\000\000\000\000\002N\000\000\000\000\002R\006\018\002z\000\000\000\000\006\022\002\130\002\134\000\000\000\000\006\030\006\"\000\000\000\000\006&\000\000\002F\000\000\000\000\002J\000\000\000\000\000\000\000\000\000\000\002V\b\030\000\000\002f\000\000\000\000\006*\000\000\000\000\000\000\002n\006.\002r\000\000\000\n\000\000\000\000\000\000\000\000\000\000\006\018\002z\000\000\006>\006\022\002\130\002\134\000\000\000\000\006\030\006\"\006A\000\000\006&\006A\003\254\000\000\006A\006A\000\000\006A\004B\000\000\000\000\006A\006A\006A\006B\006A\004\130\006*\006A\006A\006F\006A\006.\000\000\000\000\000\n\006A\006A\000\000\006J\000\000\000\000\000\000\000\000\006>\002\182\000\000\000\000\000\000\000\000\000\000\000\000\006A\000\000\000\000\000\000\006A\000\000\006A\000\000\000\000\000\000\006A\000\000\000\000\000\000\006A\000\000\006B\000\000\006A\000\000\006A\000\000\006F\000\000\005\218\000\000\006A\000\000\000\000\000Z\bf\006J\006A\000\000\006A\000Z\000\000\002\182\006A\000\000\006A\000\189\000\000\000Z\006A\006A\006A\000\000\000\000\000\000\006A\006A\000\000\000\000\006A\000\000\006A\000\000\006A\006A\000\000\000\000\006A\000\000\r2\rZ\000\000\006A\000\000\000\000\006A\000\000\000\000\006A\000\000\000\000\000\000\006A\000\000\r:\000\000\006A\006A\006A\000\000\000\189\000\189\000\000\006A\000\000\000\000\006A\000\000\000\000\000\000\rb\006A\000\000\rB\000\000\rR\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006A\000\000\000\000\006A\006A\000\000\006A\006A\rj\006A\006A\000\000\006A\006A\006A\000\000\000\000\006A\006A\006A\000\000\006A\002:\006A\000\000\002N\006A\006A\002R\000\000\000\000\006A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002F\000\000\000\000\002J\rr\000\000\000\000\000\000\000\000\002V\0062\rJ\002f\000\000\000\000\000\000\000\000\000\000\000\000\002n\000\000\002r\000\000\000\000\000\000\000\189\000\000\000\000\000\000\006\018\002z\000\000\000\189\006\022\002\130\002\134\000\000\000\000\006\030\006\"\000\189\rz\006&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006*\000\000\000\000\000\000\000\000\006.\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006>\000R\000V\000f\000\170\000\000\000\174\011\146\000\178\000\246\011\150\000\254\000\000\001\014\026\246\001\022\011\154\001\030\001\190\001\198\001\202\011\158\026\250\000\000\006B\002:\000\000\000\000\011\234\000\000\006F\011\238\000\000\000\000\000\000\001\210\000\000\000\000\000\000\006J\000\000\000\000\000\000\000\000\000\000\002\182\000\000\002F\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\011\242\011\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002n\000\000\002r\000\000\001\234\000\000\000\000\000\000\000\000\000\000\012\018\002z\000\000\000\000\012\022\002\130\002\134\000\000\001\238\012\026\012\030\000\000\000\000\012\"\000\000\000\000\000\000\000\000\002:\000\000\000\000\011\234\000\000\000\000\011\238\000\000\000\000\000\000\000\000\012&\012*\000\000\000\000\000\000\000\000\012.\000\000\000\000\000\n\000\000\002F\000\000\000\000\000\000\000\000\000\000\000\000\0126\000\000\011\242\0122\000\000\000\n\000\000\000\000\000\000\000\000\005\005\000\000\002n\000\000\002r\002:\000\000\000\000\011\234\000\000\000\000\011\238\012\018\002z\012:\000\000\012\022\002\130\002\134\000\000\012>\012\026\012\030\000\000\000\000\012\"\000\000\002F\000\000\012B\000\000\000\000\000\000\000\000\000\000\002\182\011\242\012J\000\000\000\000\000\000\012&\012*\000\000\000\000\000\000\002n\012.\002r\000\000\000\n\000\000\000\000\000\000\000\000\000\000\012\018\002z\000\000\0126\012\022\002\130\002\134\000\000\000\000\012\026\012\030\000\000\000\000\012\"\000\000\000\000\000\000\000\000\002:\000\000\000\000\014\166\000\000\000\000\014\170\000\000\000\000\012:\000\000\012&\012*\000\000\000\000\012>\000\000\012.\000\000\000\000\000\n\000\000\002F\000\000\012B\000\000\000\000\000\000\000\000\0126\002\182\014\174\016\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002n\000\000\002r\002:\000\000\000\000\014\166\000\000\000\000\014\170\014\198\002z\012:\000\000\014\202\002\130\002\134\000\000\012>\014\206\014\210\000\000\000\000\014\214\000\000\002F\000\000\012B\000\000\000\000\000\000\000\000\000\000\002\182\014\174\014\178\000\000\000\000\000\000\012&\014\218\000\000\000\000\000\000\002n\014\222\002r\000\000\000\n\000\000\000\000\000\000\000\000\000\000\014\198\002z\000\000\014\230\014\202\002\130\002\134\000\000\000\000\014\206\014\210\000\000\000\000\014\214\000\000\000\000\000\000\000\000\002:\000\000\000\000\014\166\000\000\000\000\014\170\000\000\000\000\014\234\000\000\012&\014\218\000\000\000\000\014\238\000\000\014\222\000\000\000\000\000\n\000\000\002F\000\000\014\242\000\000\000\000\000\000\000\000\014\230\002\182\014\174\014\226\000\000\000\000\011\146\000\000\000\000\011\150\000\000\000\000\002n\027\n\002r\011\154\000\000\000\000\000\000\000\000\011\158\027\014\014\198\002z\014\234\000\000\014\202\002\130\002\134\000\000\014\238\014\206\014\210\000\000\t\137\014\214\000\000\000\000\000\000\014\242\000\000\000\000\000\000\000\000\000\000\002\182\t\137\000\000\000\000\000\000\000\000\012&\014\218\000\000\017\234\000\000\t\137\014\222\t\137\000\000\000\n\000\000\000\000\000\000\000\000\000\000\t\137\000\000\000\000\014\230\017\238\000\000\t\137\000\000\bI\t\137\000\000\000\000\000\000\t\137\023J\000\000\000\000\000\000\000\000\t\137\bI\000\000\000\000\000\000\002z\000\000\000\000\014\234\014*\002\134\bI\000\000\bI\014\238\000\000\t\137\000\000\000\000\000\000\000\000\bI\000\000\014\242\000\000\000\000\000\000\bI\000\000\002\182\bI\000\000\000\000\000\000\bI\000\000\000\000\000\000\000\000\000\000\bI\000\000\000\n\t\137\000\000\000\000\t\137\005\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bI\025:\000\000\t\137\000\000\000\000\000\000\000\000\t\137\t\137\t\137\000\000\t\137\t\137\000\000\t\137\000\000\000\000\000\000\000\000\000\000\000\000\t\137\000\000\000\000\t\137\000\000\bI\000\000\000\000\bI\000\000\007\017\000\000\000\000\000\000\t\253\t\253\000\000\000\000\t\137\t\253\000\000\bI\007\017\t\137\t\137\000\000\bI\bI\bI\000\000\bI\bI\007\017\bI\007\017\000\000\000\000\000\000\000\000\000\000\bI\000\000\007\017\bI\000\000\000\000\000\000\000\000\007\017\000\000\000\000\007\017\000\000\000\000\023\210\007\017\000\000\000\000\bI\000\000\000\000\007\017\000\000\bI\bI\000\000\022z\000\000\000\000\000\000\000\000\000\000\026>\000\000\000\000\000\000\022~\007\017\022\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\134\000\000\000\000\000\000\000\000\000\000\022\138\000\000\000\000\022\146\000\000\000\000\000\000\022\150\000\000\000\000\000\000\000\000\007\017\022\154\000\000\007\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\017\022\158\000\000\000\000\000\000\007\017\007\017\007\017\000\000\007\017\007\017\000\000\007\017\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\000\000\000\007\017\023\234\000\000\000\000\000\000\000\000\022\162\000\000\000\000\022\166\000\000\000\000\000\000\022z\000\000\007\017\000\000\000\000\000\000\000\000\007\017\007\017\022\170\022~\000\000\022\130\000\000\022\174\000\n\022\178\000\000\022\182\022\186\022\134\022\190\000\000\000\000\000\000\000\000\022\138\000\000\022\194\022\146\000\000\022\198\022v\022\150\000\000\000\000\000\000\000\000\000\000\022\154\000\000\000\000\000\000\000\000\022z\000\000\022\202\000\000\000\000\000\000\000\000\022\206\022\210\000\000\022~\022\158\022\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\134\000\000\000\000\000\000\000\000\000\000\022\138\000\000\000\000\022\146\000\000\000\000\000\000\022\150\000\000\000\000\000\000\000\000\022\162\022\154\000\000\022\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\170\024\150\000\000\000\000\000\000\022\174\000\n\022\178\000\000\022\182\022\186\000\000\022\190\000\000\000\000\000\000\000\000\000\000\000\000\022\194\000\000\000\000\022\198\022v\000\000\000\000\000\000\000\000\022\162\000\000\000\000\022\166\000\000\000\000\000\000\022z\000\000\022\202\000\000\000\000\000\000\000\000\022\206\022\210\022\170\022~\000\000\022\130\000\000\022\174\000\n\022\178\000\000\022\182\022\186\022\134\022\190\000\000\000\000\000\000\000\000\022\138\000\000\022\194\022\146\000\000\022\198\000\000\022\150\000\000\000\000\000\000\000\000\000\000\022\154\000\000\000\000\000\000\000\000\000\000\000\000\022\202\000\000\000\000\000\000\000\000\022\206\022\210\000\000\000\000\026\n\000\000\000\000\000\000\000\000\000\000\000\000\004}\004}\004}\004}\000\000\004}\000\000\004}\004}\000\000\004}\000\000\004}\000\000\004}\000\000\004}\004}\004}\004}\022\162\000\000\000\000\022\166\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000\000\000\000\004}\000\000\022\170\000\000\000\000\000\000\000\000\022\174\000\n\022\178\000\000\022\182\022\186\000\000\022\190\004}\000\000\000\000\000\000\000\000\000\000\022\194\000\000\000\000\022\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004}\000\000\000\000\000\000\022\202\000\000\004}\000\000\000\000\022\206\022\210\000\000\000\000\000\000\004}\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\004}\001\014\000\000\001\022\000\000\001\030\001\190\001\198\001\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\210\000\000\000R\000V\000f\000\170\000\000\000\174\004}\000\178\000\246\000\000\000\254\000\000\001\014\001\218\001\022\000\000\001\030\001\190\001\198\001\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\001\210\000\000\000\000\000\000\000\000\001\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\001\218\000\000\004}\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\001\250\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\001\234\001\030\001\190\001\198\001\202\000\000\001\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\000\000\000\000\000\000\001\210\000\000\000\000\000\n\000\000\000\000\000\000\000\000\001\250\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\n\000\000\005*\000\000\000\000\000\000\000\000\000\000\000\000\ry\001\238\000\000\000\000\000\000\005.\0052\000R\000V\000f\000\170\001\254\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\001\190\001\198\001\202\000\000\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\002}\000\178\000\246\000\000\000\254\001\210\001\014\000\000\001\022\000\000\001\030\001\190\001\198\001\202\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\210\0056\000\000\000\000\000\000\022v\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\001\218\000\000\022z\005*\000\000\000\000\000\000\000\000\004\173\000\000\000\000\001\238\022~\000\000\022\130\005.\0052\000\000\000\000\000\000\001\234\000\000\022\134\000\000\000\000\000\000\005*\000\000\000\000\000\000\000\000\022\146\000\000\000\000\001\238\022\150\000\000\000\000\005.\0052\000\000\022\154\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\022\158\001\030\001\190\001\198\001\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0056\001\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\162\000\000\000\000\022\166\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\b\225\0056\000\000\022\170\000\000\000\000\000\000\000\000\022\174\0266\022\178\000\000\022\182\022\186\001\234\022\190\000\000\000\000\000\000\000\000\027\178\000\000\022\194\002i\000\000\022\198\000\000\000\000\001\238\000\000\000\000\000\000\027\182\0052\000\000\000\000\000\000\000\000\000\000\000\000\022\202\000\000\000\000\000\000\000\000\022\206\022\210\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\001\190\001\198\001\202\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\001\210\001\022\000\000\001\030\001\190\001\198\001\202\000\000\000\000\000\000\000\000\027\186\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\165\000\000\001\234\001\218\000\000\000\000\000\000\000\000\027\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\000\000\000\000\027\182\0052\000\000\001\234\000\000\000\000\000\000\000\000\000\000\027\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\000\000\000\000\027\182\0052\000R\000V\000f\000\170\000\000\000\174\001\169\000\178\000\246\001\169\000\254\000\000\001\014\000\000\001\022\000\000\001\030\001\190\001\198\001\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\169\001\169\000\000\000\000\000\000\001\210\000\000\000\000\027\186\000\000\000\000\000\000\000\000\000\000\000\000\001\169\000\000\000\000\000\000\001\169\001\218\001\169\001\169\000\000\000\000\0151\000\000\000\000\000\000\027\186\b\197\001\169\000\000\000\000\001\169\000\000\001\169\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\001\246\000\000\0151\0151\000\000\002Y\000\000\000\000\001\238\000\000\012b\000\000\000\000\001\169\000\000\000\000\000\000\0151\000\000\000\000\000\000\001\250\000\000\0151\0151\000\000\000\000\012j\000\000\000\000\012v\000\000\000\000\0151\000\000\000\000\0151\000\000\0151\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\001\169\006z\000\000\001\169\000\000\000\000\000\000\001\169\0151\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\178\000\000\000\000\007\n\000\000\001\169\000\000\000\000\000\000\001\169\001\169\000\000\012\130\000\000\000\000\000\000\006\130\000\000\000\000\000\000\001\169\001\169\000\000\006\186\006\226\000\000\000\000\000\000\002u\000\000\000\000\000\000\0151\000\000\000\000\000\000\000\000\012\134\006\194\0151\000\000\000\000\001\253\000\000\007\026\007\"\000\000\000\000\012\142\000\249\000\000\000\000\000\249\0151\006\234\000\000\000\000\006\202\000\000\006\218\0151\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0151\0151\000\000\000\000\006\186\006\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\242\000\000\000\000\000\000\000\000\006\194\000\000\000\000\000\000\000\249\000\000\000\249\000\249\000\225\000\000\000\000\000\225\000\000\000\000\000\000\000\000\006\234\000\000\000\000\006\202\000\000\006\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\225\000\225\000\000\000\000\006\250\000\000\000\000\001\253\000\000\000\000\000\000\006\210\000\000\006\242\000\000\006\194\000\000\000\000\000\000\000\225\000\000\000\225\000\225\000\213\000\000\001\253\000\213\000\000\000\000\001\253\001\253\000\225\000\000\000\000\006\202\000\000\006\218\000\000\000\000\000\000\007*\007\002\000\000\000\000\000\000\000\000\000\213\000\213\000\000\000\000\000\000\000\000\000\000\006\250\000\000\000\000\000\249\000\000\000\000\000\225\006\210\000\213\000\000\000\000\000\000\000\213\000\000\000\213\000\213\000\217\000\000\000\000\000\217\000\000\000\249\000\000\000\000\000\213\000\249\000\249\006\202\000\000\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\249\007\002\000\000\000\217\000\217\000\000\000\000\000\000\000\000\000\000\000\225\000\000\000\000\000\225\000\000\000\000\000\213\006\210\000\217\000\000\000\000\000\000\000\217\000\000\000\217\000\217\000\221\000\000\000\000\000\221\000\000\000\225\000\000\000\000\000\217\000\225\000\225\006\202\000\000\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\225\000\225\000\000\000\221\000\221\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\000\213\000\000\000\000\000\217\006\210\006\194\000\000\000\000\000\000\000\221\000\000\000\221\000\221\000\237\000\000\000\000\000\237\000\000\000\213\000\000\000\000\000\221\000\213\000\213\006\202\000\000\006\218\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\213\000\000\006\186\006\226\000\000\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\217\000\000\000\000\000\221\006\210\006\194\000\000\000\000\000\000\000\237\000\000\000\237\000\237\000\229\000\000\000\000\000\229\000\000\000\217\000\000\000\000\000\237\000\217\000\217\006\202\000\000\006\218\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\217\000\000\006\186\006\226\000\000\000\000\000\000\000\000\000\000\000\221\000\000\000\000\000\221\000\000\000\000\006\242\006\210\006\194\000\000\000\000\000\000\000\229\000\000\000\229\000\229\000\233\000\000\000\000\000\233\000\000\000\221\000\000\000\000\000\229\000\221\000\221\006\202\000\000\006\218\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\221\000\000\006\186\006\226\000\000\000\000\000\000\000\000\000\000\000\237\000\000\000\000\000\237\000\000\000\000\000\229\006\210\006\194\000\000\000\000\000\000\000\233\000\000\000\233\000\233\000\241\000\000\000\000\000\241\000\000\000\237\000\000\000\000\000\233\000\237\000\237\006\202\000\000\006\218\000\000\000\000\000\000\000\000\000\000\000\000\000\237\000\237\000\000\006\186\006\226\000\000\000\000\000\000\000\000\000\000\000\229\000\000\000\000\000\229\000\000\000\000\006\242\006\210\006\194\000\000\000\000\000\000\000\241\000\000\000\241\000\241\006\178\000\000\000\000\001\001\000\000\000\229\000\000\000\000\006\234\000\229\000\229\006\202\000\000\006\218\000\000\000\000\000\000\000\000\000\000\000\000\000\229\000\229\000\000\006\186\006\226\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\000\000\233\000\000\000\000\006\242\006\210\006\194\000\000\000\000\000\000\001\001\000\000\001\001\007\"\006\178\000\000\000\000\000\245\000\000\000\233\000\000\000\000\006\234\000\233\000\233\006\202\000\000\006\218\000\000\000\000\000\000\000\000\000\000\000\000\000\233\000\233\000\000\006\186\006\226\000\000\000\000\000\000\000\000\000\000\006\250\000\000\000\000\000\241\000\000\000\000\006\242\006\210\006\194\000\000\000\000\000\000\000\245\000\000\000\245\000\245\006\178\000\000\000\000\000\253\000\000\000\241\000\000\000\000\006\234\000\241\000\241\006\202\000\000\006\218\000\000\000\000\000\000\000\000\000\000\000\000\000\241\000\241\000\000\006\186\006\226\000\000\000\000\000\000\000\000\000\000\006\250\000\000\000\000\001\001\000\000\000\000\006\242\006\210\006\194\000\000\000\000\000\000\000\253\000\000\000\253\007\"\000\165\000\000\000\000\000\000\000\153\001\001\000\000\000\000\006\234\001\001\001\001\006\202\000\000\006\218\000\000\000\000\000\000\000\000\000\000\000\000\007*\007\002\000\000\000\165\000\165\000\000\000\000\000\153\000\153\000\000\006\250\000\000\000\000\000\245\000\000\000\000\006\242\006\210\r:\000\000\000\000\000\000\000\153\000\000\000\165\000\165\000\157\000\000\000\153\000\153\000\161\000\245\000\000\000\000\000\165\000\245\000\245\rB\000\153\rR\000\000\rB\000\000\000\153\000\000\000\000\000\245\007\002\000\000\000\157\000\157\000\000\000\000\000\161\000\161\000\000\006\250\000\000\000\000\000\253\000\000\000\000\000\165\006\210\000\157\000\000\000\153\000\000\r:\000\000\000\157\000\157\000\177\000\000\000\161\000\161\000\000\000\253\000\000\000\000\000\157\000\253\000\253\rB\000\161\000\157\000\000\rB\000\000\rR\000\000\000\000\000\253\007\002\000\000\r2\rZ\000\000\000\000\000\000\000\000\000\000\000\165\000\000\000\000\000\000\000\153\000\000\000\157\rJ\r:\000\000\000\161\rJ\000\000\000\000\000\177\000\177\000\000\000\000\000\000\000\000\000\000\000\165\000\000\000\000\000\177\000\153\000\000\rB\000\165\rR\000\000\000\000\000\153\000\000\000\000\000\000\000\165\000\165\000\000\000\000\000\153\000\153\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\161\000\000\rj\rJ\000\000\000\000\000\000\rJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\169\000\000\000\157\000\000\000\000\000\000\000\161\000\000\000\000\000\157\000\000\000\000\000\000\000\161\000\000\000\000\000\000\000\157\000\157\000\000\000\000\000\161\000\161\r2\rZ\000\000\000\000\000\177\000\000\000\000\000\000\000\000\000\000\000\000\rJ\000\000\000\000\000\000\r:\000\000\000\000\000\000\000\173\000\000\000\169\000\169\000\181\000\000\000\177\000\000\000\000\000\000\000\000\000\000\000\169\000\177\000\000\rB\000\000\rR\000\000\000\000\000\000\000\177\000\177\r2\rZ\000\000\000\000\r2\rZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r:\000\000\000\169\000\000\r:\000\000\000\173\000\173\r*\000\000\000\181\000\181\r*\000\000\000\000\000\000\000\173\000\000\000\000\rB\rb\rR\000\000\rB\000\000\rR\000\000\000\000\000\000\000\000\000\000\r2\rZ\000\000\000\000\r2\rZ\000\000\000\000\000\000\000\000\000\000\000\169\000\000\rj\000\000\r:\000\000\rj\rJ\r:\000\000\000\197\r\138\000\000\000\000\000\185\000\185\000\000\000\000\000\000\000\000\rb\000\169\000\000\rB\rb\rR\000\000\rB\000\169\rR\000\000\000\000\000\000\000\000\000\000\000\000\000\169\000\169\000\000\000\000\000\000\000\000\000\173\000\000\000\000\000\000\rr\000\000\rj\rJ\000\000\000\000\rj\rJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\000\000\000\000\181\000\000\000\000\000\173\000\000\000\000\r*\000\181\000\000\000\000\000\000\000\173\000\173\000\000\000\000\000\181\000\181\000\000\000\000\000\000\000\000\rr\000\000\000\000\000\000\rr\000\000\000\000\rJ\r2\rZ\000\000\rJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\r:\000\000\000\185\000\000\000\000\000\197\000\193\r\138\000\000\000\185\000\000\000\000\000\000\r\146\rz\000\000\rb\000\185\rz\rB\000\000\rR\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rj\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rr\000\000\000\000\000\000\000\000\000\000\000\000\rJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\rz"))
   
   let lhs =
-    (16, "\000\012\000\011\000\n\000\t\000\008\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\004\001\004\001\004\001\003\001\003\001\003\001\003\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\254\000\254\000\254\000\254\000\253\000\252\000\252\000\252\000\251\000\251\000\251\000\250\000\250\000\250\000\249\000\249\000\249\000\248\000\247\000\246\000\245\000\245\000\244\000\244\000\243\000\243\000\242\000\242\000\241\000\241\000\240\000\239\000\239\000\238\000\238\000\237\000\237\000\237\000\236\000\236\000\235\000\234\000\233\000\232\000\231\000\230\000\229\000\228\000\227\000\226\000\225\000\224\000\223\000\223\000\222\000\222\000\221\000\221\000\220\000\220\000\219\000\219\000\219\000\218\000\218\000\218\000\218\000\218\000\217\000\217\000\217\000\217\000\217\000\216\000\215\000\215\000\215\000\215\000\214\000\214\000\213\000\212\000\211\000\211\000\211\000\210\000\210\000\210\000\209\000\209\000\209\000\209\000\208\000\208\000\208\000\208\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\206\000\205\000\205\000\204\000\204\000\204\000\203\000\203\000\202\000\202\000\202\000\201\000\201\000\200\000\199\000\198\000\198\000\197\000\197\000\196\000\196\000\195\000\195\000\194\000\194\000\193\000\192\000\191\000\191\000\190\000\190\000\189\000\188\000\188\000\188\000\188\000\187\000\186\000\185\000\185\000\184\000\183\000\183\000\182\000\182\000\182\000\182\000\182\000\181\000\181\000\181\000\181\000\180\000\180\000\180\000\180\000\179\000\179\000\179\000\179\000\178\000\177\000\177\000\176\000\176\000\176\000\175\000\174\000\174\000\174\000\174\000\173\000\172\000\172\000\172\000\172\000\171\000\171\000\171\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\169\000\169\000\168\000\168\000\167\000\167\000\166\000\166\000\165\000\165\000\165\000\165\000\164\000\164\000\164\000\163\000\163\000\163\000\163\000\163\000\163\000\163\000\162\000\161\000\161\000\161\000\160\000\159\000\159\000\158\000\158\000\157\000\157\000\156\000\156\000\155\000\155\000\154\000\154\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\152\000\151\000\150\000\150\000\149\000\149\000\148\000\148\000\147\000\147\000\146\000\146\000\145\000\145\000\144\000\144\000\143\000\143\000\142\000\142\000\141\000\141\000\140\000\140\000\139\000\139\000\138\000\138\000\137\000\137\000\136\000\136\000\135\000\135\000\134\000\134\000\133\000\133\000\132\000\132\000\131\000\131\000\130\000\130\000\129\000\129\000\128\000\128\000\127\000\127\000~\000~\000}\000}\000|\000|\000{\000{\000z\000z\000y\000y\000x\000x\000w\000w\000v\000u\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000t\000s\000r\000q\000p\000o\000n\000m\000l\000k\000j\000j\000j\000i\000i\000i\000h\000h\000h\000h\000g\000f\000e\000d\000c\000b\000a\000a\000a\000`\000`\000`\000_\000_\000^\000^\000^\000]\000]\000\\\000[\000[\000[\000Z\000Y\000Y\000X\000X\000W\000W\000V\000V\000U\000U\000T\000T\000S\000S\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000R\000Q\000Q\000P\000P\000O\000O\000N\000N\000N\000N\000N\000M\000M\000L\000L\000L\000L\000K\000J\000I\000I\000I\000H\000H\000H\000G\000G\000G\000G\000G\000G\000F\000F\000F\000F\000F\000E\000E\000E\000E\000E\000E\000E\000D\000D\000D\000D\000D\000D\000D\000C\000C\000C\000C\000C\000C\000C\000B\000B\000B\000B\000B\000B\000B\000A\000A\000A\000A\000A\000A\000A\000A\000A\000A\000A\000A\000A\000@\000@\000@\000@\000@\000@\000@\000@\000@\000@\000@\000@\000@\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000>\000=\000=\000=\000=\000=\000<\000;\000;\000;\000;\000;\000;\000:\0009\0008\0007\0006\0005\0005\0005\0005\0005\0005\0005\0004\0004\0004\0004\0003\0002\0002\0001\0001\0000\0000\000/\000/\000.\000.\000-\000-\000,\000,\000+\000+\000*\000*\000)\000)\000(\000(\000'\000'\000&\000&\000%\000%\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000$\000#\000#\000#\000\"\000\"\000\"\000\"\000!\000!\000!\000!\000!\000 \000\031\000\031\000\031\000\030\000\030\000\029\000\028\000\027\000\027\000\027\000\027\000\026\000\026\000\026\000\025\000\025\000\024\000\024\000\024\000\023\000\023\000\023\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\015\000\015\000\014\000\013\000\013\000\013\000\013\000\013")
+    (16, "\000\012\000\011\000\n\000\t\000\b\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\027\001\027\001\027\001\026\001\026\001\026\001\026\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\021\001\021\001\021\001\021\001\020\001\019\001\019\001\019\001\018\001\018\001\018\001\017\001\017\001\017\001\016\001\016\001\016\001\015\001\014\001\r\001\012\001\012\001\011\001\011\001\n\001\n\001\t\001\t\001\b\001\b\001\007\001\006\001\005\001\004\001\003\001\002\001\001\001\000\000\255\000\254\000\253\000\252\000\251\000\250\000\249\000\248\000\248\000\247\000\247\000\246\000\246\000\245\000\245\000\244\000\244\000\244\000\244\000\243\000\243\000\243\000\243\000\242\000\242\000\242\000\242\000\241\000\241\000\241\000\241\000\240\000\240\000\240\000\240\000\239\000\239\000\239\000\239\000\238\000\238\000\238\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\236\000\235\000\235\000\235\000\235\000\234\000\234\000\233\000\232\000\231\000\231\000\231\000\231\000\230\000\230\000\230\000\230\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\228\000\227\000\227\000\226\000\226\000\226\000\225\000\225\000\224\000\224\000\224\000\223\000\222\000\221\000\221\000\220\000\219\000\219\000\218\000\218\000\217\000\217\000\216\000\216\000\215\000\214\000\213\000\213\000\212\000\212\000\211\000\211\000\210\000\210\000\209\000\209\000\208\000\207\000\207\000\206\000\206\000\206\000\206\000\206\000\205\000\205\000\205\000\204\000\203\000\202\000\202\000\202\000\202\000\201\000\201\000\200\000\199\000\199\000\199\000\199\000\199\000\198\000\198\000\198\000\198\000\197\000\197\000\197\000\197\000\196\000\196\000\196\000\196\000\195\000\194\000\194\000\193\000\193\000\193\000\192\000\191\000\191\000\191\000\191\000\190\000\189\000\189\000\188\000\188\000\187\000\187\000\186\000\186\000\186\000\186\000\185\000\185\000\184\000\184\000\184\000\184\000\184\000\183\000\183\000\183\000\182\000\182\000\182\000\182\000\181\000\180\000\179\000\179\000\178\000\178\000\177\000\177\000\176\000\176\000\175\000\175\000\174\000\174\000\173\000\173\000\173\000\173\000\173\000\173\000\173\000\173\000\172\000\171\000\170\000\170\000\169\000\169\000\168\000\168\000\167\000\167\000\166\000\166\000\165\000\165\000\164\000\164\000\163\000\163\000\162\000\162\000\161\000\161\000\160\000\160\000\159\000\159\000\158\000\158\000\157\000\157\000\156\000\156\000\155\000\155\000\154\000\154\000\153\000\153\000\152\000\152\000\151\000\151\000\150\000\150\000\149\000\149\000\148\000\148\000\147\000\147\000\146\000\146\000\145\000\145\000\144\000\144\000\143\000\143\000\143\000\142\000\142\000\141\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\139\000\138\000\137\000\136\000\135\000\134\000\133\000\132\000\131\000\130\000\130\000\130\000\129\000\129\000\129\000\128\000\128\000\128\000\128\000\127\000~\000}\000|\000{\000z\000y\000y\000x\000x\000x\000w\000w\000v\000v\000v\000u\000u\000t\000s\000s\000s\000r\000q\000q\000p\000p\000p\000p\000p\000p\000p\000o\000o\000o\000o\000o\000o\000o\000n\000n\000n\000n\000n\000n\000n\000m\000m\000m\000m\000m\000m\000m\000l\000l\000l\000l\000l\000l\000l\000k\000k\000k\000k\000k\000k\000k\000j\000j\000i\000i\000h\000h\000g\000g\000f\000f\000e\000e\000d\000d\000c\000c\000c\000c\000c\000c\000c\000c\000c\000c\000c\000c\000c\000c\000c\000c\000c\000c\000c\000c\000b\000b\000a\000a\000`\000`\000_\000_\000^\000^\000]\000]\000\\\000\\\000\\\000\\\000\\\000[\000[\000Z\000Z\000Z\000Z\000Y\000X\000W\000W\000W\000V\000V\000V\000U\000U\000U\000U\000U\000U\000T\000T\000T\000T\000T\000S\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000P\000P\000P\000P\000P\000O\000O\000O\000O\000O\000O\000O\000O\000O\000O\000O\000O\000O\000N\000N\000N\000N\000N\000N\000N\000N\000N\000N\000N\000N\000N\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000K\000K\000K\000K\000K\000J\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000I\000H\000H\000H\000G\000F\000E\000D\000D\000C\000C\000B\000A\000A\000A\000@\000@\000?\000?\000>\000=\000=\000=\000=\000=\000=\000=\000<\000<\000<\000<\000<\000<\000<\000;\000;\000;\000;\000;\000:\000:\0009\0009\0009\0008\0008\0007\0007\0006\0006\0005\0005\0004\0004\0003\0003\0002\0002\0001\0001\0000\0000\000/\000/\000.\000.\000-\000-\000,\000,\000+\000+\000*\000*\000)\000)\000(\000(\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000&\000&\000&\000%\000%\000%\000%\000$\000$\000#\000\"\000\"\000\"\000!\000!\000!\000!\000!\000 \000 \000\031\000\031\000\030\000\029\000\028\000\028\000\028\000\028\000\027\000\027\000\027\000\026\000\026\000\025\000\025\000\025\000\024\000\024\000\024\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\015\000\015\000\014\000\r\000\r\000\r\000\r\000\r")
   
   let goto =
-    ((16, "\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\000\000\001!\012\230\000\000\000}\000_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000t\000\000\008\180\000}\000\236\000\000\000\000\000\000\000\000\000\000\007\228\000\n\022\238\000\000\000\000\000\000\024\132\000\000\002L\000\203\000\242\000\000\000\000\000\002\000\000\001\002\000\000\000\016'\n\000t%\188\000t\004\238%\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007n%\188\000\000\000\000\014\014\000\000\017\022\000\000\017\192\000\000\000\000\000\000\000\000\000\136\000\000!\234\000\000\000\000\002\130\000\000 \206\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \212\000\000\000\000,\030\000\0006\232\000\0007\012\000\00076\000\0007l\000\0007\182\000\0007\212\000\0007\224\000\0008\030\000\000\007\206\000\0005t\000\000\000\000\000\000\000\000\000\0008*\000\0008D\000\0008R\000\000'\218\000\000\000\000*J\000\000\000\000\000\173\000S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000v\000\000\000(\000\000\000\000%\028\000\0000\148\000\000\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000.\000\000\000\000\000\000\000\000\000\000\000\000\005\208%\218\000\000\005\242\000\000\015N\019\128\000\000\000\000\000\000\003\158\000\000\"j\000\000\000\0001\024\000\000\000\000\000\000\005.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\252\000\0001\142\000\000\000\000\000\000\000\000\000\003\000\000\000\0001X\000\000\000\000\000\000\000\202\000`\000\000\000\000\000\000\000\000\000\000\000\000\006\016\000\000\025\230\000\000\026\254\000\000\027\186\000\000\029\192\000\000\031\166\000\000,J\000\000-H\000\0000h\000\00036\000\000\011\210\000\000\003j\000\0008b\000\0008\224\000\0008\246\000\000\000\000\000\000\000\000\000\000\000\1751\220\000\000\000s\000\000\000\000\002\008\012\250\000\000\002\026\000\000\000\000\000\000\000T\000\000\000\000\000\000&T\000\000\000\000\000\000\000\000\000\000&\170\000\000\000\000\000\000\000\000\000\000\000\000\000\158\000\000\000\000\000\000\0006\000\000\000\000\000\000\003n\000\000\000\000 B\000}\000\000\000\000\000\146\006\176\000\000\000\000\000\000\000\000\000\000\005\170\000\000-&\000\0000\136\000\000\000\000\005\236\000\000\000\000\000\000\000\000\000\000\000\000-\208\000\000\000\000\000\000\001\190\000\000\000\000\000\000\000\000\001\248#\018\000\000\003\222\000\000\000\000\000\014\004\018\000\000\000\000\000\000\000\000\025v\000\000\000\000\000\000\000\000\000\000\000\000\001~\013\146\000\000\015n\000\000\000\000\000\000\002\002\000\000\012&\001\164\000\000/\172\000\000\000\000\000\000\000\220\001\214\000\000\000\000\000\000\002\014\000\000\000\000\001\140\000\000\003\170\000\000\000\000\000\000\000\000\0001\002\n\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\0001\226\000\000&\222\000\0002&\000\000\000\000\002\164\000\000\005\228\000\000\000V\012\144'`\000\000\000\000\000\000\020\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146'`\000\000\006\212\000\000\t6\011\152\000\000\000\000\000\000\006\012\000\000\"\192\000\000\000\0002f\000\000\000\000\000\000\006V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005\020\000\0005*\000\000\000\000\000\000\004\138\000\000\000\000\000\000\000\000\000\000\000\000\014\130\000\000\014\150\000\000\028L\000\000\0292\000\000\030v\000\000 P\000\000(.\000\000,6\000\0001P\000\0002\128\000\000\014Z\000\000\n\196\000\0008\206\000\0009\012\000\0009H\000\000'z\000\000\000\000\000\0002\166\000\000\000\000\000\000\000\021\000\0002\234\000\000\000\000\000\0003\004\000\000\000\000\001\228\000\000\024\014\000!\000\013\000\000\003\014\000\000\012\168\002`\006\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0003t\000\000'\174\028\026\006b\000\000\000\000\000\000\018(\000\000\019l\000\000\020\176\000\000(\000)`\000\166\004`\006x\000\000\000\000\000\000\004r\000\000\000\000\000\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0003\130\000\000\000\000\000\000\000\000\000\000#x\000\000)\158\000\000\000\000\000\000\000\000\000\000\000\000\013j\000\000\003B\000\000\000\000\000\000\000\000\0166\0048\000\0004\174\000\000\000\000\000\000\005v\000\000\000\000\021\244\006z\000\000\000z+n\000\000\000\000)\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005R)\026\000\000\019B\000\000\022\218&*\000\000\000\000\000\000\006\128\000\000#\142\000\000\000\0003\194\000\000\000\000\000\000\006\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\206\000\000%\152\000\000\000\0004\"\000\0004\146\000\000\000\000\025\242\t\214\000\000\000\000\0238\000\000\000\000\000\000\006\232\000\000$\n\000\000\000\0005b\000\000\000\000\000\000\007\146\000\000\023\230\000\0002\188\000\0008\028\000\0009n\000\0009r\000\0009|\000\0009\216\000\0009\246\000\0009\250\000\000:\030\000\000:d\000\000:r\000\000\000\000\000\000\000\000\000\000\000\000\np\000\000\016\250\000\000\"\218\001\130\000\000$h\000\000\000\000\000\000\000\000\000\000\000\0005\152\000\000\000\000\000\000\000\000\000\000\000\000\002\142\000\000\000\000\000\000\000\000\000\000\000\000\004n\000\000\000\00058\000\000\000\000\000\000\030N\000\000\000\000\002\242\000\000\000\000\000\0005\210\000\000\000\000\000\000\000\000+\226\000\000\000\000\000\000\000\000\004\164\007L\000\000,\"\000\000\000\000\000\000\000\000\024\208\0042\000\000\025R\000\000\000\000\n*\000\000-*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\000\000\000\0005\248\000\000\000\000\000\000-0\000\000\000\000\004R\000\000\000\000\013\236\000\000\026\020\000\000\000\000$4\000\000\000\000\000\000\003\026\000\000\000\0006^\000\000\000\000\000\000\000\000-\176\000\000\000\000\000\000\000\000\006*\015\178\000\000-\180\000\000\000\000\000\000\000\000\000\000\000\000\014\174\000\000\000\000\005\214\000\000\0150\000\000\003\026\000\000\000\000\005n+\154\000\000\005\226\000\000\000\000\000\000\000\000\004\138\000\000*\018\000\000\026\150\005(\027X\000\000\005P\000\000\015\242\000\000\016v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\152\027\218\0038\028\156\000\000\000\000\000\000\005~\000\000\0178\000\000\006\186\000\000\000\000\019\254\004L\029^\000\000\006(\000\000\017\186\029\224\000\000\000\000\018|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\238\007h\000\000\007\"\000\000\000\000\000\000\000\000\007F\000\000\018\254\000\000\000\000\000\000 \2324\160\000\000\000\000\000\000 h\000\000\000\000\000\000\000\000\025 \004\188\000\000\000\000-\206\000\000\000\000\000\000\000\000\005\006\000\000\000\0006t\000\000\000\000\000\000-\212\000\000\000\000\003\130\000\000\000\000.\194\000\000\000\000\008*\005f\000\000\000\000.\218\000\000\000\000\007v!X\000\000\005z\000\000\000\000.\224\000\000\000\000\000\000\000\000\000\000\000\000\005\204\000\000\000\0006|\000\000\000\000\000\000/\134\000\000\000\000\000\000\000\000\000\000%\002\000\000\000\000\000\000\002\254\000\000\000\000\000\000/\174\000\000\000\000\008\198\006\136\000\000\000\000/\188\000\000\000\000\007\174\000\000\000\000\000\000\000\000\004\138\002\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\000\000\019\192\000\000\000\000\000\0004\222\000\000\0082\000\000\000\000\000\000\004 \000\000\000\000\006^\020B\000\000\021\004\000\000\000\000\000\000\006\140\000\000\011\160\006\196\012\136\000\000\015\024\000\000\000\000\000\000\006\208\000\000*\164\007x+(\000\000+\160\000\000\000\000\000\000\007\156\000\000\017\162\007\156\000\000\000\000!\218\n*\007\168#\192\000\000(\230\000\000\000\000\000\000\007\202\000\000\020*\008\140\000\000\000\000\000\000\003\012\000\000\000\000\000\000\000\000\000\000\003\164\000\000\000\000\004H\000\000\008$\000\000\000\000\000\000\004z\000\000\000\000\000\000\000\000\000\000\0007\000\000\000\167\004\152\000@\000\000\000\000\000h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\238\002\154\000\000\000\000\000K\000\000\000\000\000\000\011\240\000\000\000\000\0134\014x\000\000\000\000\000\000\000\000\015H\016>\001.\000\000\016\138\000\000\000\000\000\000\000\000\000\000\000\000\007\194\000\000\000\000\011>\000\000\000\000\004\178\000\000\000\000\011x\000\000\000\000\004\210\000\000\003D\005n\002\156\000\000\000\000\001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\008\018T\000\000\000\000\000\000\000\000\017\146\000\000\000\000\020\026\000\000\000\000\000\000\018f\000\000\000\000\n\194\018\210\005\252\000\000\021\176\000\000\000\000\000\000\000\000\000\000\000\000\000;\000\000\007\030\004&\000P\000\000\000\000\000\000\000\000\003\146\000\000\000\000\000\000\000\000\000\000\000\000\004\132\000\000\000\000\000\007\000\000\007(\006\004\003L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\174\000\000\000\000\023\226\022\018\000\000\000\000\000\000\000\000\000\026\000\000\004z\000\000\0206\000\000\000\000\000\000\000\000\000\000\000\000\000\011\021\\\000\000\000\000\022\160\000\000\000\000\000\000\000\000\008\246\000\000\022\212\000\000\000\000\000\000\000\000\0003\000\000\000\000\000\000\000\214\000\000\000\000\001\202\000\000\000\000\000\000\000\000\000\000\000\000\000\00006\006x\000\000\000\000\000\000\026\212\000\000\000\000\008\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\152\008\188\000}\017\024\030$\005z\000\000\000\000\004~\008\n\008@\008B\000\000\000\000\000\000\000\000\000\000\000\000\003T\021\134\000\000\030\162\008$\000\000\000\000\008\224\000\000\022H\000\000\nJ\000\000\000\000\004T\022\202\000\000\031$\000\000\006\254\031\230\000\000\000\000\000\000\015t\004~\000\000\006\148\000\000\000\000\000\000\007\"\000\000\t&\000\000\005\140\030h\000\000\000\000\000\000\000\000\005\170\000\000\005\236\000\000\007\228\000\000\000\000\014t\000\000\000\000\000\000\000\000\008\236\000\000\000\000\004~\008\232\000\000\023\140\000\000\003\026\006R\000\000\000\000\000\000\000\000\000\000\001\212\000\000\000\000\000\000\000\000\000\0000\212\008>\000\000\000}\000\000\000\000\000\000\000\000\000\000\001\220\000\000\t\182\004f\n\226\000\000\002\220\011d\000\000\t\026\000\000\003`\000\000\003\228\000\000\004`\000\000\000\000\000\000\000\000\000\000\008\156\000\000\004\228\000\000\tj\000\000\005h\000\000\003\026\007\002\000\000\001\250\000\000\007\148\006\160\000\000\002\004\000\000\008\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008Z\000\000\008\192\000\000\000\000\000\000\000\000\000\000\006\194\000\000\000\000\006\224\006D\008h\000\000\008v\000\000\000\000\006\018\0024\000\000\007\190\000\000\000\000\000\000\000\000\008\142\000\000\000\000\000\000\000\000\000\000\000\000\008h\008V\008\186\008\224\008|\008\186\000\000\000\000\008n\008\190\008\240\008\138\008\200\000\000\000\000\td\000\000\000\000\000\000\000\000\t\148\000\000\000\000"), (16, "\001\200\001\223\004r\002!\002\"\004\127\000>\002!\002\"\004P\005\151\004g\004\206\005\152\000>\001%\000\n\000h\002m\003n\003V\001<\004}\004t\000\210\000>\0016\000\017\004e\004\204\004\207\004t\004h\004t\004\222\005\019\004\225\000>\004s\000\210\000\t\000\231\000\016\000>\003!\001%\001\202\001?\000*\001'\001\203\004\223\004\222\004\223\004\226\004t\004\226\004t\000h\001\200\002\014\000j\000}\000\167\005\156\000*\000k\001t\000j\004\223\000l\000\212\004\226\004t\000h\000\213\004k\002\143\000q\001&\002\164\004u\004\018\000j\005\003\004\211\000\212\0009\000>\004u\000\213\004u\001\200\001\223\000u\003\157\004n\001\228\005_\001 \004\212\000\226\000j\000j\005`\001\202\000>\000k\0008\001\203\005a\000l\003 \004u\005\006\004u\000\226\000\210\000j\000\233\004\019\000j\0050\000k\002$\002\145\005\021\000l\000*\002\146\000\247\004u\004\251\000*\002\\\000u\003!\000h\001\202\000\005\000>\000q\001\203\000*\001\216\000\210\001\162\000\233\000\176\002a\004l\000u\001@\002b\000\164\001D\003(\000+\001\217\003\159\003|\000j\000\008\000\t\000\212\000\164\000\165\003)\000\213\000\178\004l\003j\001\030\001 \001x\000v\001E\000\164\000\177\000\250\005c\000j\000\227\000\164\000\165\0052\000k\002f\0053\000j\000l\003W\000\212\003v\000\226\000\248\000\213\000\227\003<\000w\001=\005d\003\141\001\216\003N\001\232\0057\000\016\004\213\002\143\004\142\004t\002\168\004\254\000u\000\174\000v\001\217\001g\000\238\005\t\002\159\000\226\005\023\005\024\001\233\002\\\001A\000\164\000\165\001\234\004\254\000v\000\174\001\235\002\160\001\216\000n\004\255\001\236\000w\002a\002H\004\170\000\248\002b\000\164\001D\003(\005f\001\217\001\"\002H\002[\001\200\001\223\000w\002\145\005g\005\129\004\168\002\146\004o\005\130\0050\000\232\005\157\0008\000>\004u\000j\004\216\005a\005\158\003 \000\227\001(\002J\000\174\002f\001\152\000\150\000>\0037\005\132\001n\0010\002K\002L\002N\003<\004\013\004\016\000>\005\134\000v\003N\001\232\003!\000\017\001\202\000\249\000y\000\227\001\203\005\236\000\151\005\142\005\143\005\176\000\152\001h\000E\005\237\000\149\0017\000{\001\233\000*\000w\001\200\001\223\001\234\000\251\001\146\005\224\001\235\001\154\005\202\000\241\001\159\001\236\001@\001\133\000>\005\028\005\029\000h\002m\003n\003V\000s\004\168\000\252\000\150\001\200\001\220\001\153\000\253\001\135\001\161\000\251\000\254\002\159\000*\005!\002\229\000\255\005\177\0009\005\147\004W\002\187\001+\003!\000y\001\202\002\160\001i\000\151\001\203\000\252\001+\000\152\002\245\004|\000\253\004\167\001\150\000{\000\254\000j\001\200\001\223\001\139\000\255\000k\000*\002\\\000j\000l\001\202\004}\004t\004\168\001\203\000>\001-\001\216\001\136\005a\005\163\003V\002a\002!\002\"\001,\002b\000\164\001D\003(\005\179\001\217\0050\000u\001\135\003}\001\228\0050\001 \005g\005\129\000\164\001D\002u\005\181\003!\000\187\001\202\002\232\002!\002\"\001\203\000\164\000\165\001F\002\190\003\007\005\245\002!\002\"\002f\005\173\003\007\002u\0037\005\183\003\130\001\200\001\223\002\191\004u\003<\000\210\002\\\000\231\005\185\003\007\003N\001\232\005\209\001h\000>\000F\001\216\004\167\005a\005\163\003V\002a\001p\001w\001s\002b\000\164\001D\003(\004\014\001\217\001\233\003\127\001(\004\168\000\174\001\234\004\027\001+\003)\001\235\001\216\001\156\003j\003!\001\236\001\202\000v\000F\000j\001\203\000*\000\212\004\016\004\215\001\217\000\213\004\174\004U\002f\005\168\003\007\001B\003W\001\163\003v\001\200\001\223\002\\\004\212\003<\000w\001-\002#\003\141\000*\003N\001\232\001\216\004z\000>\001\158\000\226\002a\005a\005\163\003V\002b\000\164\001D\003(\005\169\001\217\004\175\004V\002\246\000x\001\233\000F\002i\005g\005\129\001\234\003\008\000F\002d\001\235\000*\005J\003C\003!\001\236\001\202\004\128\003\029\004\171\001\203\000y\000F\002!\002\"\002f\000\161\003C\003\030\003W\005\170\005\171\001\200\001\223\0036\000{\003<\000*\002\\\004\029\003A\003\143\003N\001\232\003\030\003\132\000>\004\212\001\216\003\013\005a\005\163\003V\002a\005\160\003\247\000j\002b\000\164\001D\003(\005\169\001\217\001\233\000F\005B\003\017\000\227\001\234\003H\005g\005\129\001\235\004\222\000F\002d\003!\001\236\001\202\003\008\000>\004\213\001\203\000*\004\\\000\017\003L\000*\000\215\004a\004\223\002f\005\172\004\226\004t\003W\005\174\005\171\001\200\001\223\004W\003\153\003<\000\210\002\\\000\233\003A\004\229\003N\001\232\003\020\001I\000>\004\163\001\216\001\023\005a\005\163\003V\002a\000F\003\203\000*\002b\000\164\001D\003(\005\169\001\217\001\233\004\161\004\030\004\164\004t\001\234\000\252\005g\005\129\001\235\001%\005X\002d\003!\001\236\001\202\0009\000F\000j\001\203\000\255\000\212\003p\004u\002\143\000\213\004\218\002\163\002f\005\180\000*\002E\003W\004q\005\171\001\200\001\223\002\\\001q\003<\002G\002o\003p\003A\001\231\003N\001\232\001\216\000\238\000>\000*\000\226\002a\005a\005\163\003V\002b\000\164\001D\003(\005\169\001\217\004u\000F\001u\003\130\001\233\000F\000j\005g\005\129\001\234\002\145\002u\002d\001\235\002\146\004\157\000*\003!\001\236\001\202\004\173\005F\002F\001\203\000*\000\210\000*\000\230\002f\000\164\000\177\002F\003W\005\184\005\171\001\200\001\223\003\\\004\029\003<\000F\002\\\000\210\003A\000\229\003N\001\232\003\030\002\252\000>\000*\001\216\003,\002m\003n\003V\002a\000\210\003e\000\231\002b\000\164\001D\003(\005\169\001\217\001\233\000*\004\234\000j\000\227\001\234\000\212\005g\005\129\001\235\000\213\000F\002d\003!\001\236\001\202\000\239\000*\000>\001\203\000j\003\185\003\143\000\212\004\197\004t\003g\000\213\002f\004\231\000\241\000\224\003W\000*\005\171\000j\000\226\003x\000\212\003<\002\159\002\\\000\213\003A\002\143\003N\001\232\002\168\003O\005=\003e\001\216\000\251\000\226\002\160\005u\002a\003s\003\193\000F\002b\000\164\001D\003(\005\169\001\217\001\233\000F\000\226\000F\000*\001\234\000\252\005g\005\129\001\235\000*\000\253\002d\003\135\001\236\000\254\003\146\004u\003f\000>\000\255\000*\002[\001\200\001\219\000*\002\145\001b\002f\000*\002\146\000*\003W\005\140\005\171\001\200\001\223\002\\\005\225\003<\003\210\002!\002\"\003A\000F\003N\001\232\001\216\002v\000>\003\219\000\227\002a\002m\003n\003V\002b\000\164\001D\003(\001^\001\217\004\022\003|\005\222\002\247\001\233\000j\000\227\001\202\003)\001\234\001R\001\203\002d\001\235\001\205\000*\003\138\003!\001\236\001\202\005v\000\227\005\187\001\203\001S\004%\005-\003\168\002f\003\229\000\164\000\177\003W\003\138\003v\001\200\001\223\003\030\000h\003<\005e\004'\000\193\003A\000j\003N\001\232\005\234\004(\000>\003\140\001\214\002u\002m\003n\003V\002\143\0025\003\162\002\168\002\159\002\219\002\240\002\222\004'\000*\001\233\003\139\002D\002\187\004\219\001\234\002\148\004\232\002\160\001\235\000F\004/\002\157\003!\001\236\001\202\000j\0042\003\162\001\203\000h\000k\005.\000\252\000q\000l\003\164\0041\000>\002\225\005]\000\164\001D\0041\000j\005\191\005.\001\001\002\145\001\216\004\220\002\\\002\146\004\233\001T\000>\004\151\005\235\001|\000u\000>\001\216\003\163\001\217\005\210\005\215\002a\003\254\002\184\004\003\002b\000\164\001D\003(\000j\001\217\003z\003|\005B\000k\001\200\001\223\005N\000l\003)\000E\001\\\002\190\002d\001]\000>\000\174\003\030\000\146\000>\004d\005\216\004\003\002m\003n\003V\002\191\005i\004\005\002f\005B\005B\000u\003W\0049\003v\005\001\004e\002\\\005\202\003<\004h\004t\000F\003A\003\209\003N\001\232\001\216\003!\004;\001\202\004<\002a\004?\001\203\004\004\002b\000\164\001D\003(\004H\001\217\003\161\003|\000v\005\221\001\233\004;\002\159\0041\003)\001\234\005\220\005\011\002d\001\235\004J\004K\005\202\000\210\001\236\000\233\002\160\000>\000@\001~\000C\000>\000w\003\021\002f\005;\000>\004J\003W\005w\003v\001\200\001\223\004u\005Q\003<\000\164\000\165\005\131\003A\003\025\003N\001\232\005*\003\030\000>\000v\000E\003\030\002m\003n\003V\005\230\000\164\001D\005\149\003\253\000j\000\164\000\165\000\212\004\203\001\233\005\202\000\213\000\149\001F\001\234\001\200\001\218\000w\001\235\002\\\005\160\000>\003!\001\236\001\202\004\204\004\207\004t\001\203\001\216\005E\004\152\002\190\000\174\002a\000\164\000\177\000\226\002b\000\164\001D\003(\000\150\001\217\004\026\003|\002\193\004\155\001p\005\178\001s\005\203\003)\004\254\004N\000\174\002d\005D\005C\000j\005\160\001\202\005\166\000y\005.\001\203\005\240\000\151\005\247\005v\0041\000\152\002f\005\253\005\232\005x\003W\000{\003v\001\200\001\223\005\238\005\254\003<\005\241\004u\004v\003A\005\239\003N\001\232\005\205\005\248\000>\005\242\002\143\005\243\005a\002\168\003 \005\246\005\249\005\182\005\250\000\164\001D\006\002\000\000\000\164\005<\001\233\005.\002\\\000\164\000\177\001\234\000\000\001F\000\227\001\235\005H\005?\001\216\003!\001\236\001\202\000\000\002a\001m\001\203\000\000\002b\000\164\001D\003(\000\000\001\217\005\127\003|\002[\000\000\005\175\005\207\002\145\005(\003)\000\000\002\146\000\000\002d\000\000\000\000\001p\002\143\001s\005\234\002\168\000\000\000\000\001\216\000\000\000\164\001D\005\234\000\000\002f\000\251\000\000\002u\003W\000\000\003v\002\143\001\217\005p\002\168\003<\005\235\000\000\005\235\003A\000*\003N\001\232\000\000\000\000\000\252\000\000\000\000\000\000\000\000\000\253\000\000\000\000\005\016\000\254\000\000\002[\000\000\000\000\000\255\002\145\005{\001\233\005|\002\146\005s\000\000\001\234\005t\000\000\000\174\001\235\002\\\001\200\001\221\002[\001\236\000\000\000\000\002\145\000\000\000\000\001\216\002\146\000\000\000\000\000\000\002a\001\200\001\223\000\000\002b\000\164\001D\003(\005\162\001\217\004\203\002\159\002\219\002\220\002\222\000>\000\000\005g\005\129\005a\002\187\003 \005\165\000\000\000\000\002\160\000\000\004\204\004\207\004t\000j\000\000\001\202\000\000\000\000\000\000\001\203\000\000\002f\000\000\000\000\000\000\0037\005\167\000\000\003!\002\225\001\202\000\000\003<\000\000\001\203\000\000\003A\000\000\003N\001\232\000\000\004\221\000\000\000\000\000>\000F\005\161\000\000\000\000\001\200\001\223\000\000\002\159\002\219\005U\002\222\000\000\000\000\000\000\001\233\000\000\002\187\004\154\000>\001\234\000\000\002\160\005a\001\235\003 \004u\002\159\002\224\001\236\002\222\001\200\001\201\002\190\000\000\000\210\002\187\000\233\000\000\004\160\000\000\002\160\000\000\002\225\000\000\000\000\000\000\002\191\003\"\003!\000\000\001\202\000\000\000\000\000\000\001\203\004\161\000\000\004\164\004t\000h\000\000\002\225\000\000\000q\003&\000\000\005\164\000\000\001\216\000\000\000\000\000\000\000\000\002\\\000j\000\000\001\202\000\000\000j\000\000\001\203\000\212\001\217\001\216\000\000\000\213\000\000\000\000\002a\000\000\002\190\000\000\002b\000\164\001D\003(\005\162\001\217\000\000\000\000\004|\001\200\001\223\000j\002\191\005g\005\129\000\000\000k\002\190\005\165\000\226\000l\000\000\000\000\000>\004u\004}\004t\002m\000\000\003 \001\021\002\191\000\000\000\000\002f\000\000\000\000\002\004\0037\005\167\000\000\000\000\004\236\000\000\000u\003<\002\\\000\164\000\165\003A\000\000\003N\001\232\003!\000\000\001\202\001\216\001\233\000\210\001\203\000\233\002a\001\200\001\223\000\000\002b\000\164\001D\003(\005\162\001\217\001\236\001\233\000\000\001\200\001\223\000\000\001\234\005g\005\129\000\000\001\235\001\216\005\165\004u\004 \001\236\000\000\000>\003\156\000\000\000\000\002m\000\000\003 \004\152\001\217\000\174\000\000\002f\000\227\000\000\000j\0037\005\167\000\212\000j\000\000\001\202\000\213\003<\000\000\001\203\000\000\003A\000\000\003N\001\232\003!\000>\001\202\000\000\000\000\000\000\001\203\000v\004*\000\000\000\000\000>\000\000\000\000\004\176\000\000\000\000\000\226\000\000\001\233\000\000\000\000\000\000\000\000\001\234\002\\\000\149\000\000\001\235\000\000\000\251\000w\003\154\001\236\000\000\001\216\003\156\000\000\000\000\000\000\002a\001\228\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\252\000\000\004|\001\200\001\223\000\253\000\150\000\000\003)\000\254\002k\000\000\003\145\000\000\000\255\000\000\000\000\000>\000\000\004}\004t\002m\003\027\003 \000\000\000\000\004\131\000y\002f\000\000\000\000\000\151\0037\003\147\000\000\000\152\000\000\000>\001\216\003<\002\\\000{\000\000\003A\000\000\003N\001\232\003!\000\227\001\202\001\216\000\000\001\217\001\203\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\001\230\001\233\000\000\001\200\001\223\000\000\001\234\000\000\003)\004,\001\235\0039\003\145\004u\000\000\001\236\000\000\000>\000\000\000\000\000h\002m\003:\003V\000\190\000\000\000\164\000\165\002f\000\000\000\000\000\251\0037\003\147\001\232\000\000\000\164\000\165\000\000\003<\000\000\000\000\000\000\003A\000\000\003N\001\232\003!\000\000\001\202\000\000\000\252\000\000\001\203\001\233\000\000\000\253\000\000\000h\001\234\000\254\000\000\000q\001\235\000j\000\255\001\233\000\000\001\236\000k\000\000\001\234\002\\\000l\001\128\001\235\000\174\000\000\001\200\001\221\001\236\000\000\001\216\000\000\001*\000>\000\174\002a\001\200\001\221\000\000\002b\000\164\001D\003(\000\000\001\217\000u\000\000\004|\001\200\001\223\000j\000\000\000\000\003)\000\000\000k\003Y\003[\000\000\000l\000\164\000\165\000>\000\000\004}\004t\002m\003:\003V\002\002\000j\004\137\001\202\002f\000\000\000\000\001\203\0037\003]\000\000\000j\000\000\001\202\000u\003<\002\\\001\203\005x\003_\000\000\003N\001\232\003!\000\000\001\202\001\216\000\000\000\000\001\203\000\000\002a\000\210\000\000\000\233\002b\000\164\001D\003(\001\130\001\217\000\174\001\233\000\000\001\200\001\223\000\000\001\234\004\160\003)\000\000\001\235\003^\002d\004u\000\000\001\236\000v\000>\000\210\000\000\000\228\002m\003:\003V\004\161\000\000\004\164\004t\002f\000\000\000\000\000\000\003W\000\000\003X\000j\000\000\000\000\000\212\003<\000w\004|\000\213\003A\000\000\003N\001\232\003!\000>\001\202\000\000\000>\000\000\001\203\000v\005;\000\000\000\000\004}\004t\001\216\000\000\000j\000\164\001D\000\212\001\233\000\000\000\226\000\213\001\216\001\234\002\\\000\149\001\217\001\235\005p\000\000\000w\000\000\001\236\002t\001\216\000\000\001\217\004u\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\226\001\217\000\000\000\000\002u\001\200\001\223\000\000\000\150\005z\003)\000\000\000\000\005s\002d\000\000\005t\000*\000\174\000>\000\000\000\000\004u\002m\003n\003V\000\000\000\000\004\135\000y\002f\000\000\000\000\000\151\003W\000\000\003X\000\152\000\000\000\000\000\000\003<\002\\\000{\000\000\003A\001\233\003N\001\232\003!\000\000\001\202\001\216\000>\000\227\001\203\001\233\002a\000\000\000\000\001\238\002b\000\164\001D\003(\000\000\001\217\000\000\001\233\004|\001\240\001\200\001\223\001\234\000\000\003)\000\000\001\235\000\000\002d\004.\000\227\001\236\002t\000\000\000>\004}\004t\000\000\002m\003n\003V\000\000\000\164\000\165\002f\000\164\001D\004\182\003W\000\000\003X\000\251\000\000\000\000\000\000\003<\004|\005>\005b\003A\000\000\003N\001\232\000\000\003!\000\000\001\202\000\000\000\000\000\000\001\203\000\252\000\000\004}\004t\000F\000\253\000\000\000\000\000\000\000\254\004\148\001\233\000\000\000\000\000\255\002\143\001\234\002\\\002\168\001\132\001\235\000\174\003\005\004u\003\019\001\236\000\000\001\216\000\000\000h\000\000\000\000\002a\000\189\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\003u\000>\000\000\001\200\001\223\005;\000\000\003)\003P\000\000\000\000\002d\000\000\000\000\000\000\000\000\002[\000>\004u\000\000\002\145\002m\003n\003V\002\146\003T\000\000\002f\000\164\001D\000j\003W\000\000\003v\000\000\000k\000\000\000\000\003<\000l\002\\\002\249\003A\000\000\003N\001\232\000\000\003!\000\000\001\202\001\216\000\000\000\000\001\203\000\000\002a\000\210\000\000\000\233\002b\000\164\001D\003(\000u\001\217\001\233\003w\000\000\001\200\001\223\001\234\000h\004\160\003)\001\235\000i\003\005\002d\003\019\001\236\000\000\000\000\000>\000\000\000\000\004\222\002m\003\148\003V\004\161\004\146\004\164\004t\002f\000\000\000\000\000\000\003W\000\000\003v\000j\000\000\004\223\000\212\003<\004\226\004t\000\213\003A\000\000\003N\001\232\003!\000\000\001\202\000j\002\159\000\000\001\203\002\226\000k\000\000\000\000\000h\000l\002\187\000\000\000q\004\144\000\000\002\160\001\233\000\000\000\226\000\000\000\000\001\234\002\\\000\000\000\000\001\235\000\164\005<\000\000\000v\001\236\003\150\001\216\000u\000\000\004u\002\228\002a\005G\005?\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\003\137\004u\001\200\001\223\000j\000w\000\000\003)\004|\000k\000\000\002d\000\000\000l\000\000\000\000\000>\004|\000\000\000\000\002m\003\148\003V\0029\000\000\004}\004t\002f\000\000\000\000\002\234\003W\000\000\003v\004}\004t\002\190\000u\003<\002\\\000\000\000\000\003A\000\000\003N\001\232\003!\000\000\001\202\001\216\002\191\000\227\001\203\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\001\233\000v\001\200\001\223\000\000\001\234\004|\003)\000\000\001\235\003\170\002d\004>\000\000\001\236\003\152\000>\000\000\000\000\004u\002m\003:\003V\004}\004t\000w\000\000\002f\004u\000\000\004\185\003W\000\000\003\151\000\251\000\000\002\143\000\000\003<\002\162\000\000\000\000\003A\004\239\003N\001\232\003!\000\000\001\202\000\000\000\000\000\000\001\203\000v\000\252\000\000\000\000\000h\000\000\000\253\000\000\000q\000\000\000\254\000\000\001\233\000\000\000\210\000\255\000\211\001\234\002\\\000\149\000\000\001\235\000\000\000\000\000w\000\000\001\236\000j\001\216\004u\000\000\002\145\000\000\002a\000\000\002\146\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\000\000\001\200\001\223\000j\000\150\000\000\003)\000\000\000k\000\000\002d\000\000\000l\000j\000\000\000>\000\212\000\000\000\000\002m\000\213\003 \002;\000\000\000\000\000y\002f\000\000\000\000\000\151\003W\004\180\003\151\000\152\000\000\000\000\000u\003<\002\\\000{\004\192\003A\000\000\003N\001\232\003!\000\226\001\202\001\216\000\000\000\000\001\203\000\000\002a\000\210\000\000\000\233\002b\000\164\001D\003(\000\000\001\217\002u\001\233\000\000\001\200\001\223\000\000\001\234\004\160\003)\000\000\001\235\000\000\002d\003\007\004\020\001\236\000\000\000>\003\156\002\159\004\222\002m\000\000\003 \004\161\000\000\004\164\004t\002f\000\000\000\000\004\201\003W\002\160\003X\000j\000\000\004\223\000\212\003<\004\226\004t\000\213\003A\000\000\003N\001\232\003!\000\000\001\202\000\000\000\000\000\000\001\203\000v\000\000\001+\000\000\000h\000\000\001\200\001\221\000q\000\000\000\227\000\000\001\233\000\000\000\226\000\000\000\000\001\234\002\\\000\149\000\000\001\235\000\000\000\000\000w\004\"\001\236\000\000\001\216\003\156\000\000\004u\000\000\002a\000\000\000\000\001-\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\004u\001\200\001\223\000j\000\150\000j\003)\001\202\000k\000\000\003\145\001\203\000l\000\000\000\000\000>\000\000\000\000\000\000\002m\000\000\003 \002=\000F\000\000\000y\002f\000\000\003C\000\151\0037\003\147\000\000\000\152\000\000\000\000\000u\003<\002\\\000{\000\000\003A\000\000\003N\001\232\003!\000\000\001\202\001\216\000\000\000\227\001\203\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\001\233\000\000\001\200\001\223\004\222\001\234\003H\003)\000\000\001\235\000\000\003\145\004M\004$\001\236\000\000\000>\003\156\000\000\000\000\002m\004\223\003 \003L\004\226\004t\000\000\002f\000\000\000\000\004\188\0037\003\147\000\000\000\251\000\000\000\000\000\000\003<\000\000\000\000\001\216\003A\004\252\003N\001\232\003!\000\000\001\202\004|\000\000\000\000\001\203\000v\000\252\001\217\000\000\000h\000\000\000\253\000\000\000q\000\000\000\254\000\000\001\233\004}\004t\000\255\000\000\001\234\002\\\000\149\000\000\001\235\000\000\000\000\000w\005K\001\236\000\000\001\216\003\156\004u\000\000\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\004|\001\200\001\223\000j\000\150\000\000\003)\000\000\000k\005S\003\145\000\000\000l\000\000\000\000\000>\000\000\004}\004t\002m\003:\003V\000\000\000\000\001\222\000y\002f\004u\000\000\000\151\0037\003\147\000\000\000\152\000\000\000\000\000u\003<\002\\\000{\000\000\003A\000\000\003N\001\232\003!\000\000\001\202\001\216\000\000\000\000\001\203\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\001\233\000\000\001\200\001\223\004\222\001\234\000\000\003)\000\000\001\235\002\143\003\145\004u\002\161\001\236\000\000\000>\000\000\000\000\000\000\002m\004\223\003 \000\000\004\226\004t\000\000\002f\005\004\000\000\004\222\0037\003\147\000\000\000>\000@\000A\000C\003<\000\000\000\000\000\000\003A\002\242\003N\001\232\003!\004\223\001\202\000\000\004\226\004t\001\203\000v\000j\000\000\000\000\000h\002\145\000\000\000\000\000q\002\146\000\000\000E\001\233\000\000\000\000\000\000\000\000\001\234\002\\\002\182\004\199\001\235\000\000\000\000\000w\005Y\001\236\000\000\001\216\003\156\004u\000\000\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\000\000\001\200\001\223\000j\000\150\000\000\003)\000\000\000k\005\133\002d\004u\000l\000\000\000\000\000>\000\000\000\000\000\000\002m\003:\003V\000\000\000\000\004\243\000y\002f\000\000\000\000\000\151\003W\000\000\003X\000\152\000\000\000\000\000u\003<\002\\\000{\000\000\003A\000\000\003N\001\232\003!\002\143\001\202\001\216\002\168\000\000\001\203\000\000\002a\000\000\000\000\002\159\002b\000\164\001D\003(\000\000\001\217\000\000\001\233\003\165\001\200\001\223\004\160\001\234\002\160\003)\000\000\001\235\000\000\003\145\000\164\001D\001\236\000\000\000>\000\000\000\000\000\000\002m\004\161\003V\004\164\004t\001F\000j\002f\005\007\000\000\002\145\0037\003\147\000\000\002\146\000\000\001m\000\000\003<\000\000\000\000\000\000\003A\002\180\003N\001\232\003!\000\000\001\202\000\000\000\000\000\000\001\203\000v\005\014\000\000\000\000\000\000\000\000\000\000\001p\000\000\001s\000\000\000\000\001\233\000\000\000\000\000\000\000\000\001\234\002\\\002\182\000\000\001\235\000>\000D\000w\000C\001\236\000\000\001\216\004u\000\000\000\000\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\000\000\001\200\001\223\000\000\000\150\000\000\003)\000E\000\000\000\000\002d\000\000\003Z\000\000\000\000\000>\000\000\000\000\000\000\002m\000\000\003 \000\000\000\000\000\000\000y\002f\000\000\002\159\000\151\003W\000\000\003X\000\152\000\000\000\000\000\000\003<\002\\\000{\000\000\003A\002\160\003N\001\232\003!\000\000\001\202\001\216\000\000\000\000\001\203\000\000\002a\000\000\000>\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\001\233\000\000\001\200\001\223\000\000\001\234\000\000\003)\000\000\001\235\000\000\003\167\000\000\003\031\001\236\000\000\000>\000\000\000\000\000\000\002m\003\184\003 \000\000\000\000\000\000\000\000\002f\004\245\000\000\000\000\003W\000\000\003\169\000>\000@\001z\000C\003<\000\000\000\000\000\000\003A\000\000\003N\001\232\003!\002\190\001\202\000\000\000\000\000\000\001\203\000\164\001D\000\000\000\000\000\000\000\000\000\000\000\000\002\195\000\000\000\000\000E\001\233\001F\000\000\000\000\000\000\001\234\002\\\000\000\000\000\001\235\000\000\000\210\001m\000\231\001\236\000\000\001\216\002\143\000\000\000\000\002\168\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\000\000\001\200\001\223\001p\000\000\001s\003)\000\000\000\000\000\000\0035\000\000\003;\000\000\000\000\000>\000\000\000\000\000\000\002m\000\000\003 \000j\000\000\000\000\000\212\002f\000\000\002[\000\213\0037\0038\002\145\000\164\001D\000\000\002\146\003<\002\\\000\000\000\000\003A\000\000\003N\001\232\003!\003\190\001\202\001\216\000\000\000\000\001\203\000\000\002a\000\000\000\226\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\001\233\000\000\001\200\001\223\000\000\001\234\000\000\003)\000\000\001\235\000\000\0035\000\164\001D\001\236\000\000\000>\003\202\000\000\003\208\002m\000\000\003 \000\000\000\000\001F\000\000\002f\000\000\000\000\000\000\0037\0038\000\210\000\000\000\233\001m\000\000\003<\000\000\000\000\000\000\003A\000\000\003N\001\232\003!\000\000\001\202\000\000\000\000\000\000\001\203\000\000\000\210\000\000\000\231\000\000\000\000\000\000\001p\000\000\001s\005'\002\159\001\233\000\000\002\235\000\000\000\000\001\234\002\\\000\227\002\187\001\235\000\000\000\000\000j\002\160\001\236\000\212\001\216\000\000\000\000\000\213\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\000j\001\200\001\223\000\212\000\000\000\000\003)\000\213\000\000\000\000\0035\000\000\000\226\000\000\000\000\000>\000\000\000\000\000\000\002m\000\000\003 \000\000\000\000\000\000\000\000\002f\000\000\000\000\000\000\0037\0038\000\000\000\226\000\000\000\000\000\000\003<\002\\\000\000\000\000\003A\000\252\003N\001\232\003!\000\000\001\202\001\216\002\190\000\210\001\203\000\231\002a\000\000\000\000\001\003\002b\000\164\001D\003(\000\000\001\217\002\191\001\233\000\000\001\200\001\223\003y\001\234\000\000\003)\000\000\001\235\000\000\003r\000\000\000\000\001\236\000\000\000>\000\000\000\000\000\000\002m\000\000\003 \000\000\000\000\000\000\000\000\002f\000\000\000\227\000j\0037\003t\000\212\001\200\001\223\000\000\000\213\003<\000\000\000\000\000\000\003A\000\000\003N\001\232\003!\000\000\001\202\000\000\000\227\000\000\001\203\000\000\003b\005(\000\000\000\000\000\000\001\200\001\221\000\000\000\000\000\226\000\000\001\233\000\000\000\000\000\000\000\000\001\234\002\\\000\000\000\000\001\235\000\000\000\000\000\251\002[\001\236\001\202\001\216\000\000\000\000\001\203\000\000\002a\005+\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\000\252\000\000\001\200\001\223\003q\000\253\000j\003)\001\202\000\254\000\000\003r\001\203\000\000\000\255\000\000\000>\000\000\000\000\000\000\002m\000\252\003 \000\000\000\000\000\000\000\000\002f\000\000\000\000\003h\0037\003t\000\000\001\228\001\005\000\000\000\000\003<\002\\\000\000\000\000\003A\000\000\003N\001\232\003!\000\227\001\202\001\216\000\000\000\000\001\203\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\001\233\000\000\000\000\003\133\000\000\001\234\002\\\003)\000\000\001\235\000\000\003\134\001\200\001\221\001\236\000\000\001\216\000\000\000\000\000\000\000\000\002a\000\000\000\000\000\000\002b\000\000\002f\000\000\000\000\001\217\0037\003\136\000\000\001\200\001\223\000\000\000\000\003<\000\000\000\000\001\216\003A\003j\003N\001\232\000\000\000\000\000>\000\000\000\252\000\000\002m\000\000\003 \001\217\000j\000\000\001\202\002f\000\000\000\000\001\203\000\000\001\007\001\233\000\000\000\000\000\000\000\000\001\234\002\\\000\000\000\000\001\235\000\000\000\000\001\232\003!\001\236\001\202\001\216\000\000\000\210\001\203\000\231\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\001\233\000\000\001\200\001\223\003\131\001\234\000\000\003)\000\000\001\235\000\000\003r\000\000\000\000\001\236\000\000\000>\003\144\000\000\000\000\002m\000\000\003 \000\000\000\000\001\233\000\000\002f\000\000\000\000\000j\0037\003t\000\212\000\000\000\000\000\000\000\213\003<\001\242\000\000\000\000\003A\000\000\003N\001\232\003!\000\000\001\202\000\000\000>\000\000\001\203\000\000\005;\000\000\000\000\000h\000\000\001\216\000\000\000q\000\000\000\226\000\000\001\233\000\000\000\000\000\000\000\000\001\234\002\\\000\000\001\217\001\235\000\000\000\000\001\200\001\221\001\236\000\000\001\216\003\149\000\000\000>\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\000\000\001\200\001\223\000j\000\000\000\000\003)\000\000\000k\000\000\003\145\005O\000l\000\000\000\000\000>\000\000\000\000\000\000\002m\000\000\003 \000\000\000j\000\000\001\202\002f\000\000\000\000\001\203\0037\003\147\000\000\000\000\000\000\000\000\000u\003<\002\\\000\000\005o\003A\001\233\003N\001\232\003!\000\227\001\202\001\216\000\000\000\000\001\203\000\000\002a\000\000\000\000\001\244\002b\000\164\001D\003(\000\000\001\217\000\000\001\233\000\000\001\200\001\223\000\000\001\234\000\000\003)\000\000\001\235\000\000\003\145\005[\000\000\001\236\000\000\000>\000\000\000\000\000\000\002m\000\000\003 \000\000\000\000\000\000\000\000\002f\000\164\005<\000\000\0037\003\147\000\000\000\000\000\000\000\000\000\000\003<\000\000\005>\005?\003A\003\003\003N\001\232\003!\000\000\001\202\000\000\000\252\000\000\001\203\000v\000\000\000\000\000\000\000\000\000\000\001\216\000\000\000\000\000\164\001D\001\t\001\233\000\000\000\210\000\000\000\231\001\234\002\\\002\182\001\217\001\235\005p\000\000\000w\000\000\001\236\000\000\001\216\000\000\000\000\000\000\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\000\000\000\000\000\000\001\200\001\223\000\000\000\150\000\000\003)\000\000\000\000\005s\005P\005^\005t\000j\000\174\000>\000\212\000\000\000\000\002m\000\213\003 \000\000\000\000\000\000\000y\002f\000\000\000\000\000\151\0037\005R\000\000\000\152\000\000\000\000\000\000\003<\002\\\000{\000\000\003A\001\233\003N\001\232\003!\000\226\001\202\001\216\000\000\000\000\001\203\000\000\002a\001\200\001\221\001\246\002b\000\164\001D\003(\000>\001\217\000\000\001\233\000\000\001\200\001\223\000\000\001\234\000\000\003)\000\000\001\235\000\000\005P\000\000\000\000\001\236\000\000\000>\000\000\000\000\000\000\003\183\000\000\000\000\000\000\000\000\000\000\000\000\002f\000\000\000\000\000\000\0037\005R\000\000\000j\000\000\001\202\000\000\003<\003\215\001\203\000\000\003A\000\000\003N\001\232\003\218\000\000\001\202\000\000\001Y\000\000\001\203\000h\000\000\000\000\000h\000s\000\000\000\000\000}\000\000\000\000\000\227\001S\001\233\001\200\001\223\003\224\000\000\001\234\002\\\000\000\000\000\001\235\000\000\000\000\000\000\000\000\001\236\000>\001\216\000\000\000\000\003\183\000\000\002a\000\000\000\000\000\000\002b\000\164\001D\003(\000\000\001\217\004\006\000j\000\000\001\228\000j\001 \000k\004\n\003)\000k\000l\000\000\005P\000l\003\218\000\000\001\202\000\000\000\000\000\000\001\203\000\000\000\000\000\000\000\000\000\000\001\200\001\223\002f\000\000\000\000\000\000\0037\005R\000u\000\252\003\224\000u\001\216\003<\000>\000\164\001D\003A\003\183\003N\001\232\000\000\000\000\001\011\001\216\000\000\001\217\000\000\001T\000\000\000\000\000\000\000\000\000\000\000\164\001D\003\225\003\217\001\217\000\000\001\233\000\000\000\000\000\000\003\218\001\234\001\202\003\226\000\000\001\235\001\203\004\008\000\000\000\000\001\236\001_\000\000\001j\000\000\000\000\001\\\000\000\000\000\001]\000\000\000\174\003\224\000\000\000\000\000\000\000\000\000\000\000\000\000h\000\000\000\000\000\000\000q\003\240\000>\000\000\000\000\004\t\002m\003\252\001\232\000\000\000>\001\216\000v\000\000\000\000\000v\001\233\000\000\000\000\000\000\000\000\000\164\001D\003\225\000\000\001\217\000\000\000\000\001\233\000\000\001\248\000\000\004B\001\234\003\226\000\000\000w\001\235\003\238\000w\000j\000\000\001\236\000\000\000\000\000k\000\000\000\000\000\000\000l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000h\000x\000\000\000\000\000q\003\240\000\000\001\216\000\000\003\245\000\000\003\252\001\232\000u\000>\000\000\000\000\000\164\001D\003\225\000\000\001\217\000y\000\000\000\000\000y\000\000\000z\000\000\000\000\003\226\000\000\001\233\000\000\003\238\000\000\000{\001\234\000\000\000~\000\000\001\235\000\000\000h\000j\000\000\001\236\000q\000\000\000k\000\000\000\000\000\000\000l\000\000\000\000\002\143\000>\000\000\002\168\000\000\003\240\000\000\000\000\000\000\003\245\000\000\003\252\001\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\164\001D\003(\000\000\000\000\000j\001\233\000\000\000\164\000\165\000k\001\234\000v\003)\000l\001\235\000>\001o\002[\000C\001\236\000\000\002\145\000\000\000\000\000\000\002\146\000\000\000\168\000\169\000\171\000\172\000\000\000\000\000\000\000\000\000w\004C\000u\000\000\000\000\000\000\000\000\000\000\003<\000\000\000E\000\000\003A\000\000\003N\000\000\000\000\000h\000\000\000\000\000\173\000q\000\174\000\000\000\000\000\150\000\000\000\000\000h\000\000\000\000\000>\000q\000\000\000\000\000\000\000\164\000\165\000\000\000\000\000v\000\000\000>\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\151\000\000\000\000\000\000\000\152\000\000\000\168\000\217\000\171\000\172\000{\000j\000\179\000\000\000w\000\000\000k\000>\000\000\000\000\000l\002m\000j\000\000\000\000\000\000\000\000\000k\000\000\000\164\000\165\000l\002\159\000v\000\173\002\226\000\174\000\000\000\000\000\150\002\143\002\187\000\000\002\168\000u\000\000\002\160\004B\000\000\000\168\001\207\000\171\000\172\000\000\000\000\000u\000\000\000w\000\000\000\000\000y\000h\000\000\000\000\000\151\000q\000\000\002\228\000\152\000\000\000\164\001D\000\000\000\000\000{\000>\000\179\000\173\000\000\000\174\000\000\000\000\000\150\001F\002[\000\000\000\000\002\143\002\145\000\000\002\168\000\000\002\146\000\000\001m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000y\000\000\000j\000\000\000\151\000\000\002\233\000k\000\152\000\000\000\000\000l\002\190\000\000\000{\001p\000\179\001s\000\164\000\165\000\000\000\000\000v\000\000\000\000\000\000\002\191\000\000\002[\000\164\000\165\000\000\002\145\000v\000\000\000u\002\146\000\000\000\168\002^\000\171\000\172\000\000\000\000\000\000\000\000\000w\000\000\000\000\000\168\002\150\000\171\000\172\000\000\000\164\001D\003(\000w\000\000\000\000\000\000\000h\000\000\000\000\000\000\000q\000\173\003)\000\174\000\000\000\000\000\150\000\000\000\000\000h\000>\000\000\000\173\000q\000\174\000\000\002\159\000\150\000\000\002\186\000\000\000\000\000\000\000>\000\000\002\187\004E\000y\000\000\000\000\002\160\000\151\000\000\003<\000\000\000\152\000\000\003A\000y\003N\000j\000{\000\151\000\179\000\000\000k\000\152\000\164\000\165\000l\000\000\000v\000{\000j\000\179\000\000\000\000\000\000\000k\000\000\000\000\000\000\000l\002\159\000\000\000\000\002\226\000\168\003>\000\171\000\172\002\143\002\187\000u\002\168\000w\000\000\002\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\000\000\000\000\000h\000\000\000\000\000\000\000q\000\000\000\173\000\000\000\174\002\228\002\190\000\150\000\000\000\000\000>\000h\000\000\000\000\000\000\000q\000\000\000\000\000\000\000\000\002\191\000\000\000j\000\000\000\000\000>\002\145\000\000\000y\000\000\002\146\000\000\000\151\000\000\000\000\000\000\000\152\000\000\000\000\000\000\000j\000\000\000{\000\000\000\179\000k\000\000\002\231\000\000\000l\000\000\002\143\000\000\002\190\002\144\000j\000\000\000\164\000\165\000\000\000k\000v\000\000\000\000\000l\000\000\000\000\002\191\000\000\000\000\000\164\000\165\000h\000u\000v\000\000\000q\000\168\003\242\000\171\000\172\000\000\000\000\000\000\000\000\000w\000>\000\000\000u\000\000\000\181\000\000\000\000\000\172\000\000\000j\000\000\000\000\000w\002\145\000\000\000\000\000\000\002\146\000\000\000\173\000\000\000\174\000\000\000\000\000\150\000\000\000\000\000\000\000\000\000h\000j\000\000\000\173\000q\000\174\000k\002\159\000\150\000\000\000l\000\000\000\000\000\000\000>\000\000\000y\000\000\000\000\000\000\000\151\002\160\000\000\000\000\000\152\000\000\001\200\001\223\000\000\000y\000{\000\000\000\179\000\151\000u\000\164\000\165\000\152\000\000\000v\000\000\000\000\000\000\000{\000j\000\179\002T\004\031\000h\000k\000\164\000\165\000q\000l\000v\000\000\000\000\000\000\000\191\000\000\000\000\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\002[\000\000\001\202\000\194\000\000\000\000\001\203\000u\000w\000\000\002\159\000\000\000\000\001.\000\000\000\174\000\000\000\000\000\150\000\000\002\169\000h\000j\000\000\002\160\000q\000\000\000k\000\196\000\000\000\174\000l\000\000\000\150\000h\000>\000\000\000\000\000q\000y\000\000\000\164\000\165\000\151\000\000\000v\000\000\000\152\000>\000\000\000\000\000\000\000\000\000{\000y\000u\000\000\000\000\000\151\000\000\001\200\001\223\000\152\000\000\000\194\000j\000\000\000\000\000{\000w\000k\000\000\000\000\000\000\000l\000\000\0011\000\000\000j\000\000\002T\003k\000h\000k\000\164\000\165\000s\000l\000v\0014\002\\\000\174\000\000\000\000\000\150\000\000\000\000\000\000\000u\000\000\001\216\001\200\001\223\000\000\002[\002a\001\202\000\191\000\000\002b\001\203\000u\000w\000\000\001\217\000y\000\000\000\000\000\000\000\151\000\000\002T\003a\000\152\001\200\001\221\000j\002d\000\000\000{\000\000\000k\001:\000\000\000\174\000l\000v\000\150\000\000\000\000\000\000\000\000\000\000\002f\000\000\002[\000\000\001\202\000\000\000\000\000\000\001\203\000\000\000\000\000\000\001\"\000\000\000\000\000y\000u\000w\001\232\000\151\000\000\000\000\000\000\000\152\000\000\000j\000\000\001\202\000\000\000{\000\000\001\203\000\164\000\165\000\000\000\000\000v\000\000\001\233\000\000\000\000\000\000\000\150\001\234\000\000\000\164\000\165\001\235\000\000\000v\000\000\002\\\001\236\000\000\000\000\001\183\000\000\000\000\000\000\000\000\000w\001\216\000\000\000y\000\000\000\000\002a\000\151\001\183\000\000\002b\000\152\000\000\000w\000\000\001\217\000\000\000{\000\000\000\000\001\185\000\000\000\174\000\000\000\000\000\150\000\000\000>\002d\000\000\000\000\002m\002\\\002\012\000\000\000\174\000\000\000v\000\150\000h\000\000\000\000\001\216\000q\002f\000\000\000y\002a\000\000\000\000\000\151\002b\000\000\000>\000\152\000\000\001\217\004B\000\000\000y\000{\000w\001\232\000\151\000\000\001\216\000\000\000\152\000\000\002d\000\000\000\000\000\000\000{\001\200\001\223\000\000\000\000\000\000\001\217\000\000\000\000\001\233\000j\000\000\002f\000x\001\234\000k\000\000\000\000\001\235\000l\000\000\002T\002U\001\236\000\000\000\000\000\000\000\000\000\000\000\000\001\232\000\000\001\200\001\223\000y\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000u\000\000\002[\000\000\001\202\000{\000\000\001\233\001\203\002T\002`\000\000\001\234\000h\000\000\000\000\001\235\000q\000\000\000\000\000\000\001\236\000\000\000\000\000\000\000\000\000\000\000>\000\000\000\000\001\233\000\000\000\000\002[\000\000\001\202\000\000\000\000\000\000\001\203\000\000\000\000\000\000\000\000\001\250\000\000\000\000\001\200\001\223\000\000\000\000\000\164\001D\003(\000\000\000\000\000\000\000j\000\000\000\000\000\000\000\000\000k\000\000\003)\000\000\000l\002T\003m\000\000\000\000\000\000\000\000\000\000\000\000\000h\000\000\000\164\000\165\000s\000\000\000v\000\000\000\000\000\000\000\000\000\000\000\000\004G\000\000\000u\002[\002\\\001\202\000\000\003<\000\000\001\203\000\000\003A\002\127\003N\001\216\000\000\000\000\000w\000\000\002a\000\000\000\000\000\000\002b\000\000\000\000\000\000\000\000\001\217\000\000\000\000\000j\001\200\001\223\000\000\002\\\000k\002\129\000\000\000\174\000l\002d\000\150\000\000\000\000\001\216\000\000\000\000\000\000\000\000\002a\000\000\002T\0044\002b\000\000\000\000\002f\000\000\001\217\000\000\000\000\000\000\000y\000u\000\000\000\000\000\151\000\000\000\000\000\000\000\152\002d\000\000\000\000\001\232\002[\000{\001\202\000\164\000\165\000\000\001\203\000v\000\000\000\000\000\000\000\000\002f\000\000\000\000\000\000\000\000\002\\\000\000\001\233\000\000\000\000\001\200\001\223\001\234\000\000\002\127\001\216\001\235\000\000\001\232\000w\002a\001\236\000\000\000\000\002b\000\000\000\000\000\000\000\000\001\217\002T\0046\000\000\000\000\000\000\000\000\000\000\000\000\001\233\002\166\000\000\000\174\002d\001\234\000\150\000h\000\000\001\235\000\000\000q\000\000\000\000\001\236\000\000\002[\000\000\001\202\000v\002f\000\000\001\203\000\000\000\000\000\000\000\000\000y\000\000\001\200\001\223\000\151\001\200\001\223\000\000\000\152\000\000\000\000\001\232\000\000\002\\\000{\000\000\000w\000\000\000\000\000\000\000\000\000\000\003d\001\216\000j\002T\0048\000\000\002a\000k\000\000\001\233\002b\000l\000\000\000\000\001\234\001\217\000h\000\000\001\235\000x\000q\000\000\000\000\001\236\002[\000\000\001\202\002[\002d\001\202\001\203\000\000\000\000\001\203\000\000\000u\000\000\000\000\000\000\000\000\000y\000\000\000\000\000\000\002f\000\163\000h\000\000\000h\000\000\000}\000\000\000q\000\000\000{\000\000\002|\002\\\001\200\001\221\000j\000\000\001\232\000\000\000\000\000k\000\000\001\216\000\210\000l\000\231\000\000\002a\000\000\000\000\000\000\002b\000\000\000\000\000\000\000\000\001\217\001\233\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000j\001\235\000j\000u\002d\000k\001\236\000k\000\000\000l\000\000\000l\000j\000\000\001\202\000\000\000\000\000\000\001\203\000\000\002f\000\000\000j\000\000\002\\\000\212\000v\002\\\000\000\000\213\000\000\000\000\000\000\000u\001\216\000u\000\000\001\216\001\232\002a\000\000\000\000\002a\002b\000\000\001\"\002b\000\000\001\217\000\000\000w\001\217\000\000\000\000\000\000\000\226\000\000\000\000\001\233\000\000\000\000\002d\000\000\001\234\002d\000\000\000\000\001\235\000\000\000\000\000\000\000\000\001\236\000\000\003\015\000\150\000\000\002f\000\000\000\000\002f\000\000\000\000\000\000\000v\000\000\000\000\000\000\000\000\000\000\000h\000\000\000\000\000h\000q\001\232\000y\000q\001\232\000\000\000\151\000\000\000>\002\182\000\152\000\210\003\023\000\231\000w\000\000\000{\000\000\001\216\000\000\000v\001\233\000v\000\000\001\233\000\000\001\234\000\000\000\000\001\234\001\235\000\000\001\217\001\235\000\000\001\236\000\000\000\000\001\236\000\150\000j\002\182\000\227\000j\000w\000k\000w\000\000\000k\000l\000\000\000\000\000l\000\000\000\000\000j\000\000\000\000\000\212\000\000\000y\001Y\000\213\000h\000\151\000h\000\000\000q\000\152\000q\000\000\000\150\000\000\000u\000{\001S\000u\000\000\000h\000\000\000\000\000h\000q\000\000\000\000\000q\000\000\000\000\000\226\000\000\000y\000\000\000y\000>\000\000\000\000\000\151\000\000\000\000\001\233\000\152\000\000\000\000\000\000\000\128\000\000\000{\000j\000\000\000j\000\252\000\000\000k\001\252\000k\000\000\000l\000\000\000l\000\000\000\000\000\000\000j\000\000\001\013\000j\000\000\000k\000\000\000\000\000k\000l\000\000\000\000\000l\000\000\000\000\000\000\000\000\000\000\000u\000\000\000u\000\000\003$\000\000\001Y\0033\000\164\001D\000\000\000\000\000\000\000\000\000v\000u\000\000\000v\000u\000\000\001S\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\227\000\000\000\000\000\000\002\182\000\000\000\000\002\182\000\000\000w\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\001_\000\000\001`\000\000\000\000\001\\\000\000\000\000\001]\000\000\000\174\000\000\000h\000\000\000\000\000\150\000q\000\000\000\150\000\000\000\000\000\000\000\000\003J\000h\003R\000\000\000h\000q\000\000\000\000\000q\000\000\000v\000\000\000v\000y\000\000\003\188\000y\000\151\003\200\000\000\000\151\000\152\000\164\001D\000\152\000v\000\252\000{\000v\002\182\000{\002\182\000\000\000j\000w\001T\000w\000\000\000k\000\000\001\015\000\000\000l\000\000\002\182\000j\000\000\002\182\000j\000w\000k\000\000\000w\000k\000l\000\000\000\000\000l\000\000\000\150\000\000\000\150\001_\000\000\001e\000\000\000u\001\\\000\000\000\000\001]\000\000\000\174\000\000\000\150\000\000\000\000\000\150\000u\000\000\000y\000u\000y\000\000\000\151\000\000\000\151\000h\000\152\000\000\000\152\000q\000\000\000\000\000{\000y\000{\000\000\000y\000\151\000\000\000\000\000\151\000\152\000\000\000\000\000\152\000h\000\000\000{\000\000\000q\000{\000\000\000h\000\000\000\000\000\000\000q\000\000\000>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000j\000\000\000\000\000\000\000\000\000k\003\206\000\000\000\000\000l\000\000\000\000\000\000\000\000\000\000\000h\000v\000\000\003\213\000s\000j\003\222\000\000\000\000\000\000\000k\000\000\000j\000v\000l\000\000\000v\000k\000u\000\000\002\182\000l\000\000\000\000\000\000\000w\000\000\001Y\000\000\000h\000\000\000\000\002\182\000q\000\000\002\182\000\000\000w\000u\000\000\000w\001S\005\"\000\000\000j\000u\000\000\000\000\000\000\000k\000\150\000\000\000\000\000l\000\210\000\000\000\231\000\000\000\000\000\000\000\000\000\000\000\150\000\000\000\000\000\150\000\000\000\000\000\000\000\000\000\000\000y\000\000\000j\000\000\000\151\000h\000u\000k\000\152\000q\000\000\000l\000y\000>\000{\000y\000\151\000\000\003\236\000\151\000\152\000\000\000\000\000\152\000\000\000\000\000{\000j\000v\000{\000\212\000\000\000\000\000\000\000\213\000u\000\000\000h\003\250\000\000\000\000\000q\000\000\000\164\001D\004\001\000\000\002\182\000v\000j\005\148\000\000\000w\000\000\000k\000v\001T\000\000\000l\000\000\000\226\000\000\000\000\000\000\000\000\000\000\001Y\002\182\000\000\000\000\000\000\000h\000w\000\000\002\182\000q\000\000\000\150\000\000\000w\001S\000j\000u\001_\000\000\001\141\000k\000v\001\\\000\000\000l\001]\000\000\000\174\000\000\000\000\000\000\000\150\000y\001\200\001\221\000\000\000\151\000h\000\150\000\000\000\152\000q\000\000\000\000\000\000\000w\000{\000\000\000u\000j\000v\000\000\000y\000\000\000k\000\000\000\151\000\000\000l\000y\000\152\000\000\000\000\000\151\000h\000\000\000{\000\152\000s\005/\000x\000\000\000\000\000{\000w\000\227\000\000\000j\000\000\001\202\000\000\000j\000u\001\203\000\000\000\000\000k\000\164\001D\000\000\000l\000y\000\000\000\000\000\000\000\000\000\235\000v\000\000\000\150\001T\000\000\000\000\000h\000\000\000{\000h\000q\000j\000\000\000q\000\000\000\000\000k\000u\000\000\000\183\000l\000\000\000\000\000y\000w\000\000\000\000\000\151\000\000\000\000\001[\000\152\000v\000\000\000\000\001\\\000\000\000{\001]\000\000\000\174\000\000\000\000\000h\000u\000\000\000\252\000q\000\000\000\150\000j\005/\000\000\000j\000\000\000k\000w\000\000\000k\000l\001\017\000\000\000l\000\000\000\000\000\000\000v\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\151\000h\000\000\000\000\000\152\000q\001\216\000\150\000\000\000u\000{\000\220\000u\000j\001\200\001\221\000w\000\000\000k\000\000\001\217\000\000\000l\000\000\000v\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\151\000h\000\000\000\000\000\152\000q\000\000\000\000\000\000\000\150\000{\000\245\002\143\000j\000u\002\168\000w\000\000\000k\000v\000\000\000\000\000l\000\000\000\000\000\000\000j\000\000\001\202\000\000\000y\000\000\001\203\000\000\000\151\000h\000\000\000\000\000\152\000q\000\000\000\150\000\000\000w\000{\000j\000u\000\000\000h\000\000\000k\000\000\000q\000\000\000l\001\233\000j\000\000\000v\000\000\002\145\000v\000y\000\000\002\146\000\000\000\151\000\000\000x\001\254\000\152\000\000\000\000\000\210\000\000\000\231\000{\001$\000u\000j\001\170\000\000\000w\000\000\000k\000w\000\000\000\000\000l\000y\000\000\000\000\000j\000\000\000\237\000v\000\000\000k\000\000\000\000\000\000\000l\000\000\000{\000h\000\000\000\000\000\150\000q\000\000\000\150\000h\000u\000\000\001\174\000q\000\000\000j\000\000\000w\000\212\000\000\000\000\000\000\000\213\000u\001\216\000v\000y\000\000\000\000\000y\000\151\000\000\000\000\000\151\000\152\000\000\000\000\000\152\001\217\000\000\000{\000h\000\150\000{\001\210\000q\000j\000\000\000\226\000w\000\000\000k\000\000\000j\002\159\000l\000\000\000v\000k\000\000\000\000\000\000\000l\000y\000\000\000\000\000\000\000\151\002\160\000\000\000\000\000\152\000\000\000\000\000\150\000\000\002\017\000{\000\000\000u\000\000\000w\000\000\000\000\000\000\000j\000u\000\000\000\000\000h\000k\000v\000\000\000q\000l\000y\000\000\000\000\000\000\000\151\000\000\000\000\000\000\000\152\000v\001\233\000\150\000\000\000\000\000{\002\022\000\000\000\000\000\000\000\000\000w\000\000\000\000\000u\002\000\000\000\000\000\000\000\002\026\000\000\000\000\000\000\000y\000w\000\227\000\000\000\151\000\000\000j\000\000\000\152\000\000\002\190\000k\000\000\000\150\000{\000l\000\000\000\000\000h\000\000\000\000\000\000\000q\000\000\002\197\000h\000\150\000\000\000\000\000q\000\000\000\000\000\000\000v\000y\000\000\000\000\000\000\000\151\000u\000v\000\000\000\152\000\000\000\000\000\000\000>\000y\000{\000\000\000\000\000\151\0021\000\000\000\000\000\152\000h\000w\000\000\002X\000q\000{\000j\000\000\000w\000\000\000\000\000k\000\000\000j\000\252\000l\000v\000\000\000k\000\000\000\000\000\000\000l\000\000\000\000\000\000\000\150\000h\001\019\000\000\000\000\000s\000\000\000\150\000\000\002\153\000\000\000\000\000h\000u\000w\000\000\000s\001Y\000j\000\000\000u\000y\000\000\000k\000\000\000\151\000\000\000l\000y\000\152\000\000\001S\000\151\000>\000\000\000{\000\152\000\000\000v\000\150\002\143\000\000\000{\002\168\000\000\000j\000\000\000\000\000\000\000h\000k\000u\000\000\000}\000l\000\000\000j\002\171\000\000\000\000\000y\000k\000w\000\000\000\151\000l\000\000\002\143\000\152\000\000\002\168\000\000\000\000\000\000\000{\000\000\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\002[\000\000\001Y\000\150\002\145\000u\000\000\000\000\002\146\000j\000v\000\000\000\000\000\000\000k\000\000\001S\000v\000l\000\000\000\164\001D\000\000\000\000\000y\000\000\000>\002[\000\151\002\173\000\000\002\145\000\152\001T\000w\002\146\003\176\000\000\000{\000\000\000\000\000w\000u\000\000\000\000\000>\000\000\000\000\000v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\150\001_\000\000\002q\000\000\000\000\001\\\000\150\004\024\001]\000\000\000\174\000\000\000w\000\000\000\000\000v\000\000\000\000\000\000\001Y\000y\000\000\000\000\000\000\000\151\000\000\000v\000y\000\152\000\164\001D\000\151\000\000\001S\000{\000\152\000>\000\150\001Y\000w\002\159\000{\001T\002\189\000\000\000\000\000\000\000>\000\000\002\187\000w\000>\001S\000\000\002\160\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\151\000v\000x\000\000\000\152\002\159\000\000\001_\002\238\002\255\000{\000\000\001\\\000x\002\187\001]\000\000\000\174\000\000\002\160\000\000\000\000\000\000\000y\000\000\000w\000\000\001Y\001\225\000h\000\000\000\000\000\000\000}\000y\000\000\000\000\000{\001Y\001\227\000\000\001S\001Y\000\000\000\164\001D\000\000\000h\000{\000\000\000\148\000}\001S\000\000\000\000\000\000\001S\001T\000\000\000\000\000\000\002\190\000\000\000\164\001D\000\000\000\000\000\000\000h\000\000\000\000\000y\000}\000j\000\000\002\191\001T\000\000\000k\000\000\000\000\000\000\000l\000\000\001_\000{\003\n\000\000\002\190\001\\\000\000\000j\001]\000\000\000\174\000h\000k\000\000\000\000\000}\000l\000\000\002\191\001_\000\000\003/\000u\000\000\001\\\000\000\000\000\001]\000j\000\174\000\164\001D\000\000\000k\000\000\000\000\000\000\000l\000\000\000\000\000u\000\164\001D\001T\000\000\000\164\001D\000\000\000h\000\000\000\000\000\000\000}\000\000\001T\000j\000\000\000\000\001T\000\000\000k\000u\000\000\000h\000l\000\000\000\000\000}\000\000\000h\001_\000\000\003E\000}\000\000\001\\\000\000\000\000\001]\000\000\000\174\001_\000\000\003\196\000\000\001_\001\\\003\232\000u\001]\001\\\000\174\000j\001]\000\000\000\174\000\000\000k\000\000\002\143\000h\000l\002\168\000v\000}\000\000\000h\000j\000\000\000\000\000}\000\000\000k\000j\000\000\000\000\000l\000\000\000k\000h\000\000\000v\000l\000}\000\000\000u\000h\000w\000\000\000\000\000}\000\000\000\000\000\000\000\210\000\000\000\231\000\000\000\000\000\000\000u\000\000\000v\000j\000j\000w\000u\002\145\000\000\000k\000j\002\146\000\000\000l\000\000\000k\000\000\000\000\000\000\000l\000\000\000\000\000\000\000j\000\000\000\000\000w\000\000\000k\000v\000j\000\000\000l\000y\000\000\000k\000\000\000u\000j\000l\000\000\000\212\000\000\000u\000\000\000\213\000\000\000\130\001\200\001\221\000\000\000y\000\000\000w\000\000\000\000\000u\000\210\000\000\000\231\000\000\000\000\000\000\000u\000\000\000\132\000v\000\000\000\210\000\000\000\231\000\226\000y\000\000\000\000\000\000\000\000\000\000\000\000\001\200\001\221\000v\000\000\000\000\000\000\000\000\000\134\000v\000\000\000\000\000w\000\000\000j\000\000\001\202\000\000\000\000\000\000\001\203\000y\000\000\000j\000\000\002\159\000\212\000w\000\000\000\000\000\213\001\200\001\221\000w\000j\000\136\000\000\000\212\000\000\002\160\000v\000\213\000\000\000\000\000\000\000j\000v\001\202\000\000\000\000\002\143\001\203\002\143\002\168\000\000\002\168\000\226\002\143\000y\000v\002\168\000\000\000\000\000\000\000w\000\000\000v\000\226\000\000\000\000\000w\000\000\000\138\000y\000\227\000j\000\000\001\202\000\000\000y\000\000\001\203\000\000\000w\000\000\000\000\000\000\000\140\000\000\000\000\000w\000\000\000\000\000\142\000j\000\000\000j\000\000\002\145\000\000\002\145\000j\002\146\002\143\002\146\002\145\002\168\000\000\002\190\002\146\000y\000\000\000\000\000\000\001\216\000\000\000y\000\000\002\143\000\000\002\143\002\168\002\199\002\168\000\144\000\000\000\000\000\000\001\217\000y\000\154\000\000\000\000\000\000\000\000\000\000\000y\000\227\002\143\000\000\000\000\002\168\000\252\000\156\000\000\001\216\000\000\000j\000\227\000\000\000\158\002\145\000\000\000\000\000\000\002\146\001\025\000\000\000\000\001\217\000\000\000\000\000j\000\000\000j\000\000\002\145\000\000\002\145\000\000\002\146\000\000\002\146\002\143\000\000\001\216\002\168\000\000\000\000\000\000\002\143\000\000\000j\002\168\000\000\000\000\002\145\000\000\000\000\001\217\002\146\000\000\000\000\000\000\002\159\001\233\002\159\000\000\000\000\000\000\000\000\002\159\000\000\000\000\000\000\000\252\000\000\000\000\002\160\002\006\002\160\000\000\000\000\000\000\000\000\002\160\000\252\000j\000\000\001\027\000\000\002\145\000\000\000\000\000j\002\146\001\233\000\000\002\145\000\000\001\029\000\000\002\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\008\000\000\000\000\000\000\000\000\000\000\000\000\002\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\233\000\000\000\000\000\000\000\000\002\160\002\159\000\000\002\159\000\000\000\000\000\000\000\000\000\000\002\n\000\000\000\000\000\000\000\000\000\000\002\160\002\190\002\160\002\190\000\000\000\000\002\159\000\000\002\190\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\203\000\000\000\000\002\160\000\000\002\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\000\000\000\000\000\000\000\000\000\000\000\000\002\159\000\000\000\000\000\000\000\000\000\000\002\190\002\160\000\000\000\000\000\000\000\000\000\000\000\000\002\160\000\000\000\000\000\000\000\000\000\000\002\207\002\190\000\000\002\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\209\000\000\002\211\000\000\000\000\000\000\002\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\002\217"))
+    ((16, "\003\152\003Z\000\000\000\000\000\000\000\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\143\000\000\0019\003\150\000\000\000\225\000O\000\000\000\000\000\000\001\020\000\000\0010\001v\000\000\000\000\001\174\000\000\001\226\000\000\000\000\000\000\002<\000\000\002\168\000\000\000\000\000\000\000\000\003\020\000\000\003(\003\152\000\000\000\000\004\022\000\000\005\030\000\000\000\000\000\000\005(\000\000\005\180\000\000\006\014\000\000\006@\006\220\000\000\000\000\006\254\000\000\007B\000\000\002\000\000c\t\014\000\000\000\000\000\000\004T\000\000\000\000\003\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tD\000\000\000\000\000\145\n\222\000\000\000\000\011\"\000\000\000\000\000\000\000\000\007D\000\000\007\168\t\020\000\000\007\186\000\000\000\000\b8\000\000\000\000\b\172\000\000\b\222\000\000\000\000\000\000\b\226\000\000\002P\b\236\000\136\000\000\000\000\000\000\000\000\006\178\002>\004j\000\000\000\000\000\000\b\254\000\000\000B\000\000\003\206\000\251\007\174\000\000\000\000\003\170\000\000\000\r\000\000\000@\015\146$r\000\156$r\0202\b\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\162\000\156\000\000\000\000\021\226\000\000\030\198\000\000\018\016\000\000\000\000\000\000\000\000\003 \000\000\000\134$\144\000\000\005*\000\000\005\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\144\000\000\r\160\000\000\015\220\000\000\017\012\000\000\018X\000\000\020\020\000\000\023(\000\000\0258\000\000\028\210\000\000\0296\000\000!\238\000\000\t$\000\000\020\\\000\000\000\000\000\000\000\000\000\000'\170\000\0007z\000\0007\232\000\000\r\250\000\000\000\000\014\b\000\000\000\000\000\000\000\000\000\000\000\197\016\020\000\000\000\189\000\000\000\000\000B\005\004\000\000\000\176\tB\000\000\000\000\t\148\000\000\t\170\t\202\000\000\000\000\n\168\000\000\n\188\000\000\000\000\000\000\n\214\000\000\n\232\000\000\000\000\011\002\000\000\011\026\011 \000\000\000\000\0118\000\000\011Z\000\000\000\000\000\000\011\\\000\000\011d\000\000\011f\000\000\011x\011\130\000\000\000\000\011\134\000\000\011\138\000\000\0042\012x\000\000\011\142\000\000\011\168\014\n\000\000\011\182\000\000\000\000\011\194\000\000\011\200\000\000\011\202\000\000\000\000\000\000\011\210\000\000\011\212\bb\000\000\011\226\000\000\005\226\000n\000\000\006\022\000\000\007&\000\000\000\000\001\188\n.\000\000\000\000\000\000\006\"\015\158\000\000\018j\000\000\000\000\000\000\004p\000\000\004\144\000\000\006$\000\000\000\000\000\000\000\000\000\000\000\000\b\140\000\000\000\000\000\000\000\000\000\000\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\176\005\190\b\168\000\000\011\246\000\000\012\012\n\198\000\000\012\016\000\000\000\000\007L\000\000\000\000\000\000\000\000\000\170\000\000\000\000't\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\202\b\154\000\000\000\000\000\000\022t\000\000\023\184\006\160\000\000\000\000\000\000\005\216\000\000\011D\000\000\r\222(N\000\000\017V\000\000\026B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021z\000\000\021\166\000\000\026&\000\000\026`\000\000\026p\000\000 l\000\000!\018\000\000!B\000\000#\162\000\000%\190\000\000'\220\000\000*\174\000\000\002H\000\000)\246\000\000+d\000\000.D\000\000\000\000)\028\000\000\000\000\000\000)4\000\000\000\000\000\000\000\000\000\0002r\000\000\000\000\000\000\005\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\178\000\000\000\000\000\000\006&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\154\000\000\000\000\000\000\000\000\001*\000\000\000\0003.\000\000\000\000\000\000\000\230\001p\000\000\000\000\000\000\000\000\027(\000\000\028 \000\000\000\000\000\000\000\000\000\000)J\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\012\018\012\n\000\000\012\020\000\000\000\000\000\000\000\000\000\000\012\026\000\000\000\000\0015\007\194\000\000\b:\000\000\000\000\000\000\002\000\000\000\012:\000\029\012\028\000\000\000\000\012\030\000\000\012N\012R\000\000\000\000\012V\000\000\012\\\000\000\000\000\000\000\012t\000\000\012~\000\000\000\000\012\132\000\000\012\136\012\138\000\000\000\000\012\160\000\000\012\164\000\000\000\000\000\000\012\192\000\000\012\202\000\000\012\206\000\000\012\216\012\220\000\000\000\000\012\250\000\000\012\252\000\000\006\186\021\212\000\000\012\254\000\000\r\004\024\154\000\000\r\b\000\000\000\000\r\016\000\000\r\030\000\000\r\"\000\000\000\000\000\000\r$\000\000\005\138\000\000\000\000\r(\012\030\000\000\r2\000\000\000\000\001\b\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\006\196\012\162\000\000\r4\000\000\r>\rR\000\000\rB\000\000\000\000\014r\rz\000\000\000\000\r|\000\000\r\128\r\130\000\000\000\000\r\132\000\000\r\166\000\000\000\000\000\000\r\168\000\000\r\170\000\000\000\000\r\182\000\000\r\198\r\200\000\000\000\000\r\206\000\000\r\210\000\000\000\000\000\000\r\216\000\000\r\220\000\000\r\248\000\000\r\252\014\006\000\000\000\000\014\012\000\000\014\014\000\000\0076\028\186\000\000\014\016\000\000\014\022\028\196\000\000\014\024\000\000\000\000\014\026\000\000\014\030\000\000\014 \000\000\000\000\000\000\014\"\000\000\014(\016\180\000\000\0146\000\000\000\000\007\132\016\246\000\000\0148\000\000\014B\018P\000\000\014N\000\000\000\000\000\000\000\000\000\000\000\000\000\00032\000\000\004\168\000\0003P\000\000\000\000\b,\000\000\000\000\000\000\007\202\001\170\000\000\000\000\022B\006\168\000\000\006\018*\248\000\000\000\000)\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 2)\184\000\000!l\000\000!\186\004\158*\002\000\000\023\002\000\000\000\000\000\000\007\190\000\000\026:\000\000\000\0003\220\000\000\000\000\000\000\007\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0003\224\000\0004&\000\000\000\000\000\000\019D+\146\000\000\000\000\000\000+\170\000\000\000\000\000\000\000\000\b\170\000\000\000\000\000\000\000\000$\202\000\000\000\000'R\000\000\001E\000\000\000\000\000\000\000l\000\000\011v\000\000\022\018\000\000\025p\000\000\028\138\000\000&\140\000\000*\226\000\000,p\000\000-|\000\0000H\000\0001v\000\0001\224\000\0005\012\000\0007\150\000\000\000\000+\228\000\000\000\000\024\132+\238\000\000\000\000,\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\\\000\000\000\000\000\000\000\000\001\000\000\000\b\166\000\000\000\000\021&\000\000\000\000\000\000,\142\000\000\000\000\000\000\000\000\000\000\027(\000\000\000\000\000\000\000\000,\204\000\000\000\000\000\000\000\000\003\028\007X\000\000-T\000\000\000\000\000\000\000\000\015\140\000\000-b\000\000\000\000\000\000\000\000\0019\000\000\007\b\000\000\t\232\002,*&\000\000\000\000\000\000\004n\000\000\000\000\000\000\000\000\000\000\000\000\014\024*&\000\000\016>\000\000\020\168\005.\000\000\000\000\000\000\b\174\000\000!\\\000\000\000\0004~\000\000\000\000\000\000\b\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\142\000\000\030\002\000\000\000\000\000\000\002\020\000\000\000\000\000\000\000\000\000\000\000\000\030\252\000\000#\170\000\000.\254\000\000/\202\000\0001\174\000\0002\020\000\0002\236\000\0007\\\000\0008V\000\0008p\000\0008\146\000\000-\178\000\000\nH\000\0008\152\000\0008\172\000\0008\192\000\000*H\000\000\000\000\000\0004\224\000\000\000\000\000\000\000\017\000\0005\000\000\000\000\000\000\0005\026\000\000\000\000\003\176\000\000\0252\000!\005p\000\000\b\154\000\000\012\240\002\006\007\144\000\000\000\000\000\000\000\000\000\000\000\000\000\0005\156\000\000%2\"\222\b\226\000\000\000\000\000\000.\004\000\000.b\000\000.\134\000\000%p%\216\000\194\0014\000\000\000C\005\186\000\000\000\000\000\000\005\238\000\000\000\000\006\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005\182\000\000\000\000\000\000\000\000#<\000\000&\178\000\000\000\000\000\000\000\000\000\000\000\000\r*\000\000\000\000\n\016\000\000\000\000\000\000\025\192\004@\000\000\025\254\000\000\000\000\015\140\000\000\004n\000\000\000\000\014\158\000\000\027p\000\000\000\000#\142\000\000\000\000\000\000\0128\000\000\000\000\b\248\000\000\000\000!\198\000\000\000\000\000\000.\208\000\000\000\000\000\000%\172\000\000\000\000\000\000\000\000/(\000\000\000\000\000\000\000\000\006\228\0230\000\000/\\\000\000\000\000\000\000\000\000\000\000\000\000\015\006\000\000\000\000\004\236\000\000\015D\000\000\0128\000\000\000\000\0028\023\130\000\000\003\180\000\000\000\000\000\000\000\000\002\020\000\000&\212\000\000\027\252\003\206\028:\000\000\003\248\000\000\016\002\000\000\017\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\222\028\248\002\152\029\250\000\000\000\000\000\000\004\210\000\000\017\148\000\000\004\246\000\000\000\000\012\190\005\180\030b\000\000\005\234\000\000\018\028\030\238\000\000\000\000\019\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007*\b\024\000\000\007H\000\000\000\000\000\000\000\000\005\194\000\000\019\144\000\000\000\000\000\000\"~5\188\000\000\000\000\000\000!\210\000\000\000\000\000\000\000\000\000\000\012X\t\000\000\000\000\000/\164\000\000\000\000\000m\000\000\t\134\000\000\000\000(n\000\000\000\000\000\000/\198\000\000\000\000\000\000\000\0000\128\000\000\000\000\b\006\0124\000\000\000\0000\154\000\000\000\000\007\234\"\146\000\000\012p\000\000\000\0000\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\238\000\000\000\000\000\000\001X\000\000\000\000\r\n\000\000\000\000(\250\000\000\000\000\000\0000\252\000\000\000\000\000\000\000\0001\026\000\000\000\000\b*\rh\000\000\000\0001x\000\000\000\000\b\220\000\000\000\000\000\000\000\000\002\020\002\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003|\000\000\019\248\000\000\000\000\000\0006\022\000\000\t&\000\000\000\000\000\000\005p\000\000\011\178\000\000\000\000\002<\021\004\000\000\021l\000\000\000\000\000\000\002d\000\0006\152\005\0246\178\000\0006\192\000\000\000\000\000\000\0050\000\0006\236\007\134\000\000\000\000'\018\007\214'\140\000\000(\020\000\000\000\000\000\000\t\002\000\0007n\n \000\000\000\000\026\172\n*\026\216\000\000\030v\000\000\000\000\000\000\np\000\0007\136\nv\000\000\000\000\000\000\000\220\000\000\000\000\000\000\007\254\000\000\000\000\000\000\000\000\000\000\000\000\001d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000K\000\000\000\000\006\144\000\000\000\000\015\014\000\000\000\000\000\000\000\000\007f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\014\000\000\000\000\014\234\000\000\0009\000\000\000\000\000\016\000\000\b\186\014\146\001\014\000\000\000\000\b\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\190\br\000\000\000\000\017\132\000\000\000\000\000\000\011\014\000\000\000\000\012\238\024r\000\000\000\000\000\000\000\000\025\022\025b\003n\000\000\000\000\000\000\030\150\000\000\000\000\000\000\000\000\000\000\000\000\002\028\000\000\000\000\002\002\000\000\000\000\014^\000\000\000\000\017\190\000\000\000\000\014|\000\000\002~\000\000\000\000\000\000\000\000\004\230\031\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\014 P\000\000\000\000\000\000\000\000\"\210\000\000\000\000\002\224\000\000\015(\000\000\000\000\000\000\012\176\000\000\003\164\000\000\000\000\000\000 \202\000\000\000\000\"\252\000\000\000\000\000\n\014n\000\000\014r\000\000$4\n\b\000\000&\132\000\000\000\000\000\000\000\000\014x\000\000\014\236\000\000\000\000\000\000\030J\000\000\003\170\014\180\005\228\000\000\000\000\000\000\000{\001\006\000\000\000\000\000\000\000\000\001P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\000\000\000\000\018.\000\000\002\156\015@\004\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\002\000\000\000\000#H'&\000\000\000\000\000\000\000\000(\182\000\000\000\000\003\128\000\000\001d\r$\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000%\018\168\000\000\000\000\023x\000\000\000\000\000\000\000\000\019\210\000\000\000\000\007\136\000\000\000\000\000\000\000Y\000\000\000\000\003\246\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\184\000\000\000\000\000\000\003,\000\000\000\000\000\000\000\000\000\000\000\020\007<\r\148\r\162\000\000\004\134\005\146\006\190\t\158\000\000\000\000\000\000\000\000\000\000\000\000\n\186\022j\000\000\031~\007x\000\000\000\000\011\136\000\000\023\"\000\000\029\216\000\000\000\000\n\254\023`\000\000 T\000\000\011\142 \226\000\000\000\000\000\000\b2\004\134\000\000\000\000\000\000\000\000\b\238\000\000\017\208\002\030\000\000\000\000\003\004\006@\000\000\014j\000\000\000\000\004p\000\000\004\144\000\000\000\000\024\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\174\000\000\000\000\011\186\000\000\023\238\000\000\0128\014\240\000\000\000\000\000\000\000\000\000\000\003\166\000\000\000\000\000\000\000\000\000\00022\000\000\000o\000\000\000\000\000\000\000\000\000\000\001v\000\000\n\022\n\158\n\164\000\000\003\b\011,\000\000\011>\000\000\003\152\000\000\004 \000\000\005\012\000\000\0128\000\000\000\000\000\000\000\000\000\000\005\148\000\000\011Z\000\000\006\028\000\000\0128\015^\000\000\004\016\000\000\015L\n\196\000\000\t\006\000\000\t\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n2\000\000\nz\000\000\000\000\000\000\014 \000\000\000\000\000\000\000\000\000\000\015R\014&\000\000\000\000\014Z\000\000\000\000\014,\n\b\015\132\000\000\015\142\000\000\000\000\004\208\002*\000\000\014f\000\000\000\000\014\162\000\000\000\000\000\000\000\000\000\000\000\000\015v\014P\000\000\000\000\000\000\014\152\014l\n6\b\142\014\152\014\216\000\000\000\000\014\132\n\136\011@\014\174\014\228\000\000\000\000\011X\015\190\000\000\015\194\000\000\015\228\000\000\000\000\015\200\000\000\000\000\015\206\000\000\000\000\000\000\000\000\015\214\000\000\016\018\000\000\000\000\000\000\016\024\000\000\000\000\000\000\016\026\000\000\000\000\000\000"), (16, "\003\190\003\213\000O\003H\006\143\004\025\004\026\005\187\002|\002*\001\148\005^\001\158\006_\002\133\005\213\000\131\005\152\002\133\002~\003\140\002\245\004\178\004\154\002,\000O\003\190\003\213\000\243\006l\005\185\007\026\000\243\006\226\007\027\005\188\005\199\005\200\005\214\006\227\002\128\000O\000\131\002\020\005\217\005\199\005\200\006\228\001\148\004k\002\011\005\216\006m\006Q\006p\005\199\005\200\000\025\004l\000\245\003\192\000f\003G\000\244\003\193\000\131\000\133\000\139\000\177\000\138\003\018\001\150\002\129\003\022\005\214\001\151\006R\006U\005\199\005\200\005\217\005\199\005\200\001\148\004l\001\158\003\192\000\131\000\133\001D\003\193\000\138\007\031\000\018\000\175\006\153\006\169\006\170\000\184\000\131\000\131\000\133\000\134\002!\000\138\005\201\000\177\000\140\001\246\001\150\000\131\001\164\005`\001\151\005\201\000\017\000P\006\143\006j\004\225\001q\003\218\000\007\000\238\005\201\006\156\006e\002\133\000\177\000\140\000\024\001\148\003\023\001\158\000\141\000b\003\024\003\141\006\230\000P\006l\000\177\000\140\005V\001\150\006\182\000\005\005\201\001\151\001\164\005\201\002\021\000\177\002~\004U\004<\006\231\000\178\000[\000g\001\129\000\179\001|\006m\003\206\006p\005\199\005\200\004Z\000^\000e\000O\004[\004m\002\130\003\207\004\227\004\192\002\022\001\212\004U\002\247\005\015\006^\001\164\001\165\005\220\004@\004\174\000\177\003\206\001\131\001\150\006\151\004Z\000\188\001\151\002\012\004[\004m\006\232\003\207\003\140\003\190\003\213\006_\002\129\006k\004E\006\233\004C\004_\001\129\004\155\007\006\004\186\007 \001\249\004u\000\131\006b\004\209\005\229\001\165\006\228\007!\004k\002\144\000O\004\146\003\222\002\144\001\164\005\207\003%\005\201\006\159\004_\006\161\004p\007\b\001\168\006_\001\130\004u\003&\003\140\007\n\003\223\001B\005\205\005\182\005\183\003\224\000\131\004\146\003\222\003\225\001\165\001\169\006}\004l\003\226\003\192\001\170\004D\002\247\003\193\001\171\000\189\001E\001B\0074\001\172\003\223\003\190\003\213\005\221\001p\003\224\001\213\001\228\005\206\003\225\001B\004<\002\021\000O\003\226\000\131\001\166\000\131\001E\001\240\003\190\003\213\002\245\004\178\004\154\000\190\001p\001\255\000\131\000\131\001\167\001E\001\165\000\028\001\148\004F\001\149\006\011\000\249\001p\001\168\002\005\000\141\004=\006`\003\141\003I\000 \001Q\000\249\006\b\004G\000\222\007k\000\131\001[\000O\0075\001\169\004l\003L\003\192\002\002\001\170\002\001\003\193\002\144\001\171\004<\001T\000\175\000\192\001\172\006{\000\176\000\223\001\205\000\005\000\177\000\224\003\192\006`\000\031\004U\003\193\000\194\000\141\000O\001\168\004\135\003\146\006v\000\177\003\206\002\000\001\150\004\198\004Z\006\242\001\151\004=\004[\004m\0076\003\207\006\254\001\169\002\131\006\031\006 \000\"\001\170\006\233\005\207\003\150\001\171\006c\0078\000\243\005\224\001\172\004\193\003\218\006w\000\238\006x\003\140\000\141\000\177\002\000\003\190\003\213\004\169\000\178\005:\001\164\000$\000\179\006!\0062\004_\003\218\004p\007:\000\131\002-\000\131\004u\006\"\003\221\007<\006\228\007&\004\154\006y\004U\001q\001\\\004\146\003\222\002,\000\238\0063\004\171\006z\003\206\0066\005\199\005\200\004Z\000j\000\188\005j\004[\004m\002\248\003\207\003\223\004\195\001\129\001k\000(\003\224\001U\003\206\001V\003\225\005l\004l\004\174\003\192\003\226\005m\000\249\003\193\003\207\006\143\000O\003\153\003}\000O\002\025\003\190\003\213\0071\000\004\002\133\005l\003\220\001\165\001\131\000\175\004_\006\250\004\155\002\017\004\186\000\131\000\131\004u\006\t\006l\004\209\006\228\007&\004\154\006f\005U\000\249\000\005\004\146\003\222\006\245\006\t\006\246\000*\005\201\005\254\005\199\005\200\000\141\000\249\000\249\004\135\006m\000\189\006p\005\199\005\200\003\223\003\222\004\180\004\200\005P\003\224\006\031\006 \006\012\003\225\000\246\004l\006\184\003\192\003\226\006\185\001\198\003\193\000\249\003\223\000\177\003\190\003\213\004\180\003\224\000\178\000\190\007+\003\225\000\179\006\189\007\018\007\019\003\226\001\169\004U\0067\000\131\000O\005:\000/\006g\006\228\007&\004\154\003\206\006\"\004h\001\172\004Z\0003\006h\006i\004[\004m\007,\003\207\007z\005\201\004i\003\190\003\191\000V\000\188\006\233\000\181\005\255\005\201\006\146\004]\004o\007{\000\192\004\169\000\131\000\133\000\134\000\135\000\138\004l\000W\003\192\004i\006\182\003\018\003\193\000\196\003\022\000O\003\190\003\213\007\023\004_\006\197\004\155\007-\007.\0068\006\245\004u\006\246\000\r\0070\006\253\004\170\000O\0002\004U\000\249\002\247\004\146\003\222\004N\005d\006\174\006\175\000\140\003\206\000\177\000O\003\192\004Z\000\016\000\017\003\193\004[\004m\007,\003\207\003\223\003\140\006\179\004\198\004\160\003\224\000O\006\233\000\189\003\225\003\190\003\213\004]\000\177\003\226\006\182\004i\003\023\003?\000\004\003\192\003\024\000\131\000\141\003\193\000\175\000\131\003\190\003\191\000\186\004\188\006\228\007&\004\154\000\b\004_\006l\004\155\000\190\007.\0005\002\144\004u\000\005\002%\0070\004U\006\030\005\199\005\200\006\149\004\183\000\249\004\146\003\222\006\182\003\206\004\025\004\026\006m\004Z\006p\005\199\005\200\004[\004m\007,\003\207\004l\007\131\003\192\002\023\003\223\001-\003\193\006\233\005S\003\224\003\190\003\213\004]\003\225\005Q\000\177\007/\000\177\003\226\003\192\000\178\000\131\000P\003\193\000\179\000\175\000\131\003\206\004\206\000\186\006\197\006\228\007&\004\154\005S\004_\001d\004\155\003\207\007.\004\206\000X\004u\004\236\007l\0070\004U\000\141\004\211\005\201\003\141\003%\001_\004\146\003\222\004i\003\206\006\201\000\188\004\208\004Z\001B\003&\005\201\004[\000\131\000\133\003\207\004l\001C\003\192\004\207\003\223\003\018\003\193\004\211\003,\003\224\003\190\003\213\004]\003\225\001E\000\177\0077\005\220\003\226\000O\000\178\000O\001p\004\203\000\179\005t\000\131\003\146\004U\000\131\000\131\006\228\007&\004\154\000O\004_\0007\005w\003\206\000\140\005v\000;\004Z\003\212\000\131\000O\004[\004m\007,\003\207\007s\003\150\005v\000O\003\222\003\206\004;\006\233\000\188\004\028\002t\004\221\004]\000\177\000\189\000O\003\207\003\023\004l\003(\003\192\003\024\003\223\000O\003\193\005a\001\148\003\224\001\149\003{\003\018\003\225\004?\003\022\007;\004_\003\226\004\155\004\214\007.\006s\000\248\004u\005\195\000\190\0070\004U\001f\001Q\000\249\000O\000\131\002\031\004\146\003\222\001[\003\206\006\128\005\221\005\196\004Z\000=\006\197\006\242\004[\004m\007,\003\207\001T\001T\006\249\000\191\003\223\006\200\000O\006\233\001q\003\224\003\190\003\213\004]\003\225\000\189\004<\000\177\001v\003\226\001\150\003?\003\208\000\192\001\151\003\023\000\140\000\131\000\233\003\024\000O\001\153\002\245\004\178\004\154\000O\004_\000\194\004\155\000?\007.\000\246\004<\004u\004B\000\190\0070\004U\004=\000\249\001\221\004\147\003%\000\131\004\146\003\222\003r\003\206\006\192\005`\001\164\004Z\000\141\003&\000C\004[\004m\007,\003\207\004l\001\235\003\192\000\191\003\223\004=\003\193\006\233\006\209\003\224\003\190\003\213\004]\003\225\005\198\000O\001E\001\127\003\226\002\247\004i\001\\\000\192\000O\001p\000\175\000\131\000\193\000\141\000\184\005\196\002\245\004\178\004\154\000O\004_\000\194\004\155\006X\007.\000O\001n\004u\003A\001]\0070\001U\001U\001V\001V\001i\000\131\004<\004\146\003\222\000\131\000\249\000\249\003%\003v\003g\006\245\000O\006\246\006\165\001\165\003D\004\230\004l\003&\003\192\000\249\003\223\000B\003\193\002c\003|\003\224\003\190\003\213\002\138\003\225\004\230\000\177\004=\001q\003\226\006\199\000\178\003u\000E\000O\000\179\005\184\000\131\003j\004U\002\246\004\232\002\245\004\178\004\154\003G\001q\000\131\002\018\003\206\000\131\000O\002\245\004Z\000\131\006\192\004\231\004[\004m\005\185\003\207\005Y\004\192\001E\005\188\005\199\005\200\000G\000i\000\188\005\021\001p\000\141\004]\000\131\000\133\000\134\001?\000\138\004l\002\196\003\192\001\223\004\025\004\026\003\193\000\175\003I\005@\003\160\000\184\000\141\002\246\005z\006\203\000\131\004_\000\141\004\155\005\235\004\186\003J\000\131\004u\006\167\005F\004z\004U\005v\000\131\000\133\000\134\001s\000\138\004\146\003\222\000\140\003\206\000o\002\223\001H\004Z\005\236\005\199\005\200\004[\004m\000n\003\207\004\190\004\192\005\130\006\194\003\223\005\201\006l\005H\005\223\003\224\001}\000\249\004]\003\225\000\189\000\177\003\154\005\132\003\226\003\026\000\178\000O\000\140\000O\000\179\000O\000\175\003\190\003\213\006m\000\184\006p\005\199\005\200\001Q\004_\003#\004\155\000\221\004\186\003\158\001[\004u\000\131\000\190\004z\004U\000O\002\245\004\178\004\154\000O\003\167\004\146\003\222\001T\003\206\000\177\000\188\005\227\004Z\000q\000O\005\201\004[\004m\000O\003\207\004\229\004\192\002'\000\222\003\223\000O\003\127\004m\000O\003\224\000\249\007M\004]\003\225\003\152\007\127\000\177\004l\003\226\003\192\006\193\000\178\000\192\003\193\004\027\000\179\000\223\003\190\003\213\005F\000\224\005\221\000O\005\201\005\228\004_\000\194\004\155\000\218\004\186\006\197\000Z\004u\000\131\000f\004z\005\202\005b\002\245\004\178\004\154\000t\004u\004\146\003\222\004z\003\190\004\006\006\229\000\188\005G\001B\002)\004\146\000\189\000O\003\152\000\141\000]\003>\000\249\003\195\003\223\004\025\004\026\001\\\000v\003\224\000z\003\190\003\213\003\225\001E\002$\005\133\004l\003\226\003\192\001\142\007s\001p\003\193\000\137\003\204\000\190\000\131\001B\004+\001b\005\132\006\228\001U\004k\001V\003\190\003\191\006\235\000\131\000\141\005\239\001\243\000\249\000\141\004U\000\177\003\130\003\192\001E\000\249\000P\003\193\000\222\000P\003\206\007M\001p\000\251\004Z\005\254\005\199\005\200\004[\004m\000\189\003\207\005]\004\192\004l\000[\003\192\000\192\000[\000l\003\193\000\223\006\147\000P\004]\000\224\000^\003\190\003\213\000^\007T\000\194\0073\004~\000\221\004\025\004\026\004\254\007M\000\177\000\190\003\192\000[\000\131\000\254\003\193\007#\004_\006\228\004\155\004k\004\186\001Q\000^\004u\001\002\000\141\004z\004U\001j\000\131\000\133\000\134\001x\000\138\004\146\003\222\000\222\003\206\004\025\004\026\001\001\004Z\001T\007M\005\201\004[\004m\006\198\003\207\007\004\004\192\007i\006G\003\223\004l\000\192\003\192\004c\003\224\000\223\003\193\004]\003\225\000\224\003\190\003\213\003\206\003\226\0072\000\194\007U\000\140\007$\005\006\007~\005\136\001\148\003\207\001\158\004U\000\131\005\144\005\235\000O\004_\006\228\004\155\004k\004\186\003\206\005v\004u\000\131\004Z\004z\007#\005\146\004[\004m\007%\003\207\003\018\004\146\003\222\003\022\005\236\005\199\005\200\006\233\007#\004\025\004\026\007N\007(\003\206\007\133\005\147\000O\005\150\000a\006\212\003\223\004l\000\175\003\192\003\207\003\224\001\242\003\193\007\163\003\225\005\146\004i\005v\000\177\003\226\004_\001\150\004p\007*\007'\001\151\006\205\004u\007\164\007\007\0070\000\131\007)\007P\004U\001\004\002\245\000d\004\146\003\222\001U\004i\001V\000\177\003\206\001\006\0079\003\023\004Z\007t\000\249\003\024\004[\004m\007%\003\207\001\212\003\223\001\n\005\201\006\219\001\164\003\224\006\233\003\252\000\177\003\225\001\012\007(\007R\000\178\003\226\007t\003\160\000\179\000\131\000\133\000\134\002\027\000\138\001\015\000P\003\223\003\190\003\213\000\131\000\133\000\134\002x\000\138\007\134\004_\001\019\004p\007*\001\018\003\226\001B\004u\000\131\000[\0070\004U\006\197\002\245\007X\004k\001\021\000\188\004\146\003\222\000^\003\206\007t\000\131\000P\004Z\000\140\001E\002\247\004[\004m\007%\003\207\001\023\001\027\001p\000\140\003\223\001\029\001\031\006\233\006\224\003\224\000[\001\165\007(\003\225\000O\001#\003\140\004l\003\226\003\192\001\"\000^\001%\003\193\001'\003%\001,\000\131\000\133\000\134\002\135\000\138\004\253\001\213\001\214\004_\003&\004p\007*\0012\007s\005c\004u\001\166\000O\0070\0011\0065\000O\005\242\003\190\003\213\0014\004\146\003\222\0016\0018\001\167\000\189\005e\001<\001\128\002\247\004\224\004m\000\249\000\131\001\168\001A\000\140\0063\002\245\003\223\004k\0066\005\199\005\200\003\224\001u\003\190\003\213\003\225\005\235\003\140\000f\001\169\003\226\004d\000\190\001{\001\170\001z\002\030\002\029\001\171\000\131\002#\0021\0024\001\172\002\245\004f\004k\001\205\005b\005\236\005\199\005\200\004l\004u\003\192\003I\004z\004U\003\193\000\131\000\133\000\134\002\140\000\138\004\146\000O\0028\003\206\0027\003N\002:\004Z\000\141\002<\000\141\004[\004m\004\135\003\207\001B\001\129\004l\000\175\003\192\006\201\002@\000\176\003\193\005\201\001B\002B\004\213\000\131\002E\004\222\002I\002H\006\192\004\224\000\131\001E\000\140\000\141\001\148\006\192\001\226\000P\002K\001p\002M\001E\001\131\000O\001\148\004_\001\158\004p\004\215\001p\005\201\005\022\004u\004\140\002Q\004z\000[\001*\000\175\002S\000\131\002U\000\186\004\146\003\222\000\175\002Y\000^\002X\000\186\005\003\000\177\000\141\003\190\003\211\004\135\000\178\004\144\005\020\004U\000\179\005\031\003\223\002[\002]\002b\001B\003\224\002h\003\206\002g\003\225\000\177\004Z\002j\001\150\003\226\004[\004m\001\151\003\207\002l\000\177\002n\002r\001\150\002{\001E\004U\001\151\000\141\002z\002\137\004\213\000\188\001p\000\177\002\143\003\206\002\142\004\140\000\178\004Z\000\177\000O\000\179\004[\004m\000\178\003\207\000\131\000\177\000\179\003\192\002\218\001\164\004_\003\193\004p\004\215\003\190\003\213\004\159\004u\004\144\001\164\004z\002\146\002\149\004r\002\153\002\152\002\155\006\020\004\146\003\222\000\131\000\141\0051\000\188\000f\002\245\004s\004\154\005\248\004_\000\188\004p\004\161\002\157\002\161\002\163\004u\003\223\001B\004\163\006\018\002\166\003\224\006\021\005\199\005\200\003\225\004\146\003\222\002\170\002\169\003\226\000\189\002\172\006\202\002\174\003\190\003\213\002\178\001E\002\180\006\193\004l\006\242\003\192\004\157\003\223\001p\003\193\005A\006\244\003\224\000\131\001\165\002\182\003\225\002\186\002\245\004s\004\154\003\226\002\185\000\190\001\165\002\188\002\190\002\195\003\190\003\213\002\201\002\200\002\203\006\194\002\205\002\207\002\211\004\162\000\189\002\217\006\194\000\249\003\206\000P\000\131\000\189\002\216\002\222\000\249\002\245\004s\004\154\002\228\003\207\005\201\004l\001\166\003\192\002\227\005\193\005\233\003\193\000[\001/\005\212\005\226\006\014\000\175\000\190\000\192\001\167\000\184\0061\000^\006B\000\190\006D\001\208\000\249\006N\001\168\006P\006Z\000\198\006u\007\016\004l\007>\003\192\000\131\007B\007V\003\193\007\\\007]\000\191\007b\007c\001\169\004U\007h\002\247\000\191\001\170\000\175\007g\007o\001\171\000\176\003\206\007q\007w\001\172\004Z\000\192\007x\001\209\004[\004m\000\232\003\207\000\192\000O\003\190\003\213\000\177\000\235\007|\000\194\007}\000\178\007\128\000\175\004]\000\179\000\194\000\184\007\129\006\245\000\131\006\246\007\132\007\135\007\136\002\245\004\178\004\154\007\153\000\249\007\142\007\151\004U\007\147\003\190\003\210\007\150\004_\001Q\004\155\007\159\004\156\003\206\000\177\004u\001e\004Z\004z\000\178\000\188\004[\004m\000\179\003\207\007\157\004\146\003\222\007\161\007\166\001T\000\000\000\000\004l\004U\003\192\000\000\004]\000\000\003\193\000\000\000\236\000\177\000\000\003\206\003\223\000\000\000\178\004Z\000\000\003\224\000\179\004[\004m\003\225\003\207\000\000\000\188\000\000\003\226\004_\000\000\004\155\000\177\004\156\003\192\000\000\004u\004]\003\193\004z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\146\003\222\000\131\000\133\000\134\002\214\000\138\000\188\000\000\000\000\000\141\000\000\000\000\004_\000\000\004\155\000\189\004\156\000\000\003\223\004u\000\000\000\000\004z\003\224\000\000\003\190\003\213\003\225\000\000\000\175\004\146\003\222\003\226\000\176\000\131\000\133\000\134\002\220\000\138\000\240\000\000\000\131\000\000\000\140\000\000\000\190\002\245\004\178\004\154\003\223\004U\000\000\000\189\000\000\003\224\000\000\000\000\003\161\003\225\000\000\003\206\000\000\000\000\003\226\004Z\001U\000\175\001V\004[\004m\000\186\003\207\000\222\004\185\000\000\000\249\000\140\000\000\000\000\000\000\000\189\003\165\000\190\004l\004]\003\192\000\000\000\177\000\000\003\193\003\206\000\192\000\178\000\000\000\000\000\223\000\179\003\190\003\213\000\224\000\000\003\207\000\000\000\000\000\242\000\194\000\000\004_\000\000\004\155\000\190\004\186\000\000\000\131\004u\000\000\000\000\004z\002\245\004\178\004\154\000\000\005\238\000\000\000\177\004\146\003\222\000\000\000\192\000\178\000\188\000\000\000\000\000\179\000\000\000\000\000\000\000\222\000\000\000\000\000\000\000\000\000\200\000\131\003\223\005\236\005\199\005\200\006\017\003\224\000\000\000\000\000\000\003\225\000\000\004l\000\192\003\192\003\226\000\175\000\223\003\193\000\000\000\176\000\224\003\190\003\213\000\188\000\000\000\000\000\194\006\018\000\000\000\000\006\021\005\199\005\200\000\000\000\000\004U\000\000\000\131\000\000\000\000\000\000\001B\002\245\004\216\004\154\003\206\000\000\000\000\000\000\004Z\000\000\000\175\000\000\004[\004m\000\176\003\207\000\000\004\187\000\000\000\189\006o\001E\000\131\000\133\000\134\002\225\000\138\006\242\004]\001p\005\201\000\000\000\177\001B\006\255\000\131\000\000\000\178\004l\000\000\003\192\000\179\000\000\006m\003\193\006p\005\199\005\200\000\000\000\190\000\000\004_\000\000\004\155\001E\004\186\000\189\000\000\004u\005\201\000\000\004z\001p\000\000\000\140\000\000\004U\000\000\000\177\004\146\003\222\000\000\000\000\000\178\000\000\000\188\003\206\000\179\000\000\000\000\004Z\006l\004\218\000\000\004[\004m\000\190\003\207\003\223\004\205\000\000\000\000\000\000\003\224\000\000\000\192\000\000\003\225\003\190\003\213\004]\000\000\003\226\001Q\006m\000\000\006p\005\199\005\200\000\202\001S\000\188\000\000\000\191\000\131\005\201\000\000\000\000\000\000\002\245\004\216\004\154\000\000\004_\001T\004\155\000\000\004\186\003\018\000\000\004u\003\022\000\192\004z\004U\000\000\007\000\001\160\000\000\000\000\000\000\004\146\003\222\000\000\003\206\000\000\000\194\000\000\004Z\000\189\000\000\000\000\004[\004m\000\131\003\207\004l\000\000\003\192\007\001\003\223\006\245\003\193\006\246\000\000\003\224\003\190\003\213\004]\003\225\006#\000\249\000\000\000\000\003\226\004\238\005\201\000\000\000\000\000\190\000\000\000\000\000\131\000\000\000\000\000\189\003?\002\245\004s\004\154\003\023\004_\000\000\004\155\003\024\004\219\000\000\000\000\004u\000\000\004\220\004z\000\000\000\000\000\000\000\000\001B\000\000\000\000\004\146\003\222\000\000\000\000\000\000\000\000\000\190\000\000\000\000\003\190\003\213\000\000\003r\001Q\000\000\004l\001\237\003\192\001E\003\223\001h\003\193\006Q\000\175\003\224\000\131\001p\000\176\003\225\001U\002\245\001V\004k\003\226\001T\000\000\000\000\000\000\001\148\000\249\001\158\000\000\000\000\004U\000\000\006R\006U\005\199\005\200\000\000\000\000\000\000\000\192\003\206\000\000\000\000\000\000\004Z\000\000\000\175\000\000\004[\004m\000\176\003\207\000\000\000\204\004l\003A\003\192\000\000\000\000\000\000\003\193\000\000\000\000\000\000\004]\000\000\006\154\000\000\000\177\000\000\003%\003s\003g\000\178\000\000\000\000\000\000\000\179\003D\000\000\000\000\003&\000\000\000\177\003\190\003\209\001\150\004_\000\000\004\155\001\151\004\219\000\000\000\000\004u\000\000\005W\004z\004U\000\000\004\224\003u\000\000\005\201\000\177\004\146\003\222\003j\003\206\000\178\000\000\000\188\004Z\000\179\003G\000\000\004[\004m\000\000\003\207\000\000\000\000\000\000\001\246\003\223\000\000\001\164\000\000\000\000\003\224\003\190\003\213\004]\003\225\000\000\001U\000\000\001V\003\226\000\000\000\000\000\000\000\177\000\000\003\192\000\249\000\131\000\188\003\193\000\000\004U\002\245\000\000\004k\000\000\004_\003I\004\155\000\000\004\156\003\206\000\000\004u\000\131\004Z\004z\000\000\000\000\004[\004m\003J\003\207\000\000\004\146\003\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\190\003\213\004\213\000\189\000\000\000\000\004l\001\148\003\192\001\149\003\223\000\000\003\193\000\000\000\000\003\224\000\131\000\000\001\165\003\225\000\000\002\245\000\000\004k\003\226\004_\000\000\004p\004\215\001\148\001\247\001\149\004u\000\190\006\162\004z\000\000\000\000\000\000\000\189\000\000\000\000\000\000\004\146\003\222\000\000\000\000\000\000\005g\001Q\001\249\000\000\004\224\000\000\000\000\000\000\001[\000\000\004l\000\175\003\192\000\000\003\223\001\239\003\193\000\177\003\206\003\224\001\150\000\190\001T\003\225\001\151\000\000\001\168\000\000\003\226\003\207\000\000\000\192\000\000\000\000\000\000\003\018\000\000\000\000\003\022\000\177\000\000\000\000\001\150\000\000\001\169\000\206\001\151\000\000\000\220\001\170\000\000\000\000\005i\001\171\004U\000\000\004\224\000\000\001\172\000\175\001\164\000\000\000O\000\184\003\206\000\000\000\000\000\192\004Z\000\177\000\000\000\000\004[\004m\000\178\003\207\000\000\000\000\000\179\003\190\003\213\000\194\001\164\000\000\001\148\000\000\001\225\000\000\004\213\000\000\000\000\000\000\000\000\000\177\000\000\000\131\000\000\003\023\000f\000\000\002\245\003\024\004k\001\148\000\000\001\149\004U\000\000\000\000\000\000\001\\\004_\000\188\004p\004\215\000\000\003\206\000\177\004u\000\000\004Z\004z\000\178\000\000\004[\004m\000\179\003\207\000\000\004\146\003\222\000\000\000\000\003\133\001\165\000\000\001U\004l\001V\003\192\004\213\000\000\000\177\003\193\000\000\001\150\000\249\000\000\003\223\001\151\000\000\000\000\000\000\003\224\000\000\003\018\001\165\003\225\003\022\000\000\000\188\000\177\003\226\004_\001\150\004p\004\215\000\000\001\151\000\000\004u\003\190\003\213\004z\000\175\000\000\000P\000\000\000\176\006\206\006\214\004\146\003\222\004\224\000\000\001\164\000\189\000\131\000\000\000\000\000\000\000\000\002\245\004s\004\154\000[\002`\000\000\000\000\003%\003\223\000\000\003\190\003\213\001\164\003\224\000^\000\000\001\169\003\225\003&\000\000\000\000\000\177\003\226\002\247\000\190\003\023\000\131\003\190\003\213\003\024\001\174\002\245\000\000\004k\003x\000\000\000\000\004l\001\169\003\192\000\177\004U\000\189\003\193\000O\000\178\000\000\000\000\000\000\000\179\004\168\003\206\001\176\006l\001\148\004Z\001\224\000\000\000\000\004[\004m\000\000\003\207\000\000\000\000\000\000\003<\001\165\004l\000\000\003\192\000\000\000\190\000\000\003\193\004\213\006m\000\000\006p\005\199\005\200\003\190\003\213\000\188\000\000\003?\001\165\003\192\000\000\000\000\007\t\003\193\000\000\003I\000\000\000\000\000\000\000\131\004_\000\222\004p\004\215\002\245\004s\004\154\004u\000\000\003P\004z\000\000\006\220\000\000\000\177\000\000\004\224\001\150\004\146\003\222\000\192\001\151\000\000\000\000\000\223\000\000\000\000\000\000\000\224\003%\000\000\000\000\000\000\000\000\000\194\004U\000\000\003\223\000\000\000\000\003&\004l\003\224\003\192\000\000\003\206\003\225\003\193\000\000\004Z\005\201\003\226\000\000\004[\004m\000\000\003\207\001\164\003\018\000\189\000\141\003\022\001\245\000\000\000\000\000\000\004U\000\000\000\000\004]\000\000\000\000\000\000\000\000\000\000\000\000\003\206\000\000\000\000\000\000\004Z\000\000\005\235\004U\004[\004m\000\000\003\207\000\000\000\190\000\000\000\000\004_\003\206\004\155\000\000\004\156\004Z\000\000\004u\004\213\004[\004z\000\000\003\207\005\236\005\199\005\200\004\148\000\000\004\146\003\222\000\000\000\000\000\000\003'\003?\004]\000\000\000\000\003\023\000\131\000\000\004_\003\024\004p\004\215\000O\000\000\003\223\004u\001\165\004\152\004z\003\224\000\192\000\000\004U\003\225\000\000\004_\004\146\003\222\003\226\004\233\003\190\003\213\003\206\000\175\000\208\000\000\004Z\000\176\000\000\000\000\004[\004m\006\017\003\207\003\222\003\223\000\131\006\157\000f\005\235\003\224\002\245\000\000\004\154\003\225\000\000\004]\000\000\000\000\003\226\005\201\003\018\003\223\000\000\003\022\006\018\000\000\003\224\006\021\005\199\005\200\003\225\005\236\005\199\005\200\006\242\003\226\000\000\000\000\004_\000\000\004\155\006\252\004\156\000\000\000\000\004u\005\235\004l\004z\003\192\000\177\003A\000\000\003\193\000\000\000\178\004\146\003\222\000\000\000\179\003\190\003\213\000\000\000\000\000\000\000\000\003%\000\000\003n\005\236\005\199\005\200\004\158\000\000\003D\003\223\000\131\003&\000\177\000\000\003\224\002\245\003\023\004k\003\225\000P\003\024\000\000\000\000\003\226\000\000\003\190\003\213\000\188\000\000\000\000\000\000\005\201\000\000\000\000\000\000\005\201\000\000\004j\000[\002e\000\000\000\131\000\000\000\000\003G\001\148\002\245\001\149\004k\000^\000\000\000\000\004l\000\000\003\192\001\148\000\000\001\158\003\193\000\175\000\000\003q\000\000\000\186\000\000\000\000\000\000\005\246\000\000\000\000\000\000\000\131\000\000\005\201\001\148\000\000\001\149\004U\000\000\000\000\000\000\000\000\001\148\004l\001\149\003\192\003I\003\206\000\000\003\193\000\000\004Z\000\000\000\000\000\000\004[\004m\000\000\003\207\000\000\003J\000\189\006\245\000\177\006\246\000\000\001\150\000\000\000\000\000\000\001\151\004\235\000\249\000\177\000\000\000\000\001\150\000\177\003%\000\000\001\151\000\000\000\178\000\000\000\000\000\000\000\179\000\000\000\131\003&\000\000\000\190\000\177\002\245\004_\001\150\004\155\000\000\004\237\001\151\000\177\004u\006)\001\150\004z\000\000\001\164\001\151\004U\006\005\000\131\001\212\004\146\003\222\000\000\002\245\001\164\000\000\003\206\000\000\000\188\000\000\004Z\000\000\000\000\000\000\004[\004m\000\000\003\207\003\160\003\223\000\000\000\000\000\175\001\164\003\224\000\192\000\176\004U\003\225\000\000\004n\001\164\000\000\003\226\000\000\006\003\000\000\003\206\000\131\000\210\003\160\004Z\000\000\000\000\000\000\004[\004m\000\000\003\207\000\000\000\000\000\000\003I\004_\000\000\004p\004q\000\000\003\190\003\213\004u\004n\000\000\004z\000\000\000\000\003R\000\000\001\165\000\000\004t\004\146\003\222\000\175\000\131\000\000\000\000\000\186\001\165\002\245\000\177\004k\000\189\000\000\004_\000\178\004p\004q\000\000\000\179\003\223\004u\000\000\000\000\004z\003\224\000\000\001\165\000\000\003\225\001\213\003\028\004\146\003\222\003\226\001\165\001Q\000\000\000\000\000\000\001\166\000\000\000\190\001[\000\000\000\000\004l\000\000\003\192\000\000\000\000\003\223\003\193\000\188\001\167\000\000\003\224\001T\003\190\003\213\003\225\000\177\000\249\004m\001\168\003\226\000\178\000\000\000\000\000\191\000\179\000\000\001\169\000\000\000\131\000\000\000\175\000\000\000\000\002\245\000\184\004k\001\169\000\000\000\000\004m\001\178\001\170\000\192\003\190\003\213\001\171\000\131\001\162\000\000\000\000\001\172\000\000\000\000\000\000\001\205\001\169\000\194\005\139\000\188\000\131\000\000\000\000\004u\001\169\002\245\004z\004k\000\000\000\000\001\180\004l\000\000\003\192\004\146\000\000\000\000\003\193\001\182\000\000\005\141\000\000\000\189\000\000\003\018\004u\000\000\003\022\004z\000\177\000\000\000\000\000\000\000\000\000\178\000\000\004\146\004U\000\179\000\000\001\\\000\000\004l\000\000\003\192\000\000\000\000\003\206\003\193\000\000\000\000\004Z\000\190\000\000\000\000\004[\004m\000\000\003\207\000\000\000\175\000\000\000\000\003\143\000\176\000\000\001U\000\000\001V\000\000\000\000\004n\000\188\000\189\000\000\000\000\000\249\000\000\000\000\003\190\003\213\000\000\000\177\000\000\000\000\000\000\003\023\000\000\000\000\000\000\003\024\000\000\000\000\000\000\004_\000\131\004p\004q\002\007\000\000\002\245\004u\004k\000\190\004z\000\000\000O\004U\000\000\000\000\000\175\000O\004\146\003\222\000\176\000\000\000\000\003\206\000\177\000\000\000\000\004Z\000\000\000\178\000\000\004[\004m\000\179\003\207\000\000\000\191\003\223\000\000\000\000\004\189\000\000\003\224\004l\004U\003\192\003\225\004\182\000f\003\193\000\000\003\226\000\189\000f\003\206\000\192\000\000\000\000\004Z\000\000\003\215\000\000\004[\004m\000\000\003\207\000\000\000\188\000\000\000\194\004_\004\181\004p\004\184\000\177\000\000\001\142\004u\004\182\000\178\004z\000\000\000\190\000\179\000\000\000\000\000\000\000\000\004\146\003\222\000\000\000\000\000\000\000\000\003%\000\000\000\000\003\018\002\t\000\000\003\022\004_\000\000\004p\004\184\003&\000\249\003\223\004u\000\222\000\000\004z\003\224\000\000\003\190\003\213\003\225\000\188\000\175\004\146\003\222\003\226\000\186\000\000\000\000\000\000\000P\000\000\000\192\000\000\000\131\000P\000\223\000\000\000\000\002\245\000\224\004k\003\223\004U\000\000\000\189\000\194\003\224\000\000\000[\002\193\003\225\000\000\003\206\000[\002\198\003\226\004Z\000\000\003?\000^\004[\004m\003\023\003\207\000^\000\000\003\024\000\000\004\201\003\190\003\213\000\000\000\000\000\000\000\190\004l\004\202\003\192\000\000\000\177\000\000\003\193\000\000\003I\000\178\000\131\000\000\000\000\000\179\006T\002\245\000\000\004k\003r\000\189\000\131\000\000\003T\000\000\004_\002\245\004p\004\204\000\000\000\000\000\000\004u\000\000\000\000\004z\000\000\000\000\006R\006U\005\199\005\200\000\000\004\146\003\222\000\175\000\192\000\000\000\188\001\238\000\190\000\000\000\000\004l\005\235\003\192\000\000\000\000\000\000\003\193\000\212\000\000\003\223\003\160\000\000\003\190\003\213\003\224\000\000\000\000\000\000\003\225\003\190\003\191\000\000\003A\003\226\005\236\005\199\005\200\000\000\000\131\000\000\000\000\000\000\000\000\002\245\000\000\004k\000\000\003%\006\216\003g\000\000\000\000\000\000\000\192\004U\003D\004\212\000\000\003&\000\000\000\177\000\000\000\000\000\000\003\206\000\178\005\201\000\214\004Z\000\179\000\000\000\000\004[\004m\005\235\003\207\000\000\000\000\003u\000\189\004l\004\199\003\192\000\000\003j\000\000\003\193\000\177\004\182\003\192\000\000\003G\000\000\003\193\003\190\003\213\000\000\005\236\005\199\005\200\000\000\000\000\000\000\000\188\005\201\006\210\004U\000\000\000\000\000\190\000\131\004_\000\000\004p\004\184\002\245\003\206\004k\004u\000\000\004Z\004z\000\000\000\000\004[\004m\004\217\003\207\000\000\004\146\003\222\000\000\000\000\003I\000\000\004m\000\191\000\000\000\000\000\000\004\213\000\000\000\000\000\000\000\000\000\000\000\000\003J\003\223\000\000\000\000\000\000\004l\003\224\003\192\000\192\000\000\003\225\003\193\000\000\003\217\000\000\003\226\004_\000\000\004p\004\215\005\201\000\000\000\194\004u\000\000\000\000\004z\000\000\005\143\004U\000\189\000\000\000\000\004u\004\146\003\222\004z\003\018\000\000\003\206\003+\000\000\000\000\004Z\004\146\000\000\003\206\004[\004m\000\000\003\207\000\000\000\000\003\223\003\190\003\213\000\000\003\207\003\224\000\000\000\190\000\000\003\225\004\213\000\000\006\222\001\148\003\226\001\149\000\000\000\131\006\001\000\000\000\000\000\000\002\245\000\000\004k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\235\004_\000\000\004p\004\215\000\000\000\000\000\000\004u\000\000\000\177\004z\000\000\000\000\003\023\000\000\004U\000\000\003\024\004\146\003\222\000\000\000\000\005\236\005\199\005\200\003\206\004l\000\000\003\192\004Z\000\000\000\000\003\193\004[\004m\000\000\003\207\003\223\000\177\003\190\003\213\001\150\003\224\000\000\003\223\001\151\003\225\000\000\006\028\006\211\006\225\003\226\000\000\000\000\000\000\000\131\000\000\006\017\003\228\000\000\002\245\000\000\004k\001\148\000\000\001\149\000\000\000\000\000\000\000\000\000\000\000\000\004_\000\000\004p\006\213\000\000\000\000\000\000\004u\006\018\001\164\004z\006\021\005\199\005\200\000\000\001\148\000\000\001\149\004\146\003\222\005\201\000\000\000\000\000\000\000\000\004l\000\000\003\192\001\148\000\000\001\158\003\193\000\000\000\000\000\000\000\000\003\018\003\223\000\000\003*\000\000\000\000\003\224\003%\000\131\000\000\003\225\000\000\000\000\000\177\004U\003\226\001\150\000\000\003&\000\000\001\151\000\000\000\000\000\000\003\206\000\000\000\000\000\000\004Z\000\000\000\000\000\000\004[\004m\000\000\003\207\000\000\000\177\000\000\003\018\001\150\000\000\003)\000\000\001\151\005\201\000\000\001\165\006\211\000\000\000\177\003\190\003\213\001\150\000\000\000\000\001\164\001\151\000\177\000\000\000\000\000\131\003\023\000\000\000\000\000\175\003\024\000\131\000\000\000\176\000\000\004_\004\252\004p\006\213\000\000\000\000\000\000\004u\000\000\001\164\004z\000\000\000\000\000\000\004U\000\000\000\000\001\212\004\146\003\222\000\000\000\000\001\164\000\000\003\206\005\027\000\177\006'\004Z\000\000\003\023\000\000\004[\004m\003\024\003\207\000\000\003\223\005\030\000\000\003\192\000\000\003\224\000\000\003\193\000\000\003\225\000\000\006\211\000\000\001\169\003\226\000\177\000\000\000\000\000\000\000\000\000\178\001Q\001\165\000\000\000\179\000\000\005$\001\184\001[\003\190\003\213\000\000\000\000\000\000\004_\000\000\004p\006\213\000\000\003\190\003\213\004u\001T\000\000\004z\000\131\001\165\000\000\006;\000\000\004\252\000\000\004\146\003\222\000\000\000\131\003%\000\000\000\188\001\165\004\252\005I\000\000\000\000\003\218\000\000\000\238\003&\000\000\000\000\000\000\003\223\000\000\000\000\005M\000\000\003\224\003\190\003\213\000\000\003\225\001\213\003\197\000\000\005\029\003\226\000\000\005\030\000\000\003\192\000\000\001\166\000\000\003\193\000\000\003%\001\169\005\030\000\000\003\192\004\166\000\000\000\000\003\193\005\235\001\167\003&\003\206\000\000\000\000\001\186\000\000\005$\000\249\000\000\001\168\005%\000\000\003\207\000\000\001\169\000\000\005$\000\000\001\148\005\235\001\158\005\236\005\199\005\200\001\\\005K\000\189\001\169\001\188\003?\000\000\003\192\001\170\000\000\000\131\003\193\001\171\000\000\000\000\000\000\000\000\001\172\005\236\005\199\005\200\001\205\000\000\004\129\000\000\000\000\001U\000\000\001V\000\000\006\017\005(\000\190\000\000\005L\001\148\000\249\001\158\000\000\000\000\000\000\000\000\005?\003\222\000\000\001\148\000\000\001\149\000\000\003\190\003\191\000\131\000\177\006\018\000\000\001\150\006\021\005\199\005\200\001\151\000\000\003\223\000\000\003\206\004\172\000\000\003\224\005\201\003\218\000\000\003\225\000\000\005%\003\206\003\207\003\226\000\000\000\000\000\192\000\000\000\000\000\000\005%\001\148\003\207\001\158\000\000\005&\005\201\000\000\001\212\000\000\000\216\000\177\000\000\001\164\001\150\005&\000\000\000\131\001\151\004U\000\000\000\177\000\000\000\000\001\150\000\177\000\000\003\192\001\151\003\206\000\000\003\193\000\000\004Z\000\000\005(\000\000\004[\005-\000\000\003\207\000\000\000\000\000\000\005\201\005(\005?\003\222\005-\001\212\000\000\000\000\000\000\004\174\001\164\000\000\005?\003\222\000\000\000\177\000\000\000\000\001\150\000\000\001\164\003\223\001\151\000\175\000\000\005\235\003\224\000\184\000\000\000\000\003\225\003\223\004_\000\000\000\000\003\226\003\224\000\000\000\175\000\131\003\225\000\000\000\184\001\165\000\000\003\226\000\000\000\000\005\236\005\199\005\200\003\222\000\000\001\212\000\131\006,\000\000\000\000\001\164\000\000\000\000\000\000\000\000\000\000\000\000\001\213\004W\003\018\000\000\003\223\003\022\000\000\000\000\000\000\003\224\001\166\006>\000\000\003\225\000\000\000\000\000\177\000\000\003\226\001\165\000\000\000\178\003\206\000\000\001\167\000\179\000\000\000\000\000\000\001\165\000\000\000\177\000\249\003\207\001\168\000\000\000\178\000\000\000\000\000\000\000\179\001\213\004w\000\000\000\000\000\000\006\134\000\000\000\000\000\000\000\000\001\166\001\169\005\201\003\190\003\213\000\000\001\170\000\000\000\188\003?\001\171\000\000\000\000\003\023\001\167\001\172\001\165\003\024\000\000\001\205\000\000\000\000\000\249\000\188\001\168\000\000\004N\004\175\000\000\002\003\000\238\000\000\000\000\000\000\003\190\003\213\000\000\000\000\001\213\005*\000\000\000\000\001\169\000\000\000\236\000\238\000\000\001\170\001\166\000\000\000\000\001\171\001\169\000\000\000\000\003\223\001\172\004N\004\165\000\000\001\205\003?\001\167\003\192\000\000\000\000\001\190\003\193\000\000\003\230\000\249\000\000\001\168\001\148\000\000\001\149\000\000\000\000\000\000\000\000\000\131\000\000\000\189\000\000\000\000\000\000\003\190\003\213\000\000\000\000\001\169\000\000\003?\000\000\003\192\001\170\000\000\000\189\003\193\001\171\003A\000\000\000\000\000\000\001\172\000\000\000\240\000\000\001\205\004N\004O\000\000\000\190\000\000\000\000\003%\006K\003C\000\000\000\000\000\000\000\240\000\000\003D\000\000\000\000\003&\000\190\000\246\000\000\000\000\000\177\000\000\000\000\001\150\000\000\000\249\000\000\001\151\000\222\000\000\000\000\000\000\000\246\003?\000\000\003\192\000\000\001Q\000\000\003\193\000\249\000\000\000\000\000\222\001[\000\000\004U\000\192\003G\000\000\000\000\000\223\000\000\000\000\000\000\000\224\003\206\000\000\001T\000\000\004Z\000\194\000\192\001\164\004[\003\018\000\223\003\207\003\022\000\000\000\224\000\000\000\000\000\000\000\000\000\000\000\194\004U\000\000\000\000\004]\000\000\000\000\000\000\003\190\003\213\000\000\003\206\000\000\000\000\003I\004Z\000\000\000\000\005\235\004[\000\000\000\000\003\207\000\000\000\000\003\190\003\213\004_\003J\000\000\000\000\004N\004Y\000\000\000\000\004]\000\000\000\000\000\000\000\000\000\000\005\236\005\199\005\200\000\000\000\000\003\222\000\177\004N\004\177\000\000\003\023\000\000\004U\000\000\003\024\003\190\003\213\004_\000\000\000\000\001\165\000\000\003\206\003\223\000\000\003?\004Z\003\192\003\224\001\\\004[\003\193\003\225\003\207\000\000\000\000\003\222\003\226\004N\005}\000\000\000\000\003?\000\000\003\192\000\000\004]\003\018\003\193\000\000\003\022\000\000\004\137\000\000\003\223\001U\000\000\001V\005\235\003\224\000\000\000\000\000\000\003\225\001\148\000\249\001\158\000\000\003\226\004_\005\201\000\000\000\000\003?\000\000\003\192\003\190\003\213\000\000\003\193\000\131\005\236\005\199\005\200\000\000\000\000\000\000\000\000\003\222\000\000\000\000\000\175\000\000\000\000\001\169\000\176\000\000\000\000\000\000\004N\005\127\000\000\000\000\000\000\000\000\003?\003\223\000\000\001\192\003\023\000\000\003\224\003%\003\024\000\000\003\225\001\148\000\000\001\149\000\000\003\226\004U\000\177\003&\000\000\001\150\000\000\000\000\000\000\001\151\000\000\003\206\000\000\000\000\003?\004Z\003\192\000\000\004U\004[\003\193\000\000\003\207\000\000\003\190\003\213\000\000\000\000\003\206\000\177\000\000\005\201\004Z\000\000\000\178\004]\004[\000\000\000\179\003\207\001\227\000\000\000\000\000\000\000\000\001\164\000\000\004N\005\129\004U\000\000\000\000\004]\001\148\000\177\001\158\000\000\001\150\004_\003\206\000\000\001\151\000\000\004Z\006I\000\000\000\000\004[\000\000\000\131\003\207\000\000\000\188\000\000\000\000\004_\003A\003\222\003I\000\000\000\000\000\000\003?\004]\003\192\000\131\000\000\000\000\003\193\000\000\000\000\003%\003V\003F\003\222\003\223\000\000\001\164\000\000\003D\003\224\000\000\003&\000\000\003\225\000\000\004_\000\000\000\000\003\226\004U\000\177\003\223\000\000\001\150\000\000\000\000\003\224\001\151\001\165\003\206\003\225\000\000\000\000\004Z\003\222\003\226\000\000\004[\000\000\000\000\003\207\000\000\000\000\000\000\003G\000\000\000\000\005\235\000\000\000\000\000\000\000\000\003\223\004]\006\132\000\189\000\000\003\224\001\163\000\000\001\166\003\225\001Q\001\164\000\131\001\148\003\226\001\158\000\000\001[\005\236\005\199\005\200\000\000\001\167\000\000\004_\001\148\000\000\001\158\001\165\000\131\000\249\001T\001\168\000\190\003I\004U\000\175\000\000\000\000\000\000\000\184\000\131\000\000\003\222\000\000\003\206\000\000\000\000\003J\004Z\001\169\000\000\000\131\004[\000\000\001\170\003\207\000\000\000\000\001\171\000\000\003\223\000\000\000\000\001\172\000\000\003\224\000\000\001\205\004]\003\225\000\177\000\000\000\000\001\150\003\226\000\000\000\000\001\151\000\192\001Q\000\000\000\000\000\177\000\000\001\165\001\150\001[\005\201\000\000\001\151\000\175\004_\000\226\000\177\000\184\000\000\000\000\000\000\000\178\000\000\001T\001\169\000\179\000\000\000\000\000\000\000\131\000\000\001\207\000\000\003\222\000\000\000\000\001\164\000\000\001\194\001\166\000\000\001\\\000\000\001\211\001\148\000\000\001\149\000\000\001\164\000\000\000\175\003\223\000\000\001\167\000\184\000\000\003\224\000\000\000\000\000\188\003\225\000\249\000\000\001\168\005\t\003\226\000\131\001U\000\175\001V\000\000\000\177\000\184\000\000\000\000\000\000\000\178\000\249\000\000\000\000\000\179\001\169\000\000\000\000\000\131\000\175\001\170\000\000\000\000\000\184\001\171\000\000\000\000\000\000\000\000\001\172\000\000\000\000\000\000\001\205\000\000\000\131\000\177\000\000\000\000\001\150\000\000\000\000\000\177\001\151\001\165\001\\\000\000\000\178\000\188\000\000\000\000\000\179\000\000\000\000\000\000\000\000\001\165\000\000\006\137\000\000\000\177\000\000\000\000\000\000\000\000\000\178\000\000\000\189\0054\000\179\000\175\001U\000\000\001V\000\184\000\000\001\166\000\177\000\000\001\164\000\000\000\249\000\178\000\000\000\000\000\188\000\179\000\000\001\166\000\000\001\167\001\240\000\000\000\000\000\000\000\000\003\018\000\190\000\249\003\022\001\168\000\000\001\167\000\188\000\000\000\000\000\000\000\175\000\000\000\000\000\249\000\184\001\168\002\015\000\000\000\000\000\000\000\000\001\169\000\000\000\188\000\249\000\189\001\170\000\222\000\000\000\000\001\171\000\177\000\000\001\169\000\000\001\172\000\178\000\000\001\170\001\205\000\179\000\000\001\171\000\000\000\000\000\000\000\192\001\172\000\000\003\001\000\223\001\205\000\000\001\196\000\224\000\190\001\165\000\177\000\000\000\000\000\194\003\023\000\189\000\000\001\148\003\024\001\149\000\000\000\177\000\000\000\000\003\003\000\000\000\178\000\188\000\000\000\000\000\179\000\000\000\249\000\189\000\000\000\222\000\000\000\000\000\000\003\001\003\018\000\000\000\000\003\022\000\000\000\190\000\000\000\000\000\000\000\000\000\189\000\000\000\175\000\000\000\192\000\000\000\184\003\174\000\223\000\000\000\000\003\020\000\224\000\190\000\188\000\000\000\000\000\000\000\194\000\249\000\000\000\000\000\222\000\000\003\174\000\177\000\000\000\000\001\150\003\176\000\190\003\018\001\151\001\169\003\022\002\254\003\018\000\249\000\000\003\022\000\222\000\192\000\000\000\000\000\000\000\223\004\004\001\200\003?\000\224\000\000\000\189\003\023\000\000\000\249\000\194\003\024\000\222\000\000\000\192\000\177\000\000\000\000\000\223\000\000\000\178\003%\000\224\001\164\000\179\000\000\000\000\000\000\000\194\000\000\000\221\000\192\003&\000\000\000\000\000\223\000\190\000\000\003@\000\224\000\000\000\000\000\000\000\189\003?\000\194\000\000\000\000\003\023\003?\000\000\000\000\003\024\003\023\000\000\000\000\003\018\003\024\000\188\003\022\000\000\000\000\000\000\000\222\000\000\000\000\000\000\000\240\000\000\000\000\000\000\000\175\000\000\000\190\000\000\000\184\000\000\000\000\000\000\003i\000\000\000\000\000\192\000\000\003m\003\018\000\223\000\000\003\022\000\000\000\224\000\000\000\000\000\000\003A\000\000\000\194\001\165\000\000\000\000\000\222\000\000\000\175\000\000\000\000\000\000\000\184\003I\000\000\003%\000\000\003g\000\000\000\000\000\177\000\000\000\000\003D\003\023\000\192\003&\003X\003\024\000\223\003:\000\000\000\000\000\224\000\000\000\177\000\000\000\000\000\189\000\194\000\178\003A\000\000\000\000\000\179\000\000\003A\000\000\000\000\003?\000\000\000\000\003j\003\023\000\000\000\000\003%\003\024\003g\003G\000\000\003%\003<\003g\003D\000\000\000\177\003&\000\190\003D\000\000\000\178\003&\000\000\000\000\000\179\000\175\001\169\000\188\000\000\000\184\000\000\000\000\000\175\003p\000\000\000\000\000\184\000\000\000\000\000\000\001\202\000\000\003j\000\000\000\222\003\018\000\000\003j\003\022\003G\003I\000\000\000\000\000\000\003G\000\000\000\000\000\000\000\188\000\000\000\000\000\000\000\000\000\192\003J\000\000\000\000\000\223\000\000\000\000\000\000\000\224\000\175\000\000\000\000\003%\000\184\000\194\000\000\000\000\000\000\000\000\000\000\000\177\000\000\000\000\003&\000\000\000\178\003A\000\177\003I\000\179\003\137\000\000\000\178\003I\000\000\000\000\000\179\000\000\000\189\000\000\000\177\003%\003J\003g\003\023\000\000\000\000\003J\003\024\003D\000\175\000\000\003&\000\000\000\184\000\000\000\000\000\000\000\000\000\000\000\000\003\148\003<\000\188\000\000\000\000\000\000\000\177\000\190\000\189\000\188\000\000\000\178\000\000\000\000\000\000\000\179\000\000\003j\000\000\000\000\000\000\001\148\000\000\001\149\003G\000\000\000\000\000\000\003\250\000\000\000\000\000\000\003<\000\000\000\222\000\000\000\175\003I\000\190\000\000\000\184\000\000\000\000\000\000\000\000\000\000\000\000\000\177\000\000\000\188\000\000\003Z\000\178\000\192\000\175\000\000\000\179\000\223\000\184\000\000\000\000\000\224\000\000\000\000\000\000\000\222\003I\000\194\003\156\004/\000\000\000\000\000\000\000\000\000\000\003\163\000\189\000\000\000\000\000\177\003J\000\000\001\150\000\189\000\192\003%\001\151\000\000\000\223\000\000\000\188\000\175\000\224\000\000\000\177\000\184\003&\000\000\000\194\000\178\003<\000\000\000\000\000\179\000\000\000\000\000\190\003<\000\000\000\000\000\000\000\000\000\177\000\190\003\190\003\191\0041\000\178\000\000\000\000\000\000\000\179\001\164\000\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\222\0043\000\175\000\000\000\188\000\000\000\184\000\222\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\000\000\177\000\000\000\000\000\192\000\190\000\178\000\188\000\223\000\000\000\179\000\192\000\224\000\175\000\000\000\223\000\189\000\184\000\194\000\224\000\000\000\000\000\000\003I\000\177\000\194\003\192\000\000\000\000\000\000\003\193\000\000\000\222\000\000\000\000\000\000\000\000\003\\\000\000\000\000\000\221\000\000\000\000\000\000\000\188\000\177\000\190\000\000\001\165\000\175\000\178\000\192\000\000\000\184\000\179\000\223\000\000\000\000\000\000\000\224\000\000\000\000\000\000\000\189\000\000\000\194\000\175\000\000\003\190\003\191\000\184\000\177\000\000\000\222\000\000\000\000\000\178\000\000\000\000\000\000\000\179\000\189\000\000\000\000\000\000\000\000\000\000\000\221\000\188\000\000\000\000\000\000\000\192\000\190\000\000\000\000\000\223\000\000\000\000\000\000\000\224\000\000\000\000\000\000\000\000\000\221\000\194\000\177\000\000\000\000\004\133\000\190\000\178\000\000\000\188\000\000\000\179\000\000\000\189\000\000\000\222\000\000\001\169\000\000\000\177\000\000\000\177\000\000\003\192\000\178\003\206\003\018\003\193\000\179\003\022\000\000\001\204\000\000\000\222\000\192\000\000\003\207\003<\000\223\000\000\000\000\000\000\000\224\000\190\000\000\000\188\000\000\000\000\000\194\004\142\000\000\000\000\000\192\000\000\000\175\000\000\000\223\000\189\000\184\000\000\000\224\000\000\000\188\000\000\000\000\000\000\000\194\000\175\000\000\000\000\000\222\000\184\000\000\000\000\000\000\004\150\000\000\000\000\000\000\000\000\000\000\003<\000\000\000\189\000\177\000\000\000\000\000\190\003\023\000\192\000\000\000\000\003\024\000\223\000\000\000\175\000\000\000\224\000\000\000\184\000\000\000\000\000\000\000\194\000\000\000\000\000\000\003<\000\000\003\223\000\000\005\001\000\177\000\190\000\222\000\000\000\175\000\178\000\000\000\189\000\184\000\179\000\000\003\232\000\000\000\177\000\000\003\206\005\r\000\000\000\178\000\175\000\000\000\192\000\179\000\184\000\189\000\223\003\207\000\000\000\222\000\224\000\000\003<\000\000\000\000\000\000\000\194\000\000\000\190\000\000\000\000\000\000\000\177\000\000\000\188\000\000\000\000\000\178\000\192\003<\000\000\000\179\000\223\000\000\000\000\000\190\000\224\000\188\000\000\000\000\000\000\000\000\000\194\000\177\000\000\000\222\003\018\000\175\000\178\003\022\000\000\000\184\000\179\000\000\000\000\000\000\000\000\000\000\000\177\003%\000\000\000\000\000\222\000\178\000\192\000\188\000\000\000\179\000\223\000\000\003&\000\000\000\224\000\000\003\190\003\191\000\000\000\000\000\194\000\175\003\223\000\192\000\000\000\184\000\000\000\223\000\188\000\000\000\000\000\224\005\018\000\000\000\000\006\180\003\234\000\194\000\000\000\000\000\189\003\018\000\000\000\188\003\022\005\025\000\177\000\177\000\000\000\000\003\023\000\000\000\178\000\189\003\024\000\000\000\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003<\000\000\000\000\003\190\003\191\000\000\000\190\000\000\000\000\005\"\000\177\000\000\003\192\003<\000\000\000\177\003\193\000\189\000\175\000\190\000\178\000\000\000\184\003I\000\179\000\000\000\188\000\000\000\000\000\000\0058\000\000\007\024\000\222\000\000\000\177\000\000\003^\000\189\003\023\000\000\003<\000\000\003\024\000\000\005=\000\222\000\190\000\000\000\000\000\175\000\000\000\192\000\189\000\184\000\000\000\223\000\000\000\188\000\000\000\224\000\177\003<\003\192\000\000\000\192\000\194\003\193\000\190\000\223\000\000\000\000\000\000\000\224\000\222\000\000\000\177\003<\000\000\000\194\000\000\000\178\000\175\000\190\000\000\000\179\000\184\000\000\003%\000\000\000\000\000\000\005D\000\192\000\000\000\222\000\000\000\223\000\000\003&\000\189\000\224\000\000\000\000\000\000\000\000\000\000\000\194\000\177\000\000\000\222\003\190\003\191\000\178\000\192\000\000\003\206\000\179\000\223\000\188\000\000\000\000\000\224\000\000\003<\000\000\000\000\003\207\000\194\000\192\000\190\000\000\000\189\000\223\000\000\000\000\000\000\000\224\000\000\000\000\000\177\003%\000\000\000\194\000\175\000\178\000\175\000\000\000\184\000\179\000\184\000\188\003&\000\000\000\000\000\000\006\181\000\222\000\000\000\000\000\000\000\175\000\190\000\000\000\000\000\184\000\000\003\206\000\000\000\177\000\000\003\192\000\000\000\000\003I\003\193\000\192\000\000\003\207\000\000\000\223\000\000\000\000\000\188\000\224\000\000\000\000\000\000\003`\000\222\000\194\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\000\000\000\003\223\000\000\000\177\000\000\000\177\000\000\000\000\000\178\000\192\000\178\000\000\000\179\000\223\000\179\003\236\000\000\000\224\006\181\000\000\000\177\000\000\000\000\000\194\000\190\000\178\000\189\000\000\003I\000\179\000\000\000\000\000\175\000\000\000\175\000\000\000\184\000\000\000\184\000\000\000\000\000\000\003b\000\000\000\000\000\000\000\188\000\000\000\188\000\000\001\217\000\222\003\223\000\000\000\000\000\000\000\190\000\000\000\189\000\000\000\000\000\000\000\000\000\188\000\000\000\000\003\238\000\000\000\000\000\175\000\192\000\000\000\000\000\184\000\223\000\000\003\206\000\000\000\224\000\000\000\000\000\000\001\231\000\222\000\194\000\000\000\000\003\207\000\190\000\000\000\177\000\000\000\177\000\000\000\000\000\178\000\000\000\178\000\000\000\179\000\000\000\179\000\192\000\000\000\000\000\000\000\223\000\000\000\000\000\000\000\224\000\000\000\000\000\175\000\000\000\222\000\194\000\184\000\000\000\000\000\189\000\000\000\189\000\000\000\000\000\000\000\000\000\177\000\000\000\000\000\000\000\000\000\178\000\188\000\192\000\188\000\179\000\189\000\223\000\000\000\000\000\000\000\224\000\000\001\253\000\000\002\235\000\000\000\194\000\000\000\190\000\000\000\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\223\002\239\000\175\000\000\000\000\000\000\000\184\000\190\000\000\000\000\000\188\000\177\000\000\000\000\003\240\000\000\000\178\000\222\000\175\000\222\000\179\000\000\000\184\000\000\003\018\000\000\000\000\003\022\000\000\000\000\000\000\000\175\000\000\000\000\000\222\000\184\000\192\000\000\000\192\000\000\000\223\000\000\000\223\000\000\000\224\000\000\000\224\000\189\000\000\000\189\000\194\000\000\000\194\000\192\000\188\000\000\000\000\000\223\000\000\000\000\000\177\000\224\000\000\000\000\000\000\000\178\000\000\000\194\000\000\000\179\000\000\003\031\000\000\003.\000\000\000\000\000\177\000\190\000\000\000\190\000\000\000\178\000\177\000\000\000\189\000\179\003\023\000\000\000\000\000\177\003\024\000\000\000\000\000\000\000\178\000\000\000\175\000\000\000\179\000\000\000\184\000\000\000\000\000\188\000\222\000\000\000\222\000\000\0030\000\175\000\000\000\000\000\175\000\184\000\190\000\000\000\184\000\000\000\000\000\188\000\000\000\000\000\000\000\192\000\000\000\192\000\000\000\223\000\189\000\223\000\000\000\224\000\188\000\224\000\000\000\000\000\000\000\194\000\000\000\194\000\000\000\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\200\000\000\000\177\000\000\000\000\000\175\000\190\000\178\000\192\000\184\000\000\000\179\000\223\000\000\000\000\000\177\000\224\000\000\000\177\000\000\000\178\000\000\000\194\000\178\000\179\000\189\000\000\000\179\000\000\000\000\000\000\000\000\000\000\000\222\000\000\000\000\003%\000\000\000\000\000\000\000\000\000\189\000\000\000\000\000\000\000\188\000\000\003&\000\000\004\t\000\000\000\000\000\192\000\000\000\189\000\190\000\223\000\000\000\188\000\000\000\224\000\188\000\000\000\177\000\000\004\014\000\194\000\000\000\178\000\000\000\175\000\190\000\179\000\000\000\184\000\000\000\000\000\000\004\018\000\000\000\000\000\000\000\222\000\175\000\190\000\000\000\000\000\184\000\000\000\000\000\175\000\000\000\000\000\000\000\184\000\000\000\000\000\000\000\222\000\000\000\000\000\192\000\000\000\000\000\000\000\223\000\188\000\000\000\000\000\224\000\000\000\222\000\175\000\000\000\000\000\194\000\184\000\192\000\000\000\189\000\000\000\223\003I\000\000\000\000\000\224\000\000\000\000\000\177\000\000\000\192\000\194\000\189\000\178\000\223\000\189\003d\000\179\000\224\000\000\000\000\000\177\000\000\004'\000\194\000\000\000\178\000\000\000\177\000\190\000\179\000\000\000\000\000\178\000\000\000\000\004R\000\179\000\000\004\244\000\000\000\000\000\190\000\000\000\000\000\190\000\000\000\000\003\190\003\191\000\177\000\188\000\000\000\000\000\000\000\178\000\222\000\175\000\000\000\179\000\189\000\184\000\000\000\175\000\188\000\000\000\000\000\176\000\000\000\222\000\175\000\188\000\222\000\000\000\184\000\192\000\000\003\018\000\000\000\223\003\022\000\000\000\000\000\224\005[\000\000\000\000\000\000\000\192\000\194\000\190\000\192\000\223\000\188\000\000\000\223\000\224\000\000\000\000\000\224\000\000\000\000\000\194\000\000\000\000\000\194\000\177\000\000\003\192\000\000\000\000\000\000\003\193\000\000\000\000\000\177\000\000\000\222\000\175\000\000\000\178\000\177\000\176\000\000\000\179\000\189\000\178\000\000\000\177\000\000\000\179\000\000\000\000\000\178\000\000\000\177\000\192\000\179\000\189\003\023\000\223\000\000\000\000\003\024\000\224\000\189\000\000\000\000\000\000\005o\000\194\000\000\000\000\000\000\000\000\000\190\000\000\000\000\000\188\000\000\000\000\000\000\005q\000\000\000\188\000\000\000\000\000\189\000\190\005s\000\000\000\188\000\000\003\190\003\191\000\190\000\177\000\000\000\000\000\000\000\000\000\178\000\222\000\000\000\000\000\179\003\190\003\191\000\000\000\000\000\000\005y\000\000\000\000\000\000\000\222\000\000\000\190\000\000\000\000\000\000\000\192\000\222\003\190\003\191\000\223\003\190\003\191\000\000\000\224\000\000\000\000\003\206\000\000\000\192\000\194\003\190\003\191\000\223\000\188\000\000\000\192\000\224\003\207\000\222\000\223\003\190\003\191\000\194\000\224\000\000\000\177\000\189\003\192\000\000\000\194\000\000\003\193\000\189\000\000\000\000\003%\000\000\000\192\000\177\000\189\003\192\000\223\000\000\000\000\003\193\000\224\003&\000\000\000\000\000\000\005\135\000\194\000\000\000\000\000\000\000\177\000\190\003\192\000\177\000\000\003\192\003\193\000\190\005\149\003\193\000\000\000\000\000\000\000\177\000\190\003\192\000\000\000\000\000\000\003\193\000\000\000\000\000\000\000\177\000\000\003\192\000\000\000\000\000\222\003\193\000\000\000\000\000\189\000\000\000\000\003\223\000\000\000\000\000\000\000\000\000\000\000\222\000\000\000\000\000\000\000\000\000\000\000\192\000\000\003\242\000\000\000\223\000\000\000\192\000\000\000\224\000\000\000\000\000\000\000\000\000\192\000\194\000\190\000\000\000\223\000\000\003I\000\228\000\224\000\000\000\000\000\000\000\000\000\000\000\194\000\000\003\206\000\000\000\000\000\000\003f\000\000\000\000\000\000\000\000\000\000\000\000\003\207\000\000\003\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\207\000\000\000\000\000\000\000\000\000\000\003\206\000\000\000\192\003\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\207\000\000\003\206\003\207\000\000\000\230\000\000\000\000\000\000\000\000\000\000\000\000\003\206\003\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\223\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\223\003\244\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\246\000\000\000\000\003\223\000\000\000\000\003\223\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\223\003\248\000\000\000\000\003\254\000\000\000\000\000\000\000\000\000\000\003\223\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\002"))
   
   let semantic_action =
     [|
@@ -1501,13 +1604,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_eexpr = Obj.magic _1 in
+        let _1 : 'tv_dexpr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_aexpr = 
-# 1740 "parser_cocci_menhir.mly"
-      ( Ast0.set_arg_exp _1 )
-# 1511 "parser_cocci_menhir.ml"
+# 1980 "parser_cocci_menhir.mly"
+          ( Ast0.set_arg_exp _1 )
+# 1614 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1526,22 +1629,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 65 "parser_cocci_menhir.mly"
+# 69 "parser_cocci_menhir.mly"
        (Parse_aux.list_info)
-# 1532 "parser_cocci_menhir.ml"
+# 1635 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_aexpr = 
-# 1742 "parser_cocci_menhir.mly"
+# 1982 "parser_cocci_menhir.mly"
       ( let (nm,lenname,pure,clt) = _1 in
       let nm = P.clt2mcode nm clt in
       let lenname =
        match lenname with
-         Some nm -> Some(P.clt2mcode nm clt)
-       | None -> None in
+         Ast.AnyLen -> Ast0.AnyListLen
+       | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt)
+       | Ast.CstLen n -> Ast0.CstListLen n in
       Ast0.wrap(Ast0.MetaExprList(nm,lenname,pure)) )
-# 1545 "parser_cocci_menhir.ml"
+# 1649 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1563,9 +1667,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_aexpr = 
-# 1750 "parser_cocci_menhir.mly"
+# 1991 "parser_cocci_menhir.mly"
       ( Ast0.set_arg_exp(Ast0.wrap(Ast0.TypeExp(_1))) )
-# 1569 "parser_cocci_menhir.ml"
+# 1673 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1585,9 +1689,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_any_strict = 
-# 1794 "parser_cocci_menhir.mly"
+# 2027 "parser_cocci_menhir.mly"
             ( Ast.WhenAny )
-# 1591 "parser_cocci_menhir.ml"
+# 1695 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1607,9 +1711,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_any_strict = 
-# 1795 "parser_cocci_menhir.mly"
+# 2028 "parser_cocci_menhir.mly"
             ( Ast.WhenStrict )
-# 1613 "parser_cocci_menhir.ml"
+# 1717 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1629,9 +1733,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_any_strict = 
-# 1796 "parser_cocci_menhir.mly"
+# 2029 "parser_cocci_menhir.mly"
             ( Ast.WhenForall )
-# 1635 "parser_cocci_menhir.ml"
+# 1739 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1651,9 +1755,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_any_strict = 
-# 1797 "parser_cocci_menhir.mly"
+# 2030 "parser_cocci_menhir.mly"
             ( Ast.WhenExists )
-# 1657 "parser_cocci_menhir.ml"
+# 1761 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1675,9 +1779,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1242 "parser_cocci_menhir.mly"
+# 1321 "parser_cocci_menhir.mly"
                                             ( _1 )
-# 1681 "parser_cocci_menhir.ml"
+# 1785 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1707,17 +1811,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 98 "parser_cocci_menhir.mly"
+# 102 "parser_cocci_menhir.mly"
        (Data.clt)
-# 1713 "parser_cocci_menhir.ml"
+# 1817 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1244 "parser_cocci_menhir.mly"
+# 1323 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Mul _1 _2 _3 )
-# 1721 "parser_cocci_menhir.ml"
+# 1825 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1747,17 +1851,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 96 "parser_cocci_menhir.mly"
+# 100 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 1753 "parser_cocci_menhir.ml"
+# 1857 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1246 "parser_cocci_menhir.mly"
+# 1325 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 1761 "parser_cocci_menhir.ml"
+# 1865 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1787,17 +1891,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 97 "parser_cocci_menhir.mly"
+# 101 "parser_cocci_menhir.mly"
        (Data.clt)
-# 1793 "parser_cocci_menhir.ml"
+# 1897 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1248 "parser_cocci_menhir.mly"
+# 1327 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Plus _1 _2 _3 )
-# 1801 "parser_cocci_menhir.ml"
+# 1905 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1827,17 +1931,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 97 "parser_cocci_menhir.mly"
+# 101 "parser_cocci_menhir.mly"
        (Data.clt)
-# 1833 "parser_cocci_menhir.ml"
+# 1937 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1250 "parser_cocci_menhir.mly"
+# 1329 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Minus _1 _2 _3 )
-# 1841 "parser_cocci_menhir.ml"
+# 1945 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1867,17 +1971,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 95 "parser_cocci_menhir.mly"
+# 99 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 1873 "parser_cocci_menhir.ml"
+# 1977 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1252 "parser_cocci_menhir.mly"
+# 1331 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 1881 "parser_cocci_menhir.ml"
+# 1985 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1907,17 +2011,57 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 94 "parser_cocci_menhir.mly"
+# 99 "parser_cocci_menhir.mly"
+       (Ast_cocci.arithOp * Data.clt)
+# 2017 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
+# 1333 "parser_cocci_menhir.mly"
+      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
+# 2025 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
+        let _2 : (
+# 98 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
-# 1913 "parser_cocci_menhir.ml"
+# 2057 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1254 "parser_cocci_menhir.mly"
+# 1335 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
-# 1921 "parser_cocci_menhir.ml"
+# 2065 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1947,17 +2091,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 93 "parser_cocci_menhir.mly"
+# 97 "parser_cocci_menhir.mly"
        (Data.clt)
-# 1953 "parser_cocci_menhir.ml"
+# 2097 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1256 "parser_cocci_menhir.mly"
+# 1337 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.Eq _1 _2 _3 )
-# 1961 "parser_cocci_menhir.ml"
+# 2105 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -1987,17 +2131,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 93 "parser_cocci_menhir.mly"
+# 97 "parser_cocci_menhir.mly"
        (Data.clt)
-# 1993 "parser_cocci_menhir.ml"
+# 2137 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1258 "parser_cocci_menhir.mly"
+# 1339 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.NotEq _1 _2 _3 )
-# 2001 "parser_cocci_menhir.ml"
+# 2145 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2027,17 +2171,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 92 "parser_cocci_menhir.mly"
+# 96 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2033 "parser_cocci_menhir.ml"
+# 2177 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1260 "parser_cocci_menhir.mly"
+# 1341 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.And _1 _2 _3 )
-# 2041 "parser_cocci_menhir.ml"
+# 2185 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2067,17 +2211,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 90 "parser_cocci_menhir.mly"
+# 94 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2073 "parser_cocci_menhir.ml"
+# 2217 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1262 "parser_cocci_menhir.mly"
+# 1343 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
-# 2081 "parser_cocci_menhir.ml"
+# 2225 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2107,17 +2251,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 91 "parser_cocci_menhir.mly"
+# 95 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2113 "parser_cocci_menhir.ml"
+# 2257 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1264 "parser_cocci_menhir.mly"
+# 1345 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
-# 2121 "parser_cocci_menhir.ml"
+# 2265 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2147,17 +2291,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 89 "parser_cocci_menhir.mly"
+# 93 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2153 "parser_cocci_menhir.ml"
+# 2297 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1266 "parser_cocci_menhir.mly"
+# 1347 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
-# 2161 "parser_cocci_menhir.ml"
+# 2305 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2187,17 +2331,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in
         let _2 : (
-# 88 "parser_cocci_menhir.mly"
+# 92 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2193 "parser_cocci_menhir.ml"
+# 2337 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_dot_expressions_ = 
-# 1268 "parser_cocci_menhir.mly"
+# 1349 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.OrLog _1 _2 _3 )
-# 2201 "parser_cocci_menhir.ml"
+# 2345 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2219,9 +2363,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1242 "parser_cocci_menhir.mly"
+# 1321 "parser_cocci_menhir.mly"
                                             ( _1 )
-# 2225 "parser_cocci_menhir.ml"
+# 2369 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2251,17 +2395,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 98 "parser_cocci_menhir.mly"
+# 102 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2257 "parser_cocci_menhir.ml"
+# 2401 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1244 "parser_cocci_menhir.mly"
+# 1323 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Mul _1 _2 _3 )
-# 2265 "parser_cocci_menhir.ml"
+# 2409 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2291,17 +2435,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 96 "parser_cocci_menhir.mly"
+# 100 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 2297 "parser_cocci_menhir.ml"
+# 2441 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1246 "parser_cocci_menhir.mly"
+# 1325 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 2305 "parser_cocci_menhir.ml"
+# 2449 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2331,17 +2475,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 97 "parser_cocci_menhir.mly"
+# 101 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2337 "parser_cocci_menhir.ml"
+# 2481 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1248 "parser_cocci_menhir.mly"
+# 1327 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Plus _1 _2 _3 )
-# 2345 "parser_cocci_menhir.ml"
+# 2489 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2371,17 +2515,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 97 "parser_cocci_menhir.mly"
+# 101 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2377 "parser_cocci_menhir.ml"
+# 2521 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1250 "parser_cocci_menhir.mly"
+# 1329 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Minus _1 _2 _3 )
-# 2385 "parser_cocci_menhir.ml"
+# 2529 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2411,17 +2555,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 95 "parser_cocci_menhir.mly"
+# 99 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 2417 "parser_cocci_menhir.ml"
+# 2561 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1252 "parser_cocci_menhir.mly"
+# 1331 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 2425 "parser_cocci_menhir.ml"
+# 2569 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2451,17 +2595,57 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 94 "parser_cocci_menhir.mly"
+# 99 "parser_cocci_menhir.mly"
+       (Ast_cocci.arithOp * Data.clt)
+# 2601 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_arith_expr_eexpr_invalid_ = 
+# 1333 "parser_cocci_menhir.mly"
+      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
+# 2609 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
+        let _2 : (
+# 98 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
-# 2457 "parser_cocci_menhir.ml"
+# 2641 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1254 "parser_cocci_menhir.mly"
+# 1335 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
-# 2465 "parser_cocci_menhir.ml"
+# 2649 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2491,17 +2675,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 93 "parser_cocci_menhir.mly"
+# 97 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2497 "parser_cocci_menhir.ml"
+# 2681 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1256 "parser_cocci_menhir.mly"
+# 1337 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.Eq _1 _2 _3 )
-# 2505 "parser_cocci_menhir.ml"
+# 2689 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2531,17 +2715,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 93 "parser_cocci_menhir.mly"
+# 97 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2537 "parser_cocci_menhir.ml"
+# 2721 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1258 "parser_cocci_menhir.mly"
+# 1339 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.NotEq _1 _2 _3 )
-# 2545 "parser_cocci_menhir.ml"
+# 2729 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2571,17 +2755,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 92 "parser_cocci_menhir.mly"
+# 96 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2577 "parser_cocci_menhir.ml"
+# 2761 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1260 "parser_cocci_menhir.mly"
+# 1341 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.And _1 _2 _3 )
-# 2585 "parser_cocci_menhir.ml"
+# 2769 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2611,17 +2795,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 90 "parser_cocci_menhir.mly"
+# 94 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2617 "parser_cocci_menhir.ml"
+# 2801 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1262 "parser_cocci_menhir.mly"
+# 1343 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
-# 2625 "parser_cocci_menhir.ml"
+# 2809 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2651,17 +2835,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 91 "parser_cocci_menhir.mly"
+# 95 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2657 "parser_cocci_menhir.ml"
+# 2841 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1264 "parser_cocci_menhir.mly"
+# 1345 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
-# 2665 "parser_cocci_menhir.ml"
+# 2849 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2691,17 +2875,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 89 "parser_cocci_menhir.mly"
+# 93 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2697 "parser_cocci_menhir.ml"
+# 2881 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1266 "parser_cocci_menhir.mly"
+# 1347 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
-# 2705 "parser_cocci_menhir.ml"
+# 2889 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2731,17 +2915,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 88 "parser_cocci_menhir.mly"
+# 92 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2737 "parser_cocci_menhir.ml"
+# 2921 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_invalid_ = 
-# 1268 "parser_cocci_menhir.mly"
+# 1349 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.OrLog _1 _2 _3 )
-# 2745 "parser_cocci_menhir.ml"
+# 2929 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2763,9 +2947,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1242 "parser_cocci_menhir.mly"
+# 1321 "parser_cocci_menhir.mly"
                                             ( _1 )
-# 2769 "parser_cocci_menhir.ml"
+# 2953 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2795,17 +2979,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 98 "parser_cocci_menhir.mly"
+# 102 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2801 "parser_cocci_menhir.ml"
+# 2985 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1244 "parser_cocci_menhir.mly"
+# 1323 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Mul _1 _2 _3 )
-# 2809 "parser_cocci_menhir.ml"
+# 2993 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2835,17 +3019,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 96 "parser_cocci_menhir.mly"
+# 100 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 2841 "parser_cocci_menhir.ml"
+# 3025 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1246 "parser_cocci_menhir.mly"
+# 1325 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 2849 "parser_cocci_menhir.ml"
+# 3033 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2875,17 +3059,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 97 "parser_cocci_menhir.mly"
+# 101 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2881 "parser_cocci_menhir.ml"
+# 3065 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1248 "parser_cocci_menhir.mly"
+# 1327 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Plus _1 _2 _3 )
-# 2889 "parser_cocci_menhir.ml"
+# 3073 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2915,17 +3099,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 97 "parser_cocci_menhir.mly"
+# 101 "parser_cocci_menhir.mly"
        (Data.clt)
-# 2921 "parser_cocci_menhir.ml"
+# 3105 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1250 "parser_cocci_menhir.mly"
+# 1329 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Minus _1 _2 _3 )
-# 2929 "parser_cocci_menhir.ml"
+# 3113 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2955,17 +3139,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 95 "parser_cocci_menhir.mly"
+# 99 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 2961 "parser_cocci_menhir.ml"
+# 3145 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1252 "parser_cocci_menhir.mly"
+# 1331 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 2969 "parser_cocci_menhir.ml"
+# 3153 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -2995,17 +3179,57 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 94 "parser_cocci_menhir.mly"
+# 99 "parser_cocci_menhir.mly"
+       (Ast_cocci.arithOp * Data.clt)
+# 3185 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
+# 1333 "parser_cocci_menhir.mly"
+      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
+# 3193 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
+        let _2 : (
+# 98 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
-# 3001 "parser_cocci_menhir.ml"
+# 3225 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1254 "parser_cocci_menhir.mly"
+# 1335 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
-# 3009 "parser_cocci_menhir.ml"
+# 3233 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3035,17 +3259,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 93 "parser_cocci_menhir.mly"
+# 97 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3041 "parser_cocci_menhir.ml"
+# 3265 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1256 "parser_cocci_menhir.mly"
+# 1337 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.Eq _1 _2 _3 )
-# 3049 "parser_cocci_menhir.ml"
+# 3273 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3075,17 +3299,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 93 "parser_cocci_menhir.mly"
+# 97 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3081 "parser_cocci_menhir.ml"
+# 3305 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1258 "parser_cocci_menhir.mly"
+# 1339 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.NotEq _1 _2 _3 )
-# 3089 "parser_cocci_menhir.ml"
+# 3313 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3115,17 +3339,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 92 "parser_cocci_menhir.mly"
+# 96 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3121 "parser_cocci_menhir.ml"
+# 3345 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1260 "parser_cocci_menhir.mly"
+# 1341 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.And _1 _2 _3 )
-# 3129 "parser_cocci_menhir.ml"
+# 3353 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3155,17 +3379,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 90 "parser_cocci_menhir.mly"
+# 94 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3161 "parser_cocci_menhir.ml"
+# 3385 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1262 "parser_cocci_menhir.mly"
+# 1343 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
-# 3169 "parser_cocci_menhir.ml"
+# 3393 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3195,17 +3419,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 91 "parser_cocci_menhir.mly"
+# 95 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3201 "parser_cocci_menhir.ml"
+# 3425 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1264 "parser_cocci_menhir.mly"
+# 1345 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
-# 3209 "parser_cocci_menhir.ml"
+# 3433 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3235,17 +3459,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 89 "parser_cocci_menhir.mly"
+# 93 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3241 "parser_cocci_menhir.ml"
+# 3465 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1266 "parser_cocci_menhir.mly"
+# 1347 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
-# 3249 "parser_cocci_menhir.ml"
+# 3473 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3275,17 +3499,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in
         let _2 : (
-# 88 "parser_cocci_menhir.mly"
+# 92 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3281 "parser_cocci_menhir.ml"
+# 3505 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_eexpr_nest_expressions_ = 
-# 1268 "parser_cocci_menhir.mly"
+# 1349 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.OrLog _1 _2 _3 )
-# 3289 "parser_cocci_menhir.ml"
+# 3513 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3307,9 +3531,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1242 "parser_cocci_menhir.mly"
+# 1321 "parser_cocci_menhir.mly"
                                             ( _1 )
-# 3313 "parser_cocci_menhir.ml"
+# 3537 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3339,17 +3563,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 98 "parser_cocci_menhir.mly"
+# 102 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3345 "parser_cocci_menhir.ml"
+# 3569 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1244 "parser_cocci_menhir.mly"
+# 1323 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Mul _1 _2 _3 )
-# 3353 "parser_cocci_menhir.ml"
+# 3577 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3379,17 +3603,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 96 "parser_cocci_menhir.mly"
+# 100 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 3385 "parser_cocci_menhir.ml"
+# 3609 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1246 "parser_cocci_menhir.mly"
+# 1325 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 3393 "parser_cocci_menhir.ml"
+# 3617 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3419,17 +3643,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 97 "parser_cocci_menhir.mly"
+# 101 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3425 "parser_cocci_menhir.ml"
+# 3649 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1248 "parser_cocci_menhir.mly"
+# 1327 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Plus _1 _2 _3 )
-# 3433 "parser_cocci_menhir.ml"
+# 3657 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3459,17 +3683,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 97 "parser_cocci_menhir.mly"
+# 101 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3465 "parser_cocci_menhir.ml"
+# 3689 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1250 "parser_cocci_menhir.mly"
+# 1329 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Minus _1 _2 _3 )
-# 3473 "parser_cocci_menhir.ml"
+# 3697 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3499,17 +3723,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 95 "parser_cocci_menhir.mly"
+# 99 "parser_cocci_menhir.mly"
        (Ast_cocci.arithOp * Data.clt)
-# 3505 "parser_cocci_menhir.ml"
+# 3729 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1252 "parser_cocci_menhir.mly"
+# 1331 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
-# 3513 "parser_cocci_menhir.ml"
+# 3737 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3539,17 +3763,57 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 94 "parser_cocci_menhir.mly"
+# 99 "parser_cocci_menhir.mly"
+       (Ast_cocci.arithOp * Data.clt)
+# 3769 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_arith_expr_expr_invalid_ = 
+# 1333 "parser_cocci_menhir.mly"
+      ( let (op,clt) = _2 in P.arith_op op _1 clt _3 )
+# 3777 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
+        let _2 : (
+# 98 "parser_cocci_menhir.mly"
        (Ast_cocci.logicalOp * Data.clt)
-# 3545 "parser_cocci_menhir.ml"
+# 3809 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1254 "parser_cocci_menhir.mly"
+# 1335 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in P.logic_op op _1 clt _3 )
-# 3553 "parser_cocci_menhir.ml"
+# 3817 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3579,17 +3843,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 93 "parser_cocci_menhir.mly"
+# 97 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3585 "parser_cocci_menhir.ml"
+# 3849 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1256 "parser_cocci_menhir.mly"
+# 1337 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.Eq _1 _2 _3 )
-# 3593 "parser_cocci_menhir.ml"
+# 3857 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3619,17 +3883,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 93 "parser_cocci_menhir.mly"
+# 97 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3625 "parser_cocci_menhir.ml"
+# 3889 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1258 "parser_cocci_menhir.mly"
+# 1339 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.NotEq _1 _2 _3 )
-# 3633 "parser_cocci_menhir.ml"
+# 3897 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3659,17 +3923,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 92 "parser_cocci_menhir.mly"
+# 96 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3665 "parser_cocci_menhir.ml"
+# 3929 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1260 "parser_cocci_menhir.mly"
+# 1341 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.And _1 _2 _3 )
-# 3673 "parser_cocci_menhir.ml"
+# 3937 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3699,17 +3963,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 90 "parser_cocci_menhir.mly"
+# 94 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3705 "parser_cocci_menhir.ml"
+# 3969 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1262 "parser_cocci_menhir.mly"
+# 1343 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Or _1 _2 _3 )
-# 3713 "parser_cocci_menhir.ml"
+# 3977 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3739,17 +4003,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 91 "parser_cocci_menhir.mly"
+# 95 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3745 "parser_cocci_menhir.ml"
+# 4009 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1264 "parser_cocci_menhir.mly"
+# 1345 "parser_cocci_menhir.mly"
       ( P.arith_op Ast.Xor _1 _2 _3 )
-# 3753 "parser_cocci_menhir.ml"
+# 4017 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3779,17 +4043,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 89 "parser_cocci_menhir.mly"
+# 93 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3785 "parser_cocci_menhir.ml"
+# 4049 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1266 "parser_cocci_menhir.mly"
+# 1347 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.AndLog _1 _2 _3 )
-# 3793 "parser_cocci_menhir.ml"
+# 4057 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3819,17 +4083,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in
         let _2 : (
-# 88 "parser_cocci_menhir.mly"
+# 92 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3825 "parser_cocci_menhir.ml"
+# 4089 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_arith_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_arith_expr_expr_invalid_ = 
-# 1268 "parser_cocci_menhir.mly"
+# 1349 "parser_cocci_menhir.mly"
       ( P.logic_op Ast.OrLog _1 _2 _3 )
-# 3833 "parser_cocci_menhir.ml"
+# 4097 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3849,9 +4113,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arity = 
-# 445 "parser_cocci_menhir.mly"
+# 520 "parser_cocci_menhir.mly"
               ( Ast.UNIQUE )
-# 3855 "parser_cocci_menhir.ml"
+# 4119 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3871,9 +4135,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arity = 
-# 446 "parser_cocci_menhir.mly"
+# 521 "parser_cocci_menhir.mly"
               ( Ast.OPT )
-# 3877 "parser_cocci_menhir.ml"
+# 4141 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3893,9 +4157,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_arity = 
-# 447 "parser_cocci_menhir.mly"
+# 522 "parser_cocci_menhir.mly"
               ( Ast.MULTI )
-# 3899 "parser_cocci_menhir.ml"
+# 4163 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3910,9 +4174,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
         let _v : 'tv_arity = 
-# 448 "parser_cocci_menhir.mly"
+# 523 "parser_cocci_menhir.mly"
                    ( Ast.NONE )
-# 3916 "parser_cocci_menhir.ml"
+# 4180 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3941,22 +4205,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let r : (
-# 101 "parser_cocci_menhir.mly"
+# 105 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3947 "parser_cocci_menhir.ml"
+# 4211 "parser_cocci_menhir.ml"
         ) = Obj.magic r in
         let i : 'tv_option_eexpr_ = Obj.magic i in
         let l : (
-# 101 "parser_cocci_menhir.mly"
+# 105 "parser_cocci_menhir.mly"
        (Data.clt)
-# 3953 "parser_cocci_menhir.ml"
+# 4217 "parser_cocci_menhir.ml"
         ) = Obj.magic l in
         let _startpos = _startpos_l_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_array_dec = 
-# 1055 "parser_cocci_menhir.mly"
+# 1148 "parser_cocci_menhir.mly"
                                            ( (l,i,r) )
-# 3960 "parser_cocci_menhir.ml"
+# 4224 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -3978,9 +4242,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_assign_expr_eexpr_dot_expressions_ = 
-# 1214 "parser_cocci_menhir.mly"
+# 1293 "parser_cocci_menhir.mly"
                                            ( _1 )
-# 3984 "parser_cocci_menhir.ml"
+# 4248 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4010,19 +4274,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 107 "parser_cocci_menhir.mly"
+# 111 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
-# 4016 "parser_cocci_menhir.ml"
+# 4280 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_eexpr_dot_expressions_ = 
-# 1216 "parser_cocci_menhir.mly"
+# 1295 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in
       Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt,
                                Ast0.set_arg_exp _3,false)) )
-# 4026 "parser_cocci_menhir.ml"
+# 4290 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4052,19 +4316,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 106 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4058 "parser_cocci_menhir.ml"
+# 4322 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_eexpr_dot_expressions_ = 
-# 1220 "parser_cocci_menhir.mly"
+# 1299 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Assignment
             (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) )
-# 4068 "parser_cocci_menhir.ml"
+# 4332 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4086,9 +4350,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_assign_expr_eexpr_nest_expressions_ = 
-# 1214 "parser_cocci_menhir.mly"
+# 1293 "parser_cocci_menhir.mly"
                                            ( _1 )
-# 4092 "parser_cocci_menhir.ml"
+# 4356 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4118,19 +4382,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 107 "parser_cocci_menhir.mly"
+# 111 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
-# 4124 "parser_cocci_menhir.ml"
+# 4388 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_eexpr_nest_expressions_ = 
-# 1216 "parser_cocci_menhir.mly"
+# 1295 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in
       Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt,
                                Ast0.set_arg_exp _3,false)) )
-# 4134 "parser_cocci_menhir.ml"
+# 4398 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4160,19 +4424,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 106 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4166 "parser_cocci_menhir.ml"
+# 4430 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_eexpr_nest_expressions_ = 
-# 1220 "parser_cocci_menhir.mly"
+# 1299 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Assignment
             (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) )
-# 4176 "parser_cocci_menhir.ml"
+# 4440 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4194,9 +4458,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_assign_expr_expr_invalid_ = 
-# 1214 "parser_cocci_menhir.mly"
+# 1293 "parser_cocci_menhir.mly"
                                            ( _1 )
-# 4200 "parser_cocci_menhir.ml"
+# 4464 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4226,19 +4490,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 107 "parser_cocci_menhir.mly"
+# 111 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
-# 4232 "parser_cocci_menhir.ml"
+# 4496 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_expr_invalid_ = 
-# 1216 "parser_cocci_menhir.mly"
+# 1295 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in
       Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt,
                                Ast0.set_arg_exp _3,false)) )
-# 4242 "parser_cocci_menhir.ml"
+# 4506 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4268,19 +4532,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 106 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4274 "parser_cocci_menhir.ml"
+# 4538 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_expr_invalid_ = 
-# 1220 "parser_cocci_menhir.mly"
+# 1299 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Assignment
             (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) )
-# 4284 "parser_cocci_menhir.ml"
+# 4548 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4302,9 +4566,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_assign_expr_bis = 
-# 1225 "parser_cocci_menhir.mly"
+# 1304 "parser_cocci_menhir.mly"
                                                             ( _1 )
-# 4308 "parser_cocci_menhir.ml"
+# 4572 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4334,19 +4598,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 107 "parser_cocci_menhir.mly"
+# 111 "parser_cocci_menhir.mly"
        (Ast_cocci.assignOp * Data.clt)
-# 4340 "parser_cocci_menhir.ml"
+# 4604 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_bis = 
-# 1227 "parser_cocci_menhir.mly"
+# 1306 "parser_cocci_menhir.mly"
       ( let (op,clt) = _2 in
       Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt,
                                Ast0.set_arg_exp _3,false)) )
-# 4350 "parser_cocci_menhir.ml"
+# 4614 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4376,19 +4640,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_assign_expr_bis = Obj.magic _3 in
         let _2 : (
-# 106 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4382 "parser_cocci_menhir.ml"
+# 4646 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_assign_expr_bis = 
-# 1231 "parser_cocci_menhir.mly"
+# 1310 "parser_cocci_menhir.mly"
       ( Ast0.wrap
          (Ast0.Assignment
             (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) )
-# 4392 "parser_cocci_menhir.ml"
+# 4656 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4410,9 +4674,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_basic_expr_eexpr_dot_expressions_ = 
-# 1211 "parser_cocci_menhir.mly"
+# 1290 "parser_cocci_menhir.mly"
                                                              ( _1 )
-# 4416 "parser_cocci_menhir.ml"
+# 4680 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4434,9 +4698,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_basic_expr_eexpr_nest_expressions_ = 
-# 1211 "parser_cocci_menhir.mly"
+# 1290 "parser_cocci_menhir.mly"
                                                              ( _1 )
-# 4440 "parser_cocci_menhir.ml"
+# 4704 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4458,9 +4722,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_basic_expr_expr_invalid_ = 
-# 1211 "parser_cocci_menhir.mly"
+# 1290 "parser_cocci_menhir.mly"
                                                              ( _1 )
-# 4464 "parser_cocci_menhir.ml"
+# 4728 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4490,21 +4754,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _3 : 'tv_fun_start = Obj.magic _3 in
         let _2 : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4496 "parser_cocci_menhir.ml"
+# 4760 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
         let _1 : (
-# 57 "parser_cocci_menhir.mly"
+# 59 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4501 "parser_cocci_menhir.ml"
+# 4765 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
         let _v : 'tv_case_line = 
-# 927 "parser_cocci_menhir.mly"
-      ( Ast0.wrap(Ast0.Default(P.clt2mcode "default" _1,P.clt2mcode ":" _2,_3)) )
-# 4508 "parser_cocci_menhir.ml"
+# 1010 "parser_cocci_menhir.mly"
+      ( Ast0.wrap
+         (Ast0.Default(P.clt2mcode "default" _1,P.clt2mcode ":" _2,_3)) )
+# 4773 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4539,22 +4804,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _4 : 'tv_fun_start = Obj.magic _4 in
         let _3 : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4545 "parser_cocci_menhir.ml"
+# 4810 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
         let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 57 "parser_cocci_menhir.mly"
+# 59 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4551 "parser_cocci_menhir.ml"
+# 4816 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
         let _v : 'tv_case_line = 
-# 929 "parser_cocci_menhir.mly"
+# 1013 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Case(P.clt2mcode "case" _1,_2,P.clt2mcode ":" _3,_4)) )
-# 4558 "parser_cocci_menhir.ml"
+# 4823 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4576,9 +4841,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cast_expr_eexpr_dot_expressions_ = 
-# 1271 "parser_cocci_menhir.mly"
+# 1352 "parser_cocci_menhir.mly"
                                           ( _1 )
-# 4582 "parser_cocci_menhir.ml"
+# 4847 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4613,23 +4878,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let e : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic e in
         let rp : (
-# 76 "parser_cocci_menhir.mly"
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4619 "parser_cocci_menhir.ml"
+# 4884 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4625 "parser_cocci_menhir.ml"
+# 4890 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_e_ in
         let _v : 'tv_cast_expr_eexpr_dot_expressions_ = 
-# 1273 "parser_cocci_menhir.mly"
+# 1354 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t,
                             P.clt2mcode ")" rp, e)) )
-# 4633 "parser_cocci_menhir.ml"
+# 4898 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4651,9 +4916,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cast_expr_eexpr_invalid_ = 
-# 1271 "parser_cocci_menhir.mly"
+# 1352 "parser_cocci_menhir.mly"
                                           ( _1 )
-# 4657 "parser_cocci_menhir.ml"
+# 4922 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4688,23 +4953,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let e : 'tv_cast_expr_eexpr_invalid_ = Obj.magic e in
         let rp : (
-# 76 "parser_cocci_menhir.mly"
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4694 "parser_cocci_menhir.ml"
+# 4959 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4700 "parser_cocci_menhir.ml"
+# 4965 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_e_ in
         let _v : 'tv_cast_expr_eexpr_invalid_ = 
-# 1273 "parser_cocci_menhir.mly"
+# 1354 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t,
                             P.clt2mcode ")" rp, e)) )
-# 4708 "parser_cocci_menhir.ml"
+# 4973 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4726,9 +4991,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cast_expr_eexpr_nest_expressions_ = 
-# 1271 "parser_cocci_menhir.mly"
+# 1352 "parser_cocci_menhir.mly"
                                           ( _1 )
-# 4732 "parser_cocci_menhir.ml"
+# 4997 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4763,23 +5028,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let e : 'tv_cast_expr_eexpr_nest_expressions_ = Obj.magic e in
         let rp : (
-# 76 "parser_cocci_menhir.mly"
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4769 "parser_cocci_menhir.ml"
+# 5034 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4775 "parser_cocci_menhir.ml"
+# 5040 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_e_ in
         let _v : 'tv_cast_expr_eexpr_nest_expressions_ = 
-# 1273 "parser_cocci_menhir.mly"
+# 1354 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t,
                             P.clt2mcode ")" rp, e)) )
-# 4783 "parser_cocci_menhir.ml"
+# 5048 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4801,9 +5066,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cast_expr_expr_invalid_ = 
-# 1271 "parser_cocci_menhir.mly"
+# 1352 "parser_cocci_menhir.mly"
                                           ( _1 )
-# 4807 "parser_cocci_menhir.ml"
+# 5072 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4838,23 +5103,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let e : 'tv_cast_expr_expr_invalid_ = Obj.magic e in
         let rp : (
-# 76 "parser_cocci_menhir.mly"
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4844 "parser_cocci_menhir.ml"
+# 5109 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 4850 "parser_cocci_menhir.ml"
+# 5115 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let _startpos = _startpos_lp_ in
         let _endpos = _endpos_e_ in
         let _v : 'tv_cast_expr_expr_invalid_ = 
-# 1273 "parser_cocci_menhir.mly"
+# 1354 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t,
                             P.clt2mcode ")" rp, e)) )
-# 4858 "parser_cocci_menhir.ml"
+# 5123 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4880,9 +5145,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_choose_iso = 
-# 232 "parser_cocci_menhir.mly"
+# 242 "parser_cocci_menhir.mly"
                                                  ( List.map P.id2name _2 )
-# 4886 "parser_cocci_menhir.ml"
+# 5151 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4894,35 +5159,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 4912 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 4917 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_any_strict_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_comma_decls_TEllipsis_decl_ = 
-# 1541 "parser_cocci_menhir.mly"
-    ( function dot_builder ->
-      [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1));
-       dot_builder _2] )
-# 4926 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_comma_list_any_strict_ = 
+# 2005 "parser_cocci_menhir.mly"
+                                       ( _1 )
+# 5175 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4934,30 +5183,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_one_dec_decl_ = Obj.magic _2 in
-        let _1 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 4953 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_ctype_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_comma_decls_TEllipsis_decl_ = 
-# 1545 "parser_cocci_menhir.mly"
-    ( function dot_builder ->
-      [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); _2] )
-# 4961 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_comma_list_ctype_ = 
+# 2005 "parser_cocci_menhir.mly"
+                                       ( _1 )
+# 5199 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -4969,35 +5207,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 4987 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 4992 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_d_ident_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_comma_decls_TEllipsis_name_opt_decl_ = 
-# 1541 "parser_cocci_menhir.mly"
-    ( function dot_builder ->
-      [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1));
-       dot_builder _2] )
-# 5001 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_comma_list_d_ident_ = 
+# 2005 "parser_cocci_menhir.mly"
+                                       ( _1 )
+# 5223 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5009,30 +5231,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_one_dec_name_opt_decl_ = Obj.magic _2 in
-        let _1 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 5028 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_ident_or_const_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_comma_decls_TEllipsis_name_opt_decl_ = 
-# 1545 "parser_cocci_menhir.mly"
-    ( function dot_builder ->
-      [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); _2] )
-# 5036 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_comma_list_ident_or_const_ = 
+# 2005 "parser_cocci_menhir.mly"
+                                       ( _1 )
+# 5247 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5043,214 +5254,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = 
-# 1102 "parser_cocci_menhir.mly"
-              ( [] )
-# 5053 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = r;
-          MenhirLib.EngineTypes.startp = _startpos_r_;
-          MenhirLib.EngineTypes.endp = _endpos_r_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
-          } = _menhir_stack in
-        let r : 'tv_comma_initializers2_edots_when_TEllipsis_initialize__ = Obj.magic r in
-        let d : 'tv_edots_when_TEllipsis_initialize_ = Obj.magic d in
-        let _startpos = _startpos_d_ in
-        let _endpos = _endpos_r_ in
-        let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = 
-# 1104 "parser_cocci_menhir.mly"
-      ( (function dot_builder -> [dot_builder d])::r )
-# 5083 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = r;
-          MenhirLib.EngineTypes.startp = _startpos_r_;
-          MenhirLib.EngineTypes.endp = _endpos_r_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = c;
-            MenhirLib.EngineTypes.startp = _startpos_c_;
-            MenhirLib.EngineTypes.endp = _endpos_c_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = i;
-              MenhirLib.EngineTypes.startp = _startpos_i_;
-              MenhirLib.EngineTypes.endp = _endpos_i_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
-          } = _menhir_stack in
-        let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in
-        let c : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 5115 "parser_cocci_menhir.ml"
-        ) = Obj.magic c in
-        let i : 'tv_initialize2 = Obj.magic i in
-        let _startpos = _startpos_i_ in
-        let _endpos = _endpos_r_ in
-        let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = 
-# 1106 "parser_cocci_menhir.mly"
-    ( (function dot_builder -> [i; Ast0.wrap(Ast0.IComma(P.clt2mcode "," c))])::
-      r )
-# 5124 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_comma_initializers2_edots_when_TEllipsis_initialize__ = 
-# 1110 "parser_cocci_menhir.mly"
-              ( [] )
-# 5141 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = r;
-          MenhirLib.EngineTypes.startp = _startpos_r_;
-          MenhirLib.EngineTypes.endp = _endpos_r_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = c;
-            MenhirLib.EngineTypes.startp = _startpos_c_;
-            MenhirLib.EngineTypes.endp = _endpos_c_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = i;
-              MenhirLib.EngineTypes.startp = _startpos_i_;
-              MenhirLib.EngineTypes.endp = _endpos_i_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
-          } = _menhir_stack in
-        let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in
-        let c : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 5173 "parser_cocci_menhir.ml"
-        ) = Obj.magic c in
-        let i : 'tv_initialize2 = Obj.magic i in
-        let _startpos = _startpos_i_ in
-        let _endpos = _endpos_r_ in
-        let _v : 'tv_comma_initializers2_edots_when_TEllipsis_initialize__ = 
-# 1112 "parser_cocci_menhir.mly"
-    ( (function dot_builder -> [i; Ast0.wrap(Ast0.IComma(P.clt2mcode "," c))])::
-      r )
-# 5182 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_separated_nonempty_list_TComma_any_strict_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_comma_list_any_strict_ = 
-# 1772 "parser_cocci_menhir.mly"
-                                       ( _1 )
-# 5206 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_separated_nonempty_list_TComma_ctype_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_comma_list_ctype_ = 
-# 1772 "parser_cocci_menhir.mly"
-                                       ( _1 )
-# 5230 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_separated_nonempty_list_TComma_d_ident_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_comma_list_d_ident_ = 
-# 1772 "parser_cocci_menhir.mly"
-                                       ( _1 )
-# 5254 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_separated_nonempty_list_TComma_meta_ident_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_comma_list_meta_ident_ = 
+# 2005 "parser_cocci_menhir.mly"
+                                       ( _1 )
+# 5271 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5268,13 +5285,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_separated_nonempty_list_TComma_dexpr_ = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_comma_list_dexpr_ = 
-# 1772 "parser_cocci_menhir.mly"
+        let _v : 'tv_comma_list_pure_ident_ = 
+# 2005 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5278 "parser_cocci_menhir.ml"
+# 5295 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5292,13 +5309,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_separated_nonempty_list_TComma_ident_or_const_ = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_comma_list_ident_or_const_ = 
-# 1772 "parser_cocci_menhir.mly"
+        let _v : 'tv_comma_list_pure_ident_or_meta_ident_ = 
+# 2005 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5302 "parser_cocci_menhir.ml"
+# 5319 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5316,13 +5333,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_separated_nonempty_list_TComma_meta_ident_ = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_comma_list_meta_ident_ = 
-# 1772 "parser_cocci_menhir.mly"
+        let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = 
+# 2005 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5326 "parser_cocci_menhir.ml"
+# 5343 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5340,13 +5357,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_ = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_comma_list_pure_ident_ = 
-# 1772 "parser_cocci_menhir.mly"
+        let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = 
+# 2005 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5350 "parser_cocci_menhir.ml"
+# 5367 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5364,13 +5381,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_comma_list_pure_ident_or_meta_ident_ = 
-# 1772 "parser_cocci_menhir.mly"
+        let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = 
+# 2005 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5374 "parser_cocci_menhir.ml"
+# 5391 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5388,13 +5405,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = 
-# 1772 "parser_cocci_menhir.mly"
+        let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = 
+# 2005 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5398 "parser_cocci_menhir.ml"
+# 5415 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5412,13 +5429,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_seed_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eq__ = 
-# 1772 "parser_cocci_menhir.mly"
+        let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_seed_ = 
+# 2005 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5422 "parser_cocci_menhir.ml"
+# 5439 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5436,13 +5453,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_x_eq_not_pos__ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = 
-# 1772 "parser_cocci_menhir.mly"
+        let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_x_eq_not_pos__ = 
+# 2005 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5446 "parser_cocci_menhir.ml"
+# 5463 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5460,13 +5477,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_pos__ = Obj.magic _1 in
+        let _1 : 'tv_separated_nonempty_list_TComma_typedef_ident_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_pos__ = 
-# 1772 "parser_cocci_menhir.mly"
+        let _v : 'tv_comma_list_typedef_ident_ = 
+# 2005 "parser_cocci_menhir.mly"
                                        ( _1 )
-# 5470 "parser_cocci_menhir.ml"
+# 5487 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5488,9 +5505,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cond_expr_eexpr_dot_expressions_ = 
-# 1236 "parser_cocci_menhir.mly"
+# 1315 "parser_cocci_menhir.mly"
                                              ( _1 )
-# 5494 "parser_cocci_menhir.ml"
+# 5511 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5530,24 +5547,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_cond_expr_eexpr_dot_expressions_ = Obj.magic r in
         let dd : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5536 "parser_cocci_menhir.ml"
+# 5553 "parser_cocci_menhir.ml"
         ) = Obj.magic dd in
         let t : 'tv_option_eexpr_ = Obj.magic t in
         let w : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5542 "parser_cocci_menhir.ml"
+# 5559 "parser_cocci_menhir.ml"
         ) = Obj.magic w in
         let l : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic l in
         let _startpos = _startpos_l_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_cond_expr_eexpr_dot_expressions_ = 
-# 1238 "parser_cocci_menhir.mly"
+# 1317 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t,
                                 P.clt2mcode ":" dd, r)) )
-# 5551 "parser_cocci_menhir.ml"
+# 5568 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5569,9 +5586,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cond_expr_eexpr_nest_expressions_ = 
-# 1236 "parser_cocci_menhir.mly"
+# 1315 "parser_cocci_menhir.mly"
                                              ( _1 )
-# 5575 "parser_cocci_menhir.ml"
+# 5592 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5611,24 +5628,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_cond_expr_eexpr_nest_expressions_ = Obj.magic r in
         let dd : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5617 "parser_cocci_menhir.ml"
+# 5634 "parser_cocci_menhir.ml"
         ) = Obj.magic dd in
         let t : 'tv_option_eexpr_ = Obj.magic t in
         let w : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5623 "parser_cocci_menhir.ml"
+# 5640 "parser_cocci_menhir.ml"
         ) = Obj.magic w in
         let l : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic l in
         let _startpos = _startpos_l_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_cond_expr_eexpr_nest_expressions_ = 
-# 1238 "parser_cocci_menhir.mly"
+# 1317 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t,
                                 P.clt2mcode ":" dd, r)) )
-# 5632 "parser_cocci_menhir.ml"
+# 5649 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5650,9 +5667,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_cond_expr_expr_invalid_ = 
-# 1236 "parser_cocci_menhir.mly"
+# 1315 "parser_cocci_menhir.mly"
                                              ( _1 )
-# 5656 "parser_cocci_menhir.ml"
+# 5673 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5692,24 +5709,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let r : 'tv_cond_expr_expr_invalid_ = Obj.magic r in
         let dd : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5698 "parser_cocci_menhir.ml"
+# 5715 "parser_cocci_menhir.ml"
         ) = Obj.magic dd in
         let t : 'tv_option_eexpr_ = Obj.magic t in
         let w : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 5704 "parser_cocci_menhir.ml"
+# 5721 "parser_cocci_menhir.ml"
         ) = Obj.magic w in
         let l : 'tv_arith_expr_expr_invalid_ = Obj.magic l in
         let _startpos = _startpos_l_ in
         let _endpos = _endpos_r_ in
         let _v : 'tv_cond_expr_expr_invalid_ = 
-# 1238 "parser_cocci_menhir.mly"
+# 1317 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t,
                                 P.clt2mcode ":" dd, r)) )
-# 5713 "parser_cocci_menhir.ml"
+# 5730 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5728,16 +5745,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 54 "parser_cocci_menhir.mly"
+# 56 "parser_cocci_menhir.mly"
       (Data.clt)
-# 5734 "parser_cocci_menhir.ml"
+# 5751 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_const_vol = 
-# 836 "parser_cocci_menhir.mly"
+# 919 "parser_cocci_menhir.mly"
                    ( P.clt2mcode Ast.Const _1 )
-# 5741 "parser_cocci_menhir.ml"
+# 5758 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5756,16 +5773,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 54 "parser_cocci_menhir.mly"
+# 56 "parser_cocci_menhir.mly"
       (Data.clt)
-# 5762 "parser_cocci_menhir.ml"
+# 5779 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_const_vol = 
-# 837 "parser_cocci_menhir.mly"
+# 920 "parser_cocci_menhir.mly"
                    ( P.clt2mcode Ast.Volatile _1 )
-# 5769 "parser_cocci_menhir.ml"
+# 5786 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5776,13 +5793,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_continue_struct_decl_list = 
-# 535 "parser_cocci_menhir.mly"
-                                     ( [] )
-# 5786 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_aexpr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_continue_list_aexpr_TEllipsis_ = 
+# 1781 "parser_cocci_menhir.mly"
+       ( fun build_dots build_comma -> [_1] )
+# 5810 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5805,14 +5829,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : 'tv_struct_decl_list_start = Obj.magic _2 in
-        let _1 : 'tv_struct_decl = Obj.magic _1 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 5836 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_aexpr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
-        let _v : 'tv_continue_struct_decl_list = 
-# 536 "parser_cocci_menhir.mly"
-                                     ( _1@_2 )
-# 5816 "parser_cocci_menhir.ml"
+        let _v : 'tv_continue_list_aexpr_TEllipsis_ = 
+# 1783 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 5845 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5824,19 +5853,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_struct_decl = Obj.magic _1 in
+        let _3 : 'tv_nonempty_list_start_aexpr_TEllipsis_ = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 5877 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_aexpr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_continue_struct_decl_list = 
-# 537 "parser_cocci_menhir.mly"
-                                     ( _1 )
-# 5840 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_continue_list_aexpr_TEllipsis_ = 
+# 1786 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (_3 build_dots build_comma) )
+# 5887 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5848,32 +5895,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = m;
-          MenhirLib.EngineTypes.startp = _startpos_m_;
-          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = ty;
-            MenhirLib.EngineTypes.startp = _startpos_ty_;
-            MenhirLib.EngineTypes.endp = _endpos_ty_;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let m : 'tv_list_TMul_ = Obj.magic m in
-        let ty : 'tv_generic_ctype = Obj.magic ty in
-        let _startpos = _startpos_ty_ in
-        let _endpos = _endpos_m_ in
-        let _v : 'tv_ctype = let cv =
-          
-# 39 "standard.mly"
-    ( None )
-# 5871 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 541 "parser_cocci_menhir.mly"
-  ( P.pointerify (P.make_cv cv ty) m )
-# 5877 "parser_cocci_menhir.ml"
+        let _2 : 'tv_nonempty_list_start_aexpr_TEllipsis_ = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_continue_list_aexpr_TEllipsis_ = 
+# 1789 "parser_cocci_menhir.mly"
+                                            ( _2 )
+# 5915 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5885,39 +5923,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = m;
-          MenhirLib.EngineTypes.startp = _startpos_m_;
-          MenhirLib.EngineTypes.endp = _endpos_m_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ty;
-            MenhirLib.EngineTypes.startp = _startpos_ty_;
-            MenhirLib.EngineTypes.endp = _endpos_ty_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x0;
-              MenhirLib.EngineTypes.startp = _startpos_x0_;
-              MenhirLib.EngineTypes.endp = _endpos_x0_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let m : 'tv_list_TMul_ = Obj.magic m in
-        let ty : 'tv_generic_ctype = Obj.magic ty in
-        let x0 : 'tv_const_vol = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_m_ in
-        let _v : 'tv_ctype = let cv =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 5915 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 541 "parser_cocci_menhir.mly"
-  ( P.pointerify (P.make_cv cv ty) m )
-# 5921 "parser_cocci_menhir.ml"
+        let _1 : 'tv_dparam = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_continue_list_dparam_TEllipsis_ = 
+# 1781 "parser_cocci_menhir.mly"
+       ( fun build_dots build_comma -> [_1] )
+# 5939 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5929,38 +5947,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = m;
-          MenhirLib.EngineTypes.startp = _startpos_m_;
-          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let m : 'tv_nonempty_list_TMul_ = Obj.magic m in
-        let t : (
-# 50 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 5948 "parser_cocci_menhir.ml"
-        ) = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_m_ in
-        let _v : 'tv_ctype = let cv =
-          
-# 39 "standard.mly"
-    ( None )
-# 5956 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 543 "parser_cocci_menhir.mly"
-         ( let ty =
-            Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in
-          P.pointerify (P.make_cv cv ty) m )
-# 5964 "parser_cocci_menhir.ml"
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 5965 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_dparam = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_continue_list_dparam_TEllipsis_ = 
+# 1783 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 5974 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -5972,45 +5982,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = m;
-          MenhirLib.EngineTypes.startp = _startpos_m_;
-          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x0;
-              MenhirLib.EngineTypes.startp = _startpos_x0_;
-              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let m : 'tv_nonempty_list_TMul_ = Obj.magic m in
-        let t : (
-# 50 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 5996 "parser_cocci_menhir.ml"
-        ) = Obj.magic t in
-        let x0 : 'tv_const_vol = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_m_ in
-        let _v : 'tv_ctype = let cv =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
+        let _3 : 'tv_nonempty_list_start_dparam_TEllipsis_ = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
 # 6006 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 543 "parser_cocci_menhir.mly"
-         ( let ty =
-            Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in
-          P.pointerify (P.make_cv cv ty) m )
-# 6014 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_dparam = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_continue_list_dparam_TEllipsis_ = 
+# 1786 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (_3 build_dots build_comma) )
+# 6016 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6022,41 +6024,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = rp;
-          MenhirLib.EngineTypes.startp = _startpos_rp_;
-          MenhirLib.EngineTypes.endp = _endpos_rp_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = lp;
-              MenhirLib.EngineTypes.startp = _startpos_lp_;
-              MenhirLib.EngineTypes.endp = _endpos_lp_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let rp : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 6045 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp in
-        let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in
-        let lp : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 6051 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp in
-        let _startpos = _startpos_lp_ in
-        let _endpos = _endpos_rp_ in
-        let _v : 'tv_ctype = 
-# 548 "parser_cocci_menhir.mly"
-    ( let (mids,code) = t in
-      Ast0.wrap
-       (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) )
-# 6060 "parser_cocci_menhir.ml"
+        let _2 : 'tv_nonempty_list_start_dparam_TEllipsis_ = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_continue_list_dparam_TEllipsis_ = 
+# 1789 "parser_cocci_menhir.mly"
+                                            ( _2 )
+# 6044 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6068,32 +6052,54 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = m;
-          MenhirLib.EngineTypes.startp = _startpos_m_;
-          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_enum_decl_one = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
+# 1781 "parser_cocci_menhir.mly"
+       ( fun build_dots build_comma -> [_1] )
+# 6068 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = ty;
-            MenhirLib.EngineTypes.startp = _startpos_ty_;
-            MenhirLib.EngineTypes.endp = _endpos_ty_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let m : 'tv_list_TMul_ = Obj.magic m in
-        let ty : 'tv_generic_ctype_full = Obj.magic ty in
-        let _startpos = _startpos_ty_ in
-        let _endpos = _endpos_m_ in
-        let _v : 'tv_ctype_full = let cv =
-          
-# 39 "standard.mly"
-    ( None )
-# 6091 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 554 "parser_cocci_menhir.mly"
-  ( P.pointerify (P.make_cv cv ty) m )
-# 6097 "parser_cocci_menhir.ml"
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 6094 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_enum_decl_one = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
+# 1783 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 6103 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6105,39 +6111,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = m;
-          MenhirLib.EngineTypes.startp = _startpos_m_;
-          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ty;
-            MenhirLib.EngineTypes.startp = _startpos_ty_;
-            MenhirLib.EngineTypes.endp = _endpos_ty_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x0;
-              MenhirLib.EngineTypes.startp = _startpos_x0_;
-              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let m : 'tv_list_TMul_ = Obj.magic m in
-        let ty : 'tv_generic_ctype_full = Obj.magic ty in
-        let x0 : 'tv_const_vol = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_m_ in
-        let _v : 'tv_ctype_full = let cv =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
+        let _3 : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
 # 6135 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 554 "parser_cocci_menhir.mly"
-  ( P.pointerify (P.make_cv cv ty) m )
-# 6141 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_enum_decl_one = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
+# 1786 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (_3 build_dots build_comma) )
+# 6145 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6149,38 +6153,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = m;
-          MenhirLib.EngineTypes.startp = _startpos_m_;
-          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let m : 'tv_nonempty_list_TMul_ = Obj.magic m in
-        let t : (
-# 50 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 6168 "parser_cocci_menhir.ml"
-        ) = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_m_ in
-        let _v : 'tv_ctype_full = let cv =
-          
-# 39 "standard.mly"
-    ( None )
-# 6176 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 556 "parser_cocci_menhir.mly"
-         ( let ty =
-            Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in
-          P.pointerify (P.make_cv cv ty) m )
-# 6184 "parser_cocci_menhir.ml"
+        let _2 : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
+# 1789 "parser_cocci_menhir.mly"
+                                            ( _2 )
+# 6173 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6192,45 +6181,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = m;
-          MenhirLib.EngineTypes.startp = _startpos_m_;
-          MenhirLib.EngineTypes.endp = _endpos_m_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x0;
-              MenhirLib.EngineTypes.startp = _startpos_x0_;
-              MenhirLib.EngineTypes.endp = _endpos_x0_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
-          } = _menhir_stack in
-        let m : 'tv_nonempty_list_TMul_ = Obj.magic m in
-        let t : (
-# 50 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 6216 "parser_cocci_menhir.ml"
-        ) = Obj.magic t in
-        let x0 : 'tv_const_vol = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_m_ in
-        let _v : 'tv_ctype_full = let cv =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 6226 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 556 "parser_cocci_menhir.mly"
-         ( let ty =
-            Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in
-          P.pointerify (P.make_cv cv ty) m )
-# 6234 "parser_cocci_menhir.ml"
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_initialize2 = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1781 "parser_cocci_menhir.mly"
+       ( fun build_dots build_comma -> [_1] )
+# 6197 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6242,41 +6205,72 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = rp;
-          MenhirLib.EngineTypes.startp = _startpos_rp_;
-          MenhirLib.EngineTypes.endp = _endpos_rp_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 6223 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_initialize2 = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1783 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 6232 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = lp;
-              MenhirLib.EngineTypes.startp = _startpos_lp_;
-              MenhirLib.EngineTypes.endp = _endpos_lp_;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let rp : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 6265 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp in
-        let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in
-        let lp : (
-# 75 "parser_cocci_menhir.mly"
+        let _3 : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6271 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp in
-        let _startpos = _startpos_lp_ in
-        let _endpos = _endpos_rp_ in
-        let _v : 'tv_ctype_full = 
-# 561 "parser_cocci_menhir.mly"
-    ( let (mids,code) = t in
-      Ast0.wrap
-       (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) )
-# 6280 "parser_cocci_menhir.ml"
+# 6264 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_initialize2 = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1786 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (_3 build_dots build_comma) )
+# 6274 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6293,27 +6287,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
             MenhirLib.EngineTypes.startp = _startpos__1_;
             MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : 'tv_list_array_dec_ = Obj.magic _2 in
-        let _1 : 'tv_ident = Obj.magic _1 in
+        let _2 : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
-        let _v : 'tv_d_ident = 
-# 1046 "parser_cocci_menhir.mly"
-      ( (_1,
-        function t ->
-          List.fold_right
-            (function (l,i,r) ->
-              function rest ->
-                Ast0.wrap
-                  (Ast0.Array(rest,P.clt2mcode "[" l,i,P.clt2mcode "]" r)))
-            _2 t) )
-# 6317 "parser_cocci_menhir.ml"
+        let _v : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1789 "parser_cocci_menhir.mly"
+                                            ( _2 )
+# 6302 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6325,25 +6310,54 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = i;
-          MenhirLib.EngineTypes.startp = _startpos_i_;
-          MenhirLib.EngineTypes.endp = _endpos_i_;
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = 
+# 1781 "parser_cocci_menhir.mly"
+       ( fun build_dots build_comma -> [_1] )
+# 6326 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let i : 'tv_ident = Obj.magic i in
-        let t : 'tv_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_i_ in
-        let _v : 'tv_decl = 
-# 806 "parser_cocci_menhir.mly"
- ( Ast0.wrap(Ast0.Param(t, Some i)) )
-# 6347 "parser_cocci_menhir.ml"
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 6352 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = 
+# 1783 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 6361 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6355,86 +6369,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = rp1;
-          MenhirLib.EngineTypes.startp = _startpos_rp1_;
-          MenhirLib.EngineTypes.endp = _endpos_rp1_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = lp1;
-              MenhirLib.EngineTypes.startp = _startpos_lp1_;
-              MenhirLib.EngineTypes.endp = _endpos_lp1_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = rp;
-                MenhirLib.EngineTypes.startp = _startpos_rp_;
-                MenhirLib.EngineTypes.endp = _endpos_rp_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = i;
-                  MenhirLib.EngineTypes.startp = _startpos_i_;
-                  MenhirLib.EngineTypes.endp = _endpos_i_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = s;
-                    MenhirLib.EngineTypes.startp = _startpos_s_;
-                    MenhirLib.EngineTypes.endp = _endpos_s_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.semv = lp;
-                      MenhirLib.EngineTypes.startp = _startpos_lp_;
-                      MenhirLib.EngineTypes.endp = _endpos_lp_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.state = _menhir_s;
-                        MenhirLib.EngineTypes.semv = t;
-                        MenhirLib.EngineTypes.startp = _startpos_t_;
-                        MenhirLib.EngineTypes.endp = _endpos_t_;
-                        MenhirLib.EngineTypes.next = _menhir_stack;
-                        };
-                      };
-                    };
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let rp1 : (
-# 76 "parser_cocci_menhir.mly"
+        let _3 : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
+# 6393 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = 
+# 1786 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (_3 build_dots build_comma) )
 # 6403 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp1 in
-        let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
-        let lp1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 6409 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp1 in
-        let rp : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 6414 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp in
-        let i : 'tv_ident = Obj.magic i in
-        let s : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 6420 "parser_cocci_menhir.ml"
-        ) = Obj.magic s in
-        let lp : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 6425 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp in
-        let t : 'tv_fn_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_rp1_ in
-        let _v : 'tv_decl = 
-# 809 "parser_cocci_menhir.mly"
-        ( let fnptr =
-         Ast0.wrap
-           (Ast0.FunctionPointer
-              (t,P.clt2mcode "(" lp,P.clt2mcode "*" s,P.clt2mcode ")" rp,
-               P.clt2mcode "(" lp1,d,P.clt2mcode ")" rp1)) in
-       Ast0.wrap(Ast0.Param(fnptr, Some i)) )
-# 6438 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6446,25 +6411,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let t : (
-# 50 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 6459 "parser_cocci_menhir.ml"
-        ) = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_decl = 
-# 816 "parser_cocci_menhir.mly"
- ( let ty =
-         Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in
-          Ast0.wrap(Ast0.VoidParam(ty)) )
-# 6468 "parser_cocci_menhir.ml"
+        let _2 : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_continue_list_one_dec_decl__TEllipsis_ = 
+# 1789 "parser_cocci_menhir.mly"
+                                            ( _2 )
+# 6431 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6482,18 +6445,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 64 "parser_cocci_menhir.mly"
-       (Parse_aux.info)
-# 6489 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_decl = 
-# 820 "parser_cocci_menhir.mly"
- ( let (nm,pure,clt) = _1 in
-       Ast0.wrap(Ast0.MetaParam(P.clt2mcode nm clt,pure)) )
-# 6497 "parser_cocci_menhir.ml"
+        let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = 
+# 1781 "parser_cocci_menhir.mly"
+       ( fun build_dots build_comma -> [_1] )
+# 6455 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6505,132 +6463,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : (
-# 59 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 6518 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_decl_ident = 
-# 1491 "parser_cocci_menhir.mly"
-         ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
-# 6525 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : (
-# 62 "parser_cocci_menhir.mly"
-       (Parse_aux.idinfo)
-# 6546 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_decl_ident = 
-# 1493 "parser_cocci_menhir.mly"
-         ( let (nm,constraints,pure,clt) = _1 in
-         Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) )
-# 6554 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_decl_list_start_decl_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_decl_list_decl_ = 
-# 1514 "parser_cocci_menhir.mly"
-     (let circle x =
-       match Ast0.unwrap x with Ast0.Pcircles(_) -> true | _ -> false in
-     if List.exists circle _1
-     then Ast0.wrap(Ast0.CIRCLES(_1))
-     else Ast0.wrap(Ast0.DOTS(_1)) )
-# 6582 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_decl_list_start_name_opt_decl_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_decl_list_name_opt_decl_ = 
-# 1514 "parser_cocci_menhir.mly"
-     (let circle x =
-       match Ast0.unwrap x with Ast0.Pcircles(_) -> true | _ -> false in
-     if List.exists circle _1
-     then Ast0.wrap(Ast0.CIRCLES(_1))
-     else Ast0.wrap(Ast0.DOTS(_1)) )
-# 6610 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 6481 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_decl_list_start_decl_ = 
-# 1521 "parser_cocci_menhir.mly"
-                 ( [_1] )
-# 6634 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = 
+# 1783 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 6490 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6658,19 +6514,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               };
             };
           } = _menhir_stack in
-        let _3 : 'tv_decl_list_start_decl_ = Obj.magic _3 in
+        let _3 : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = Obj.magic _3 in
         let _2 : (
-# 106 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 6666 "parser_cocci_menhir.ml"
+# 6522 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
-        let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in
+        let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
-        let _v : 'tv_decl_list_start_decl_ = 
-# 1523 "parser_cocci_menhir.mly"
-    ( _1::Ast0.wrap(Ast0.PComma(P.clt2mcode "," _2))::_3 )
-# 6674 "parser_cocci_menhir.ml"
+        let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = 
+# 1786 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (_3 build_dots build_comma) )
+# 6532 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6687,49 +6545,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
             MenhirLib.EngineTypes.startp = _startpos__1_;
             MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : 'tv_list_comma_decls_TEllipsis_decl__ = Obj.magic _2 in
-        let _1 : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 6701 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _2 : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
-        let _v : 'tv_decl_list_start_decl_ = 
-# 1525 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." _1))::
-      (List.concat(List.map (function x -> x (P.mkpdots "...")) _2)) )
-# 6709 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_decl_list_start_name_opt_decl_ = 
-# 1521 "parser_cocci_menhir.mly"
-                 ( [_1] )
-# 6733 "parser_cocci_menhir.ml"
+        let _v : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = 
+# 1789 "parser_cocci_menhir.mly"
+                                            ( _2 )
+# 6560 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6740,36 +6567,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
-          } = _menhir_stack in
-        let _3 : 'tv_decl_list_start_name_opt_decl_ = Obj.magic _3 in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 6765 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_decl_list_start_name_opt_decl_ = 
-# 1523 "parser_cocci_menhir.mly"
-    ( _1::Ast0.wrap(Ast0.PComma(P.clt2mcode "," _2))::_3 )
-# 6773 "parser_cocci_menhir.ml"
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_continue_struct_decl_list = 
+# 653 "parser_cocci_menhir.mly"
+                                     ( [] )
+# 6577 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6792,19 +6596,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = Obj.magic _2 in
-        let _1 : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 6800 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _2 : 'tv_struct_decl_list_start = Obj.magic _2 in
+        let _1 : 'tv_struct_decl = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
-        let _v : 'tv_decl_list_start_name_opt_decl_ = 
-# 1525 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." _1))::
-      (List.concat(List.map (function x -> x (P.mkpdots "...")) _2)) )
-# 6808 "parser_cocci_menhir.ml"
+        let _v : 'tv_continue_struct_decl_list = 
+# 654 "parser_cocci_menhir.mly"
+                                     ( _1@_2 )
+# 6607 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6822,18 +6621,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 64 "parser_cocci_menhir.mly"
-       (Parse_aux.info)
-# 6829 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_struct_decl = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_decl_statement = 
-# 1118 "parser_cocci_menhir.mly"
-      ( let (nm,pure,clt) = _1 in
-      [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] )
-# 6837 "parser_cocci_menhir.ml"
+        let _v : 'tv_continue_struct_decl_list = 
+# 655 "parser_cocci_menhir.mly"
+                                     ( _1 )
+# 6631 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6845,23 +6639,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_decl_var = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_decl_statement = 
-# 1121 "parser_cocci_menhir.mly"
-      ( List.map
-         (function x ->
-           Ast0.wrap
-             (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x)))
-         _1 )
-# 6865 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 6663 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 6668 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 530 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
+# 6680 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 6686 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 6693 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 6699 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6873,19 +6707,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_statement = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_decl_statement = 
-# 1126 "parser_cocci_menhir.mly"
-              ( [_1] )
-# 6889 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 6731 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 6736 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 532 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
+# 6748 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 6754 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 6761 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 6767 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6897,47 +6775,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let _3 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 6920 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let t : 'tv_midzero_list_fun_start_fun_start_ = Obj.magic t in
-        let _1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 6926 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_decl_statement = 
-# 1135 "parser_cocci_menhir.mly"
-      ( let (mids,code) = t in
-       if List.for_all
-           (function x ->
-             match Ast0.unwrap x with Ast0.DOTS([]) -> true | _ -> false)
-           code
-      then []
-      else
-         [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, code, mids,
-                              P.clt2mcode ")" _3))] )
-# 6941 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 6799 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 6804 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 534 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
+# 6816 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 6822 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 6829 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 6835 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -6949,52 +6843,64 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 64 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 67 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 6962 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_decl_statement_expr = 
-# 1148 "parser_cocci_menhir.mly"
-      ( let (nm,pure,clt) = _1 in
-      [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] )
-# 6970 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_decl_var = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_decl_statement_expr = 
-# 1151 "parser_cocci_menhir.mly"
-      ( List.map
-         (function x ->
-           Ast0.wrap
-             (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x)))
-         _1 )
-# 6998 "parser_cocci_menhir.ml"
+# 6867 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 6872 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let r = r0 in
+          let ty =
+            let p = p0 in
+            
+# 536 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = p in
+      Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
+# 6885 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 6891 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 6898 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 6904 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7006,19 +6912,84 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = r00;
+                MenhirLib.EngineTypes.startp = _startpos_r00_;
+                MenhirLib.EngineTypes.endp = _endpos_r00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = r1;
+                  MenhirLib.EngineTypes.startp = _startpos_r1_;
+                  MenhirLib.EngineTypes.endp = _endpos_r1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_statement = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_decl_statement_expr = 
-# 1156 "parser_cocci_menhir.mly"
-              ( [_1] )
-# 7022 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 6945 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r00 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 6950 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let r1 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 6955 "parser_cocci_menhir.ml"
+        ) = Obj.magic r1 in
+        let _startpos = _startpos_r1_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let r0 = r00 in
+          let r = r1 in
+          let ty =
+            let p = p0 in
+            let r = r0 in
+            
+# 539 "parser_cocci_menhir.mly"
+    ( let nm = (r,P.id2name p) in
+    (* this is only possible when we are in a metavar decl.  Otherwise,
+       it will be represented already as a MetaType *)
+    let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
+    Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
+                           Ast0.Impure (*will be ignored*))) )
+# 6974 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 6980 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 6987 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 6993 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7030,46 +7001,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let _3 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7053 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let t : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = Obj.magic t in
-        let _1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7059 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_decl_statement_expr = 
-# 1165 "parser_cocci_menhir.mly"
-      ( let (mids,code) = t in
-       if List.for_all (function [] -> true | _ -> false) code
-      then []
-      else
-         let dot_code =
-           List.map (function x -> Ast0.wrap(Ast0.DOTS x)) code in
-         [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, dot_code, mids,
-                              P.clt2mcode ")" _3))] )
-# 7073 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7025 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7030 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 546 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) )
+# 7042 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 7048 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 7055 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7061 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7081,29 +7069,78 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty200;
+            MenhirLib.EngineTypes.startp = _startpos_ty200_;
+            MenhirLib.EngineTypes.endp = _endpos_ty200_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = ty100;
+              MenhirLib.EngineTypes.startp = _startpos_ty100_;
+              MenhirLib.EngineTypes.endp = _endpos_ty100_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = r0;
+                MenhirLib.EngineTypes.startp = _startpos_r0_;
+                MenhirLib.EngineTypes.endp = _endpos_r0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7099 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let t : 'tv_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = 
-# 937 "parser_cocci_menhir.mly"
-      ( [Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv))] )
-# 7107 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty200 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7098 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty200 in
+        let ty100 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7103 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty100 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7108 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty20 = ty200 in
+          let ty10 = ty100 in
+          let r = r0 in
+          let ty =
+            let ty2 = ty20 in
+            let ty1 = ty10 in
+            
+# 548 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+       (Ast0.BaseType
+          (Ast.LongLongType,
+           [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
+# 7125 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 7131 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 7138 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7144 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7115,45 +7152,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = t;
-              MenhirLib.EngineTypes.startp = _startpos_t_;
-              MenhirLib.EngineTypes.endp = _endpos_t_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7138 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_comma_list_d_ident_ = Obj.magic d in
-        let t : 'tv_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let s =
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7176 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7181 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 530 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
+# 7193 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 7199 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7148 "parser_cocci_menhir.ml"
+# 7206 "parser_cocci_menhir.ml"
           
         in
         
-# 939 "parser_cocci_menhir.mly"
-      ( List.map
-         (function (id,fn) ->
-           Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)))
-         d )
-# 7157 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7212 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7165,76 +7220,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = t;
-              MenhirLib.EngineTypes.startp = _startpos_t_;
-              MenhirLib.EngineTypes.endp = _endpos_t_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = x0;
-                MenhirLib.EngineTypes.startp = _startpos_x0_;
-                MenhirLib.EngineTypes.endp = _endpos_x0_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7193 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_comma_list_d_ident_ = Obj.magic d in
-        let t : 'tv_ctype = Obj.magic t in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let s =
-          let x = x0 in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7244 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7249 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 532 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
+# 7261 "parser_cocci_menhir.ml"
+            
+          in
           
-# 41 "standard.mly"
-    ( Some x )
-# 7205 "parser_cocci_menhir.ml"
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 7267 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 7274 "parser_cocci_menhir.ml"
           
         in
         
-# 939 "parser_cocci_menhir.mly"
-      ( List.map
-         (function (id,fn) ->
-           Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)))
-         d )
-# 7214 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = f;
-          MenhirLib.EngineTypes.startp = _startpos_f_;
-          MenhirLib.EngineTypes.endp = _endpos_f_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let f : 'tv_funproto = Obj.magic f in
-        let _startpos = _startpos_f_ in
-        let _endpos = _endpos_f_ in
-        let _v : 'tv_decl_var = 
-# 943 "parser_cocci_menhir.mly"
-               ( [f] )
-# 7238 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7280 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7246,59 +7288,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = d;
-                MenhirLib.EngineTypes.startp = _startpos_d_;
-                MenhirLib.EngineTypes.endp = _endpos_d_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = t;
-                  MenhirLib.EngineTypes.startp = _startpos_t_;
-                  MenhirLib.EngineTypes.endp = _endpos_t_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7279 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7285 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let d : 'tv_d_ident = Obj.magic d in
-        let t : 'tv_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let s =
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7312 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7317 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 534 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
+# 7329 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 7335 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7295 "parser_cocci_menhir.ml"
+# 7342 "parser_cocci_menhir.ml"
           
         in
         
-# 945 "parser_cocci_menhir.mly"
-      (let (id,fn) = d in
-      [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
-# 7302 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7348 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7310,66 +7356,64 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = d;
-                MenhirLib.EngineTypes.startp = _startpos_d_;
-                MenhirLib.EngineTypes.endp = _endpos_d_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = t;
-                  MenhirLib.EngineTypes.startp = _startpos_t_;
-                  MenhirLib.EngineTypes.endp = _endpos_t_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = x0;
-                    MenhirLib.EngineTypes.startp = _startpos_x0_;
-                    MenhirLib.EngineTypes.endp = _endpos_x0_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7348 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7354 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let d : 'tv_d_ident = Obj.magic d in
-        let t : 'tv_ctype = Obj.magic t in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let s =
-          let x = x0 in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 7380 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7385 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let r = r0 in
+          let ty =
+            let p = p0 in
+            
+# 536 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = p in
+      Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
+# 7398 "parser_cocci_menhir.ml"
+            
+          in
           
-# 41 "standard.mly"
-    ( Some x )
-# 7366 "parser_cocci_menhir.ml"
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 7404 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 7411 "parser_cocci_menhir.ml"
           
         in
         
-# 945 "parser_cocci_menhir.mly"
-      (let (id,fn) = d in
-      [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
-# 7373 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7417 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7381,54 +7425,84 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = i;
-              MenhirLib.EngineTypes.startp = _startpos_i_;
-              MenhirLib.EngineTypes.endp = _endpos_i_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = r00;
+                MenhirLib.EngineTypes.startp = _startpos_r00_;
+                MenhirLib.EngineTypes.endp = _endpos_r00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = r1;
+                  MenhirLib.EngineTypes.startp = _startpos_r1_;
+                  MenhirLib.EngineTypes.endp = _endpos_r1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7404 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_comma_list_d_ident_ = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let _startpos = _startpos_i_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let cv =
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 7458 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r00 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 7463 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let r1 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7468 "parser_cocci_menhir.ml"
+        ) = Obj.magic r1 in
+        let _startpos = _startpos_r1_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let r0 = r00 in
+          let r = r1 in
+          let ty =
+            let p = p0 in
+            let r = r0 in
+            
+# 539 "parser_cocci_menhir.mly"
+    ( let nm = (r,P.id2name p) in
+    (* this is only possible when we are in a metavar decl.  Otherwise,
+       it will be represented already as a MetaType *)
+    let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
+    Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
+                           Ast0.Impure (*will be ignored*))) )
+# 7487 "parser_cocci_menhir.ml"
+            
+          in
           
-# 39 "standard.mly"
-    ( None )
-# 7414 "parser_cocci_menhir.ml"
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 7493 "parser_cocci_menhir.ml"
           
         in
-        let s =
+        let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7421 "parser_cocci_menhir.ml"
+# 7500 "parser_cocci_menhir.ml"
           
         in
         
-# 950 "parser_cocci_menhir.mly"
-      ( List.map
-         (function (id,fn) ->
-           let idtype =
-             P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-           Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
-         d )
-# 7432 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7506 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7440,61 +7514,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = i;
-              MenhirLib.EngineTypes.startp = _startpos_i_;
-              MenhirLib.EngineTypes.endp = _endpos_i_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = x0;
-                MenhirLib.EngineTypes.startp = _startpos_x0_;
-                MenhirLib.EngineTypes.endp = _endpos_x0_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7468 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_comma_list_d_ident_ = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let x0 : 'tv_const_vol = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let cv =
-          let x = x0 in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7538 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7543 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 546 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) )
+# 7555 "parser_cocci_menhir.ml"
+            
+          in
           
-# 41 "standard.mly"
-    ( Some x )
-# 7480 "parser_cocci_menhir.ml"
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 7561 "parser_cocci_menhir.ml"
           
         in
-        let s =
+        let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7487 "parser_cocci_menhir.ml"
+# 7568 "parser_cocci_menhir.ml"
           
         in
         
-# 950 "parser_cocci_menhir.mly"
-      ( List.map
-         (function (id,fn) ->
-           let idtype =
-             P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-           Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
-         d )
-# 7498 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7574 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7506,61 +7582,78 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.semv = ty200;
+            MenhirLib.EngineTypes.startp = _startpos_ty200_;
+            MenhirLib.EngineTypes.endp = _endpos_ty200_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = i;
-              MenhirLib.EngineTypes.startp = _startpos_i_;
-              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.semv = ty100;
+              MenhirLib.EngineTypes.startp = _startpos_ty100_;
+              MenhirLib.EngineTypes.endp = _endpos_ty100_;
               MenhirLib.EngineTypes.next = {
                 MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = x0;
-                MenhirLib.EngineTypes.startp = _startpos_x0_;
-                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.semv = r0;
+                MenhirLib.EngineTypes.startp = _startpos_r0_;
+                MenhirLib.EngineTypes.endp = _endpos_r0_;
                 MenhirLib.EngineTypes.next = _menhir_stack;
                 };
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7534 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_comma_list_d_ident_ = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let cv =
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty200 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7611 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty200 in
+        let ty100 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7616 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty100 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7621 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty20 = ty200 in
+          let ty10 = ty100 in
+          let r = r0 in
+          let ty =
+            let ty2 = ty20 in
+            let ty1 = ty10 in
+            
+# 548 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+       (Ast0.BaseType
+          (Ast.LongLongType,
+           [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
+# 7638 "parser_cocci_menhir.ml"
+            
+          in
           
-# 39 "standard.mly"
-    ( None )
-# 7545 "parser_cocci_menhir.ml"
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 7644 "parser_cocci_menhir.ml"
           
         in
-        let s =
-          let x = x0 in
+        let cv =
           
-# 41 "standard.mly"
-    ( Some x )
-# 7553 "parser_cocci_menhir.ml"
+# 39 "standard.mly"
+    ( None )
+# 7651 "parser_cocci_menhir.ml"
           
         in
         
-# 950 "parser_cocci_menhir.mly"
-      ( List.map
-         (function (id,fn) ->
-           let idtype =
-             P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-           Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
-         d )
-# 7564 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7657 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7572,68 +7665,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = i;
-              MenhirLib.EngineTypes.startp = _startpos_i_;
-              MenhirLib.EngineTypes.endp = _endpos_i_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = x1;
-                MenhirLib.EngineTypes.startp = _startpos_x1_;
-                MenhirLib.EngineTypes.endp = _endpos_x1_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = x0;
-                  MenhirLib.EngineTypes.startp = _startpos_x0_;
-                  MenhirLib.EngineTypes.endp = _endpos_x0_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7605 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_comma_list_d_ident_ = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let x1 : 'tv_const_vol = Obj.magic x1 in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let cv =
-          let x = x1 in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7684 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 530 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
+# 7695 "parser_cocci_menhir.ml"
+            
+          in
           
-# 41 "standard.mly"
-    ( Some x )
-# 7618 "parser_cocci_menhir.ml"
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 7701 "parser_cocci_menhir.ml"
           
         in
-        let s =
-          let x = x0 in
+        let cv =
           
-# 41 "standard.mly"
-    ( Some x )
-# 7626 "parser_cocci_menhir.ml"
+# 39 "standard.mly"
+    ( None )
+# 7708 "parser_cocci_menhir.ml"
           
         in
         
-# 950 "parser_cocci_menhir.mly"
-      ( List.map
-         (function (id,fn) ->
-           let idtype =
-             P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-           Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
-         d )
-# 7637 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7714 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7645,69 +7722,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = d;
-                MenhirLib.EngineTypes.startp = _startpos_d_;
-                MenhirLib.EngineTypes.endp = _endpos_d_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = i;
-                  MenhirLib.EngineTypes.startp = _startpos_i_;
-                  MenhirLib.EngineTypes.endp = _endpos_i_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7678 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7684 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let _startpos = _startpos_i_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let cv =
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7741 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 532 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
+# 7752 "parser_cocci_menhir.ml"
+            
+          in
           
-# 39 "standard.mly"
-    ( None )
-# 7694 "parser_cocci_menhir.ml"
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 7758 "parser_cocci_menhir.ml"
           
         in
-        let s =
+        let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7701 "parser_cocci_menhir.ml"
+# 7765 "parser_cocci_menhir.ml"
           
         in
         
-# 958 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-      !Data.add_type_name (P.id2name i);
-      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-      [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
-                          P.clt2mcode ";" pv))] )
-# 7711 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7771 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7719,76 +7779,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = d;
-                MenhirLib.EngineTypes.startp = _startpos_d_;
-                MenhirLib.EngineTypes.endp = _endpos_d_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = i;
-                  MenhirLib.EngineTypes.startp = _startpos_i_;
-                  MenhirLib.EngineTypes.endp = _endpos_i_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = x0;
-                    MenhirLib.EngineTypes.startp = _startpos_x0_;
-                    MenhirLib.EngineTypes.endp = _endpos_x0_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7757 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7763 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let x0 : 'tv_const_vol = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let cv =
-          let x = x0 in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7798 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 534 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
+# 7809 "parser_cocci_menhir.ml"
+            
+          in
           
-# 41 "standard.mly"
-    ( Some x )
-# 7775 "parser_cocci_menhir.ml"
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 7815 "parser_cocci_menhir.ml"
           
         in
-        let s =
+        let cv =
           
 # 39 "standard.mly"
     ( None )
-# 7782 "parser_cocci_menhir.ml"
+# 7822 "parser_cocci_menhir.ml"
           
         in
         
-# 958 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-      !Data.add_type_name (P.id2name i);
-      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-      [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
-                          P.clt2mcode ";" pv))] )
-# 7792 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7828 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7800,76 +7836,53 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = d;
-                MenhirLib.EngineTypes.startp = _startpos_d_;
-                MenhirLib.EngineTypes.endp = _endpos_d_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = i;
-                  MenhirLib.EngineTypes.startp = _startpos_i_;
-                  MenhirLib.EngineTypes.endp = _endpos_i_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = x0;
-                    MenhirLib.EngineTypes.startp = _startpos_x0_;
-                    MenhirLib.EngineTypes.endp = _endpos_x0_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7838 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7844 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let cv =
-          
-# 39 "standard.mly"
-    ( None )
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
 # 7855 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let _startpos = _startpos_p00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let ty =
+            let p = p0 in
+            
+# 536 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = p in
+      Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
+# 7867 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 7873 "parser_cocci_menhir.ml"
           
         in
-        let s =
-          let x = x0 in
+        let cv =
           
-# 41 "standard.mly"
-    ( Some x )
-# 7863 "parser_cocci_menhir.ml"
+# 39 "standard.mly"
+    ( None )
+# 7880 "parser_cocci_menhir.ml"
           
         in
         
-# 958 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-      !Data.add_type_name (P.id2name i);
-      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-      [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
-                          P.clt2mcode ";" pv))] )
-# 7873 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7886 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7881,83 +7894,73 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = d;
-                MenhirLib.EngineTypes.startp = _startpos_d_;
-                MenhirLib.EngineTypes.endp = _endpos_d_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = i;
-                  MenhirLib.EngineTypes.startp = _startpos_i_;
-                  MenhirLib.EngineTypes.endp = _endpos_i_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = x1;
-                    MenhirLib.EngineTypes.startp = _startpos_x1_;
-                    MenhirLib.EngineTypes.endp = _endpos_x1_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.semv = x0;
-                      MenhirLib.EngineTypes.startp = _startpos_x0_;
-                      MenhirLib.EngineTypes.endp = _endpos_x0_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
-                    };
-                  };
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = r00;
+                MenhirLib.EngineTypes.startp = _startpos_r00_;
+                MenhirLib.EngineTypes.endp = _endpos_r00_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
                 };
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7924 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 7930 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let x1 : 'tv_const_vol = Obj.magic x1 in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let cv =
-          let x = x1 in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 7922 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r00 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 7927 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let _startpos = _startpos_r00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let r0 = r00 in
+          let ty =
+            let p = p0 in
+            let r = r0 in
+            
+# 539 "parser_cocci_menhir.mly"
+    ( let nm = (r,P.id2name p) in
+    (* this is only possible when we are in a metavar decl.  Otherwise,
+       it will be represented already as a MetaType *)
+    let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
+    Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
+                           Ast0.Impure (*will be ignored*))) )
+# 7945 "parser_cocci_menhir.ml"
+            
+          in
           
-# 41 "standard.mly"
-    ( Some x )
-# 7943 "parser_cocci_menhir.ml"
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 7951 "parser_cocci_menhir.ml"
           
         in
-        let s =
-          let x = x0 in
+        let cv =
           
-# 41 "standard.mly"
-    ( Some x )
-# 7951 "parser_cocci_menhir.ml"
+# 39 "standard.mly"
+    ( None )
+# 7958 "parser_cocci_menhir.ml"
           
         in
         
-# 958 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-      !Data.add_type_name (P.id2name i);
-      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-      [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
-                          P.clt2mcode ";" pv))] )
-# 7961 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 7964 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -7969,104 +7972,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = rp2;
-            MenhirLib.EngineTypes.startp = _startpos_rp2_;
-            MenhirLib.EngineTypes.endp = _endpos_rp2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = p;
-              MenhirLib.EngineTypes.startp = _startpos_p_;
-              MenhirLib.EngineTypes.endp = _endpos_p_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = lp2;
-                MenhirLib.EngineTypes.startp = _startpos_lp2_;
-                MenhirLib.EngineTypes.endp = _endpos_lp2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = rp1;
-                  MenhirLib.EngineTypes.startp = _startpos_rp1_;
-                  MenhirLib.EngineTypes.endp = _endpos_rp1_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = d;
-                    MenhirLib.EngineTypes.startp = _startpos_d_;
-                    MenhirLib.EngineTypes.endp = _endpos_d_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.semv = st;
-                      MenhirLib.EngineTypes.startp = _startpos_st_;
-                      MenhirLib.EngineTypes.endp = _endpos_st_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.semv = lp1;
-                        MenhirLib.EngineTypes.startp = _startpos_lp1_;
-                        MenhirLib.EngineTypes.endp = _endpos_lp1_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.state = _menhir_s;
-                          MenhirLib.EngineTypes.semv = t;
-                          MenhirLib.EngineTypes.startp = _startpos_t_;
-                          MenhirLib.EngineTypes.endp = _endpos_t_;
-                          MenhirLib.EngineTypes.next = _menhir_stack;
-                          };
-                        };
-                      };
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8022 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let rp2 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8027 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp2 in
-        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
-        let lp2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8033 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp2 in
-        let rp1 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8038 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp1 in
-        let d : 'tv_d_ident = Obj.magic d in
-        let st : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8044 "parser_cocci_menhir.ml"
-        ) = Obj.magic st in
-        let lp1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8049 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp1 in
-        let t : 'tv_fn_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let s =
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 7991 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 546 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) )
+# 8002 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 8008 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8058 "parser_cocci_menhir.ml"
+# 8015 "parser_cocci_menhir.ml"
           
         in
         
-# 968 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        let t =
-         Ast0.wrap
-           (Ast0.FunctionPointer
-              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
-               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
-        [Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))] )
-# 8070 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8021 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8078,111 +8029,67 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = rp2;
-            MenhirLib.EngineTypes.startp = _startpos_rp2_;
-            MenhirLib.EngineTypes.endp = _endpos_rp2_;
+            MenhirLib.EngineTypes.semv = ty200;
+            MenhirLib.EngineTypes.startp = _startpos_ty200_;
+            MenhirLib.EngineTypes.endp = _endpos_ty200_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = p;
-              MenhirLib.EngineTypes.startp = _startpos_p_;
-              MenhirLib.EngineTypes.endp = _endpos_p_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = lp2;
-                MenhirLib.EngineTypes.startp = _startpos_lp2_;
-                MenhirLib.EngineTypes.endp = _endpos_lp2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = rp1;
-                  MenhirLib.EngineTypes.startp = _startpos_rp1_;
-                  MenhirLib.EngineTypes.endp = _endpos_rp1_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = d;
-                    MenhirLib.EngineTypes.startp = _startpos_d_;
-                    MenhirLib.EngineTypes.endp = _endpos_d_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.semv = st;
-                      MenhirLib.EngineTypes.startp = _startpos_st_;
-                      MenhirLib.EngineTypes.endp = _endpos_st_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.semv = lp1;
-                        MenhirLib.EngineTypes.startp = _startpos_lp1_;
-                        MenhirLib.EngineTypes.endp = _endpos_lp1_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.semv = t;
-                          MenhirLib.EngineTypes.startp = _startpos_t_;
-                          MenhirLib.EngineTypes.endp = _endpos_t_;
-                          MenhirLib.EngineTypes.next = {
-                            MenhirLib.EngineTypes.state = _menhir_s;
-                            MenhirLib.EngineTypes.semv = x0;
-                            MenhirLib.EngineTypes.startp = _startpos_x0_;
-                            MenhirLib.EngineTypes.endp = _endpos_x0_;
-                            MenhirLib.EngineTypes.next = _menhir_stack;
-                            };
-                          };
-                        };
-                      };
-                    };
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = ty100;
+              MenhirLib.EngineTypes.startp = _startpos_ty100_;
+              MenhirLib.EngineTypes.endp = _endpos_ty100_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8136 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let rp2 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8141 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp2 in
-        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
-        let lp2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8147 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp2 in
-        let rp1 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8152 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp1 in
-        let d : 'tv_d_ident = Obj.magic d in
-        let st : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8158 "parser_cocci_menhir.ml"
-        ) = Obj.magic st in
-        let lp1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8163 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp1 in
-        let t : 'tv_fn_ctype = Obj.magic t in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let s =
-          let x = x0 in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty200 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 8053 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty200 in
+        let ty100 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 8058 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty100 in
+        let _startpos = _startpos_ty100_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty20 = ty200 in
+          let ty10 = ty100 in
+          let ty =
+            let ty2 = ty20 in
+            let ty1 = ty10 in
+            
+# 548 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+       (Ast0.BaseType
+          (Ast.LongLongType,
+           [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
+# 8074 "parser_cocci_menhir.ml"
+            
+          in
           
-# 41 "standard.mly"
-    ( Some x )
-# 8174 "parser_cocci_menhir.ml"
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 8080 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 8087 "parser_cocci_menhir.ml"
           
         in
         
-# 968 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        let t =
-         Ast0.wrap
-           (Ast0.FunctionPointer
-              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
-               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
-        [Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))] )
-# 8186 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8093 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8194,56 +8101,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _5;
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _4;
-            MenhirLib.EngineTypes.startp = _startpos__4_;
-            MenhirLib.EngineTypes.endp = _endpos__4_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _3;
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = _2;
-                MenhirLib.EngineTypes.startp = _startpos__2_;
-                MenhirLib.EngineTypes.endp = _endpos__2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = _1;
-                  MenhirLib.EngineTypes.startp = _startpos__1_;
-                  MenhirLib.EngineTypes.endp = _endpos__1_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _5 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8227 "parser_cocci_menhir.ml"
-        ) = Obj.magic _5 in
-        let _4 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8232 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8238 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_decl_ident = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_decl_var = 
-# 976 "parser_cocci_menhir.mly"
-      ( [Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3,
-                                 P.clt2mcode ")" _4,P.clt2mcode ";" _5))] )
-# 8247 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 8120 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 556 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) )
+# 8131 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 8137 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 8144 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8150 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8255,120 +8158,174 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 8177 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 558 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) )
+# 8188 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 8194 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 8201 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8207 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 8234 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 560 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) )
+# 8245 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 8251 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 8258 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8264 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = i00;
+            MenhirLib.EngineTypes.startp = _startpos_i00_;
+            MenhirLib.EngineTypes.endp = _endpos_i00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = rp2;
-                MenhirLib.EngineTypes.startp = _startpos_rp2_;
-                MenhirLib.EngineTypes.endp = _endpos_rp2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = p;
-                  MenhirLib.EngineTypes.startp = _startpos_p_;
-                  MenhirLib.EngineTypes.endp = _endpos_p_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = lp2;
-                    MenhirLib.EngineTypes.startp = _startpos_lp2_;
-                    MenhirLib.EngineTypes.endp = _endpos_lp2_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.semv = rp1;
-                      MenhirLib.EngineTypes.startp = _startpos_rp1_;
-                      MenhirLib.EngineTypes.endp = _endpos_rp1_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.semv = d;
-                        MenhirLib.EngineTypes.startp = _startpos_d_;
-                        MenhirLib.EngineTypes.endp = _endpos_d_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.semv = st;
-                          MenhirLib.EngineTypes.startp = _startpos_st_;
-                          MenhirLib.EngineTypes.endp = _endpos_st_;
-                          MenhirLib.EngineTypes.next = {
-                            MenhirLib.EngineTypes.semv = lp1;
-                            MenhirLib.EngineTypes.startp = _startpos_lp1_;
-                            MenhirLib.EngineTypes.endp = _endpos_lp1_;
-                            MenhirLib.EngineTypes.next = {
-                              MenhirLib.EngineTypes.state = _menhir_s;
-                              MenhirLib.EngineTypes.semv = t;
-                              MenhirLib.EngineTypes.startp = _startpos_t_;
-                              MenhirLib.EngineTypes.endp = _endpos_t_;
-                              MenhirLib.EngineTypes.next = _menhir_stack;
-                              };
-                            };
-                          };
-                        };
-                      };
-                    };
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = s00;
+              MenhirLib.EngineTypes.startp = _startpos_s00_;
+              MenhirLib.EngineTypes.endp = _endpos_s00_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8318 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8324 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let rp2 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8329 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp2 in
-        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
-        let lp2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8335 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp2 in
-        let rp1 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8340 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp1 in
-        let d : 'tv_d_ident = Obj.magic d in
-        let st : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8346 "parser_cocci_menhir.ml"
-        ) = Obj.magic st in
-        let lp1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8351 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp1 in
-        let t : 'tv_fn_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let s =
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let i00 : 'tv_ident = Obj.magic i00 in
+        let s00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 8297 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let i0 = i00 in
+          let s0 = s00 in
+          let ty =
+            let i = i0 in
+            let s = s0 in
+            
+# 562 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) )
+# 8310 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 8316 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
           
 # 39 "standard.mly"
     ( None )
-# 8360 "parser_cocci_menhir.ml"
+# 8323 "parser_cocci_menhir.ml"
           
         in
         
-# 982 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        let t =
-         Ast0.wrap
-           (Ast0.FunctionPointer
-              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
-               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
-      [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
-# 8372 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8329 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8380,127 +8337,94 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.semv = ids00;
+              MenhirLib.EngineTypes.startp = _startpos_ids00_;
+              MenhirLib.EngineTypes.endp = _endpos_ids00_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = rp2;
-                MenhirLib.EngineTypes.startp = _startpos_rp2_;
-                MenhirLib.EngineTypes.endp = _endpos_rp2_;
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
                 MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = p;
-                  MenhirLib.EngineTypes.startp = _startpos_p_;
-                  MenhirLib.EngineTypes.endp = _endpos_p_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = lp2;
-                    MenhirLib.EngineTypes.startp = _startpos_lp2_;
-                    MenhirLib.EngineTypes.endp = _endpos_lp2_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.semv = rp1;
-                      MenhirLib.EngineTypes.startp = _startpos_rp1_;
-                      MenhirLib.EngineTypes.endp = _endpos_rp1_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.semv = d;
-                        MenhirLib.EngineTypes.startp = _startpos_d_;
-                        MenhirLib.EngineTypes.endp = _endpos_d_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.semv = st;
-                          MenhirLib.EngineTypes.startp = _startpos_st_;
-                          MenhirLib.EngineTypes.endp = _endpos_st_;
-                          MenhirLib.EngineTypes.next = {
-                            MenhirLib.EngineTypes.semv = lp1;
-                            MenhirLib.EngineTypes.startp = _startpos_lp1_;
-                            MenhirLib.EngineTypes.endp = _endpos_lp1_;
-                            MenhirLib.EngineTypes.next = {
-                              MenhirLib.EngineTypes.semv = t;
-                              MenhirLib.EngineTypes.startp = _startpos_t_;
-                              MenhirLib.EngineTypes.endp = _endpos_t_;
-                              MenhirLib.EngineTypes.next = {
-                                MenhirLib.EngineTypes.state = _menhir_s;
-                                MenhirLib.EngineTypes.semv = x0;
-                                MenhirLib.EngineTypes.startp = _startpos_x0_;
-                                MenhirLib.EngineTypes.endp = _endpos_x0_;
-                                MenhirLib.EngineTypes.next = _menhir_stack;
-                                };
-                              };
-                            };
-                          };
-                        };
-                      };
-                    };
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = s00;
+                  MenhirLib.EngineTypes.startp = _startpos_s00_;
+                  MenhirLib.EngineTypes.endp = _endpos_s00_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
                   };
                 };
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8448 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8454 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let rp2 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8459 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp2 in
-        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
-        let lp2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8465 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp2 in
-        let rp1 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8470 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp1 in
-        let d : 'tv_d_ident = Obj.magic d in
-        let st : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8476 "parser_cocci_menhir.ml"
-        ) = Obj.magic st in
-        let lp1 : (
-# 75 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 8481 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp1 in
-        let t : 'tv_fn_ctype = Obj.magic t in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = let s =
-          let x = x0 in
+# 8371 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 8377 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let s00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 8382 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let r0 = r00 in
+          let ids0 = ids00 in
+          let l0 = l00 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let ids = ids0 in
+            let l = l0 in
+            let s = s0 in
+            let i =
+              
+# 39 "standard.mly"
+    ( None )
+# 8400 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 564 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "enums must be named in the iso file");
+      Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
+                            P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
+# 8409 "parser_cocci_menhir.ml"
+            
+          in
           
-# 41 "standard.mly"
-    ( Some x )
-# 8492 "parser_cocci_menhir.ml"
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 8415 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 8422 "parser_cocci_menhir.ml"
           
         in
         
-# 982 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        let t =
-         Ast0.wrap
-           (Ast0.FunctionPointer
-              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
-               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
-      [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
-# 8504 "parser_cocci_menhir.ml"
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8428 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8512,46 +8436,103 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = id;
-            MenhirLib.EngineTypes.startp = _startpos_id_;
-            MenhirLib.EngineTypes.endp = _endpos_id_;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = t;
-              MenhirLib.EngineTypes.startp = _startpos_t_;
-              MenhirLib.EngineTypes.endp = _endpos_t_;
+              MenhirLib.EngineTypes.semv = ids00;
+              MenhirLib.EngineTypes.startp = _startpos_ids00_;
+              MenhirLib.EngineTypes.endp = _endpos_ids00_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = s;
-                MenhirLib.EngineTypes.startp = _startpos_s_;
-                MenhirLib.EngineTypes.endp = _endpos_s_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = x000;
+                  MenhirLib.EngineTypes.startp = _startpos_x000_;
+                  MenhirLib.EngineTypes.endp = _endpos_x000_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = s00;
+                    MenhirLib.EngineTypes.startp = _startpos_s00_;
+                    MenhirLib.EngineTypes.endp = _endpos_s00_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
                 };
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 8540 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let id : 'tv_typedef_ident = Obj.magic id in
-        let t : 'tv_ctype_full = Obj.magic t in
-        let s : (
-# 53 "parser_cocci_menhir.mly"
+# 8475 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 8481 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let x000 : 'tv_ident = Obj.magic x000 in
+        let s00 : (
+# 52 "parser_cocci_menhir.mly"
       (Data.clt)
-# 8547 "parser_cocci_menhir.ml"
-        ) = Obj.magic s in
-        let _startpos = _startpos_s_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_decl_var = 
-# 990 "parser_cocci_menhir.mly"
-      ( let s = P.clt2mcode "typedef" s in
-        [Ast0.wrap(Ast0.Typedef(s,t,id,P.clt2mcode ";" pv))] )
-# 8555 "parser_cocci_menhir.ml"
+# 8487 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let r0 = r00 in
+          let ids0 = ids00 in
+          let l0 = l00 in
+          let x00 = x000 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let ids = ids0 in
+            let l = l0 in
+            let x0 = x00 in
+            let s = s0 in
+            let i =
+              let x = x0 in
+              
+# 41 "standard.mly"
+    ( Some x )
+# 8508 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 564 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "enums must be named in the iso file");
+      Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
+                            P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
+# 8517 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 8523 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 8530 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8536 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8563,23 +8544,56 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = i00;
+            MenhirLib.EngineTypes.startp = _startpos_i00_;
+            MenhirLib.EngineTypes.endp = _endpos_i00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = s00;
+              MenhirLib.EngineTypes.startp = _startpos_s00_;
+              MenhirLib.EngineTypes.endp = _endpos_s00_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_define_param_list_start = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_define_param_list = 
-# 698 "parser_cocci_menhir.mly"
-     (let circle x =
-       match Ast0.unwrap x with Ast0.DPcircles(_) -> true | _ -> false in
-     if List.exists circle _1
-     then Ast0.wrap(Ast0.CIRCLES(_1))
-     else Ast0.wrap(Ast0.DOTS(_1)) )
-# 8583 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let i00 : 'tv_ident = Obj.magic i00 in
+        let s00 : 'tv_struct_or_union = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let i0 = i00 in
+          let s0 = s00 in
+          let ty =
+            let i = i0 in
+            let s = s0 in
+            
+# 569 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
+# 8578 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 8584 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 8591 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8597 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8591,36 +8605,91 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = d00;
+              MenhirLib.EngineTypes.startp = _startpos_d00_;
+              MenhirLib.EngineTypes.endp = _endpos_d00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = s00;
+                  MenhirLib.EngineTypes.startp = _startpos_s00_;
+                  MenhirLib.EngineTypes.endp = _endpos_s00_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_define_param_list = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_define_param_list_option = 
-# 722 "parser_cocci_menhir.mly"
-                                            ( _1 )
-# 8607 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_define_param_list_option = 
-# 723 "parser_cocci_menhir.mly"
-                           ( Ast0.wrap(Ast0.DOTS([])) )
-# 8624 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 8639 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let d00 : 'tv_struct_decl_list = Obj.magic d00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 8645 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let s00 : 'tv_struct_or_union = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let r0 = r00 in
+          let d0 = d00 in
+          let l0 = l00 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let d = d0 in
+            let l = l0 in
+            let s = s0 in
+            let i =
+              
+# 39 "standard.mly"
+    ( None )
+# 8664 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 572 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "structures must be named in the iso file");
+      Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
+                                   P.clt2mcode "{" l,
+                                   d, P.clt2mcode "}" r)) )
+# 8674 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 8680 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 8687 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8693 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8632,19 +8701,100 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = d00;
+              MenhirLib.EngineTypes.startp = _startpos_d00_;
+              MenhirLib.EngineTypes.endp = _endpos_d00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = x000;
+                  MenhirLib.EngineTypes.startp = _startpos_x000_;
+                  MenhirLib.EngineTypes.endp = _endpos_x000_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = s00;
+                    MenhirLib.EngineTypes.startp = _startpos_s00_;
+                    MenhirLib.EngineTypes.endp = _endpos_s00_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_ident = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_define_param_list_start = 
-# 705 "parser_cocci_menhir.mly"
-          ( [Ast0.wrap(Ast0.DParam _1)] )
-# 8648 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 8740 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let d00 : 'tv_struct_decl_list = Obj.magic d00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 8746 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let x000 : 'tv_ident = Obj.magic x000 in
+        let s00 : 'tv_struct_or_union = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let r0 = r00 in
+          let d0 = d00 in
+          let l0 = l00 in
+          let x00 = x000 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let d = d0 in
+            let l = l0 in
+            let x0 = x00 in
+            let s = s0 in
+            let i =
+              let x = x0 in
+              
+# 41 "standard.mly"
+    ( Some x )
+# 8769 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 572 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "structures must be named in the iso file");
+      Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
+                                   P.clt2mcode "{" l,
+                                   d, P.clt2mcode "}" r)) )
+# 8779 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 8785 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 8792 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8798 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8656,36 +8806,86 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = d00;
+              MenhirLib.EngineTypes.startp = _startpos_d00_;
+              MenhirLib.EngineTypes.endp = _endpos_d00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = s00;
+                  MenhirLib.EngineTypes.startp = _startpos_s00_;
+                  MenhirLib.EngineTypes.endp = _endpos_s00_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
               };
             };
           } = _menhir_stack in
-        let _3 : 'tv_define_param_list_start = Obj.magic _3 in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 8680 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_ident = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_define_param_list_start = 
-# 707 "parser_cocci_menhir.mly"
-      ( Ast0.wrap(Ast0.DParam _1)::
-       Ast0.wrap(Ast0.DPComma(P.clt2mcode "," _2))::_3 )
-# 8689 "parser_cocci_menhir.ml"
+# 8840 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let d00 : 'tv_struct_decl_list = Obj.magic d00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 8846 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let s00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 8851 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let r0 = r00 in
+          let d0 = d00 in
+          let l0 = l00 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let d = d0 in
+            let l = l0 in
+            let s = s0 in
+            
+# 578 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = s in
+    let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in
+    Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) )
+# 8870 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 8876 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 8883 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8889 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8697,30 +8897,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = r;
-          MenhirLib.EngineTypes.startp = _startpos_r_;
-          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let r : 'tv_list_dp_comma_args_TEllipsis__ = Obj.magic r in
-        let d : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8716 "parser_cocci_menhir.ml"
-        ) = Obj.magic d in
-        let _startpos = _startpos_d_ in
-        let _endpos = _endpos_r_ in
-        let _v : 'tv_define_param_list_start = 
-# 710 "parser_cocci_menhir.mly"
-      ( (P.mkdpdots "..." d)::
-       (List.concat (List.map (function x -> x (P.mkdpdots "...")) r)) )
-# 8724 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 8916 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let _startpos = _startpos_p00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let ty =
+            let p = p0 in
+            
+# 582 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
+# 8927 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 8933 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 8940 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 8946 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8732,38 +8954,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 80 "parser_cocci_menhir.mly"
-       (Data.clt * token)
-# 8745 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_defineop = 
-# 659 "parser_cocci_menhir.mly"
-    ( let (clt,ident) = _1 in
-      function body ->
-       Ast0.wrap
-         (Ast0.Define
-            (P.clt2mcode "#define" clt,
-             (match ident with
-               TMetaId((nm,constraints,pure,clt)) ->
-                 Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure))
-             | TIdent(nm_pure) ->
-                 Ast0.wrap(Ast0.Id(P.id2mcode nm_pure))
-             | _ ->
-                 raise
-                   (Semantic_cocci.Semantic
-                      "unexpected name for a #define")),
-             Ast0.wrap Ast0.NoParams,
-             body)) )
-# 8767 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 8983 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 8988 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 530 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
+# 9001 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 9007 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9015 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9021 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8775,80 +9029,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
               };
             };
           } = _menhir_stack in
-        let _3 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 8798 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_define_param_list_option = Obj.magic _2 in
-        let _1 : (
-# 81 "parser_cocci_menhir.mly"
-       (Data.clt * token * int)
-# 8804 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_defineop = 
-# 676 "parser_cocci_menhir.mly"
-    ( let (clt,ident,parenoff) = _1 in
-      let (arity,line,lline,offset,col,strbef,straft,pos) = clt in
-      let lp =
-       P.clt2mcode "(" (arity,line,lline,parenoff,0,[],[],Ast0.NoMetaPos) in
-      function body ->
-       Ast0.wrap
-         (Ast0.Define
-            (P.clt2mcode "#define" clt,
-             (match ident with
-               TMetaId((nm,constraints,pure,clt)) ->
-                 Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure))
-             | TIdent(nm_pure) ->
-                 Ast0.wrap(Ast0.Id(P.id2mcode nm_pure))
-             | _ ->
-                 raise
-                   (Semantic_cocci.Semantic
-                      "unexpected name for a #define")),
-             Ast0.wrap (Ast0.DParams (lp,_2,P.clt2mcode ")" _3)),body)) )
-# 8828 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_pnrule = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_dep = 
-# 220 "parser_cocci_menhir.mly"
-                   ( _1 )
-# 8852 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9058 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9063 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 532 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
+# 9076 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 9082 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9090 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9096 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8860,29 +9104,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
               };
             };
           } = _menhir_stack in
-        let _3 : 'tv_dep = Obj.magic _3 in
-        let _1 : 'tv_dep = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_dep = 
-# 221 "parser_cocci_menhir.mly"
-                   ( Ast.AndDep(_1, _3) )
-# 8886 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9133 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9138 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 534 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
+# 9151 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 9157 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9165 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9171 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8894,29 +9179,71 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
               };
             };
           } = _menhir_stack in
-        let _3 : 'tv_dep = Obj.magic _3 in
-        let _1 : 'tv_dep = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_dep = 
-# 222 "parser_cocci_menhir.mly"
-                   ( Ast.OrDep (_1, _3) )
-# 8920 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 9208 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9213 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let r = r0 in
+          let ty =
+            let p = p0 in
+            
+# 536 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = p in
+      Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
+# 9227 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 9233 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9241 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9247 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8927,13 +9254,92 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_depends = 
-# 216 "parser_cocci_menhir.mly"
-                           ( Ast.NoDep )
-# 8937 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__4_;
+              MenhirLib.EngineTypes.endp = _endpos__4_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = r00;
+                MenhirLib.EngineTypes.startp = _startpos_r00_;
+                MenhirLib.EngineTypes.endp = _endpos_r00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = r1;
+                  MenhirLib.EngineTypes.startp = _startpos_r1_;
+                  MenhirLib.EngineTypes.endp = _endpos_r1_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 9293 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r00 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 9298 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let r1 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9303 "parser_cocci_menhir.ml"
+        ) = Obj.magic r1 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let r0 = r00 in
+          let r = r1 in
+          let ty =
+            let p = p0 in
+            let r = r0 in
+            
+# 539 "parser_cocci_menhir.mly"
+    ( let nm = (r,P.id2name p) in
+    (* this is only possible when we are in a metavar decl.  Otherwise,
+       it will be represented already as a MetaType *)
+    let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
+    Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
+                           Ast0.Impure (*will be ignored*))) )
+# 9323 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 9329 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9337 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9343 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8945,27 +9351,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = parents;
-          MenhirLib.EngineTypes.startp = _startpos_parents_;
-          MenhirLib.EngineTypes.endp = _endpos_parents_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
               };
             };
           } = _menhir_stack in
-        let parents : 'tv_dep = Obj.magic parents in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos_parents_ in
-        let _v : 'tv_depends = 
-# 217 "parser_cocci_menhir.mly"
-                           ( parents )
-# 8969 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9380 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9385 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 546 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) )
+# 9398 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 9404 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9412 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9418 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -8977,47 +9426,85 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_dexpr = 
-# 1185 "parser_cocci_menhir.mly"
-                                          ( _1 )
-# 8993 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty200;
+            MenhirLib.EngineTypes.startp = _startpos_ty200_;
+            MenhirLib.EngineTypes.endp = _endpos_ty200_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = ty100;
+              MenhirLib.EngineTypes.startp = _startpos_ty100_;
+              MenhirLib.EngineTypes.endp = _endpos_ty100_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = r0;
+                MenhirLib.EngineTypes.startp = _startpos_r0_;
+                MenhirLib.EngineTypes.endp = _endpos_r0_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = x0;
+                  MenhirLib.EngineTypes.startp = _startpos_x0_;
+                  MenhirLib.EngineTypes.endp = _endpos_x0_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_separated_nonempty_list_TComma_pure_ident_ = Obj.magic _2 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_disable = 
-# 235 "parser_cocci_menhir.mly"
-                                                      ( List.map P.id2name _2 )
-# 9021 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty200 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9460 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty200 in
+        let ty100 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9465 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty100 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9470 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty20 = ty200 in
+          let ty10 = ty100 in
+          let r = r0 in
+          let ty =
+            let ty2 = ty20 in
+            let ty1 = ty10 in
+            
+# 548 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+       (Ast0.BaseType
+          (Ast.LongLongType,
+           [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
+# 9488 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 9494 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9502 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9508 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9029,23 +9516,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 9042 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_dot_expressions = 
-# 1194 "parser_cocci_menhir.mly"
-            ( Ast0.wrap(Ast0.Edots(P.clt2mcode "..." _1,None)) )
-# 9049 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9545 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9550 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 530 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
+# 9563 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 9569 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9577 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9583 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9057,19 +9591,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_nest_expressions = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_dot_expressions = 
-# 1195 "parser_cocci_menhir.mly"
-                   ( _1 )
-# 9073 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9620 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9625 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 532 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
+# 9638 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 9644 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9652 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9658 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9081,34 +9666,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = d;
-          MenhirLib.EngineTypes.startp = _startpos_d_;
-          MenhirLib.EngineTypes.endp = _endpos_d_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = c;
-            MenhirLib.EngineTypes.startp = _startpos_c_;
-            MenhirLib.EngineTypes.endp = _endpos_c_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let d : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 9099 "parser_cocci_menhir.ml"
-        ) = Obj.magic d in
-        let c : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 9104 "parser_cocci_menhir.ml"
-        ) = Obj.magic c in
-        let _startpos = _startpos_c_ in
-        let _endpos = _endpos_d_ in
-        let _v : 'tv_dp_comma_args_TEllipsis_ = 
-# 715 "parser_cocci_menhir.mly"
-    ( function dot_builder ->
-      [Ast0.wrap(Ast0.DPComma(P.clt2mcode "," c)); dot_builder d] )
-# 9112 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9695 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9700 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 534 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
+# 9713 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 9719 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9727 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9733 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9120,59 +9741,71 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_ident = Obj.magic _2 in
-        let _1 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 9139 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_dp_comma_args_TEllipsis_ = 
-# 718 "parser_cocci_menhir.mly"
-    ( function dot_builder ->
-      [Ast0.wrap(Ast0.DPComma(P.clt2mcode "," _1));
-       Ast0.wrap(Ast0.DParam _2)] )
-# 9148 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = d;
-          MenhirLib.EngineTypes.startp = _startpos_d_;
-          MenhirLib.EngineTypes.endp = _endpos_d_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let d : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 9169 "parser_cocci_menhir.ml"
-        ) = Obj.magic d in
-        let _startpos = _startpos_d_ in
-        let _endpos = _endpos_d_ in
-        let _v : 'tv_edots_when_TEllipsis_eexpr_ = 
-# 1782 "parser_cocci_menhir.mly"
-                                                  ( (d,None) )
-# 9176 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 9770 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9775 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let r = r0 in
+          let ty =
+            let p = p0 in
+            
+# 536 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = p in
+      Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
+# 9789 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 9795 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9803 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9809 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9184,41 +9817,91 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = w;
-            MenhirLib.EngineTypes.startp = _startpos_w_;
-            MenhirLib.EngineTypes.endp = _endpos_w_;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.startp = _startpos__4_;
+              MenhirLib.EngineTypes.endp = _endpos__4_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__2_;
-                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.semv = r00;
+                MenhirLib.EngineTypes.startp = _startpos_r00_;
+                MenhirLib.EngineTypes.endp = _endpos_r00_;
                 MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = d;
-                  MenhirLib.EngineTypes.startp = _startpos_d_;
-                  MenhirLib.EngineTypes.endp = _endpos_d_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  MenhirLib.EngineTypes.semv = r1;
+                  MenhirLib.EngineTypes.startp = _startpos_r1_;
+                  MenhirLib.EngineTypes.endp = _endpos_r1_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
                   };
                 };
               };
             };
           } = _menhir_stack in
-        let w : 'tv_eexpr = Obj.magic w in
-        let d : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 9215 "parser_cocci_menhir.ml"
-        ) = Obj.magic d in
-        let _startpos = _startpos_d_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_edots_when_TEllipsis_eexpr_ = 
-# 1783 "parser_cocci_menhir.mly"
-                                                  ( (d,Some w) )
-# 9222 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 9855 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r00 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 9860 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let r1 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9865 "parser_cocci_menhir.ml"
+        ) = Obj.magic r1 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let r0 = r00 in
+          let r = r1 in
+          let ty =
+            let p = p0 in
+            let r = r0 in
+            
+# 539 "parser_cocci_menhir.mly"
+    ( let nm = (r,P.id2name p) in
+    (* this is only possible when we are in a metavar decl.  Otherwise,
+       it will be represented already as a MetaType *)
+    let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
+    Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
+                           Ast0.Impure (*will be ignored*))) )
+# 9885 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 9891 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9899 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9905 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9230,23 +9913,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = d;
-          MenhirLib.EngineTypes.startp = _startpos_d_;
-          MenhirLib.EngineTypes.endp = _endpos_d_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
           } = _menhir_stack in
-        let d : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 9243 "parser_cocci_menhir.ml"
-        ) = Obj.magic d in
-        let _startpos = _startpos_d_ in
-        let _endpos = _endpos_d_ in
-        let _v : 'tv_edots_when_TEllipsis_initialize_ = 
-# 1782 "parser_cocci_menhir.mly"
-                                                  ( (d,None) )
-# 9250 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9942 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 9947 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 546 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) )
+# 9960 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 9966 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 9974 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 9980 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9258,69 +9988,85 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = w;
-            MenhirLib.EngineTypes.startp = _startpos_w_;
-            MenhirLib.EngineTypes.endp = _endpos_w_;
+            MenhirLib.EngineTypes.semv = ty200;
+            MenhirLib.EngineTypes.startp = _startpos_ty200_;
+            MenhirLib.EngineTypes.endp = _endpos_ty200_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.semv = ty100;
+              MenhirLib.EngineTypes.startp = _startpos_ty100_;
+              MenhirLib.EngineTypes.endp = _endpos_ty100_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__2_;
-                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.semv = r0;
+                MenhirLib.EngineTypes.startp = _startpos_r0_;
+                MenhirLib.EngineTypes.endp = _endpos_r0_;
                 MenhirLib.EngineTypes.next = {
                   MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = d;
-                  MenhirLib.EngineTypes.startp = _startpos_d_;
-                  MenhirLib.EngineTypes.endp = _endpos_d_;
+                  MenhirLib.EngineTypes.semv = x0;
+                  MenhirLib.EngineTypes.startp = _startpos_x0_;
+                  MenhirLib.EngineTypes.endp = _endpos_x0_;
                   MenhirLib.EngineTypes.next = _menhir_stack;
                   };
                 };
               };
             };
           } = _menhir_stack in
-        let w : 'tv_initialize = Obj.magic w in
-        let d : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 9289 "parser_cocci_menhir.ml"
-        ) = Obj.magic d in
-        let _startpos = _startpos_d_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_edots_when_TEllipsis_initialize_ = 
-# 1783 "parser_cocci_menhir.mly"
-                                                  ( (d,Some w) )
-# 9296 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = d;
-          MenhirLib.EngineTypes.startp = _startpos_d_;
-          MenhirLib.EngineTypes.endp = _endpos_d_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let d : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 9317 "parser_cocci_menhir.ml"
-        ) = Obj.magic d in
-        let _startpos = _startpos_d_ in
-        let _endpos = _endpos_d_ in
-        let _v : 'tv_edots_when_TEllipsis_struct_decl_ = 
-# 1782 "parser_cocci_menhir.mly"
-                                                  ( (d,None) )
-# 9324 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty200 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10022 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty200 in
+        let ty100 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10027 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty100 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10032 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty20 = ty200 in
+          let ty10 = ty100 in
+          let r = r0 in
+          let ty =
+            let ty2 = ty20 in
+            let ty1 = ty10 in
+            
+# 548 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+       (Ast0.BaseType
+          (Ast.LongLongType,
+           [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
+# 10050 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 10056 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10064 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10070 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9332,41 +10078,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = w;
-            MenhirLib.EngineTypes.startp = _startpos_w_;
-            MenhirLib.EngineTypes.endp = _endpos_w_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__2_;
-                MenhirLib.EngineTypes.endp = _endpos__2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = d;
-                  MenhirLib.EngineTypes.startp = _startpos_d_;
-                  MenhirLib.EngineTypes.endp = _endpos_d_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let w : 'tv_struct_decl = Obj.magic w in
-        let d : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 9363 "parser_cocci_menhir.ml"
-        ) = Obj.magic d in
-        let _startpos = _startpos_d_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_edots_when_TEllipsis_struct_decl_ = 
-# 1783 "parser_cocci_menhir.mly"
-                                                  ( (d,Some w) )
-# 9370 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10102 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 530 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
+# 10114 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 10120 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10128 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10134 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9378,19 +10142,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_eexpr = 
-# 1183 "parser_cocci_menhir.mly"
-                                         ( _1 )
-# 9394 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10166 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 532 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
+# 10178 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 10184 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10192 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10198 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9402,28 +10206,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_eexpr_list_start = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_eexpr_list = 
-# 1726 "parser_cocci_menhir.mly"
-     (let circle x =
-       match Ast0.unwrap x with Ast0.Ecircles(_) -> true | _ -> false in
-     let star x =
-       match Ast0.unwrap x with Ast0.Estars(_) -> true | _ -> false in
-     if List.exists circle _1
-     then Ast0.wrap(Ast0.CIRCLES(_1))
-     else
-       if List.exists star _1
-       then Ast0.wrap(Ast0.STARS(_1))
-       else Ast0.wrap(Ast0.DOTS(_1)) )
-# 9427 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10230 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 534 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
+# 10242 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 10248 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10256 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10262 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9435,19 +10270,60 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_eexpr_list = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_eexpr_list_option = 
-# 1765 "parser_cocci_menhir.mly"
-                              ( _1 )
-# 9451 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 10294 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let ty =
+            let p = p0 in
+            
+# 536 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = p in
+      Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
+# 10307 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 10313 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10321 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10327 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9458,13 +10334,81 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_eexpr_list_option = 
-# 1766 "parser_cocci_menhir.mly"
-                           ( Ast0.wrap(Ast0.DOTS([])) )
-# 9468 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = r00;
+                MenhirLib.EngineTypes.startp = _startpos_r00_;
+                MenhirLib.EngineTypes.endp = _endpos_r00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = x0;
+                  MenhirLib.EngineTypes.startp = _startpos_x0_;
+                  MenhirLib.EngineTypes.endp = _endpos_x0_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 10368 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r00 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 10373 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let r0 = r00 in
+          let ty =
+            let p = p0 in
+            let r = r0 in
+            
+# 539 "parser_cocci_menhir.mly"
+    ( let nm = (r,P.id2name p) in
+    (* this is only possible when we are in a metavar decl.  Otherwise,
+       it will be represented already as a MetaType *)
+    let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
+    Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
+                           Ast0.Impure (*will be ignored*))) )
+# 10392 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 10398 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10406 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10412 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9476,19 +10420,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_aexpr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_eexpr_list_start = 
-# 1753 "parser_cocci_menhir.mly"
-          ( [_1] )
-# 9492 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10444 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 546 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) )
+# 10456 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 10462 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10470 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10476 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9500,35 +10484,74 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = ty200;
+            MenhirLib.EngineTypes.startp = _startpos_ty200_;
+            MenhirLib.EngineTypes.endp = _endpos_ty200_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = ty100;
+              MenhirLib.EngineTypes.startp = _startpos_ty100_;
+              MenhirLib.EngineTypes.endp = _endpos_ty100_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
               };
             };
           } = _menhir_stack in
-        let _3 : 'tv_eexpr_list_start = Obj.magic _3 in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 9524 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_aexpr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_eexpr_list_start = 
-# 1755 "parser_cocci_menhir.mly"
-      ( _1::Ast0.wrap(Ast0.EComma(P.clt2mcode "," _2))::_3 )
-# 9532 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty200 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10513 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty200 in
+        let ty100 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10518 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty100 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty20 = ty200 in
+          let ty10 = ty100 in
+          let ty =
+            let ty2 = ty20 in
+            let ty1 = ty10 in
+            
+# 548 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+       (Ast0.BaseType
+          (Ast.LongLongType,
+           [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
+# 10535 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 10541 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10549 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10555 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9540,39 +10563,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__6_;
-          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = cl;
-            MenhirLib.EngineTypes.startp = _startpos_cl_;
-            MenhirLib.EngineTypes.endp = _endpos_cl_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__4_;
-              MenhirLib.EngineTypes.endp = _endpos__4_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__3_;
-                MenhirLib.EngineTypes.endp = _endpos__3_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.startp = _startpos__2_;
-                  MenhirLib.EngineTypes.endp = _endpos__2_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.startp = _startpos__1_;
-                    MenhirLib.EngineTypes.endp = _endpos__1_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let cl : 'tv_comma_list_dexpr_ = Obj.magic cl in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__6_ in
-        let _v : 'tv_error_words = 
-# 1552 "parser_cocci_menhir.mly"
-      ( [Ast0.wrap(Ast0.ERRORWORDS(cl))] )
-# 9576 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10587 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 556 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) )
+# 10599 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 10605 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10613 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10619 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9584,17 +10627,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_exists = 
-# 238 "parser_cocci_menhir.mly"
-          ( Ast.Exists )
-# 9598 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10651 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 558 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) )
+# 10663 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 10669 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10677 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10683 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9606,17 +10691,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_exists = 
-# 239 "parser_cocci_menhir.mly"
-          ( Ast.Forall )
-# 9620 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10715 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 560 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) )
+# 10727 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 10733 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10741 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10747 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9628,38 +10755,67 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = i00;
+            MenhirLib.EngineTypes.startp = _startpos_i00_;
+            MenhirLib.EngineTypes.endp = _endpos_i00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = s00;
+              MenhirLib.EngineTypes.startp = _startpos_s00_;
+              MenhirLib.EngineTypes.endp = _endpos_s00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_exists = 
-# 240 "parser_cocci_menhir.mly"
-                   ( Ast.ReverseForall )
-# 9646 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_exists = 
-# 241 "parser_cocci_menhir.mly"
-          ( Ast.Undetermined )
-# 9663 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let i00 : 'tv_ident = Obj.magic i00 in
+        let s00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10785 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let i0 = i00 in
+          let s0 = s00 in
+          let ty =
+            let i = i0 in
+            let s = s0 in
+            
+# 562 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) )
+# 10799 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 10805 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10813 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10819 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9671,92 +10827,101 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_basic_expr_expr_invalid_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_expr = 
-# 1181 "parser_cocci_menhir.mly"
-                                ( _1 )
-# 9687 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = r;
-          MenhirLib.EngineTypes.startp = _startpos_r_;
-          MenhirLib.EngineTypes.endp = _endpos_r_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let r : 'tv_no_dot_start_end_dexpr_edots_when_TEllipsis_eexpr__ = Obj.magic r in
-        let _startpos = _startpos_r_ in
-        let _endpos = _endpos_r_ in
-        let _v : 'tv_expr_dots_TEllipsis_ = 
-# 1363 "parser_cocci_menhir.mly"
-                                                       ( r )
-# 9711 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_extends = 
-# 211 "parser_cocci_menhir.mly"
-                                                  ( () )
-# 9728 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = parent;
-          MenhirLib.EngineTypes.startp = _startpos_parent_;
-          MenhirLib.EngineTypes.endp = _endpos_parent_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = ids00;
+              MenhirLib.EngineTypes.startp = _startpos_ids00_;
+              MenhirLib.EngineTypes.endp = _endpos_ids00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = s00;
+                  MenhirLib.EngineTypes.startp = _startpos_s00_;
+                  MenhirLib.EngineTypes.endp = _endpos_s00_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let parent : (
-# 47 "parser_cocci_menhir.mly"
-      (string)
-# 9753 "parser_cocci_menhir.ml"
-        ) = Obj.magic parent in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos_parent_ in
-        let _v : 'tv_extends = 
-# 213 "parser_cocci_menhir.mly"
-    ( !Data.install_bindings (parent) )
-# 9760 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 10866 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 10872 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let s00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10877 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let r0 = r00 in
+          let ids0 = ids00 in
+          let l0 = l00 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let ids = ids0 in
+            let l = l0 in
+            let s = s0 in
+            let i =
+              
+# 39 "standard.mly"
+    ( None )
+# 10896 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 564 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "enums must be named in the iso file");
+      Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
+                            P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
+# 10905 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 10911 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 10919 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 10925 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9768,35 +10933,110 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = ids00;
+              MenhirLib.EngineTypes.startp = _startpos_ids00_;
+              MenhirLib.EngineTypes.endp = _endpos_ids00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = x000;
+                  MenhirLib.EngineTypes.startp = _startpos_x000_;
+                  MenhirLib.EngineTypes.endp = _endpos_x000_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = s00;
+                    MenhirLib.EngineTypes.startp = _startpos_s00_;
+                    MenhirLib.EngineTypes.endp = _endpos_s00_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = x0;
+                      MenhirLib.EngineTypes.startp = _startpos_x0_;
+                      MenhirLib.EngineTypes.endp = _endpos_x0_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : (
-# 82 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 9786 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 82 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 9791 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_filespec = 
-# 618 "parser_cocci_menhir.mly"
-    ( [Ast0.wrap
-         (Ast0.FILEINFO(P.id2mcode _1,
-                        P.id2mcode _2))] )
-# 9800 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 10977 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 10983 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let x000 : 'tv_ident = Obj.magic x000 in
+        let s00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 10989 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let r0 = r00 in
+          let ids0 = ids00 in
+          let l0 = l00 in
+          let x00 = x000 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let ids = ids0 in
+            let l = l0 in
+            let x0 = x00 in
+            let s = s0 in
+            let i =
+              let x = x0 in
+              
+# 41 "standard.mly"
+    ( Some x )
+# 11011 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 564 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "enums must be named in the iso file");
+      Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
+                            P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
+# 11020 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 11026 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 11034 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 11040 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9812,21 +11052,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.startp = _startpos_m_;
           MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = ty;
-            MenhirLib.EngineTypes.startp = _startpos_ty_;
-            MenhirLib.EngineTypes.endp = _endpos_ty_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = i00;
+            MenhirLib.EngineTypes.startp = _startpos_i00_;
+            MenhirLib.EngineTypes.endp = _endpos_i00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = s00;
+              MenhirLib.EngineTypes.startp = _startpos_s00_;
+              MenhirLib.EngineTypes.endp = _endpos_s00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
-        let ty : 'tv_generic_ctype = Obj.magic ty in
-        let _startpos = _startpos_ty_ in
+        let i00 : 'tv_ident = Obj.magic i00 in
+        let s00 : 'tv_struct_or_union = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
         let _endpos = _endpos_m_ in
-        let _v : 'tv_fn_ctype = 
-# 567 "parser_cocci_menhir.mly"
-                                     ( P.pointerify ty m )
-# 9830 "parser_cocci_menhir.ml"
+        let _v : 'tv_ctype = let ty =
+          let i0 = i00 in
+          let s0 = s00 in
+          let ty =
+            let i = i0 in
+            let s = s0 in
+            
+# 569 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
+# 11088 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 11094 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 11102 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 11108 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9842,44 +11120,94 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.startp = _startpos_m_;
           MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = d00;
+              MenhirLib.EngineTypes.startp = _startpos_d00_;
+              MenhirLib.EngineTypes.endp = _endpos_d00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = s00;
+                  MenhirLib.EngineTypes.startp = _startpos_s00_;
+                  MenhirLib.EngineTypes.endp = _endpos_s00_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
         let m : 'tv_list_TMul_ = Obj.magic m in
-        let t : (
-# 50 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 9857 "parser_cocci_menhir.ml"
-        ) = Obj.magic t in
-        let _startpos = _startpos_t_ in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11155 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let d00 : 'tv_struct_decl_list = Obj.magic d00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11161 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let s00 : 'tv_struct_or_union = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
         let _endpos = _endpos_m_ in
-        let _v : 'tv_fn_ctype = 
-# 569 "parser_cocci_menhir.mly"
-         ( P.pointerify
-            (Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])))
-            m )
-# 9866 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_fninfo = 
-# 761 "parser_cocci_menhir.mly"
-                ( [] )
-# 9883 "parser_cocci_menhir.ml"
+        let _v : 'tv_ctype = let ty =
+          let r0 = r00 in
+          let d0 = d00 in
+          let l0 = l00 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let d = d0 in
+            let l = l0 in
+            let s = s0 in
+            let i =
+              
+# 39 "standard.mly"
+    ( None )
+# 11181 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 572 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "structures must be named in the iso file");
+      Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
+                                   P.clt2mcode "{" l,
+                                   d, P.clt2mcode "}" r)) )
+# 11191 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 11197 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 11205 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 11211 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9891,29 +11219,107 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = d00;
+              MenhirLib.EngineTypes.startp = _startpos_d00_;
+              MenhirLib.EngineTypes.endp = _endpos_d00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = x000;
+                  MenhirLib.EngineTypes.startp = _startpos_x000_;
+                  MenhirLib.EngineTypes.endp = _endpos_x000_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = s00;
+                    MenhirLib.EngineTypes.startp = _startpos_s00_;
+                    MenhirLib.EngineTypes.endp = _endpos_s00_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = x0;
+                      MenhirLib.EngineTypes.startp = _startpos_x0_;
+                      MenhirLib.EngineTypes.endp = _endpos_x0_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_fninfo = Obj.magic _2 in
-        let _1 : 'tv_storage = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fninfo = 
-# 763 "parser_cocci_menhir.mly"
-      ( try
-       let _ =
-         List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in
-       raise (Semantic_cocci.Semantic "duplicate storage")
-      with Not_found -> (Ast0.FStorage(_1))::_2 )
-# 9917 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11263 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let d00 : 'tv_struct_decl_list = Obj.magic d00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11269 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let x000 : 'tv_ident = Obj.magic x000 in
+        let s00 : 'tv_struct_or_union = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let r0 = r00 in
+          let d0 = d00 in
+          let l0 = l00 in
+          let x00 = x000 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let d = d0 in
+            let l = l0 in
+            let x0 = x00 in
+            let s = s0 in
+            let i =
+              let x = x0 in
+              
+# 41 "standard.mly"
+    ( Some x )
+# 11293 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 572 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "structures must be named in the iso file");
+      Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
+                                   P.clt2mcode "{" l,
+                                   d, P.clt2mcode "}" r)) )
+# 11303 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 11309 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 11317 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 11323 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9925,25 +11331,93 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = r;
-          MenhirLib.EngineTypes.startp = _startpos_r_;
-          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = d00;
+              MenhirLib.EngineTypes.startp = _startpos_d00_;
+              MenhirLib.EngineTypes.endp = _endpos_d00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = s00;
+                  MenhirLib.EngineTypes.startp = _startpos_s00_;
+                  MenhirLib.EngineTypes.endp = _endpos_s00_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let r : 'tv_fninfo_nt = Obj.magic r in
-        let t : 'tv_fn_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_r_ in
-        let _v : 'tv_fninfo = 
-# 768 "parser_cocci_menhir.mly"
-                           ( (Ast0.FType(t))::r )
-# 9947 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11370 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let d00 : 'tv_struct_decl_list = Obj.magic d00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11376 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let s00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 11381 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let r0 = r00 in
+          let d0 = d00 in
+          let l0 = l00 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let d = d0 in
+            let l = l0 in
+            let s = s0 in
+            
+# 578 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = s in
+    let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in
+    Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) )
+# 11401 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 11407 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 11415 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 11421 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9955,32 +11429,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_fninfo = Obj.magic _2 in
-        let _1 : (
-# 53 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 9974 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fninfo = 
-# 770 "parser_cocci_menhir.mly"
-      ( try
-       let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in
-       raise (Semantic_cocci.Semantic "duplicate inline")
-      with Not_found -> (Ast0.FInline(P.clt2mcode "inline" _1))::_2 )
-# 9984 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 11453 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_ctype = let ty =
+          let p0 = p00 in
+          let ty =
+            let p = p0 in
+            
+# 582 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
+# 11465 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 11471 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 11479 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 595 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 11485 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -9992,32 +11493,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = r;
+          MenhirLib.EngineTypes.startp = _startpos_r_;
+          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_fninfo = Obj.magic _2 in
-        let _1 : (
-# 55 "parser_cocci_menhir.mly"
-      (string * Data.clt)
-# 10011 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fninfo = 
-# 775 "parser_cocci_menhir.mly"
-      ( try
-       let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in
-       raise (Semantic_cocci.Semantic "multiple attributes")
-      with Not_found -> (Ast0.FAttr(P.id2mcode _1))::_2 )
-# 10021 "parser_cocci_menhir.ml"
+        let r : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 11506 "parser_cocci_menhir.ml"
+        ) = Obj.magic r in
+        let _startpos = _startpos_r_ in
+        let _endpos = _endpos_r_ in
+        let _v : 'tv_ctype = 
+# 597 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,None)) )
+# 11513 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10028,13 +11520,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_fninfo_nt = 
-# 781 "parser_cocci_menhir.mly"
-                ( [] )
-# 10038 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = r;
+          MenhirLib.EngineTypes.startp = _startpos_r_;
+          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let r : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 11534 "parser_cocci_menhir.ml"
+        ) = Obj.magic r in
+        let _startpos = _startpos_r_ in
+        let _endpos = _endpos_r_ in
+        let _v : 'tv_ctype = 
+# 599 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,None)) )
+# 11541 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10046,29 +11549,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = rp;
+          MenhirLib.EngineTypes.startp = _startpos_rp_;
+          MenhirLib.EngineTypes.endp = _endpos_rp_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
-          } = _menhir_stack in
-        let _2 : 'tv_fninfo_nt = Obj.magic _2 in
-        let _1 : 'tv_storage = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fninfo_nt = 
-# 783 "parser_cocci_menhir.mly"
-      ( try
-       let _ =
-         List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in
-       raise (Semantic_cocci.Semantic "duplicate storage")
-      with Not_found -> (Ast0.FStorage(_1))::_2 )
-# 10072 "parser_cocci_menhir.ml"
+            MenhirLib.EngineTypes.semv = t;
+            MenhirLib.EngineTypes.startp = _startpos_t_;
+            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = lp;
+              MenhirLib.EngineTypes.startp = _startpos_lp_;
+              MenhirLib.EngineTypes.endp = _endpos_lp_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let rp : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11572 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp in
+        let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in
+        let lp : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11578 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp in
+        let _startpos = _startpos_lp_ in
+        let _endpos = _endpos_rp_ in
+        let _v : 'tv_ctype = 
+# 601 "parser_cocci_menhir.mly"
+    ( let (mids,code) = t in
+      Ast0.wrap
+       (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) )
+# 11587 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10091,21 +11606,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : 'tv_fninfo_nt = Obj.magic _2 in
-        let _1 : (
-# 53 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 10099 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _2 : 'tv_list_array_dec_ = Obj.magic _2 in
+        let _1 : 'tv_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
-        let _v : 'tv_fninfo_nt = 
-# 789 "parser_cocci_menhir.mly"
-      ( try
-       let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in
-       raise (Semantic_cocci.Semantic "duplicate inline")
-      with Not_found -> (Ast0.FInline(P.clt2mcode "inline" _1))::_2 )
-# 10109 "parser_cocci_menhir.ml"
+        let _v : 'tv_d_ident = 
+# 1139 "parser_cocci_menhir.mly"
+      ( (_1,
+        function t ->
+          List.fold_right
+            (function (l,i,r) ->
+              function rest ->
+                Ast0.wrap
+                  (Ast0.Array(rest,P.clt2mcode "[" l,i,P.clt2mcode "]" r)))
+            _2 t) )
+# 11624 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10117,32 +11632,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = i;
+          MenhirLib.EngineTypes.startp = _startpos_i_;
+          MenhirLib.EngineTypes.endp = _endpos_i_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.semv = t;
+            MenhirLib.EngineTypes.startp = _startpos_t_;
+            MenhirLib.EngineTypes.endp = _endpos_t_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : 'tv_fninfo_nt = Obj.magic _2 in
-        let _1 : (
-# 55 "parser_cocci_menhir.mly"
-      (string * Data.clt)
-# 10136 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fninfo_nt = 
-# 794 "parser_cocci_menhir.mly"
-      ( try
-       let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in
-       raise (Semantic_cocci.Semantic "duplicate init")
-      with Not_found -> (Ast0.FAttr(P.id2mcode _1))::_2 )
-# 10146 "parser_cocci_menhir.ml"
+        let i : 'tv_ident = Obj.magic i in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_i_ in
+        let _v : 'tv_decl = 
+# 893 "parser_cocci_menhir.mly"
+ ( Ast0.wrap(Ast0.Param(t, Some i)) )
+# 11654 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10153,13 +11661,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_fun_after_dots = 
-# 1674 "parser_cocci_menhir.mly"
-                               ([])
-# 10163 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = t;
+          MenhirLib.EngineTypes.startp = _startpos_t_;
+          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_t_ in
+        let _v : 'tv_decl = 
+# 894 "parser_cocci_menhir.mly"
+              ( (*verify in FunDecl*) Ast0.wrap(Ast0.Param(t, None)) )
+# 11678 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10171,23 +11686,86 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = rp1;
+          MenhirLib.EngineTypes.startp = _startpos_rp1_;
+          MenhirLib.EngineTypes.endp = _endpos_rp1_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = lp1;
+              MenhirLib.EngineTypes.startp = _startpos_lp1_;
+              MenhirLib.EngineTypes.endp = _endpos_lp1_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = rp;
+                MenhirLib.EngineTypes.startp = _startpos_rp_;
+                MenhirLib.EngineTypes.endp = _endpos_rp_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = i;
+                  MenhirLib.EngineTypes.startp = _startpos_i_;
+                  MenhirLib.EngineTypes.endp = _endpos_i_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = s;
+                    MenhirLib.EngineTypes.startp = _startpos_s_;
+                    MenhirLib.EngineTypes.endp = _endpos_s_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = lp;
+                      MenhirLib.EngineTypes.startp = _startpos_lp_;
+                      MenhirLib.EngineTypes.endp = _endpos_lp_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.state = _menhir_s;
+                        MenhirLib.EngineTypes.semv = t;
+                        MenhirLib.EngineTypes.startp = _startpos_t_;
+                        MenhirLib.EngineTypes.endp = _endpos_t_;
+                        MenhirLib.EngineTypes.next = _menhir_stack;
+                        };
+                      };
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_fun_after_exp = Obj.magic _2 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fun_after_dots = 
-# 1675 "parser_cocci_menhir.mly"
-                               (_2)
-# 10191 "parser_cocci_menhir.ml"
+        let rp1 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11734 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp1 in
+        let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
+        let lp1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11740 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp1 in
+        let rp : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11745 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp in
+        let i : 'tv_ident = Obj.magic i in
+        let s : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11751 "parser_cocci_menhir.ml"
+        ) = Obj.magic s in
+        let lp : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 11756 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_rp1_ in
+        let _v : 'tv_decl = 
+# 897 "parser_cocci_menhir.mly"
+        ( let fnptr =
+         Ast0.wrap
+           (Ast0.FunctionPointer
+              (t,P.clt2mcode "(" lp,P.clt2mcode "*" s,P.clt2mcode ")" rp,
+               P.clt2mcode "(" lp1,d,P.clt2mcode ")" rp1)) in
+       Ast0.wrap(Ast0.Param(fnptr, Some i)) )
+# 11769 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10199,25 +11777,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_fun_after_exp = Obj.magic _2 in
-        let _1 : 'tv_expr = Obj.magic _1 in
+        let _1 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 11790 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fun_after_dots = 
-# 1676 "parser_cocci_menhir.mly"
-                               (Ast0.wrap(Ast0.Exp(_1))::_2)
-# 10221 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_decl = 
+# 904 "parser_cocci_menhir.mly"
+ ( let (nm,pure,clt) = _1 in
+       Ast0.wrap(Ast0.MetaParam(P.clt2mcode nm clt,pure)) )
+# 11798 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10229,25 +11806,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_fun_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
+        let _1 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 11819 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fun_after_dots = 
-# 1677 "parser_cocci_menhir.mly"
-                                    (_1@_2)
-# 10251 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_decl_ident = 
+# 1706 "parser_cocci_menhir.mly"
+         ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
+# 11826 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10258,41 +11833,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_fun_after_dots_or = 
-# 1684 "parser_cocci_menhir.mly"
-                               ([])
-# 10268 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
+        let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
           } = _menhir_stack in
-        let _2 : 'tv_fun_after_exp_or = Obj.magic _2 in
+        let _1 : (
+# 65 "parser_cocci_menhir.mly"
+       (Parse_aux.idinfo)
+# 11847 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fun_after_dots_or = 
-# 1685 "parser_cocci_menhir.mly"
-                               (_2)
-# 10296 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_decl_ident = 
+# 1708 "parser_cocci_menhir.mly"
+         ( let (nm,constraints,pure,clt) = _1 in
+         Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) )
+# 11855 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10304,25 +11863,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_fun_after_exp_or = Obj.magic _2 in
-        let _1 : 'tv_expr = Obj.magic _1 in
+        let _1 : 'tv_empty_list_start_one_dec_decl__TEllipsis_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fun_after_dots_or = 
-# 1686 "parser_cocci_menhir.mly"
-                               (Ast0.wrap(Ast0.Exp(_1))::_2)
-# 10326 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_decl_list_decl_ = 
+# 1729 "parser_cocci_menhir.mly"
+     ( Ast0.wrap
+        (Ast0.DOTS
+           (_1
+              (fun _ d -> Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." d)))
+              (fun c -> Ast0.PComma c))) )
+# 11883 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10334,25 +11891,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_fun_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
+        let _1 : 'tv_empty_list_start_one_dec_name_opt_decl__TEllipsis_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fun_after_dots_or = 
-# 1687 "parser_cocci_menhir.mly"
-                                    (_1@_2)
-# 10356 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_decl_list_name_opt_decl_ = 
+# 1729 "parser_cocci_menhir.mly"
+     ( Ast0.wrap
+        (Ast0.DOTS
+           (_1
+              (fun _ d -> Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." d)))
+              (fun c -> Ast0.PComma c))) )
+# 11911 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10364,25 +11919,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_fun_after_dots = Obj.magic _2 in
-        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _1 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 11932 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fun_after_exp = 
-# 1680 "parser_cocci_menhir.mly"
-                               (_1::_2)
-# 10386 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_decl_statement = 
+# 1197 "parser_cocci_menhir.mly"
+      ( let (nm,pure,clt) = _1 in
+      [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] )
+# 11940 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10393,43 +11947,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_fun_after_exp_or = 
-# 1690 "parser_cocci_menhir.mly"
-                               ([])
-# 10403 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
+        let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
           } = _menhir_stack in
-        let _2 : 'tv_fun_after_dots = Obj.magic _2 in
-        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _1 : 'tv_decl_var = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fun_after_exp_or = 
-# 1691 "parser_cocci_menhir.mly"
-                               (_1::_2)
-# 10433 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_decl_statement = 
+# 1200 "parser_cocci_menhir.mly"
+      ( List.map
+         (function x ->
+           Ast0.wrap
+             (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x)))
+         _1 )
+# 11968 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10440,13 +11975,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_fun_after_stm = 
-# 1669 "parser_cocci_menhir.mly"
-                               ([])
-# 10450 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_statement = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_decl_statement = 
+# 1205 "parser_cocci_menhir.mly"
+              ( [_1] )
+# 11992 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10458,25 +12000,47 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = t;
+            MenhirLib.EngineTypes.startp = _startpos_t_;
+            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_fun_after_dots = Obj.magic _2 in
-        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12023 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let t : 'tv_midzero_list_fun_start_fun_start_ = Obj.magic t in
+        let _1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12029 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fun_after_stm = 
-# 1670 "parser_cocci_menhir.mly"
-                               (_1::_2)
-# 10480 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_decl_statement = 
+# 1214 "parser_cocci_menhir.mly"
+      ( let (mids,code) = t in
+       if List.for_all
+           (function x ->
+             match Ast0.unwrap x with Ast0.DOTS([]) -> true | _ -> false)
+           code
+      then []
+      else
+         [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, code, mids,
+                              P.clt2mcode ")" _3))] )
+# 12044 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10488,25 +12052,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_fun_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement = Obj.magic _1 in
+        let _1 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 12065 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_fun_after_stm = 
-# 1671 "parser_cocci_menhir.mly"
-                               (_1@_2)
-# 10510 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_decl_statement_expr = 
+# 1227 "parser_cocci_menhir.mly"
+      ( let (nm,pure,clt) = _1 in
+      [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] )
+# 12073 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10524,13 +12087,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_fun_after_stm = Obj.magic _1 in
+        let _1 : 'tv_decl_var = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_fun_start = 
-# 1666 "parser_cocci_menhir.mly"
-                 ( Ast0.wrap(Ast0.DOTS(_1)) )
-# 10534 "parser_cocci_menhir.ml"
+        let _v : 'tv_decl_statement_expr = 
+# 1230 "parser_cocci_menhir.mly"
+      ( List.map
+         (function x ->
+           Ast0.wrap
+             (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x)))
+         _1 )
+# 12101 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10548,13 +12115,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_pure_ident = Obj.magic _1 in
+        let _1 : 'tv_statement = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_func_ident = 
-# 1471 "parser_cocci_menhir.mly"
-         ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
-# 10558 "parser_cocci_menhir.ml"
+        let _v : 'tv_decl_statement_expr = 
+# 1235 "parser_cocci_menhir.mly"
+              ( [_1] )
+# 12125 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10566,24 +12133,46 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = t;
+            MenhirLib.EngineTypes.startp = _startpos_t_;
+            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12156 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let t : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = Obj.magic t in
         let _1 : (
-# 61 "parser_cocci_menhir.mly"
-       (Parse_aux.idinfo)
-# 10579 "parser_cocci_menhir.ml"
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12162 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_func_ident = 
-# 1473 "parser_cocci_menhir.mly"
-         ( let (nm,constraints,pure,clt) = _1 in
-        Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) )
-# 10587 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_decl_statement_expr = 
+# 1244 "parser_cocci_menhir.mly"
+      ( let (mids,code) = t in
+       if List.for_all (function [] -> true | _ -> false) code
+      then []
+      else
+         let dot_code =
+           List.map (function x -> Ast0.wrap(Ast0.DOTS x)) code in
+         [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, dot_code, mids,
+                              P.clt2mcode ")" _3))] )
+# 12176 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10595,24 +12184,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = t;
+            MenhirLib.EngineTypes.startp = _startpos_t_;
+            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let _1 : (
-# 61 "parser_cocci_menhir.mly"
-       (Parse_aux.idinfo)
-# 10608 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_func_ident = 
-# 1476 "parser_cocci_menhir.mly"
-         ( let (nm,constraints,pure,clt) = _1 in
-        Ast0.wrap(Ast0.MetaFunc(P.clt2mcode nm clt,constraints,pure)) )
-# 10616 "parser_cocci_menhir.ml"
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12202 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = 
+# 1025 "parser_cocci_menhir.mly"
+      ( [Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv))] )
+# 12210 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10631,18 +12225,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 61 "parser_cocci_menhir.mly"
-       (Parse_aux.idinfo)
-# 10637 "parser_cocci_menhir.ml"
+# 68 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 12231 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_func_ident = 
-# 1479 "parser_cocci_menhir.mly"
-  ( let (nm,constraints,pure,clt) = _1 in
-        Ast0.wrap
-          (Ast0.MetaLocalFunc(P.clt2mcode nm clt,constraints,pure)) )
-# 10646 "parser_cocci_menhir.ml"
+        let _v : 'tv_decl_var = 
+# 1026 "parser_cocci_menhir.mly"
+              ( [P.meta_decl _1] )
+# 12238 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10654,86 +12246,45 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = rb;
-          MenhirLib.EngineTypes.startp = _startpos_rb_;
-          MenhirLib.EngineTypes.endp = _endpos_rb_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = b;
-            MenhirLib.EngineTypes.startp = _startpos_b_;
-            MenhirLib.EngineTypes.endp = _endpos_b_;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = lb;
-              MenhirLib.EngineTypes.startp = _startpos_lb_;
-              MenhirLib.EngineTypes.endp = _endpos_lb_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = rp;
-                MenhirLib.EngineTypes.startp = _startpos_rp_;
-                MenhirLib.EngineTypes.endp = _endpos_rp_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = d;
-                  MenhirLib.EngineTypes.startp = _startpos_d_;
-                  MenhirLib.EngineTypes.endp = _endpos_d_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = lp;
-                    MenhirLib.EngineTypes.startp = _startpos_lp_;
-                    MenhirLib.EngineTypes.endp = _endpos_lp_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.semv = i;
-                      MenhirLib.EngineTypes.startp = _startpos_i_;
-                      MenhirLib.EngineTypes.endp = _endpos_i_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.startp = _startpos__2_;
-                        MenhirLib.EngineTypes.endp = _endpos__2_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.state = _menhir_s;
-                          MenhirLib.EngineTypes.semv = f;
-                          MenhirLib.EngineTypes.startp = _startpos_f_;
-                          MenhirLib.EngineTypes.endp = _endpos_f_;
-                          MenhirLib.EngineTypes.next = _menhir_stack;
-                          };
-                        };
-                      };
-                    };
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = t;
+              MenhirLib.EngineTypes.startp = _startpos_t_;
+              MenhirLib.EngineTypes.endp = _endpos_t_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let rb : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 10706 "parser_cocci_menhir.ml"
-        ) = Obj.magic rb in
-        let b : 'tv_fun_start = Obj.magic b in
-        let lb : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 10712 "parser_cocci_menhir.ml"
-        ) = Obj.magic lb in
-        let rp : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 10717 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp in
-        let d : 'tv_decl_list_decl_ = Obj.magic d in
-        let lp : (
-# 75 "parser_cocci_menhir.mly"
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10723 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp in
-        let i : 'tv_func_ident = Obj.magic i in
-        let f : 'tv_fninfo = Obj.magic f in
-        let _startpos = _startpos_f_ in
-        let _endpos = _endpos_rb_ in
-        let _v : 'tv_fundecl = 
-# 753 "parser_cocci_menhir.mly"
-      ( Ast0.wrap(Ast0.FunDecl((Ast0.default_info(),Ast0.context_befaft()),
-                              f, i,
-                              P.clt2mcode "(" lp, d,
-                              P.clt2mcode ")" rp,
-                              P.clt2mcode "{" lb, b,
-                              P.clt2mcode "}" rb)) )
-# 10737 "parser_cocci_menhir.ml"
+# 12269 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_comma_list_d_ident_ = Obj.magic d in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let s =
+          
+# 39 "standard.mly"
+    ( None )
+# 12279 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1028 "parser_cocci_menhir.mly"
+      ( List.map
+         (function (id,fn) ->
+           Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)))
+         d )
+# 12288 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10745,74 +12296,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pt;
-          MenhirLib.EngineTypes.startp = _startpos_pt_;
-          MenhirLib.EngineTypes.endp = _endpos_pt_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = rp;
-            MenhirLib.EngineTypes.startp = _startpos_rp_;
-            MenhirLib.EngineTypes.endp = _endpos_rp_;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = d;
-              MenhirLib.EngineTypes.startp = _startpos_d_;
-              MenhirLib.EngineTypes.endp = _endpos_d_;
+              MenhirLib.EngineTypes.semv = t;
+              MenhirLib.EngineTypes.startp = _startpos_t_;
+              MenhirLib.EngineTypes.endp = _endpos_t_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = lp;
-                MenhirLib.EngineTypes.startp = _startpos_lp_;
-                MenhirLib.EngineTypes.endp = _endpos_lp_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = id;
-                  MenhirLib.EngineTypes.startp = _startpos_id_;
-                  MenhirLib.EngineTypes.endp = _endpos_id_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = t;
-                    MenhirLib.EngineTypes.startp = _startpos_t_;
-                    MenhirLib.EngineTypes.endp = _endpos_t_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
                 };
               };
             };
           } = _menhir_stack in
-        let pt : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 10783 "parser_cocci_menhir.ml"
-        ) = Obj.magic pt in
-        let rp : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 10788 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp in
-        let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
-        let lp : (
-# 75 "parser_cocci_menhir.mly"
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10794 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp in
-        let id : 'tv_func_ident = Obj.magic id in
+# 12324 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_comma_list_d_ident_ = Obj.magic d in
         let t : 'tv_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pt_ in
-        let _v : 'tv_funproto = let s =
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let s =
+          let x = x0 in
           
-# 39 "standard.mly"
-    ( None )
-# 10804 "parser_cocci_menhir.ml"
+# 41 "standard.mly"
+    ( Some x )
+# 12336 "parser_cocci_menhir.ml"
           
         in
         
-# 730 "parser_cocci_menhir.mly"
-      ( Ast0.wrap
-         (Ast0.UnInit
-            (s,
-             Ast0.wrap
-               (Ast0.FunctionType(Some t,
-                                  P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)),
-             id, P.clt2mcode ";" pt)) )
-# 10816 "parser_cocci_menhir.ml"
+# 1028 "parser_cocci_menhir.mly"
+      ( List.map
+         (function (id,fn) ->
+           Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)))
+         d )
+# 12345 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10824,81 +12353,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pt;
-          MenhirLib.EngineTypes.startp = _startpos_pt_;
-          MenhirLib.EngineTypes.endp = _endpos_pt_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = rp;
-            MenhirLib.EngineTypes.startp = _startpos_rp_;
-            MenhirLib.EngineTypes.endp = _endpos_rp_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = d;
-              MenhirLib.EngineTypes.startp = _startpos_d_;
-              MenhirLib.EngineTypes.endp = _endpos_d_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = lp;
-                MenhirLib.EngineTypes.startp = _startpos_lp_;
-                MenhirLib.EngineTypes.endp = _endpos_lp_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = id;
-                  MenhirLib.EngineTypes.startp = _startpos_id_;
-                  MenhirLib.EngineTypes.endp = _endpos_id_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = t;
-                    MenhirLib.EngineTypes.startp = _startpos_t_;
-                    MenhirLib.EngineTypes.endp = _endpos_t_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.semv = x0;
-                      MenhirLib.EngineTypes.startp = _startpos_x0_;
-                      MenhirLib.EngineTypes.endp = _endpos_x0_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
-                    };
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = f;
+          MenhirLib.EngineTypes.startp = _startpos_f_;
+          MenhirLib.EngineTypes.endp = _endpos_f_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pt : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 10867 "parser_cocci_menhir.ml"
-        ) = Obj.magic pt in
-        let rp : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 10872 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp in
-        let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
-        let lp : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 10878 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp in
-        let id : 'tv_func_ident = Obj.magic id in
-        let t : 'tv_ctype = Obj.magic t in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pt_ in
-        let _v : 'tv_funproto = let s =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 10890 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 730 "parser_cocci_menhir.mly"
-      ( Ast0.wrap
-         (Ast0.UnInit
-            (s,
-             Ast0.wrap
-               (Ast0.FunctionType(Some t,
-                                  P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)),
-             id, P.clt2mcode ";" pt)) )
-# 10902 "parser_cocci_menhir.ml"
+        let f : 'tv_funproto = Obj.magic f in
+        let _startpos = _startpos_f_ in
+        let _endpos = _endpos_f_ in
+        let _v : 'tv_decl_var = 
+# 1032 "parser_cocci_menhir.mly"
+               ( [f] )
+# 12369 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10910,79 +12377,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pt;
-          MenhirLib.EngineTypes.startp = _startpos_pt_;
-          MenhirLib.EngineTypes.endp = _endpos_pt_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = rp;
-            MenhirLib.EngineTypes.startp = _startpos_rp_;
-            MenhirLib.EngineTypes.endp = _endpos_rp_;
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = d;
-              MenhirLib.EngineTypes.startp = _startpos_d_;
-              MenhirLib.EngineTypes.endp = _endpos_d_;
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = lp;
-                MenhirLib.EngineTypes.startp = _startpos_lp_;
-                MenhirLib.EngineTypes.endp = _endpos_lp_;
+                MenhirLib.EngineTypes.semv = d;
+                MenhirLib.EngineTypes.startp = _startpos_d_;
+                MenhirLib.EngineTypes.endp = _endpos_d_;
                 MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = id;
-                  MenhirLib.EngineTypes.startp = _startpos_id_;
-                  MenhirLib.EngineTypes.endp = _endpos_id_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = t;
-                    MenhirLib.EngineTypes.startp = _startpos_t_;
-                    MenhirLib.EngineTypes.endp = _endpos_t_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = t;
+                  MenhirLib.EngineTypes.startp = _startpos_t_;
+                  MenhirLib.EngineTypes.endp = _endpos_t_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
                   };
                 };
               };
             };
           } = _menhir_stack in
-        let pt : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 10948 "parser_cocci_menhir.ml"
-        ) = Obj.magic pt in
-        let rp : (
-# 76 "parser_cocci_menhir.mly"
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10953 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp in
-        let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
-        let lp : (
-# 75 "parser_cocci_menhir.mly"
+# 12410 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 10959 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp in
-        let id : 'tv_func_ident = Obj.magic id in
-        let t : (
-# 50 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 10965 "parser_cocci_menhir.ml"
-        ) = Obj.magic t in
+# 12416 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let d : 'tv_d_ident = Obj.magic d in
+        let t : 'tv_ctype = Obj.magic t in
         let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pt_ in
-        let _v : 'tv_funproto = let s =
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let s =
           
 # 39 "standard.mly"
     ( None )
-# 10973 "parser_cocci_menhir.ml"
+# 12426 "parser_cocci_menhir.ml"
           
         in
         
-# 739 "parser_cocci_menhir.mly"
-    ( let t = Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in
-      Ast0.wrap
-        (Ast0.UnInit
-          (s,
-           Ast0.wrap
-             (Ast0.FunctionType(Some t,
-                                P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)),
-           id, P.clt2mcode ";" pt)) )
-# 10986 "parser_cocci_menhir.ml"
+# 1034 "parser_cocci_menhir.mly"
+      (let (id,fn) = d in
+      [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
+# 12433 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -10994,86 +12441,66 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pt;
-          MenhirLib.EngineTypes.startp = _startpos_pt_;
-          MenhirLib.EngineTypes.endp = _endpos_pt_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = rp;
-            MenhirLib.EngineTypes.startp = _startpos_rp_;
-            MenhirLib.EngineTypes.endp = _endpos_rp_;
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = d;
-              MenhirLib.EngineTypes.startp = _startpos_d_;
-              MenhirLib.EngineTypes.endp = _endpos_d_;
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = lp;
-                MenhirLib.EngineTypes.startp = _startpos_lp_;
-                MenhirLib.EngineTypes.endp = _endpos_lp_;
+                MenhirLib.EngineTypes.semv = d;
+                MenhirLib.EngineTypes.startp = _startpos_d_;
+                MenhirLib.EngineTypes.endp = _endpos_d_;
                 MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = id;
-                  MenhirLib.EngineTypes.startp = _startpos_id_;
-                  MenhirLib.EngineTypes.endp = _endpos_id_;
+                  MenhirLib.EngineTypes.semv = t;
+                  MenhirLib.EngineTypes.startp = _startpos_t_;
+                  MenhirLib.EngineTypes.endp = _endpos_t_;
                   MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = t;
-                    MenhirLib.EngineTypes.startp = _startpos_t_;
-                    MenhirLib.EngineTypes.endp = _endpos_t_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.semv = x0;
-                      MenhirLib.EngineTypes.startp = _startpos_x0_;
-                      MenhirLib.EngineTypes.endp = _endpos_x0_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
                     };
                   };
                 };
               };
             };
           } = _menhir_stack in
-        let pt : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 11037 "parser_cocci_menhir.ml"
-        ) = Obj.magic pt in
-        let rp : (
-# 76 "parser_cocci_menhir.mly"
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 11042 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp in
-        let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
-        let lp : (
-# 75 "parser_cocci_menhir.mly"
+# 12479 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 11048 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp in
-        let id : 'tv_func_ident = Obj.magic id in
-        let t : (
-# 50 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11054 "parser_cocci_menhir.ml"
-        ) = Obj.magic t in
+# 12485 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let d : 'tv_d_ident = Obj.magic d in
+        let t : 'tv_ctype = Obj.magic t in
         let x0 : 'tv_storage = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pt_ in
-        let _v : 'tv_funproto = let s =
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let s =
           let x = x0 in
           
 # 41 "standard.mly"
     ( Some x )
-# 11064 "parser_cocci_menhir.ml"
+# 12497 "parser_cocci_menhir.ml"
           
         in
         
-# 739 "parser_cocci_menhir.mly"
-    ( let t = Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" t])) in
-      Ast0.wrap
-        (Ast0.UnInit
-          (s,
-           Ast0.wrap
-             (Ast0.FunctionType(Some t,
-                                P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)),
-           id, P.clt2mcode ";" pt)) )
-# 11077 "parser_cocci_menhir.ml"
+# 1034 "parser_cocci_menhir.mly"
+      (let (id,fn) = d in
+      [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
+# 12504 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11085,67 +12512,120 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = r0;
-          MenhirLib.EngineTypes.startp = _startpos_r0_;
-          MenhirLib.EngineTypes.endp = _endpos_r0_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = i;
+              MenhirLib.EngineTypes.startp = _startpos_i_;
+              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let r0 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11098 "parser_cocci_menhir.ml"
-        ) = Obj.magic r0 in
-        let _startpos = _startpos_r0_ in
-        let _endpos = _endpos_r0_ in
-        let _v : 'tv_generic_ctype = let q =
-          let r = r0 in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12535 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_comma_list_d_ident_ = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let _startpos = _startpos_i_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 12545 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
           
-# 575 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) )
-# 11107 "parser_cocci_menhir.ml"
+# 39 "standard.mly"
+    ( None )
+# 12552 "parser_cocci_menhir.ml"
           
         in
         
-# 499 "parser_cocci_menhir.mly"
-                          ( q None )
-# 11113 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
+# 1039 "parser_cocci_menhir.mly"
+      ( List.map
+         (function (id,fn) ->
+           let idtype =
+             P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+           Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
+         d )
+# 12563 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
           MenhirLib.EngineTypes.endp = _endpos;
           MenhirLib.EngineTypes.next = _menhir_stack;
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = r0;
-          MenhirLib.EngineTypes.startp = _startpos_r0_;
-          MenhirLib.EngineTypes.endp = _endpos_r0_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = i;
+              MenhirLib.EngineTypes.startp = _startpos_i_;
+              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
           } = _menhir_stack in
-        let r0 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11134 "parser_cocci_menhir.ml"
-        ) = Obj.magic r0 in
-        let _startpos = _startpos_r0_ in
-        let _endpos = _endpos_r0_ in
-        let _v : 'tv_generic_ctype = let q =
-          let r = r0 in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12599 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_comma_list_d_ident_ = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 12611 "parser_cocci_menhir.ml"
           
-# 577 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) )
-# 11143 "parser_cocci_menhir.ml"
+        in
+        let s =
+          
+# 39 "standard.mly"
+    ( None )
+# 12618 "parser_cocci_menhir.ml"
           
         in
         
-# 499 "parser_cocci_menhir.mly"
-                          ( q None )
-# 11149 "parser_cocci_menhir.ml"
+# 1039 "parser_cocci_menhir.mly"
+      ( List.map
+         (function (id,fn) ->
+           let idtype =
+             P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+           Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
+         d )
+# 12629 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11157,19 +12637,61 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = i;
+              MenhirLib.EngineTypes.startp = _startpos_i_;
+              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_generic_ctype_full = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_generic_ctype = 
-# 500 "parser_cocci_menhir.mly"
-                          ( _1 )
-# 11173 "parser_cocci_menhir.ml"
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12665 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_comma_list_d_ident_ = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 12676 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 12684 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1039 "parser_cocci_menhir.mly"
+      ( List.map
+         (function (id,fn) ->
+           let idtype =
+             P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+           Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
+         d )
+# 12695 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11181,49 +12703,68 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = ty;
-          MenhirLib.EngineTypes.startp = _startpos_ty_;
-          MenhirLib.EngineTypes.endp = _endpos_ty_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = r00;
-            MenhirLib.EngineTypes.startp = _startpos_r00_;
-            MenhirLib.EngineTypes.endp = _endpos_r00_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = i;
+              MenhirLib.EngineTypes.startp = _startpos_i_;
+              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = x1;
+                MenhirLib.EngineTypes.startp = _startpos_x1_;
+                MenhirLib.EngineTypes.endp = _endpos_x1_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = x0;
+                  MenhirLib.EngineTypes.startp = _startpos_x0_;
+                  MenhirLib.EngineTypes.endp = _endpos_x0_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11199 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let r00 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11204 "parser_cocci_menhir.ml"
-        ) = Obj.magic r00 in
-        let _startpos = _startpos_r00_ in
-        let _endpos = _endpos_ty_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          let r0 = r00 in
-          let s =
-            let r = r0 in
-            
-# 575 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) )
-# 11215 "parser_cocci_menhir.ml"
-            
-          in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12736 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_comma_list_d_ident_ = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x1 : 'tv_const_vol = Obj.magic x1 in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let cv =
+          let x = x1 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 12749 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
+          let x = x0 in
           
-# 580 "parser_cocci_menhir.mly"
-                  ( function x -> s (Some x) )
-# 11221 "parser_cocci_menhir.ml"
+# 41 "standard.mly"
+    ( Some x )
+# 12757 "parser_cocci_menhir.ml"
           
         in
         
-# 452 "parser_cocci_menhir.mly"
-        ( q (Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty]))) )
-# 11227 "parser_cocci_menhir.ml"
+# 1039 "parser_cocci_menhir.mly"
+      ( List.map
+         (function (id,fn) ->
+           let idtype =
+             P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+           Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)))
+         d )
+# 12768 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11235,49 +12776,69 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = ty;
-          MenhirLib.EngineTypes.startp = _startpos_ty_;
-          MenhirLib.EngineTypes.endp = _endpos_ty_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = r00;
-            MenhirLib.EngineTypes.startp = _startpos_r00_;
-            MenhirLib.EngineTypes.endp = _endpos_r00_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = d;
+                MenhirLib.EngineTypes.startp = _startpos_d_;
+                MenhirLib.EngineTypes.endp = _endpos_d_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = i;
+                  MenhirLib.EngineTypes.startp = _startpos_i_;
+                  MenhirLib.EngineTypes.endp = _endpos_i_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11253 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let r00 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11258 "parser_cocci_menhir.ml"
-        ) = Obj.magic r00 in
-        let _startpos = _startpos_r00_ in
-        let _endpos = _endpos_ty_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          let r0 = r00 in
-          let s =
-            let r = r0 in
-            
-# 577 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) )
-# 11269 "parser_cocci_menhir.ml"
-            
-          in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12809 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12815 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let _startpos = _startpos_i_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 12825 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
           
-# 580 "parser_cocci_menhir.mly"
-                  ( function x -> s (Some x) )
-# 11275 "parser_cocci_menhir.ml"
+# 39 "standard.mly"
+    ( None )
+# 12832 "parser_cocci_menhir.ml"
           
         in
         
-# 452 "parser_cocci_menhir.mly"
-        ( q (Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty]))) )
-# 11281 "parser_cocci_menhir.ml"
+# 1047 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+      !Data.add_type_name (P.id2name i);
+      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+      [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
+                          P.clt2mcode ";" pv))] )
+# 12842 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11289,30 +12850,76 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = ty;
-          MenhirLib.EngineTypes.startp = _startpos_ty_;
-          MenhirLib.EngineTypes.endp = _endpos_ty_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11302 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let _startpos = _startpos_ty_ in
-        let _endpos = _endpos_ty_ in
-        let _v : 'tv_generic_ctype_full = let q =
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = d;
+                MenhirLib.EngineTypes.startp = _startpos_d_;
+                MenhirLib.EngineTypes.endp = _endpos_d_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = i;
+                  MenhirLib.EngineTypes.startp = _startpos_i_;
+                  MenhirLib.EngineTypes.endp = _endpos_i_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12888 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12894 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 12906 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
           
-# 581 "parser_cocci_menhir.mly"
-                ( function x -> x )
-# 11310 "parser_cocci_menhir.ml"
+# 39 "standard.mly"
+    ( None )
+# 12913 "parser_cocci_menhir.ml"
           
         in
         
-# 452 "parser_cocci_menhir.mly"
-        ( q (Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty]))) )
-# 11316 "parser_cocci_menhir.ml"
+# 1047 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+      !Data.add_type_name (P.id2name i);
+      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+      [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
+                          P.clt2mcode ";" pv))] )
+# 12923 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11324,49 +12931,76 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = ty;
-          MenhirLib.EngineTypes.startp = _startpos_ty_;
-          MenhirLib.EngineTypes.endp = _endpos_ty_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = r00;
-            MenhirLib.EngineTypes.startp = _startpos_r00_;
-            MenhirLib.EngineTypes.endp = _endpos_r00_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = d;
+                MenhirLib.EngineTypes.startp = _startpos_d_;
+                MenhirLib.EngineTypes.endp = _endpos_d_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = i;
+                  MenhirLib.EngineTypes.startp = _startpos_i_;
+                  MenhirLib.EngineTypes.endp = _endpos_i_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11342 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let r00 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11347 "parser_cocci_menhir.ml"
-        ) = Obj.magic r00 in
-        let _startpos = _startpos_r00_ in
-        let _endpos = _endpos_ty_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          let r0 = r00 in
-          let s =
-            let r = r0 in
-            
-# 575 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) )
-# 11358 "parser_cocci_menhir.ml"
-            
-          in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12969 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 12975 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 12986 "parser_cocci_menhir.ml"
           
-# 580 "parser_cocci_menhir.mly"
-                  ( function x -> s (Some x) )
-# 11364 "parser_cocci_menhir.ml"
+        in
+        let s =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 12994 "parser_cocci_menhir.ml"
           
         in
         
-# 454 "parser_cocci_menhir.mly"
-        ( q (Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty]))))
-# 11370 "parser_cocci_menhir.ml"
+# 1047 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+      !Data.add_type_name (P.id2name i);
+      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+      [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
+                          P.clt2mcode ";" pv))] )
+# 13004 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11378,84 +13012,83 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = ty;
-          MenhirLib.EngineTypes.startp = _startpos_ty_;
-          MenhirLib.EngineTypes.endp = _endpos_ty_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = r00;
-            MenhirLib.EngineTypes.startp = _startpos_r00_;
-            MenhirLib.EngineTypes.endp = _endpos_r00_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = d;
+                MenhirLib.EngineTypes.startp = _startpos_d_;
+                MenhirLib.EngineTypes.endp = _endpos_d_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = i;
+                  MenhirLib.EngineTypes.startp = _startpos_i_;
+                  MenhirLib.EngineTypes.endp = _endpos_i_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = x1;
+                    MenhirLib.EngineTypes.startp = _startpos_x1_;
+                    MenhirLib.EngineTypes.endp = _endpos_x1_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = x0;
+                      MenhirLib.EngineTypes.startp = _startpos_x0_;
+                      MenhirLib.EngineTypes.endp = _endpos_x0_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11396 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let r00 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11401 "parser_cocci_menhir.ml"
-        ) = Obj.magic r00 in
-        let _startpos = _startpos_r00_ in
-        let _endpos = _endpos_ty_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          let r0 = r00 in
-          let s =
-            let r = r0 in
-            
-# 577 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) )
-# 11412 "parser_cocci_menhir.ml"
-            
-          in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13055 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13061 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x1 : 'tv_const_vol = Obj.magic x1 in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let cv =
+          let x = x1 in
           
-# 580 "parser_cocci_menhir.mly"
-                  ( function x -> s (Some x) )
-# 11418 "parser_cocci_menhir.ml"
+# 41 "standard.mly"
+    ( Some x )
+# 13074 "parser_cocci_menhir.ml"
           
         in
-        
-# 454 "parser_cocci_menhir.mly"
-        ( q (Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty]))))
-# 11424 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = ty;
-          MenhirLib.EngineTypes.startp = _startpos_ty_;
-          MenhirLib.EngineTypes.endp = _endpos_ty_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11445 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let _startpos = _startpos_ty_ in
-        let _endpos = _endpos_ty_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          
-# 581 "parser_cocci_menhir.mly"
-                ( function x -> x )
-# 11453 "parser_cocci_menhir.ml"
+        let s =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 13082 "parser_cocci_menhir.ml"
           
         in
         
-# 454 "parser_cocci_menhir.mly"
-        ( q (Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty]))))
-# 11459 "parser_cocci_menhir.ml"
+# 1047 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+      !Data.add_type_name (P.id2name i);
+      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+      [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
+                          P.clt2mcode ";" pv))] )
+# 13092 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11467,103 +13100,104 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = ty;
-          MenhirLib.EngineTypes.startp = _startpos_ty_;
-          MenhirLib.EngineTypes.endp = _endpos_ty_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = r00;
-            MenhirLib.EngineTypes.startp = _startpos_r00_;
-            MenhirLib.EngineTypes.endp = _endpos_r00_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
-          } = _menhir_stack in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11485 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let r00 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11490 "parser_cocci_menhir.ml"
-        ) = Obj.magic r00 in
-        let _startpos = _startpos_r00_ in
-        let _endpos = _endpos_ty_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          let r0 = r00 in
-          let s =
-            let r = r0 in
-            
-# 575 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) )
-# 11501 "parser_cocci_menhir.ml"
-            
-          in
-          
-# 580 "parser_cocci_menhir.mly"
-                  ( function x -> s (Some x) )
-# 11507 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 456 "parser_cocci_menhir.mly"
-         ( q (Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty]))) )
-# 11513 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = ty;
-          MenhirLib.EngineTypes.startp = _startpos_ty_;
-          MenhirLib.EngineTypes.endp = _endpos_ty_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = r00;
-            MenhirLib.EngineTypes.startp = _startpos_r00_;
-            MenhirLib.EngineTypes.endp = _endpos_r00_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = rp2;
+            MenhirLib.EngineTypes.startp = _startpos_rp2_;
+            MenhirLib.EngineTypes.endp = _endpos_rp2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = p;
+              MenhirLib.EngineTypes.startp = _startpos_p_;
+              MenhirLib.EngineTypes.endp = _endpos_p_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = lp2;
+                MenhirLib.EngineTypes.startp = _startpos_lp2_;
+                MenhirLib.EngineTypes.endp = _endpos_lp2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = rp1;
+                  MenhirLib.EngineTypes.startp = _startpos_rp1_;
+                  MenhirLib.EngineTypes.endp = _endpos_rp1_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = d;
+                    MenhirLib.EngineTypes.startp = _startpos_d_;
+                    MenhirLib.EngineTypes.endp = _endpos_d_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = st;
+                      MenhirLib.EngineTypes.startp = _startpos_st_;
+                      MenhirLib.EngineTypes.endp = _endpos_st_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.semv = lp1;
+                        MenhirLib.EngineTypes.startp = _startpos_lp1_;
+                        MenhirLib.EngineTypes.endp = _endpos_lp1_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.state = _menhir_s;
+                          MenhirLib.EngineTypes.semv = t;
+                          MenhirLib.EngineTypes.startp = _startpos_t_;
+                          MenhirLib.EngineTypes.endp = _endpos_t_;
+                          MenhirLib.EngineTypes.next = _menhir_stack;
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11539 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let r00 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11544 "parser_cocci_menhir.ml"
-        ) = Obj.magic r00 in
-        let _startpos = _startpos_r00_ in
-        let _endpos = _endpos_ty_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          let r0 = r00 in
-          let s =
-            let r = r0 in
-            
-# 577 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) )
-# 11555 "parser_cocci_menhir.ml"
-            
-          in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13153 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let rp2 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13158 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp2 in
+        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
+        let lp2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13164 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp2 in
+        let rp1 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13169 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp1 in
+        let d : 'tv_d_ident = Obj.magic d in
+        let st : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13175 "parser_cocci_menhir.ml"
+        ) = Obj.magic st in
+        let lp1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13180 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp1 in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let s =
           
-# 580 "parser_cocci_menhir.mly"
-                  ( function x -> s (Some x) )
-# 11561 "parser_cocci_menhir.ml"
+# 39 "standard.mly"
+    ( None )
+# 13189 "parser_cocci_menhir.ml"
           
         in
         
-# 456 "parser_cocci_menhir.mly"
-         ( q (Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty]))) )
-# 11567 "parser_cocci_menhir.ml"
+# 1057 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        let t =
+         Ast0.wrap
+           (Ast0.FunctionPointer
+              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
+               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
+        [Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))] )
+# 13201 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11575,30 +13209,111 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = ty;
-          MenhirLib.EngineTypes.startp = _startpos_ty_;
-          MenhirLib.EngineTypes.endp = _endpos_ty_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = rp2;
+            MenhirLib.EngineTypes.startp = _startpos_rp2_;
+            MenhirLib.EngineTypes.endp = _endpos_rp2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = p;
+              MenhirLib.EngineTypes.startp = _startpos_p_;
+              MenhirLib.EngineTypes.endp = _endpos_p_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = lp2;
+                MenhirLib.EngineTypes.startp = _startpos_lp2_;
+                MenhirLib.EngineTypes.endp = _endpos_lp2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = rp1;
+                  MenhirLib.EngineTypes.startp = _startpos_rp1_;
+                  MenhirLib.EngineTypes.endp = _endpos_rp1_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = d;
+                    MenhirLib.EngineTypes.startp = _startpos_d_;
+                    MenhirLib.EngineTypes.endp = _endpos_d_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = st;
+                      MenhirLib.EngineTypes.startp = _startpos_st_;
+                      MenhirLib.EngineTypes.endp = _endpos_st_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.semv = lp1;
+                        MenhirLib.EngineTypes.startp = _startpos_lp1_;
+                        MenhirLib.EngineTypes.endp = _endpos_lp1_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.semv = t;
+                          MenhirLib.EngineTypes.startp = _startpos_t_;
+                          MenhirLib.EngineTypes.endp = _endpos_t_;
+                          MenhirLib.EngineTypes.next = {
+                            MenhirLib.EngineTypes.state = _menhir_s;
+                            MenhirLib.EngineTypes.semv = x0;
+                            MenhirLib.EngineTypes.startp = _startpos_x0_;
+                            MenhirLib.EngineTypes.endp = _endpos_x0_;
+                            MenhirLib.EngineTypes.next = _menhir_stack;
+                            };
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11588 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let _startpos = _startpos_ty_ in
-        let _endpos = _endpos_ty_ in
-        let _v : 'tv_generic_ctype_full = let q =
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13267 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let rp2 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13272 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp2 in
+        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
+        let lp2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13278 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp2 in
+        let rp1 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13283 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp1 in
+        let d : 'tv_d_ident = Obj.magic d in
+        let st : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13289 "parser_cocci_menhir.ml"
+        ) = Obj.magic st in
+        let lp1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13294 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp1 in
+        let t : 'tv_ctype = Obj.magic t in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let s =
+          let x = x0 in
           
-# 581 "parser_cocci_menhir.mly"
-                ( function x -> x )
-# 11596 "parser_cocci_menhir.ml"
+# 41 "standard.mly"
+    ( Some x )
+# 13305 "parser_cocci_menhir.ml"
           
         in
         
-# 456 "parser_cocci_menhir.mly"
-         ( q (Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty]))) )
-# 11602 "parser_cocci_menhir.ml"
+# 1057 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        let t =
+         Ast0.wrap
+           (Ast0.FunctionPointer
+              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
+               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
+        [Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))] )
+# 13317 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11610,23 +13325,56 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _5;
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _4;
+            MenhirLib.EngineTypes.startp = _startpos__4_;
+            MenhirLib.EngineTypes.endp = _endpos__4_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = _3;
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = _2;
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = _1;
+                  MenhirLib.EngineTypes.startp = _startpos__1_;
+                  MenhirLib.EngineTypes.endp = _endpos__1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let t : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11623 "parser_cocci_menhir.ml"
-        ) = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_generic_ctype_full = 
-# 458 "parser_cocci_menhir.mly"
-         ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" t])) )
-# 11630 "parser_cocci_menhir.ml"
+        let _5 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13358 "parser_cocci_menhir.ml"
+        ) = Obj.magic _5 in
+        let _4 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13363 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13369 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_decl_ident = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_decl_var = 
+# 1065 "parser_cocci_menhir.mly"
+      ( [Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3,
+                                 P.clt2mcode ")" _4,P.clt2mcode ";" _5))] )
+# 13378 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11638,77 +13386,120 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let t : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11651 "parser_cocci_menhir.ml"
-        ) = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_generic_ctype_full = 
-# 460 "parser_cocci_menhir.mly"
-         ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" t])) )
-# 11658 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = ty;
-          MenhirLib.EngineTypes.startp = _startpos_ty_;
-          MenhirLib.EngineTypes.endp = _endpos_ty_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = r00;
-            MenhirLib.EngineTypes.startp = _startpos_r00_;
-            MenhirLib.EngineTypes.endp = _endpos_r00_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = rp2;
+                MenhirLib.EngineTypes.startp = _startpos_rp2_;
+                MenhirLib.EngineTypes.endp = _endpos_rp2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = p;
+                  MenhirLib.EngineTypes.startp = _startpos_p_;
+                  MenhirLib.EngineTypes.endp = _endpos_p_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = lp2;
+                    MenhirLib.EngineTypes.startp = _startpos_lp2_;
+                    MenhirLib.EngineTypes.endp = _endpos_lp2_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = rp1;
+                      MenhirLib.EngineTypes.startp = _startpos_rp1_;
+                      MenhirLib.EngineTypes.endp = _endpos_rp1_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.semv = d;
+                        MenhirLib.EngineTypes.startp = _startpos_d_;
+                        MenhirLib.EngineTypes.endp = _endpos_d_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.semv = st;
+                          MenhirLib.EngineTypes.startp = _startpos_st_;
+                          MenhirLib.EngineTypes.endp = _endpos_st_;
+                          MenhirLib.EngineTypes.next = {
+                            MenhirLib.EngineTypes.semv = lp1;
+                            MenhirLib.EngineTypes.startp = _startpos_lp1_;
+                            MenhirLib.EngineTypes.endp = _endpos_lp1_;
+                            MenhirLib.EngineTypes.next = {
+                              MenhirLib.EngineTypes.state = _menhir_s;
+                              MenhirLib.EngineTypes.semv = t;
+                              MenhirLib.EngineTypes.startp = _startpos_t_;
+                              MenhirLib.EngineTypes.endp = _endpos_t_;
+                              MenhirLib.EngineTypes.next = _menhir_stack;
+                              };
+                            };
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11684 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let r00 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11689 "parser_cocci_menhir.ml"
-        ) = Obj.magic r00 in
-        let _startpos = _startpos_r00_ in
-        let _endpos = _endpos_ty_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          let r0 = r00 in
-          let s =
-            let r = r0 in
-            
-# 575 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) )
-# 11700 "parser_cocci_menhir.ml"
-            
-          in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13449 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13455 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let rp2 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13460 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp2 in
+        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
+        let lp2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13466 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp2 in
+        let rp1 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13471 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp1 in
+        let d : 'tv_d_ident = Obj.magic d in
+        let st : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13477 "parser_cocci_menhir.ml"
+        ) = Obj.magic st in
+        let lp1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13482 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp1 in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let s =
           
-# 580 "parser_cocci_menhir.mly"
-                  ( function x -> s (Some x) )
-# 11706 "parser_cocci_menhir.ml"
+# 39 "standard.mly"
+    ( None )
+# 13491 "parser_cocci_menhir.ml"
           
         in
         
-# 462 "parser_cocci_menhir.mly"
-         ( q (Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty]))) )
-# 11712 "parser_cocci_menhir.ml"
+# 1071 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        let t =
+         Ast0.wrap
+           (Ast0.FunctionPointer
+              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
+               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
+      [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
+# 13503 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11720,49 +13511,127 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = ty;
-          MenhirLib.EngineTypes.startp = _startpos_ty_;
-          MenhirLib.EngineTypes.endp = _endpos_ty_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = r00;
-            MenhirLib.EngineTypes.startp = _startpos_r00_;
-            MenhirLib.EngineTypes.endp = _endpos_r00_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = rp2;
+                MenhirLib.EngineTypes.startp = _startpos_rp2_;
+                MenhirLib.EngineTypes.endp = _endpos_rp2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = p;
+                  MenhirLib.EngineTypes.startp = _startpos_p_;
+                  MenhirLib.EngineTypes.endp = _endpos_p_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = lp2;
+                    MenhirLib.EngineTypes.startp = _startpos_lp2_;
+                    MenhirLib.EngineTypes.endp = _endpos_lp2_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = rp1;
+                      MenhirLib.EngineTypes.startp = _startpos_rp1_;
+                      MenhirLib.EngineTypes.endp = _endpos_rp1_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.semv = d;
+                        MenhirLib.EngineTypes.startp = _startpos_d_;
+                        MenhirLib.EngineTypes.endp = _endpos_d_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.semv = st;
+                          MenhirLib.EngineTypes.startp = _startpos_st_;
+                          MenhirLib.EngineTypes.endp = _endpos_st_;
+                          MenhirLib.EngineTypes.next = {
+                            MenhirLib.EngineTypes.semv = lp1;
+                            MenhirLib.EngineTypes.startp = _startpos_lp1_;
+                            MenhirLib.EngineTypes.endp = _endpos_lp1_;
+                            MenhirLib.EngineTypes.next = {
+                              MenhirLib.EngineTypes.semv = t;
+                              MenhirLib.EngineTypes.startp = _startpos_t_;
+                              MenhirLib.EngineTypes.endp = _endpos_t_;
+                              MenhirLib.EngineTypes.next = {
+                                MenhirLib.EngineTypes.state = _menhir_s;
+                                MenhirLib.EngineTypes.semv = x0;
+                                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                                MenhirLib.EngineTypes.next = _menhir_stack;
+                                };
+                              };
+                            };
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11738 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let r00 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11743 "parser_cocci_menhir.ml"
-        ) = Obj.magic r00 in
-        let _startpos = _startpos_r00_ in
-        let _endpos = _endpos_ty_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          let r0 = r00 in
-          let s =
-            let r = r0 in
-            
-# 577 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) )
-# 11754 "parser_cocci_menhir.ml"
-            
-          in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13579 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13585 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let rp2 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13590 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp2 in
+        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
+        let lp2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13596 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp2 in
+        let rp1 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13601 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp1 in
+        let d : 'tv_d_ident = Obj.magic d in
+        let st : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13607 "parser_cocci_menhir.ml"
+        ) = Obj.magic st in
+        let lp1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13612 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp1 in
+        let t : 'tv_ctype = Obj.magic t in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = let s =
+          let x = x0 in
           
-# 580 "parser_cocci_menhir.mly"
-                  ( function x -> s (Some x) )
-# 11760 "parser_cocci_menhir.ml"
+# 41 "standard.mly"
+    ( Some x )
+# 13623 "parser_cocci_menhir.ml"
           
         in
         
-# 462 "parser_cocci_menhir.mly"
-         ( q (Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty]))) )
-# 11766 "parser_cocci_menhir.ml"
+# 1071 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        let t =
+         Ast0.wrap
+           (Ast0.FunctionPointer
+              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
+               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
+      [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))])
+# 13635 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11774,97 +13643,49 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = ty;
-          MenhirLib.EngineTypes.startp = _startpos_ty_;
-          MenhirLib.EngineTypes.endp = _endpos_ty_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11787 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let _startpos = _startpos_ty_ in
-        let _endpos = _endpos_ty_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          
-# 581 "parser_cocci_menhir.mly"
-                ( function x -> x )
-# 11795 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 462 "parser_cocci_menhir.mly"
-         ( q (Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty]))) )
-# 11801 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = ty1;
-          MenhirLib.EngineTypes.startp = _startpos_ty1_;
-          MenhirLib.EngineTypes.endp = _endpos_ty1_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ty;
-            MenhirLib.EngineTypes.startp = _startpos_ty_;
-            MenhirLib.EngineTypes.endp = _endpos_ty_;
+            MenhirLib.EngineTypes.semv = id;
+            MenhirLib.EngineTypes.startp = _startpos_id_;
+            MenhirLib.EngineTypes.endp = _endpos_id_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = r00;
-              MenhirLib.EngineTypes.startp = _startpos_r00_;
-              MenhirLib.EngineTypes.endp = _endpos_r00_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = t;
+              MenhirLib.EngineTypes.startp = _startpos_t_;
+              MenhirLib.EngineTypes.endp = _endpos_t_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = s;
+                MenhirLib.EngineTypes.startp = _startpos_s_;
+                MenhirLib.EngineTypes.endp = _endpos_s_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
               };
             };
           } = _menhir_stack in
-        let ty1 : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11832 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty1 in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11837 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let r00 : (
-# 51 "parser_cocci_menhir.mly"
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13671 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let id : 'tv_comma_list_typedef_ident_ = Obj.magic id in
+        let t : 'tv_typedef_ctype = Obj.magic t in
+        let s : (
+# 55 "parser_cocci_menhir.mly"
       (Data.clt)
-# 11842 "parser_cocci_menhir.ml"
-        ) = Obj.magic r00 in
-        let _startpos = _startpos_r00_ in
-        let _endpos = _endpos_ty1_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          let r0 = r00 in
-          let s =
-            let r = r0 in
-            
-# 575 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) )
-# 11853 "parser_cocci_menhir.ml"
-            
-          in
-          
-# 580 "parser_cocci_menhir.mly"
-                  ( function x -> s (Some x) )
-# 11859 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 464 "parser_cocci_menhir.mly"
-         ( q (Ast0.wrap
-               (Ast0.BaseType
-                  (Ast.LongLongType,
-                     [P.clt2mcode "long" ty;P.clt2mcode "long" ty1]))) )
-# 11868 "parser_cocci_menhir.ml"
+# 13678 "parser_cocci_menhir.ml"
+        ) = Obj.magic s in
+        let _startpos = _startpos_s_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_decl_var = 
+# 1079 "parser_cocci_menhir.mly"
+      ( let s = P.clt2mcode "typedef" s in
+        List.map
+         (function id ->
+           Ast0.wrap(Ast0.Typedef(s,t,id,P.clt2mcode ";" pv)))
+         id )
+# 13689 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11876,62 +13697,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = ty1;
-          MenhirLib.EngineTypes.startp = _startpos_ty1_;
-          MenhirLib.EngineTypes.endp = _endpos_ty1_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ty;
-            MenhirLib.EngineTypes.startp = _startpos_ty_;
-            MenhirLib.EngineTypes.endp = _endpos_ty_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = r00;
-              MenhirLib.EngineTypes.startp = _startpos_r00_;
-              MenhirLib.EngineTypes.endp = _endpos_r00_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let ty1 : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11899 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty1 in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11904 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let r00 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11909 "parser_cocci_menhir.ml"
-        ) = Obj.magic r00 in
-        let _startpos = _startpos_r00_ in
-        let _endpos = _endpos_ty1_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          let r0 = r00 in
-          let s =
-            let r = r0 in
-            
-# 577 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) )
-# 11920 "parser_cocci_menhir.ml"
-            
-          in
-          
-# 580 "parser_cocci_menhir.mly"
-                  ( function x -> s (Some x) )
-# 11926 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 464 "parser_cocci_menhir.mly"
-         ( q (Ast0.wrap
-               (Ast0.BaseType
-                  (Ast.LongLongType,
-                     [P.clt2mcode "long" ty;P.clt2mcode "long" ty1]))) )
-# 11935 "parser_cocci_menhir.ml"
+        let _1 : 'tv_empty_list_start_dparam_TEllipsis_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_define_param_list_option = 
+# 816 "parser_cocci_menhir.mly"
+      ( Ast0.wrap
+         (Ast0.DOTS
+            (_1
+               (fun _ d -> Ast0.wrap(Ast0.DPdots(P.clt2mcode "," d)))
+               (fun c -> Ast0.DPComma c))) )
+# 13717 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11943,43 +13725,38 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = ty1;
-          MenhirLib.EngineTypes.startp = _startpos_ty1_;
-          MenhirLib.EngineTypes.endp = _endpos_ty1_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = ty;
-            MenhirLib.EngineTypes.startp = _startpos_ty_;
-            MenhirLib.EngineTypes.endp = _endpos_ty_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let ty1 : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11961 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty1 in
-        let ty : (
-# 49 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 11966 "parser_cocci_menhir.ml"
-        ) = Obj.magic ty in
-        let _startpos = _startpos_ty_ in
-        let _endpos = _endpos_ty1_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          
-# 581 "parser_cocci_menhir.mly"
-                ( function x -> x )
-# 11974 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 464 "parser_cocci_menhir.mly"
-         ( q (Ast0.wrap
-               (Ast0.BaseType
-                  (Ast.LongLongType,
-                     [P.clt2mcode "long" ty;P.clt2mcode "long" ty1]))) )
-# 11983 "parser_cocci_menhir.ml"
+        let _1 : (
+# 84 "parser_cocci_menhir.mly"
+       (Data.clt * token)
+# 13738 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_defineop = 
+# 772 "parser_cocci_menhir.mly"
+    ( let (clt,ident) = _1 in
+      function body ->
+       Ast0.wrap
+         (Ast0.Define
+            (P.clt2mcode "#define" clt,
+             (match ident with
+               TMetaId((nm,constraints,pure,clt)) ->
+                 Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure))
+             | TIdent(nm_pure) ->
+                 Ast0.wrap(Ast0.Id(P.id2mcode nm_pure))
+             | _ ->
+                 raise
+                   (Semantic_cocci.Semantic
+                      "unexpected name for a #define")),
+             Ast0.wrap Ast0.NoParams,
+             body)) )
+# 13760 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -11991,29 +13768,58 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = i;
-          MenhirLib.EngineTypes.startp = _startpos_i_;
-          MenhirLib.EngineTypes.endp = _endpos_i_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = s;
-            MenhirLib.EngineTypes.startp = _startpos_s_;
-            MenhirLib.EngineTypes.endp = _endpos_s_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let i : 'tv_ident = Obj.magic i in
-        let s : (
-# 50 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 12010 "parser_cocci_menhir.ml"
-        ) = Obj.magic s in
-        let _startpos = _startpos_s_ in
-        let _endpos = _endpos_i_ in
-        let _v : 'tv_generic_ctype_full = 
-# 469 "parser_cocci_menhir.mly"
-  ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) )
-# 12017 "parser_cocci_menhir.ml"
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13791 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_define_param_list_option = Obj.magic _2 in
+        let _1 : (
+# 85 "parser_cocci_menhir.mly"
+       (Data.clt * token * int * int)
+# 13797 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_defineop = 
+# 789 "parser_cocci_menhir.mly"
+    ( let (clt,ident,parenoff,parencol) = _1 in
+      (* clt is the start of the #define itself *)
+      let (arity,line,lline,offset,col,strbef,straft,pos) = clt in
+      let lp =
+       P.clt2mcode "("
+         (arity,line,lline,parenoff,parencol,[],[],Ast0.NoMetaPos) in
+      function body ->
+       Ast0.wrap
+         (Ast0.Define
+            (P.clt2mcode "#define" clt,
+             (match ident with
+               TMetaId((nm,constraints,pure,clt)) ->
+                 Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure))
+             | TIdent(nm_pure) ->
+                 Ast0.wrap(Ast0.Id(P.id2mcode nm_pure))
+             | _ ->
+                 raise
+                   (Semantic_cocci.Semantic
+                      "unexpected name for a #define")),
+             Ast0.wrap (Ast0.DParams (lp,_2,P.clt2mcode ")" _3)),body)) )
+# 13823 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12025,25 +13831,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = i;
-          MenhirLib.EngineTypes.startp = _startpos_i_;
-          MenhirLib.EngineTypes.endp = _endpos_i_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = s;
-            MenhirLib.EngineTypes.startp = _startpos_s_;
-            MenhirLib.EngineTypes.endp = _endpos_s_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let i : 'tv_ident = Obj.magic i in
-        let s : 'tv_struct_or_union = Obj.magic s in
-        let _startpos = _startpos_s_ in
-        let _endpos = _endpos_i_ in
-        let _v : 'tv_generic_ctype_full = 
-# 471 "parser_cocci_menhir.mly"
-  ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
-# 12047 "parser_cocci_menhir.ml"
+        let _1 : 'tv_pnrule = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_dep = 
+# 230 "parser_cocci_menhir.mly"
+                   ( _1 )
+# 13847 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12055,56 +13855,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = r;
-          MenhirLib.EngineTypes.startp = _startpos_r_;
-          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = l;
-              MenhirLib.EngineTypes.startp = _startpos_l_;
-              MenhirLib.EngineTypes.endp = _endpos_l_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = s;
-                MenhirLib.EngineTypes.startp = _startpos_s_;
-                MenhirLib.EngineTypes.endp = _endpos_s_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let r : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 12083 "parser_cocci_menhir.ml"
-        ) = Obj.magic r in
-        let d : 'tv_struct_decl_list = Obj.magic d in
-        let l : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 12089 "parser_cocci_menhir.ml"
-        ) = Obj.magic l in
-        let s : 'tv_struct_or_union = Obj.magic s in
-        let _startpos = _startpos_s_ in
-        let _endpos = _endpos_r_ in
-        let _v : 'tv_generic_ctype_full = let i =
-          
-# 39 "standard.mly"
-    ( None )
-# 12098 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 474 "parser_cocci_menhir.mly"
-  ( (if i = None && !Data.in_iso
-          then failwith "structures must be named in the iso file");
-           Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
-                                        P.clt2mcode "{" l,
-                                        d, P.clt2mcode "}" r)) )
-# 12108 "parser_cocci_menhir.ml"
+        let _3 : 'tv_dep = Obj.magic _3 in
+        let _1 : 'tv_dep = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_dep = 
+# 231 "parser_cocci_menhir.mly"
+                   ( Ast.AndDep(_1, _3) )
+# 13881 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12116,63 +13889,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = r;
-          MenhirLib.EngineTypes.startp = _startpos_r_;
-          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = l;
-              MenhirLib.EngineTypes.startp = _startpos_l_;
-              MenhirLib.EngineTypes.endp = _endpos_l_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = x0;
-                MenhirLib.EngineTypes.startp = _startpos_x0_;
-                MenhirLib.EngineTypes.endp = _endpos_x0_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = s;
-                  MenhirLib.EngineTypes.startp = _startpos_s_;
-                  MenhirLib.EngineTypes.endp = _endpos_s_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let r : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 12149 "parser_cocci_menhir.ml"
-        ) = Obj.magic r in
-        let d : 'tv_struct_decl_list = Obj.magic d in
-        let l : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 12155 "parser_cocci_menhir.ml"
-        ) = Obj.magic l in
-        let x0 : 'tv_ident = Obj.magic x0 in
-        let s : 'tv_struct_or_union = Obj.magic s in
-        let _startpos = _startpos_s_ in
-        let _endpos = _endpos_r_ in
-        let _v : 'tv_generic_ctype_full = let i =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 12166 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 474 "parser_cocci_menhir.mly"
-  ( (if i = None && !Data.in_iso
-          then failwith "structures must be named in the iso file");
-           Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
-                                        P.clt2mcode "{" l,
-                                        d, P.clt2mcode "}" r)) )
-# 12176 "parser_cocci_menhir.ml"
+        let _3 : 'tv_dep = Obj.magic _3 in
+        let _1 : 'tv_dep = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_dep = 
+# 232 "parser_cocci_menhir.mly"
+                   ( Ast.OrDep (_1, _3) )
+# 13915 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12183,54 +13922,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = r;
-          MenhirLib.EngineTypes.startp = _startpos_r_;
-          MenhirLib.EngineTypes.endp = _endpos_r_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = l;
-              MenhirLib.EngineTypes.startp = _startpos_l_;
-              MenhirLib.EngineTypes.endp = _endpos_l_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = s;
-                MenhirLib.EngineTypes.startp = _startpos_s_;
-                MenhirLib.EngineTypes.endp = _endpos_s_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
-            };
-          } = _menhir_stack in
-        let r : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 12212 "parser_cocci_menhir.ml"
-        ) = Obj.magic r in
-        let d : 'tv_struct_decl_list = Obj.magic d in
-        let l : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 12218 "parser_cocci_menhir.ml"
-        ) = Obj.magic l in
-        let s : (
-# 64 "parser_cocci_menhir.mly"
-       (Parse_aux.info)
-# 12223 "parser_cocci_menhir.ml"
-        ) = Obj.magic s in
-        let _startpos = _startpos_s_ in
-        let _endpos = _endpos_r_ in
-        let _v : 'tv_generic_ctype_full = 
-# 480 "parser_cocci_menhir.mly"
-  ( let (nm,pure,clt) = s in
-        let ty =
-          Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in
-        Ast0.wrap
-          (Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) )
-# 12234 "parser_cocci_menhir.ml"
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_depends = 
+# 226 "parser_cocci_menhir.mly"
+                           ( Ast.NoDep )
+# 13932 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12242,42 +13940,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = p;
-          MenhirLib.EngineTypes.startp = _startpos_p_;
-          MenhirLib.EngineTypes.endp = _endpos_p_;
+          MenhirLib.EngineTypes.semv = parents;
+          MenhirLib.EngineTypes.startp = _startpos_parents_;
+          MenhirLib.EngineTypes.endp = _endpos_parents_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.startp = _startpos__2_;
             MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = r;
-              MenhirLib.EngineTypes.startp = _startpos_r_;
-              MenhirLib.EngineTypes.endp = _endpos_r_;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let p : (
-# 59 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 12264 "parser_cocci_menhir.ml"
-        ) = Obj.magic p in
-        let r : (
-# 47 "parser_cocci_menhir.mly"
-      (string)
-# 12269 "parser_cocci_menhir.ml"
-        ) = Obj.magic r in
-        let _startpos = _startpos_r_ in
-        let _endpos = _endpos_p_ in
-        let _v : 'tv_generic_ctype_full = 
-# 486 "parser_cocci_menhir.mly"
-  ( let nm = (r,P.id2name p) in
-        (* this is only possible when we are in a metavar decl.  Otherwise,
-           it will be represented already as a MetaType *)
-        let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
-        Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
-                                Ast0.Impure (*will be ignored*))) )
-# 12281 "parser_cocci_menhir.ml"
+        let parents : 'tv_dep = Obj.magic parents in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_parents_ in
+        let _v : 'tv_depends = 
+# 227 "parser_cocci_menhir.mly"
+                           ( parents )
+# 13964 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12289,23 +13972,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = p;
-          MenhirLib.EngineTypes.startp = _startpos_p_;
-          MenhirLib.EngineTypes.endp = _endpos_p_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let p : (
-# 59 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 12302 "parser_cocci_menhir.ml"
-        ) = Obj.magic p in
-        let _startpos = _startpos_p_ in
-        let _endpos = _endpos_p_ in
-        let _v : 'tv_generic_ctype_full = 
-# 493 "parser_cocci_menhir.mly"
-  ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
-# 12309 "parser_cocci_menhir.ml"
+        let _2 : 'tv_ident = Obj.magic _2 in
+        let _1 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 13991 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_designator = 
+# 1183 "parser_cocci_menhir.mly"
+     ( Ast0.DesignatorField (P.clt2mcode "." _1,_2) )
+# 13998 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12317,50 +14006,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = p;
-          MenhirLib.EngineTypes.startp = _startpos_p_;
-          MenhirLib.EngineTypes.endp = _endpos_p_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = r00;
-            MenhirLib.EngineTypes.startp = _startpos_r00_;
-            MenhirLib.EngineTypes.endp = _endpos_r00_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let p : (
-# 64 "parser_cocci_menhir.mly"
-       (Parse_aux.info)
-# 12335 "parser_cocci_menhir.ml"
-        ) = Obj.magic p in
-        let r00 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 12340 "parser_cocci_menhir.ml"
-        ) = Obj.magic r00 in
-        let _startpos = _startpos_r00_ in
-        let _endpos = _endpos_p_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          let r0 = r00 in
-          let s =
-            let r = r0 in
-            
-# 575 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,x)) )
-# 12351 "parser_cocci_menhir.ml"
-            
-          in
-          
-# 580 "parser_cocci_menhir.mly"
-                  ( function x -> s (Some x) )
-# 12357 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 495 "parser_cocci_menhir.mly"
-  ( let (nm,pure,clt) = p in
-        q (Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure))) )
-# 12364 "parser_cocci_menhir.ml"
+        let _3 : (
+# 105 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14029 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_eexpr = Obj.magic _2 in
+        let _1 : (
+# 105 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14035 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_designator = 
+# 1185 "parser_cocci_menhir.mly"
+     ( Ast0.DesignatorIndex (P.clt2mcode "[" _1,_2,P.clt2mcode "]" _3) )
+# 14042 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12372,50 +14050,56 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = p;
-          MenhirLib.EngineTypes.startp = _startpos_p_;
-          MenhirLib.EngineTypes.endp = _endpos_p_;
+          MenhirLib.EngineTypes.semv = _5;
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = r00;
-            MenhirLib.EngineTypes.startp = _startpos_r00_;
-            MenhirLib.EngineTypes.endp = _endpos_r00_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _4;
+            MenhirLib.EngineTypes.startp = _startpos__4_;
+            MenhirLib.EngineTypes.endp = _endpos__4_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = _3;
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = _2;
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = _1;
+                  MenhirLib.EngineTypes.startp = _startpos__1_;
+                  MenhirLib.EngineTypes.endp = _endpos__1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let p : (
-# 64 "parser_cocci_menhir.mly"
-       (Parse_aux.info)
-# 12390 "parser_cocci_menhir.ml"
-        ) = Obj.magic p in
-        let r00 : (
-# 51 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 12395 "parser_cocci_menhir.ml"
-        ) = Obj.magic r00 in
-        let _startpos = _startpos_r00_ in
-        let _endpos = _endpos_p_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          let r0 = r00 in
-          let s =
-            let r = r0 in
-            
-# 577 "parser_cocci_menhir.mly"
-   ( function x -> Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,x)) )
-# 12406 "parser_cocci_menhir.ml"
-            
-          in
-          
-# 580 "parser_cocci_menhir.mly"
-                  ( function x -> s (Some x) )
-# 12412 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 495 "parser_cocci_menhir.mly"
-  ( let (nm,pure,clt) = p in
-        q (Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure))) )
-# 12419 "parser_cocci_menhir.ml"
+        let _5 : (
+# 105 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14083 "parser_cocci_menhir.ml"
+        ) = Obj.magic _5 in
+        let _4 : 'tv_eexpr = Obj.magic _4 in
+        let _3 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14089 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_eexpr = Obj.magic _2 in
+        let _1 : (
+# 105 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14095 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_designator = 
+# 1187 "parser_cocci_menhir.mly"
+     ( Ast0.DesignatorRange (P.clt2mcode "[" _1,_2,P.clt2mcode "..." _3,
+                            _4,P.clt2mcode "]" _5) )
+# 14103 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12428,54 +14112,46 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = p;
-          MenhirLib.EngineTypes.startp = _startpos_p_;
-          MenhirLib.EngineTypes.endp = _endpos_p_;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let p : (
-# 64 "parser_cocci_menhir.mly"
-       (Parse_aux.info)
-# 12440 "parser_cocci_menhir.ml"
-        ) = Obj.magic p in
-        let _startpos = _startpos_p_ in
-        let _endpos = _endpos_p_ in
-        let _v : 'tv_generic_ctype_full = let q =
-          
-# 581 "parser_cocci_menhir.mly"
-                ( function x -> x )
-# 12448 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 495 "parser_cocci_menhir.mly"
-  ( let (nm,pure,clt) = p in
-        q (Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure))) )
-# 12455 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
+        let _1 : 'tv_basic_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_dexpr = 
+# 1264 "parser_cocci_menhir.mly"
+                                          ( _1 )
+# 14127 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
           MenhirLib.EngineTypes.endp = _endpos;
           MenhirLib.EngineTypes.next = _menhir_stack;
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let _1 : 'tv_pure_ident = Obj.magic _1 in
+        let _2 : 'tv_separated_nonempty_list_TComma_pure_ident_ = Obj.magic _2 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_ident = 
-# 1484 "parser_cocci_menhir.mly"
-         ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
-# 12479 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_disable = 
+# 245 "parser_cocci_menhir.mly"
+                                                      ( List.map P.id2name _2 )
+# 14155 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12494,17 +14170,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 61 "parser_cocci_menhir.mly"
-       (Parse_aux.idinfo)
-# 12500 "parser_cocci_menhir.ml"
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14176 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_ident = 
-# 1486 "parser_cocci_menhir.mly"
-         ( let (nm,constraints,pure,clt) = _1 in
-         Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) )
-# 12508 "parser_cocci_menhir.ml"
+        let _v : 'tv_dot_expressions = 
+# 1273 "parser_cocci_menhir.mly"
+            ( Ast0.wrap(Ast0.Edots(P.clt2mcode "..." _1,None)) )
+# 14183 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12517,18 +14192,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = i;
-          MenhirLib.EngineTypes.startp = _startpos_i_;
-          MenhirLib.EngineTypes.endp = _endpos_i_;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let _startpos = _startpos_i_ in
-        let _endpos = _endpos_i_ in
-        let _v : 'tv_ident_or_const = 
-# 1438 "parser_cocci_menhir.mly"
-                    ( Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i)))) )
-# 12532 "parser_cocci_menhir.ml"
+        let _1 : 'tv_nest_expressions = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_dot_expressions = 
+# 1274 "parser_cocci_menhir.mly"
+                   ( _1 )
+# 14207 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12546,18 +14221,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 12553 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_ident_or_const = 
-# 1440 "parser_cocci_menhir.mly"
-  ( let (x,clt) = _1 in
-        Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
-# 12561 "parser_cocci_menhir.ml"
+        let _v : 'tv_dparam = 
+# 812 "parser_cocci_menhir.mly"
+              ( Ast0.wrap(Ast0.DParam _1) )
+# 14231 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12569,27 +14239,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = d;
+          MenhirLib.EngineTypes.startp = _startpos_d_;
+          MenhirLib.EngineTypes.endp = _endpos_d_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 12586 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_incl = 
-# 252 "parser_cocci_menhir.mly"
-                      ( Common.Left(P.id2name _2) )
-# 12593 "parser_cocci_menhir.ml"
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14252 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_d_ in
+        let _v : 'tv_edots_when_TEllipsis_eexpr_ = 
+# 2015 "parser_cocci_menhir.mly"
+                                                  ( (d,None) )
+# 14259 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12601,27 +14267,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = w;
+            MenhirLib.EngineTypes.startp = _startpos_w_;
+            MenhirLib.EngineTypes.endp = _endpos_w_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = d;
+                  MenhirLib.EngineTypes.startp = _startpos_d_;
+                  MenhirLib.EngineTypes.endp = _endpos_d_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : (
-# 78 "parser_cocci_menhir.mly"
-       (string)
-# 12618 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_incl = 
-# 253 "parser_cocci_menhir.mly"
-                      ( Common.Right _2 )
-# 12625 "parser_cocci_menhir.ml"
+        let w : 'tv_eexpr = Obj.magic w in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14298 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_edots_when_TEllipsis_eexpr_ = 
+# 2016 "parser_cocci_menhir.mly"
+                                                  ( (d,Some w) )
+# 14305 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12633,27 +14313,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = d;
+          MenhirLib.EngineTypes.startp = _startpos_d_;
+          MenhirLib.EngineTypes.endp = _endpos_d_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_list_incl_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 145 "parser_cocci_menhir.mly"
-      ((string,string) Common.either list)
-# 12653 "parser_cocci_menhir.ml"
-        ) = 
-# 248 "parser_cocci_menhir.mly"
-                       ( _1 )
-# 12657 "parser_cocci_menhir.ml"
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14326 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_d_ in
+        let _v : 'tv_edots_when_TEllipsis_enum_decl_one_ = 
+# 2015 "parser_cocci_menhir.mly"
+                                                  ( (d,None) )
+# 14333 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12665,27 +14341,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = w;
+            MenhirLib.EngineTypes.startp = _startpos_w_;
+            MenhirLib.EngineTypes.endp = _endpos_w_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = d;
+                  MenhirLib.EngineTypes.startp = _startpos_d_;
+                  MenhirLib.EngineTypes.endp = _endpos_d_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let _1 : 'tv_list_incl_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 145 "parser_cocci_menhir.mly"
-      ((string,string) Common.either list)
-# 12685 "parser_cocci_menhir.ml"
-        ) = 
-# 249 "parser_cocci_menhir.mly"
-                       ( _1 )
-# 12689 "parser_cocci_menhir.ml"
+        let w : 'tv_enum_decl_one = Obj.magic w in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14372 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_edots_when_TEllipsis_enum_decl_one_ = 
+# 2016 "parser_cocci_menhir.mly"
+                                                  ( (d,Some w) )
+# 14379 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12698,30 +14388,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = d;
+          MenhirLib.EngineTypes.startp = _startpos_d_;
+          MenhirLib.EngineTypes.endp = _endpos_d_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 79 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 12710 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_includes = 
-# 624 "parser_cocci_menhir.mly"
-    ( Ast0.wrap
-             (Ast0.Include(P.clt2mcode "#include" (P.drop_aft (P.id2clt _1)),
-                           let (arity,ln,lln,offset,col,strbef,straft,pos) =
-                             P.id2clt _1 in
-                           let clt =
-                             (arity,ln,lln,offset,0,strbef,straft,pos) in
-                           P.clt2mcode
-                             (Ast.Local (Parse_aux.str2inc (P.id2name _1)))
-                             (P.drop_bef clt))) )
-# 12725 "parser_cocci_menhir.ml"
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14400 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_d_ in
+        let _v : 'tv_edots_when_TEllipsis_initialize_ = 
+# 2015 "parser_cocci_menhir.mly"
+                                                  ( (d,None) )
+# 14407 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12733,31 +14415,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : (
-# 79 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 12746 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_includes = 
-# 634 "parser_cocci_menhir.mly"
-    ( Ast0.wrap
-             (Ast0.Include(P.clt2mcode "#include" (P.drop_aft (P.id2clt _1)),
-                           let (arity,ln,lln,offset,col,strbef,straft,pos) =
-                             P.id2clt _1 in
-                           let clt =
-                             (arity,ln,lln,offset,0,strbef,straft,pos) in
-                           P.clt2mcode
-                             (Ast.NonLocal (Parse_aux.str2inc (P.id2name _1)))
-                             (P.drop_bef clt))) )
-# 12761 "parser_cocci_menhir.ml"
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = w;
+            MenhirLib.EngineTypes.startp = _startpos_w_;
+            MenhirLib.EngineTypes.endp = _endpos_w_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = d;
+                  MenhirLib.EngineTypes.startp = _startpos_d_;
+                  MenhirLib.EngineTypes.endp = _endpos_d_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let w : 'tv_initialize = Obj.magic w in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14446 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_edots_when_TEllipsis_initialize_ = 
+# 2016 "parser_cocci_menhir.mly"
+                                                  ( (d,Some w) )
+# 14453 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12769,30 +14461,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = d;
-              MenhirLib.EngineTypes.startp = _startpos_d_;
-              MenhirLib.EngineTypes.endp = _endpos_d_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = d;
+          MenhirLib.EngineTypes.startp = _startpos_d_;
+          MenhirLib.EngineTypes.endp = _endpos_d_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let t : 'tv_ctype = Obj.magic t in
-        let d : 'tv_defineop = Obj.magic d in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14474 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
         let _startpos = _startpos_d_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_includes = 
-# 644 "parser_cocci_menhir.mly"
-    ( let ty = Ast0.wrap(Ast0.TopExp(Ast0.wrap(Ast0.TypeExp(t)))) in
-      d (Ast0.wrap(Ast0.DOTS([ty]))) )
-# 12796 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_d_ in
+        let _v : 'tv_edots_when_TEllipsis_struct_decl_one_ = 
+# 2015 "parser_cocci_menhir.mly"
+                                                  ( (d,None) )
+# 14481 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12804,37 +14489,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = b;
-            MenhirLib.EngineTypes.startp = _startpos_b_;
-            MenhirLib.EngineTypes.endp = _endpos_b_;
+            MenhirLib.EngineTypes.semv = w;
+            MenhirLib.EngineTypes.startp = _startpos_w_;
+            MenhirLib.EngineTypes.endp = _endpos_w_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = d;
+                  MenhirLib.EngineTypes.startp = _startpos_d_;
+                  MenhirLib.EngineTypes.endp = _endpos_d_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
               };
             };
           } = _menhir_stack in
-        let b : 'tv_toplevel_seq_start_toplevel_after_dots_ = Obj.magic b in
-        let _1 : 'tv_defineop = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_includes = 
-# 647 "parser_cocci_menhir.mly"
-    ( let body =
-       match b with
-         [e] ->
-           (match Ast0.unwrap e with
-             Ast0.Exp(e1) ->
-               [Ast0.rewrap e (Ast0.TopExp(Ast0.set_arg_exp (e1)))]
-           | _ -> b)
-       | _ -> b in
-      _1 (Ast0.wrap(Ast0.DOTS(body))) )
-# 12838 "parser_cocci_menhir.ml"
+        let w : 'tv_struct_decl_one = Obj.magic w in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 14520 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_edots_when_TEllipsis_struct_decl_one_ = 
+# 2016 "parser_cocci_menhir.mly"
+                                                  ( (d,Some w) )
+# 14527 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12852,13 +14541,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_eexpr = Obj.magic _1 in
+        let _1 : 'tv_basic_expr_eexpr_dot_expressions_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_initialize = 
-# 1059 "parser_cocci_menhir.mly"
-      ( Ast0.wrap(Ast0.InitExpr(_1)) )
-# 12862 "parser_cocci_menhir.ml"
+        let _v : 'tv_eexpr = 
+# 1262 "parser_cocci_menhir.mly"
+                                         ( _1 )
+# 14551 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12870,39 +14559,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _3 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 12893 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_initialize_list = Obj.magic _2 in
-        let _1 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 12899 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_empty_list_start_aexpr_TEllipsis_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_initialize = 
-# 1061 "parser_cocci_menhir.mly"
-      ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) )
-# 12906 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_eexpr_list_option = 
+# 1995 "parser_cocci_menhir.mly"
+      ( Ast0.wrap
+         (Ast0.DOTS
+            (_1
+               (fun _ d -> Ast0.wrap(Ast0.Edots(P.clt2mcode "..." d,None)))
+               (fun c -> Ast0.EComma c))) )
+# 14579 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12913,36 +14586,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
-          } = _menhir_stack in
-        let _2 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 12932 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 12937 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_initialize = 
-# 1063 "parser_cocci_menhir.mly"
-      ( Ast0.wrap
-         (Ast0.InitList(P.clt2mcode "{" _1,Ast0.wrap(Ast0.DOTS []),
-                        P.clt2mcode "}" _2)) )
-# 12946 "parser_cocci_menhir.ml"
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_empty_list_start_aexpr_TEllipsis_ = 
+# 1757 "parser_cocci_menhir.mly"
+              ( fun build_dots build_comma -> [] )
+# 14596 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12960,13 +14610,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
+        let _1 : 'tv_nonempty_list_start_aexpr_TEllipsis_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_initialize2 = 
-# 1070 "parser_cocci_menhir.mly"
-                            ( Ast0.wrap(Ast0.InitExpr(_1)) )
-# 12970 "parser_cocci_menhir.ml"
+        let _v : 'tv_empty_list_start_aexpr_TEllipsis_ = 
+# 1758 "parser_cocci_menhir.mly"
+                                   ( _1 )
+# 14620 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_empty_list_start_dparam_TEllipsis_ = 
+# 1757 "parser_cocci_menhir.mly"
+              ( fun build_dots build_comma -> [] )
+# 14637 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -12978,39 +14645,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _3 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13001 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_initialize_list = Obj.magic _2 in
-        let _1 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13007 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_nonempty_list_start_dparam_TEllipsis_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_initialize2 = 
-# 1072 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) )
-# 13014 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_empty_list_start_dparam_TEllipsis_ = 
+# 1758 "parser_cocci_menhir.mly"
+                                   ( _1 )
+# 14661 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_empty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1757 "parser_cocci_menhir.mly"
+              ( fun build_dots build_comma -> [] )
+# 14678 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13022,35 +14686,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13040 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13045 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_initialize2 = 
-# 1074 "parser_cocci_menhir.mly"
-    ( Ast0.wrap
-       (Ast0.InitList(P.clt2mcode "{" _1,Ast0.wrap(Ast0.DOTS []),
-                      P.clt2mcode "}" _2)) )
-# 13054 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_empty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1758 "parser_cocci_menhir.mly"
+                                   ( _1 )
+# 14702 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13061,46 +14709,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _4;
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _3;
-            MenhirLib.EngineTypes.startp = _startpos__3_;
-            MenhirLib.EngineTypes.endp = _endpos__3_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _2;
-              MenhirLib.EngineTypes.startp = _startpos__2_;
-              MenhirLib.EngineTypes.endp = _endpos__2_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = _1;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
-            };
-          } = _menhir_stack in
-        let _4 : 'tv_initialize2 = Obj.magic _4 in
-        let _3 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13091 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_ident = Obj.magic _2 in
-        let _1 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13097 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_initialize2 = 
-# 1079 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.InitGccDotName(P.clt2mcode "." _1,_2,P.clt2mcode "=" _3,_4)) )
-# 13104 "parser_cocci_menhir.ml"
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_empty_list_start_one_dec_decl__TEllipsis_ = 
+# 1757 "parser_cocci_menhir.mly"
+              ( fun build_dots build_comma -> [] )
+# 14719 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13112,35 +14727,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _3 : 'tv_initialize2 = Obj.magic _3 in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13136 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_ident = Obj.magic _1 in
+        let _1 : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_initialize2 = 
-# 1081 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.InitGccName(_1,P.clt2mcode ":" _2,_3)) )
-# 13144 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_empty_list_start_one_dec_decl__TEllipsis_ = 
+# 1758 "parser_cocci_menhir.mly"
+                                   ( _1 )
+# 14743 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13151,57 +14750,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _5;
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _4;
-            MenhirLib.EngineTypes.startp = _startpos__4_;
-            MenhirLib.EngineTypes.endp = _endpos__4_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _3;
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = _2;
-                MenhirLib.EngineTypes.startp = _startpos__2_;
-                MenhirLib.EngineTypes.endp = _endpos__2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = _1;
-                  MenhirLib.EngineTypes.startp = _startpos__1_;
-                  MenhirLib.EngineTypes.endp = _endpos__1_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
-            };
-          } = _menhir_stack in
-        let _5 : 'tv_initialize2 = Obj.magic _5 in
-        let _4 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13186 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : (
-# 101 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13191 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_eexpr = Obj.magic _2 in
-        let _1 : (
-# 101 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13197 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_initialize2 = 
-# 1083 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.InitGccIndex(P.clt2mcode "[" _1,_2,P.clt2mcode "]" _3,
-                                 P.clt2mcode "=" _4,_5)) )
-# 13205 "parser_cocci_menhir.ml"
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_empty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
+# 1757 "parser_cocci_menhir.mly"
+              ( fun build_dots build_comma -> [] )
+# 14760 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13213,72 +14768,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _7;
-          MenhirLib.EngineTypes.startp = _startpos__7_;
-          MenhirLib.EngineTypes.endp = _endpos__7_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _6;
-            MenhirLib.EngineTypes.startp = _startpos__6_;
-            MenhirLib.EngineTypes.endp = _endpos__6_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _5;
-              MenhirLib.EngineTypes.startp = _startpos__5_;
-              MenhirLib.EngineTypes.endp = _endpos__5_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = _4;
-                MenhirLib.EngineTypes.startp = _startpos__4_;
-                MenhirLib.EngineTypes.endp = _endpos__4_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = _3;
-                  MenhirLib.EngineTypes.startp = _startpos__3_;
-                  MenhirLib.EngineTypes.endp = _endpos__3_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = _2;
-                    MenhirLib.EngineTypes.startp = _startpos__2_;
-                    MenhirLib.EngineTypes.endp = _endpos__2_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.semv = _1;
-                      MenhirLib.EngineTypes.startp = _startpos__1_;
-                      MenhirLib.EngineTypes.endp = _endpos__1_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
-                    };
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _7 : 'tv_initialize2 = Obj.magic _7 in
-        let _6 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13257 "parser_cocci_menhir.ml"
-        ) = Obj.magic _6 in
-        let _5 : (
-# 101 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13262 "parser_cocci_menhir.ml"
-        ) = Obj.magic _5 in
-        let _4 : 'tv_eexpr = Obj.magic _4 in
-        let _3 : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13268 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_eexpr = Obj.magic _2 in
-        let _1 : (
-# 101 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13274 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__7_ in
-        let _v : 'tv_initialize2 = 
-# 1086 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.InitGccRange(P.clt2mcode "[" _1,_2,P.clt2mcode "..." _3,
-                                 _4,P.clt2mcode "]" _5,P.clt2mcode "=" _6,_7)) )
-# 13282 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_empty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
+# 1758 "parser_cocci_menhir.mly"
+                                   ( _1 )
+# 14784 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13296,13 +14798,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_initialize_list_start = Obj.magic _1 in
+        let _1 : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_initialize_list = 
-# 1090 "parser_cocci_menhir.mly"
-                         ( Ast0.wrap(Ast0.DOTS(_1)) )
-# 13306 "parser_cocci_menhir.ml"
+        let _v : 'tv_enum_decl_list = 
+# 690 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.DOTS(_1 P.mkedots (fun c -> Ast0.EComma c))) )
+# 14808 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13314,29 +14816,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 13332 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_initialize2 = Obj.magic _1 in
+        let _1 : 'tv_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_initialize_list_start = 
-# 1093 "parser_cocci_menhir.mly"
-                     ( [_1;Ast0.wrap(Ast0.IComma(P.clt2mcode "," _2))] )
-# 13340 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_enum_decl_one = 
+# 662 "parser_cocci_menhir.mly"
+               ( Ast0.wrap(Ast0.Ident(_1)) )
+# 14832 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13364,19 +14856,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               };
             };
           } = _menhir_stack in
-        let _3 : 'tv_initialize_list_start = Obj.magic _3 in
+        let _3 : 'tv_enum_val = Obj.magic _3 in
         let _2 : (
-# 106 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 13372 "parser_cocci_menhir.ml"
+# 14864 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
-        let _1 : 'tv_initialize2 = Obj.magic _1 in
+        let _1 : 'tv_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
-        let _v : 'tv_initialize_list_start = 
-# 1095 "parser_cocci_menhir.mly"
-    ( _1::Ast0.wrap(Ast0.IComma(P.clt2mcode "," _2))::_3 )
-# 13380 "parser_cocci_menhir.ml"
+        let _v : 'tv_enum_decl_one = 
+# 664 "parser_cocci_menhir.mly"
+ ( let id = Ast0.wrap(Ast0.Ident(_1)) in
+       Ast0.wrap
+         (Ast0.Assignment
+            (id,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,
+             false)) )
+# 14876 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13388,26 +14884,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = r;
-          MenhirLib.EngineTypes.startp = _startpos_r_;
-          MenhirLib.EngineTypes.endp = _endpos_r_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in
-        let d : 'tv_edots_when_TEllipsis_initialize_ = Obj.magic d in
-        let _startpos = _startpos_d_ in
-        let _endpos = _endpos_r_ in
-        let _v : 'tv_initialize_list_start = 
-# 1098 "parser_cocci_menhir.mly"
-    ( (P.mkidots "..." d)::
-      (List.concat(List.map (function x -> x (P.mkidots "...")) r)) )
-# 13411 "parser_cocci_menhir.ml"
+        let _1 : 'tv_ident = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_enum_val = 
+# 671 "parser_cocci_menhir.mly"
+            ( Ast0.wrap(Ast0.Ident(_1)) )
+# 14900 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13420,16 +14909,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
           MenhirLib.EngineTypes.startp = _startpos__1_;
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 14921 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_invalid = 
-# 1191 "parser_cocci_menhir.mly"
-           ( raise (Semantic_cocci.Semantic "not matchable") )
-# 13433 "parser_cocci_menhir.ml"
+        let _v : 'tv_enum_val = 
+# 673 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
+# 14929 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13440,13 +14936,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_is_expression = 
-# 244 "parser_cocci_menhir.mly"
-              ( false )
-# 13450 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 14950 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_enum_val = 
+# 676 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
+# 14959 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13459,16 +14968,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
           MenhirLib.EngineTypes.startp = _startpos__1_;
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 14980 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_is_expression = 
-# 245 "parser_cocci_menhir.mly"
-              ( true )
-# 13472 "parser_cocci_menhir.ml"
+        let _v : 'tv_enum_val = 
+# 680 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
+# 14989 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13480,23 +14997,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let t : 'tv_ctype = Obj.magic t in
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 15010 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_ctype_ = 
-# 1834 "parser_cocci_menhir.mly"
-                ( Common.Left t )
-# 13500 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_enum_val = 
+# 684 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
+# 15019 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13508,23 +15027,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let t : 'tv_ctype = Obj.magic t in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_ctype_ = 
-# 1835 "parser_cocci_menhir.mly"
-                     ( Common.Right t )
-# 13528 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_exists = 
+# 248 "parser_cocci_menhir.mly"
+          ( Ast.Exists )
+# 15041 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13536,23 +15049,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let t : 'tv_decl_var = Obj.magic t in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_decl_var_ = 
-# 1834 "parser_cocci_menhir.mly"
-                ( Common.Left t )
-# 13556 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_exists = 
+# 249 "parser_cocci_menhir.mly"
+          ( Ast.Forall )
+# 15063 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13563,24 +15070,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
-          } = _menhir_stack in
-        let t : 'tv_decl_var = Obj.magic t in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_decl_var_ = 
-# 1835 "parser_cocci_menhir.mly"
-                     ( Common.Right t )
-# 13584 "parser_cocci_menhir.ml"
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_exists = 
+# 250 "parser_cocci_menhir.mly"
+          ( Ast.Undetermined )
+# 15080 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13592,23 +15088,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let t : 'tv_dexpr = Obj.magic t in
+        let _1 : 'tv_basic_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_dexpr_ = 
-# 1834 "parser_cocci_menhir.mly"
-                ( Common.Left t )
-# 13612 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_expr = 
+# 1260 "parser_cocci_menhir.mly"
+                                ( _1 )
+# 15104 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13620,23 +15112,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = r;
+          MenhirLib.EngineTypes.startp = _startpos_r_;
+          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let t : 'tv_dexpr = Obj.magic t in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_dexpr_ = 
-# 1835 "parser_cocci_menhir.mly"
-                     ( Common.Right t )
-# 13640 "parser_cocci_menhir.ml"
+        let r : 'tv_no_dot_start_end_dexpr_edots_when_TEllipsis_eexpr__ = Obj.magic r in
+        let _startpos = _startpos_r_ in
+        let _endpos = _endpos_r_ in
+        let _v : 'tv_expr_dots_TEllipsis_ = 
+# 1444 "parser_cocci_menhir.mly"
+                                                       ( r )
+# 15128 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13648,23 +15136,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let t : 'tv_nest_start = Obj.magic t in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_nest_start_ = 
-# 1834 "parser_cocci_menhir.mly"
-                ( Common.Left t )
-# 13668 "parser_cocci_menhir.ml"
+        let m : 'tv_nonempty_list_TMul_ = Obj.magic m in
+        let _startpos = _startpos_m_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_expression_type = 
+# 469 "parser_cocci_menhir.mly"
+                        ( P.ty_pointerify Type_cocci.Unknown m )
+# 15152 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13676,9 +15160,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
             MenhirLib.EngineTypes.startp = _startpos__1_;
@@ -13686,13 +15170,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let t : 'tv_nest_start = Obj.magic t in
+        let m : 'tv_list_TMul_ = Obj.magic m in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_nest_start_ = 
-# 1835 "parser_cocci_menhir.mly"
-                     ( Common.Right t )
-# 13696 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_expression_type = 
+# 471 "parser_cocci_menhir.mly"
+    ( P.ty_pointerify (Type_cocci.EnumName Type_cocci.NoName) m )
+# 15180 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13704,9 +15188,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
             MenhirLib.EngineTypes.startp = _startpos__1_;
@@ -13714,13 +15198,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let t : 'tv_single_statement = Obj.magic t in
+        let m : 'tv_list_TMul_ = Obj.magic m in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_single_statement_ = 
-# 1834 "parser_cocci_menhir.mly"
-                ( Common.Left t )
-# 13724 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_expression_type = 
+# 473 "parser_cocci_menhir.mly"
+    ( P.ty_pointerify
+       (Type_cocci.StructUnionName (Type_cocci.Struct,Type_cocci.NoName)) m )
+# 15209 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13732,9 +15217,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
             MenhirLib.EngineTypes.startp = _startpos__1_;
@@ -13742,13 +15227,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let t : 'tv_single_statement = Obj.magic t in
+        let m : 'tv_list_TMul_ = Obj.magic m in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_iso_single_statement_ = 
-# 1835 "parser_cocci_menhir.mly"
-                     ( Common.Right t )
-# 13752 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_expression_type = 
+# 476 "parser_cocci_menhir.mly"
+    ( P.ty_pointerify
+       (Type_cocci.StructUnionName (Type_cocci.Union,Type_cocci.NoName)) m )
+# 15238 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_extends = 
+# 221 "parser_cocci_menhir.mly"
+                                                  ( () )
+# 15255 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13760,37 +15263,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = el;
-            MenhirLib.EngineTypes.startp = _startpos_el_;
-            MenhirLib.EngineTypes.endp = _endpos_el_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = e1;
-              MenhirLib.EngineTypes.startp = _startpos_e1_;
-              MenhirLib.EngineTypes.endp = _endpos_e1_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
+          MenhirLib.EngineTypes.semv = parent;
+          MenhirLib.EngineTypes.startp = _startpos_parent_;
+          MenhirLib.EngineTypes.endp = _endpos_parent_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let el : 'tv_list_iso_dexpr__ = Obj.magic el in
-        let e1 : 'tv_dexpr = Obj.magic e1 in
+        let parent : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 15280 "parser_cocci_menhir.ml"
+        ) = Obj.magic parent in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : (
-# 161 "parser_cocci_menhir.mly"
-      (Ast0_cocci.anything list list)
-# 13790 "parser_cocci_menhir.ml"
-        ) = 
-# 1806 "parser_cocci_menhir.mly"
-    ( P.iso_adjust (function x -> Ast0.ExprTag x) e1 el )
-# 13794 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_parent_ in
+        let _v : 'tv_extends = 
+# 223 "parser_cocci_menhir.mly"
+    ( !Data.install_bindings (parent) )
+# 15287 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13802,37 +15295,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = el;
-            MenhirLib.EngineTypes.startp = _startpos_el_;
-            MenhirLib.EngineTypes.endp = _endpos_el_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = e1;
-              MenhirLib.EngineTypes.startp = _startpos_e1_;
-              MenhirLib.EngineTypes.endp = _endpos_e1_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let el : 'tv_list_iso_dexpr__ = Obj.magic el in
-        let e1 : 'tv_dexpr = Obj.magic e1 in
+        let _2 : (
+# 86 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 15313 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : (
+# 86 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 15318 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : (
-# 161 "parser_cocci_menhir.mly"
-      (Ast0_cocci.anything list list)
-# 13832 "parser_cocci_menhir.ml"
-        ) = 
-# 1808 "parser_cocci_menhir.mly"
-    ( P.iso_adjust (function x -> Ast0.ArgExprTag x) e1 el )
-# 13836 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_filespec = 
+# 727 "parser_cocci_menhir.mly"
+    ( [Ast0.wrap
+         (Ast0.FILEINFO(P.id2mcode _1,
+                        P.id2mcode _2))] )
+# 15327 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13843,38 +15334,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = el;
-            MenhirLib.EngineTypes.startp = _startpos_el_;
-            MenhirLib.EngineTypes.endp = _endpos_el_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = e1;
-              MenhirLib.EngineTypes.startp = _startpos_e1_;
-              MenhirLib.EngineTypes.endp = _endpos_e1_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
-            };
-          } = _menhir_stack in
-        let el : 'tv_list_iso_dexpr__ = Obj.magic el in
-        let e1 : 'tv_dexpr = Obj.magic e1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : (
-# 161 "parser_cocci_menhir.mly"
-      (Ast0_cocci.anything list list)
-# 13874 "parser_cocci_menhir.ml"
-        ) = 
-# 1810 "parser_cocci_menhir.mly"
-    ( P.iso_adjust (function x -> Ast0.TestExprTag x) e1 el )
-# 13878 "parser_cocci_menhir.ml"
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_fninfo = 
+# 848 "parser_cocci_menhir.mly"
+                ( [] )
+# 15344 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13886,37 +15352,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = sl;
-            MenhirLib.EngineTypes.startp = _startpos_sl_;
-            MenhirLib.EngineTypes.endp = _endpos_sl_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = s1;
-              MenhirLib.EngineTypes.startp = _startpos_s1_;
-              MenhirLib.EngineTypes.endp = _endpos_s1_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let sl : 'tv_list_iso_single_statement__ = Obj.magic sl in
-        let s1 : 'tv_single_statement = Obj.magic s1 in
+        let _2 : 'tv_fninfo = Obj.magic _2 in
+        let _1 : 'tv_storage = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : (
-# 161 "parser_cocci_menhir.mly"
-      (Ast0_cocci.anything list list)
-# 13916 "parser_cocci_menhir.ml"
-        ) = 
-# 1812 "parser_cocci_menhir.mly"
-    ( P.iso_adjust (function x -> Ast0.StmtTag x) s1 sl )
-# 13920 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fninfo = 
+# 850 "parser_cocci_menhir.mly"
+      ( try
+       let _ =
+         List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in
+       raise (Semantic_cocci.Semantic "duplicate storage")
+      with Not_found -> (Ast0.FStorage(_1))::_2 )
+# 15378 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13928,37 +15386,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.semv = r;
+          MenhirLib.EngineTypes.startp = _startpos_r_;
+          MenhirLib.EngineTypes.endp = _endpos_r_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = tl;
-            MenhirLib.EngineTypes.startp = _startpos_tl_;
-            MenhirLib.EngineTypes.endp = _endpos_tl_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = t1;
-              MenhirLib.EngineTypes.startp = _startpos_t1_;
-              MenhirLib.EngineTypes.endp = _endpos_t1_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = t;
+            MenhirLib.EngineTypes.startp = _startpos_t_;
+            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let tl : 'tv_list_iso_ctype__ = Obj.magic tl in
-        let t1 : 'tv_ctype = Obj.magic t1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : (
-# 161 "parser_cocci_menhir.mly"
-      (Ast0_cocci.anything list list)
-# 13958 "parser_cocci_menhir.ml"
-        ) = 
-# 1814 "parser_cocci_menhir.mly"
-    ( P.iso_adjust (function x -> Ast0.TypeCTag x) t1 tl )
-# 13962 "parser_cocci_menhir.ml"
+        let r : 'tv_fninfo_nt = Obj.magic r in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_r_ in
+        let _v : 'tv_fninfo = 
+# 855 "parser_cocci_menhir.mly"
+                        ( (Ast0.FType(t))::r )
+# 15408 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -13970,37 +15416,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = el;
-            MenhirLib.EngineTypes.startp = _startpos_el_;
-            MenhirLib.EngineTypes.endp = _endpos_el_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = e1;
-              MenhirLib.EngineTypes.startp = _startpos_e1_;
-              MenhirLib.EngineTypes.endp = _endpos_e1_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let el : 'tv_list_iso_nest_start__ = Obj.magic el in
-        let e1 : 'tv_nest_start = Obj.magic e1 in
+        let _2 : 'tv_fninfo = Obj.magic _2 in
+        let _1 : (
+# 55 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 15435 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : (
-# 161 "parser_cocci_menhir.mly"
-      (Ast0_cocci.anything list list)
-# 14000 "parser_cocci_menhir.ml"
-        ) = 
-# 1816 "parser_cocci_menhir.mly"
-    ( P.iso_adjust (function x -> Ast0.DotsStmtTag x) e1 el )
-# 14004 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fninfo = 
+# 857 "parser_cocci_menhir.mly"
+      ( try
+       let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in
+       raise (Semantic_cocci.Semantic "duplicate inline")
+      with Not_found -> (Ast0.FInline(P.clt2mcode "inline" _1))::_2 )
+# 15445 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14012,50 +15453,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = dl;
-            MenhirLib.EngineTypes.startp = _startpos_dl_;
-            MenhirLib.EngineTypes.endp = _endpos_dl_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = d1;
-              MenhirLib.EngineTypes.startp = _startpos_d1_;
-              MenhirLib.EngineTypes.endp = _endpos_d1_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let dl : 'tv_list_iso_decl_var__ = Obj.magic dl in
-        let d1 : 'tv_decl_var = Obj.magic d1 in
+        let _2 : 'tv_fninfo = Obj.magic _2 in
+        let _1 : (
+# 57 "parser_cocci_menhir.mly"
+      (string * Data.clt)
+# 15472 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : (
-# 161 "parser_cocci_menhir.mly"
-      (Ast0_cocci.anything list list)
-# 14042 "parser_cocci_menhir.ml"
-        ) = 
-# 1818 "parser_cocci_menhir.mly"
-    ( let check_one = function
-       [x] -> x
-      | _ ->
-         raise
-           (Semantic_cocci.Semantic
-              "only one variable per declaration in an isomorphism rule") in
-    let d1 = check_one d1 in
-    let dl =
-      List.map
-       (function
-           Common.Left x -> Common.Left(check_one x)
-         | Common.Right x -> Common.Right(check_one x))
-       dl in
-    P.iso_adjust (function x -> Ast0.DeclTag x) d1 dl )
-# 14059 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fninfo = 
+# 862 "parser_cocci_menhir.mly"
+      ( try
+       let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in
+       raise (Semantic_cocci.Semantic "multiple attributes")
+      with Not_found -> (Ast0.FAttr(P.id2mcode _1))::_2 )
+# 15482 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14066,24 +15489,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = m;
-          MenhirLib.EngineTypes.startp = _startpos_m_;
-          MenhirLib.EngineTypes.endp = _endpos_m_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let m : 'tv_metadec = Obj.magic m in
-        let _startpos = _startpos_m_ in
-        let _endpos = _endpos_m_ in
-        let _v : (
-# 164 "parser_cocci_menhir.mly"
-      ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
-# 14083 "parser_cocci_menhir.ml"
-        ) = 
-# 181 "parser_cocci_menhir.mly"
-                         ( m "" )
-# 14087 "parser_cocci_menhir.ml"
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_fninfo_nt = 
+# 868 "parser_cocci_menhir.mly"
+                ( [] )
+# 15499 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14095,27 +15507,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
+          MenhirLib.EngineTypes.semv = _2;
           MenhirLib.EngineTypes.startp = _startpos__2_;
           MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = nm;
-            MenhirLib.EngineTypes.startp = _startpos_nm_;
-            MenhirLib.EngineTypes.endp = _endpos_nm_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let nm : 'tv_pure_ident = Obj.magic nm in
-        let _startpos = _startpos_nm_ in
+        let _2 : 'tv_fninfo_nt = Obj.magic _2 in
+        let _1 : 'tv_storage = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
-        let _v : (
-# 148 "parser_cocci_menhir.mly"
-      (Ast_cocci.rulename)
-# 14115 "parser_cocci_menhir.ml"
-        ) = 
-# 196 "parser_cocci_menhir.mly"
-                      ( P.make_iso_rule_name_result (P.id2name nm) )
-# 14119 "parser_cocci_menhir.ml"
+        let _v : 'tv_fninfo_nt = 
+# 870 "parser_cocci_menhir.mly"
+      ( try
+       let _ =
+         List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in
+       raise (Semantic_cocci.Semantic "duplicate storage")
+      with Not_found -> (Ast0.FStorage(_1))::_2 )
+# 15533 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14127,23 +15541,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
+        let _2 : 'tv_fninfo_nt = Obj.magic _2 in
         let _1 : (
-# 59 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 14140 "parser_cocci_menhir.ml"
+# 55 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 15560 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_iter_ident = 
-# 1498 "parser_cocci_menhir.mly"
-         ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
-# 14147 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fninfo_nt = 
+# 876 "parser_cocci_menhir.mly"
+      ( try
+       let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in
+       raise (Semantic_cocci.Semantic "duplicate inline")
+      with Not_found -> (Ast0.FInline(P.clt2mcode "inline" _1))::_2 )
+# 15570 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14155,24 +15578,32 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
+        let _2 : 'tv_fninfo_nt = Obj.magic _2 in
         let _1 : (
-# 62 "parser_cocci_menhir.mly"
-       (Parse_aux.idinfo)
-# 14168 "parser_cocci_menhir.ml"
+# 57 "parser_cocci_menhir.mly"
+      (string * Data.clt)
+# 15597 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_iter_ident = 
-# 1500 "parser_cocci_menhir.mly"
-         ( let (nm,constraints,pure,clt) = _1 in
-         Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) )
-# 14176 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fninfo_nt = 
+# 881 "parser_cocci_menhir.mly"
+      ( try
+       let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in
+       raise (Semantic_cocci.Semantic "duplicate init")
+      with Not_found -> (Ast0.FAttr(P.id2mcode _1))::_2 )
+# 15607 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14186,10 +15617,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_list_TMul_ = 
-# 114 "standard.mly"
-    ( [] )
-# 14193 "parser_cocci_menhir.ml"
+        let _v : 'tv_fun_after_dots = 
+# 1928 "parser_cocci_menhir.mly"
+                               ([])
+# 15624 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14201,29 +15632,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_TMul_ = Obj.magic xs in
-        let x : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 14220 "parser_cocci_menhir.ml"
-        ) = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_TMul_ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14227 "parser_cocci_menhir.ml"
+        let _2 : 'tv_fun_after_exp = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fun_after_dots = 
+# 1929 "parser_cocci_menhir.mly"
+                               (_2)
+# 15652 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14234,13 +15659,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_array_dec_ = 
-# 114 "standard.mly"
-    ( [] )
-# 14244 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_fun_after_exp = Obj.magic _2 in
+        let _1 : 'tv_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fun_after_dots = 
+# 1930 "parser_cocci_menhir.mly"
+                               (Ast0.wrap(Ast0.Exp(_1))::_2)
+# 15682 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14252,25 +15690,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_array_dec_ = Obj.magic xs in
-        let x : 'tv_array_dec = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_array_dec_ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14274 "parser_cocci_menhir.ml"
+        let _2 : 'tv_fun_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fun_after_dots = 
+# 1931 "parser_cocci_menhir.mly"
+                                    (_1@_2)
+# 15712 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14284,10 +15722,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_list_case_line_ = 
-# 114 "standard.mly"
-    ( [] )
-# 14291 "parser_cocci_menhir.ml"
+        let _v : 'tv_fun_after_dots_or = 
+# 1938 "parser_cocci_menhir.mly"
+                               ([])
+# 15729 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14299,42 +15737,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_case_line_ = Obj.magic xs in
-        let x : 'tv_case_line = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_case_line_ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14321 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_comma_decls_TEllipsis_decl__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14338 "parser_cocci_menhir.ml"
+        let _2 : 'tv_fun_after_exp_or = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fun_after_dots_or = 
+# 1939 "parser_cocci_menhir.mly"
+                               (_2)
+# 15757 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14346,25 +15765,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_comma_decls_TEllipsis_decl__ = Obj.magic xs in
-        let x : 'tv_comma_decls_TEllipsis_decl_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_comma_decls_TEllipsis_decl__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14368 "parser_cocci_menhir.ml"
+        let _2 : 'tv_fun_after_exp_or = Obj.magic _2 in
+        let _1 : 'tv_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fun_after_dots_or = 
+# 1940 "parser_cocci_menhir.mly"
+                               (Ast0.wrap(Ast0.Exp(_1))::_2)
+# 15787 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14375,13 +15794,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14385 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_fun_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fun_after_dots_or = 
+# 1941 "parser_cocci_menhir.mly"
+                                    (_1@_2)
+# 15817 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14393,25 +15825,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = Obj.magic xs in
-        let x : 'tv_comma_decls_TEllipsis_name_opt_decl_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14415 "parser_cocci_menhir.ml"
+        let _2 : 'tv_fun_after_dots = Obj.magic _2 in
+        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fun_after_exp = 
+# 1934 "parser_cocci_menhir.mly"
+                               (_1::_2)
+# 15847 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14425,10 +15857,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_list_dp_comma_args_TEllipsis__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14432 "parser_cocci_menhir.ml"
+        let _v : 'tv_fun_after_exp_or = 
+# 1944 "parser_cocci_menhir.mly"
+                               ([])
+# 15864 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14440,25 +15872,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_dp_comma_args_TEllipsis__ = Obj.magic xs in
-        let x : 'tv_dp_comma_args_TEllipsis_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_dp_comma_args_TEllipsis__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14462 "parser_cocci_menhir.ml"
+        let _2 : 'tv_fun_after_dots = Obj.magic _2 in
+        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fun_after_exp_or = 
+# 1945 "parser_cocci_menhir.mly"
+                               (_1::_2)
+# 15894 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14472,10 +15904,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_list_incl_ = 
-# 114 "standard.mly"
-    ( [] )
-# 14479 "parser_cocci_menhir.ml"
+        let _v : 'tv_fun_after_stm = 
+# 1923 "parser_cocci_menhir.mly"
+                               ([])
+# 15911 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14487,25 +15919,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_incl_ = Obj.magic xs in
-        let x : 'tv_incl = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_incl_ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14509 "parser_cocci_menhir.ml"
+        let _2 : 'tv_fun_after_dots = Obj.magic _2 in
+        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fun_after_stm = 
+# 1924 "parser_cocci_menhir.mly"
+                               (_1::_2)
+# 15941 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14516,13 +15948,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_iso_ctype__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14526 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_fun_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_fun_after_stm = 
+# 1925 "parser_cocci_menhir.mly"
+                               (_1@_2)
+# 15971 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14534,25 +15979,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let xs : 'tv_list_iso_ctype__ = Obj.magic xs in
-        let x : 'tv_iso_ctype_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_iso_ctype__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14556 "parser_cocci_menhir.ml"
+        let _1 : 'tv_fun_after_stm = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_fun_start = 
+# 1920 "parser_cocci_menhir.mly"
+                 ( Ast0.wrap(Ast0.DOTS(_1)) )
+# 15995 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14563,13 +16002,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_iso_decl_var__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14573 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_pure_ident = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_func_ident = 
+# 1686 "parser_cocci_menhir.mly"
+         ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
+# 16019 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14581,25 +16027,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let xs : 'tv_list_iso_decl_var__ = Obj.magic xs in
-        let x : 'tv_iso_decl_var_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_iso_decl_var__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14603 "parser_cocci_menhir.ml"
+        let _1 : (
+# 64 "parser_cocci_menhir.mly"
+       (Parse_aux.idinfo)
+# 16040 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_func_ident = 
+# 1688 "parser_cocci_menhir.mly"
+         ( let (nm,constraints,pure,clt) = _1 in
+        Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) )
+# 16048 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14610,13 +16055,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_iso_dexpr__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14620 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 64 "parser_cocci_menhir.mly"
+       (Parse_aux.idinfo)
+# 16069 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_func_ident = 
+# 1691 "parser_cocci_menhir.mly"
+         ( let (nm,constraints,pure,clt) = _1 in
+        Ast0.wrap(Ast0.MetaFunc(P.clt2mcode nm clt,constraints,pure)) )
+# 16077 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14628,25 +16085,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
-          } = _menhir_stack in
-        let xs : 'tv_list_iso_dexpr__ = Obj.magic xs in
-        let x : 'tv_iso_dexpr_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_iso_dexpr__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14650 "parser_cocci_menhir.ml"
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 64 "parser_cocci_menhir.mly"
+       (Parse_aux.idinfo)
+# 16098 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_func_ident = 
+# 1694 "parser_cocci_menhir.mly"
+  ( let (nm,constraints,pure,clt) = _1 in
+        Ast0.wrap
+          (Ast0.MetaLocalFunc(P.clt2mcode nm clt,constraints,pure)) )
+# 16107 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14657,13 +16114,88 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_iso_nest_start__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14667 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = rb;
+          MenhirLib.EngineTypes.startp = _startpos_rb_;
+          MenhirLib.EngineTypes.endp = _endpos_rb_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = b;
+            MenhirLib.EngineTypes.startp = _startpos_b_;
+            MenhirLib.EngineTypes.endp = _endpos_b_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = lb;
+              MenhirLib.EngineTypes.startp = _startpos_lb_;
+              MenhirLib.EngineTypes.endp = _endpos_lb_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = rp;
+                MenhirLib.EngineTypes.startp = _startpos_rp_;
+                MenhirLib.EngineTypes.endp = _endpos_rp_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = d;
+                  MenhirLib.EngineTypes.startp = _startpos_d_;
+                  MenhirLib.EngineTypes.endp = _endpos_d_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = lp;
+                    MenhirLib.EngineTypes.startp = _startpos_lp_;
+                    MenhirLib.EngineTypes.endp = _endpos_lp_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = i;
+                      MenhirLib.EngineTypes.startp = _startpos_i_;
+                      MenhirLib.EngineTypes.endp = _endpos_i_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.startp = _startpos__2_;
+                        MenhirLib.EngineTypes.endp = _endpos__2_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.state = _menhir_s;
+                          MenhirLib.EngineTypes.semv = f;
+                          MenhirLib.EngineTypes.startp = _startpos_f_;
+                          MenhirLib.EngineTypes.endp = _endpos_f_;
+                          MenhirLib.EngineTypes.next = _menhir_stack;
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let rb : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16167 "parser_cocci_menhir.ml"
+        ) = Obj.magic rb in
+        let b : 'tv_fun_start = Obj.magic b in
+        let lb : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16173 "parser_cocci_menhir.ml"
+        ) = Obj.magic lb in
+        let rp : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16178 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp in
+        let d : 'tv_decl_list_decl_ = Obj.magic d in
+        let lp : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16184 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp in
+        let i : 'tv_func_ident = Obj.magic i in
+        let f : 'tv_fninfo = Obj.magic f in
+        let _startpos = _startpos_f_ in
+        let _endpos = _endpos_rb_ in
+        let _v : 'tv_fundecl = 
+# 839 "parser_cocci_menhir.mly"
+      ( P.verify_parameter_declarations (Ast0.undots d);
+       Ast0.wrap(Ast0.FunDecl((Ast0.default_info(),Ast0.context_befaft()),
+                              f, i,
+                              P.clt2mcode "(" lp, d,
+                              P.clt2mcode ")" rp,
+                              P.clt2mcode "{" lb, b,
+                              P.clt2mcode "}" rb)) )
+# 16199 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14675,25 +16207,74 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = pt;
+          MenhirLib.EngineTypes.startp = _startpos_pt_;
+          MenhirLib.EngineTypes.endp = _endpos_pt_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = rp;
+            MenhirLib.EngineTypes.startp = _startpos_rp_;
+            MenhirLib.EngineTypes.endp = _endpos_rp_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = d;
+              MenhirLib.EngineTypes.startp = _startpos_d_;
+              MenhirLib.EngineTypes.endp = _endpos_d_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = lp;
+                MenhirLib.EngineTypes.startp = _startpos_lp_;
+                MenhirLib.EngineTypes.endp = _endpos_lp_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = id;
+                  MenhirLib.EngineTypes.startp = _startpos_id_;
+                  MenhirLib.EngineTypes.endp = _endpos_id_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = t;
+                    MenhirLib.EngineTypes.startp = _startpos_t_;
+                    MenhirLib.EngineTypes.endp = _endpos_t_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let xs : 'tv_list_iso_nest_start__ = Obj.magic xs in
-        let x : 'tv_iso_nest_start_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_iso_nest_start__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14697 "parser_cocci_menhir.ml"
+        let pt : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16245 "parser_cocci_menhir.ml"
+        ) = Obj.magic pt in
+        let rp : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16250 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp in
+        let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
+        let lp : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16256 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp in
+        let id : 'tv_func_ident = Obj.magic id in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_pt_ in
+        let _v : 'tv_funproto = let s =
+          
+# 39 "standard.mly"
+    ( None )
+# 16266 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 827 "parser_cocci_menhir.mly"
+      ( Ast0.wrap
+         (Ast0.UnInit
+            (s,
+             Ast0.wrap
+               (Ast0.FunctionType(Some t,
+                                  P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)),
+             id, P.clt2mcode ";" pt)) )
+# 16278 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14704,13 +16285,82 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_iso_single_statement__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14714 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = pt;
+          MenhirLib.EngineTypes.startp = _startpos_pt_;
+          MenhirLib.EngineTypes.endp = _endpos_pt_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = rp;
+            MenhirLib.EngineTypes.startp = _startpos_rp_;
+            MenhirLib.EngineTypes.endp = _endpos_rp_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = d;
+              MenhirLib.EngineTypes.startp = _startpos_d_;
+              MenhirLib.EngineTypes.endp = _endpos_d_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = lp;
+                MenhirLib.EngineTypes.startp = _startpos_lp_;
+                MenhirLib.EngineTypes.endp = _endpos_lp_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = id;
+                  MenhirLib.EngineTypes.startp = _startpos_id_;
+                  MenhirLib.EngineTypes.endp = _endpos_id_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = t;
+                    MenhirLib.EngineTypes.startp = _startpos_t_;
+                    MenhirLib.EngineTypes.endp = _endpos_t_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = x0;
+                      MenhirLib.EngineTypes.startp = _startpos_x0_;
+                      MenhirLib.EngineTypes.endp = _endpos_x0_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pt : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16329 "parser_cocci_menhir.ml"
+        ) = Obj.magic pt in
+        let rp : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16334 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp in
+        let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
+        let lp : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16340 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp in
+        let id : 'tv_func_ident = Obj.magic id in
+        let t : 'tv_ctype = Obj.magic t in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pt_ in
+        let _v : 'tv_funproto = let s =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 16352 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 827 "parser_cocci_menhir.mly"
+      ( Ast0.wrap
+         (Ast0.UnInit
+            (s,
+             Ast0.wrap
+               (Ast0.FunctionType(Some t,
+                                  P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)),
+             id, P.clt2mcode ";" pt)) )
+# 16364 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14722,42 +16372,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
-          } = _menhir_stack in
-        let xs : 'tv_list_iso_single_statement__ = Obj.magic xs in
-        let x : 'tv_iso_single_statement_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_iso_single_statement__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14744 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_mzl_ctype__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14761 "parser_cocci_menhir.ml"
+          } = _menhir_stack in
+        let _1 : 'tv_pure_ident = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_ident = 
+# 1699 "parser_cocci_menhir.mly"
+         ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
+# 16388 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14769,25 +16396,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let xs : 'tv_list_mzl_ctype__ = Obj.magic xs in
-        let x : 'tv_mzl_ctype_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_mzl_ctype__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14791 "parser_cocci_menhir.ml"
+        let _1 : (
+# 64 "parser_cocci_menhir.mly"
+       (Parse_aux.idinfo)
+# 16409 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_ident = 
+# 1701 "parser_cocci_menhir.mly"
+         ( let (nm,constraints,pure,clt) = _1 in
+         Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) )
+# 16417 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14798,13 +16424,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_mzl_eexpr__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14808 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = i;
+          MenhirLib.EngineTypes.startp = _startpos_i_;
+          MenhirLib.EngineTypes.endp = _endpos_i_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let _startpos = _startpos_i_ in
+        let _endpos = _endpos_i_ in
+        let _v : 'tv_ident_or_const = 
+# 1659 "parser_cocci_menhir.mly"
+                    ( Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i)))) )
+# 16441 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14816,25 +16449,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let xs : 'tv_list_mzl_eexpr__ = Obj.magic xs in
-        let x : 'tv_mzl_eexpr_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_mzl_eexpr__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14838 "parser_cocci_menhir.ml"
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 16462 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_ident_or_const = 
+# 1661 "parser_cocci_menhir.mly"
+  ( let (x,clt) = _1 in
+        Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
+# 16470 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14845,13 +16477,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_mzl_fun_after_dots_or__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14855 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 83 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 16491 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_incl = 
+# 261 "parser_cocci_menhir.mly"
+                      ( let (x,_) = _1 in Data.Include(x) )
+# 16498 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14863,25 +16506,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_mzl_fun_after_dots_or__ = Obj.magic xs in
-        let x : 'tv_mzl_fun_after_dots_or_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_mzl_fun_after_dots_or__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14885 "parser_cocci_menhir.ml"
+        let _2 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 16523 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_incl = 
+# 262 "parser_cocci_menhir.mly"
+                      ( Data.Iso(Common.Left(P.id2name _2)) )
+# 16530 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14892,13 +16537,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_mzl_fun_start__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14902 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 82 "parser_cocci_menhir.mly"
+       (string)
+# 16555 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_incl = 
+# 263 "parser_cocci_menhir.mly"
+                      ( Data.Iso(Common.Right _2) )
+# 16562 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14910,25 +16570,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_mzl_fun_start__ = Obj.magic xs in
-        let x : 'tv_mzl_fun_start_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_mzl_fun_start__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14932 "parser_cocci_menhir.ml"
+        let _2 : 'tv_comma_list_pure_ident_ = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_incl = 
+# 265 "parser_cocci_menhir.mly"
+    ( let names = List.map P.id2name _2 in
+      (* ensure that the names of virtual and real rules don't overlap *)
+      List.iter
+      (function name -> Hashtbl.add Data.all_metadecls name [])
+      names;
+      Data.Virt(names) )
+# 16595 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14939,13 +16602,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_mzl_rule_elem_statement__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14949 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _1 : 'tv_list_incl_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 151 "parser_cocci_menhir.mly"
+      (Data.incl_iso list)
+# 16623 "parser_cocci_menhir.ml"
+        ) = 
+# 257 "parser_cocci_menhir.mly"
+                       ( _1 )
+# 16627 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14957,25 +16635,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_mzl_rule_elem_statement__ = Obj.magic xs in
-        let x : 'tv_mzl_rule_elem_statement_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_mzl_rule_elem_statement__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 14979 "parser_cocci_menhir.ml"
+        let _1 : 'tv_list_incl_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 151 "parser_cocci_menhir.mly"
+      (Data.incl_iso list)
+# 16655 "parser_cocci_menhir.ml"
+        ) = 
+# 258 "parser_cocci_menhir.mly"
+                       ( _1 )
+# 16659 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -14986,13 +16666,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_mzl_statement__ = 
-# 114 "standard.mly"
-    ( [] )
-# 14996 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 83 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 16680 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_includes = 
+# 733 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+             (Ast0.Include(P.clt2mcode "#include"
+                             (P.drop_pos (P.drop_aft (P.id2clt _1))),
+                           let (arity,ln,lln,offset,col,strbef,straft,pos) =
+                             P.id2clt _1 in
+                           let clt =
+                             (arity,ln,lln,offset,0,strbef,straft,pos) in
+                           P.clt2mcode
+                             (Ast.Local (Parse_aux.str2inc (P.id2name _1)))
+                             (P.drop_bef clt))) )
+# 16696 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15004,25 +16704,60 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 83 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 16717 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_includes = 
+# 744 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+             (Ast0.Include(P.clt2mcode "#include"
+                             (P.drop_pos (P.drop_aft (P.id2clt _1))),
+                           let (arity,ln,lln,offset,col,strbef,straft,pos) =
+                             P.id2clt _1 in
+                           let clt =
+                             (arity,ln,lln,offset,0,strbef,straft,pos) in
+                           P.clt2mcode
+                             (Ast.NonLocal (Parse_aux.str2inc (P.id2name _1)))
+                             (P.drop_bef clt))) )
+# 16733 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_list_mzl_statement__ = Obj.magic xs in
-        let x : 'tv_mzl_statement_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_mzl_statement__ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 15026 "parser_cocci_menhir.ml"
+        let d : 'tv_defineop = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_includes = 
+# 755 "parser_cocci_menhir.mly"
+    ( d (Ast0.wrap(Ast0.DOTS([]))) )
+# 16761 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15033,13 +16768,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = 
-# 114 "standard.mly"
-    ( [] )
-# 15043 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = t;
+            MenhirLib.EngineTypes.startp = _startpos_t_;
+            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = d;
+              MenhirLib.EngineTypes.startp = _startpos_d_;
+              MenhirLib.EngineTypes.endp = _endpos_d_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let t : 'tv_ctype = Obj.magic t in
+        let d : 'tv_defineop = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_includes = 
+# 757 "parser_cocci_menhir.mly"
+    ( let ty = Ast0.wrap(Ast0.TopExp(Ast0.wrap(Ast0.TypeExp(t)))) in
+      d (Ast0.wrap(Ast0.DOTS([ty]))) )
+# 16796 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15051,40 +16804,9045 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = y0;
-            MenhirLib.EngineTypes.startp = _startpos_y0_;
-            MenhirLib.EngineTypes.endp = _endpos_y0_;
+            MenhirLib.EngineTypes.semv = b;
+            MenhirLib.EngineTypes.startp = _startpos_b_;
+            MenhirLib.EngineTypes.endp = _endpos_b_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x0;
-              MenhirLib.EngineTypes.startp = _startpos_x0_;
-              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let xs : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = Obj.magic xs in
-        let y0 : 'tv_dexpr = Obj.magic y0 in
-        let x0 : 'tv_edots_when_TEllipsis_eexpr_ = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = let x =
-          let y = y0 in
+        let b : 'tv_toplevel_seq_start_toplevel_after_dots_ = Obj.magic b in
+        let _1 : 'tv_defineop = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_includes = 
+# 760 "parser_cocci_menhir.mly"
+    ( let body =
+       match b with
+         [e] ->
+           (match Ast0.unwrap e with
+             Ast0.Exp(e1) ->
+               [Ast0.rewrap e (Ast0.TopExp(Ast0.set_arg_exp (e1)))]
+           | _ -> b)
+       | _ -> b in
+      _1 (Ast0.wrap(Ast0.DOTS(body))) )
+# 16838 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_eexpr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_initialize = 
+# 1152 "parser_cocci_menhir.mly"
+      ( Ast0.wrap(Ast0.InitExpr(_1)) )
+# 16862 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16893 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_initialize_list = Obj.magic _2 in
+        let _1 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16899 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_initialize = 
+# 1154 "parser_cocci_menhir.mly"
+    ( if P.struct_initializer _2
+    then
+      let il = P.drop_dot_commas _2 in
+      Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,il,P.clt2mcode "}" _3,false))
+    else
+      Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3,true)) )
+# 16911 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 68 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 16932 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_initialize = 
+# 1161 "parser_cocci_menhir.mly"
+      (let (nm,pure,clt) = _1 in
+      Ast0.wrap(Ast0.MetaInit(P.clt2mcode nm clt,pure)) )
+# 16940 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_initialize2 = 
+# 1167 "parser_cocci_menhir.mly"
+                            ( Ast0.wrap(Ast0.InitExpr(_1)) )
+# 16964 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 16995 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_initialize_list = Obj.magic _2 in
+        let _1 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 17001 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_initialize2 = 
+# 1169 "parser_cocci_menhir.mly"
+    ( if P.struct_initializer _2
+    then
+      let il = P.drop_dot_commas _2 in
+      Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,il,P.clt2mcode "}" _3,false))
+    else
+      Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3,true)) )
+# 17013 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_initialize2 = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 17045 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_list_designator_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_initialize2 = 
+# 1177 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.InitGccExt(_1,P.clt2mcode "=" _2,_3)) )
+# 17053 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_initialize2 = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 17085 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_ident = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_initialize2 = 
+# 1179 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.InitGccName(_1,P.clt2mcode ":" _2,_3)) )
+# 17093 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_empty_list_start_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_initialize_list = 
+# 1192 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.DOTS(_1 P.mkidots (fun c -> Ast0.IComma c))) )
+# 17117 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_invalid = 
+# 1270 "parser_cocci_menhir.mly"
+           ( raise (Semantic_cocci.Semantic "not matchable") )
+# 17139 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_is_expression = 
+# 253 "parser_cocci_menhir.mly"
+              ( false )
+# 17156 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_is_expression = 
+# 254 "parser_cocci_menhir.mly"
+              ( true )
+# 17178 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = t;
+          MenhirLib.EngineTypes.startp = _startpos_t_;
+          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_t_ in
+        let _v : 'tv_iso_ctype_ = 
+# 2071 "parser_cocci_menhir.mly"
+                ( Common.Left t )
+# 17206 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = t;
+          MenhirLib.EngineTypes.startp = _startpos_t_;
+          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_t_ in
+        let _v : 'tv_iso_ctype_ = 
+# 2072 "parser_cocci_menhir.mly"
+                     ( Common.Right t )
+# 17234 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = t;
+          MenhirLib.EngineTypes.startp = _startpos_t_;
+          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let t : 'tv_decl_var = Obj.magic t in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_t_ in
+        let _v : 'tv_iso_decl_var_ = 
+# 2071 "parser_cocci_menhir.mly"
+                ( Common.Left t )
+# 17262 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = t;
+          MenhirLib.EngineTypes.startp = _startpos_t_;
+          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let t : 'tv_decl_var = Obj.magic t in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_t_ in
+        let _v : 'tv_iso_decl_var_ = 
+# 2072 "parser_cocci_menhir.mly"
+                     ( Common.Right t )
+# 17290 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = t;
+          MenhirLib.EngineTypes.startp = _startpos_t_;
+          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let t : 'tv_eexpr = Obj.magic t in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_t_ in
+        let _v : 'tv_iso_eexpr_ = 
+# 2071 "parser_cocci_menhir.mly"
+                ( Common.Left t )
+# 17318 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = t;
+          MenhirLib.EngineTypes.startp = _startpos_t_;
+          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let t : 'tv_eexpr = Obj.magic t in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_t_ in
+        let _v : 'tv_iso_eexpr_ = 
+# 2072 "parser_cocci_menhir.mly"
+                     ( Common.Right t )
+# 17346 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = t;
+          MenhirLib.EngineTypes.startp = _startpos_t_;
+          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let t : 'tv_nest_start = Obj.magic t in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_t_ in
+        let _v : 'tv_iso_nest_start_ = 
+# 2071 "parser_cocci_menhir.mly"
+                ( Common.Left t )
+# 17374 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = t;
+          MenhirLib.EngineTypes.startp = _startpos_t_;
+          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let t : 'tv_nest_start = Obj.magic t in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_t_ in
+        let _v : 'tv_iso_nest_start_ = 
+# 2072 "parser_cocci_menhir.mly"
+                     ( Common.Right t )
+# 17402 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = t;
+          MenhirLib.EngineTypes.startp = _startpos_t_;
+          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let t : 'tv_single_statement = Obj.magic t in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_t_ in
+        let _v : 'tv_iso_single_statement_ = 
+# 2071 "parser_cocci_menhir.mly"
+                ( Common.Left t )
+# 17430 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = t;
+          MenhirLib.EngineTypes.startp = _startpos_t_;
+          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let t : 'tv_single_statement = Obj.magic t in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_t_ in
+        let _v : 'tv_iso_single_statement_ = 
+# 2072 "parser_cocci_menhir.mly"
+                     ( Common.Right t )
+# 17458 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = el;
+            MenhirLib.EngineTypes.startp = _startpos_el_;
+            MenhirLib.EngineTypes.endp = _endpos_el_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = e1;
+              MenhirLib.EngineTypes.startp = _startpos_e1_;
+              MenhirLib.EngineTypes.endp = _endpos_e1_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let el : 'tv_list_iso_eexpr__ = Obj.magic el in
+        let e1 : 'tv_eexpr = Obj.magic e1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : (
+# 167 "parser_cocci_menhir.mly"
+      (Ast0_cocci.anything list list)
+# 17496 "parser_cocci_menhir.ml"
+        ) = 
+# 2039 "parser_cocci_menhir.mly"
+    ( let fn x = Ast0.ExprTag x in P.iso_adjust fn fn e1 el )
+# 17500 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = el;
+            MenhirLib.EngineTypes.startp = _startpos_el_;
+            MenhirLib.EngineTypes.endp = _endpos_el_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = e1;
+              MenhirLib.EngineTypes.startp = _startpos_e1_;
+              MenhirLib.EngineTypes.endp = _endpos_e1_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let el : 'tv_list_iso_eexpr__ = Obj.magic el in
+        let e1 : 'tv_eexpr = Obj.magic e1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : (
+# 167 "parser_cocci_menhir.mly"
+      (Ast0_cocci.anything list list)
+# 17538 "parser_cocci_menhir.ml"
+        ) = 
+# 2041 "parser_cocci_menhir.mly"
+    ( let fn x = Ast0.ArgExprTag x in P.iso_adjust fn fn e1 el )
+# 17542 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = el;
+            MenhirLib.EngineTypes.startp = _startpos_el_;
+            MenhirLib.EngineTypes.endp = _endpos_el_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = e1;
+              MenhirLib.EngineTypes.startp = _startpos_e1_;
+              MenhirLib.EngineTypes.endp = _endpos_e1_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let el : 'tv_list_iso_eexpr__ = Obj.magic el in
+        let e1 : 'tv_eexpr = Obj.magic e1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : (
+# 167 "parser_cocci_menhir.mly"
+      (Ast0_cocci.anything list list)
+# 17580 "parser_cocci_menhir.ml"
+        ) = 
+# 2043 "parser_cocci_menhir.mly"
+    ( let fn x = Ast0.TestExprTag x in P.iso_adjust fn fn e1 el )
+# 17584 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = el;
+            MenhirLib.EngineTypes.startp = _startpos_el_;
+            MenhirLib.EngineTypes.endp = _endpos_el_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = e1;
+              MenhirLib.EngineTypes.startp = _startpos_e1_;
+              MenhirLib.EngineTypes.endp = _endpos_e1_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let el : 'tv_list_iso_eexpr__ = Obj.magic el in
+        let e1 : 'tv_eexpr = Obj.magic e1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : (
+# 167 "parser_cocci_menhir.mly"
+      (Ast0_cocci.anything list list)
+# 17622 "parser_cocci_menhir.ml"
+        ) = 
+# 2045 "parser_cocci_menhir.mly"
+    ( let ffn x = Ast0.ExprTag x in
+      let fn x =  Ast0.TestExprTag x in
+      P.iso_adjust ffn fn e1 el )
+# 17628 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = sl;
+            MenhirLib.EngineTypes.startp = _startpos_sl_;
+            MenhirLib.EngineTypes.endp = _endpos_sl_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = s1;
+              MenhirLib.EngineTypes.startp = _startpos_s1_;
+              MenhirLib.EngineTypes.endp = _endpos_s1_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let sl : 'tv_list_iso_single_statement__ = Obj.magic sl in
+        let s1 : 'tv_single_statement = Obj.magic s1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : (
+# 167 "parser_cocci_menhir.mly"
+      (Ast0_cocci.anything list list)
+# 17666 "parser_cocci_menhir.ml"
+        ) = 
+# 2049 "parser_cocci_menhir.mly"
+    ( let fn x = Ast0.StmtTag x in P.iso_adjust fn fn s1 sl )
+# 17670 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = tl;
+            MenhirLib.EngineTypes.startp = _startpos_tl_;
+            MenhirLib.EngineTypes.endp = _endpos_tl_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = t1;
+              MenhirLib.EngineTypes.startp = _startpos_t1_;
+              MenhirLib.EngineTypes.endp = _endpos_t1_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let tl : 'tv_list_iso_ctype__ = Obj.magic tl in
+        let t1 : 'tv_ctype = Obj.magic t1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : (
+# 167 "parser_cocci_menhir.mly"
+      (Ast0_cocci.anything list list)
+# 17708 "parser_cocci_menhir.ml"
+        ) = 
+# 2051 "parser_cocci_menhir.mly"
+    ( let fn x = Ast0.TypeCTag x in P.iso_adjust fn fn t1 tl )
+# 17712 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = el;
+            MenhirLib.EngineTypes.startp = _startpos_el_;
+            MenhirLib.EngineTypes.endp = _endpos_el_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = e1;
+              MenhirLib.EngineTypes.startp = _startpos_e1_;
+              MenhirLib.EngineTypes.endp = _endpos_e1_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let el : 'tv_list_iso_nest_start__ = Obj.magic el in
+        let e1 : 'tv_nest_start = Obj.magic e1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : (
+# 167 "parser_cocci_menhir.mly"
+      (Ast0_cocci.anything list list)
+# 17750 "parser_cocci_menhir.ml"
+        ) = 
+# 2053 "parser_cocci_menhir.mly"
+    ( let fn x = Ast0.DotsStmtTag x in P.iso_adjust fn fn e1 el )
+# 17754 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = dl;
+            MenhirLib.EngineTypes.startp = _startpos_dl_;
+            MenhirLib.EngineTypes.endp = _endpos_dl_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = d1;
+              MenhirLib.EngineTypes.startp = _startpos_d1_;
+              MenhirLib.EngineTypes.endp = _endpos_d1_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let dl : 'tv_list_iso_decl_var__ = Obj.magic dl in
+        let d1 : 'tv_decl_var = Obj.magic d1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : (
+# 167 "parser_cocci_menhir.mly"
+      (Ast0_cocci.anything list list)
+# 17792 "parser_cocci_menhir.ml"
+        ) = 
+# 2055 "parser_cocci_menhir.mly"
+    ( let check_one = function
+       [x] -> x
+      | _ ->
+         raise
+           (Semantic_cocci.Semantic
+              "only one variable per declaration in an isomorphism rule") in
+    let d1 = check_one d1 in
+    let dl =
+      List.map
+       (function
+           Common.Left x -> Common.Left(check_one x)
+         | Common.Right x -> Common.Right(check_one x))
+       dl in
+    let fn x = Ast0.DeclTag x in P.iso_adjust fn fn d1 dl )
+# 17809 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let m : 'tv_metadec = Obj.magic m in
+        let _startpos = _startpos_m_ in
+        let _endpos = _endpos_m_ in
+        let _v : (
+# 170 "parser_cocci_menhir.mly"
+      ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
+# 17833 "parser_cocci_menhir.ml"
+        ) = 
+# 187 "parser_cocci_menhir.mly"
+                         ( m "" )
+# 17837 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = nm;
+            MenhirLib.EngineTypes.startp = _startpos_nm_;
+            MenhirLib.EngineTypes.endp = _endpos_nm_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let nm : 'tv_pure_ident = Obj.magic nm in
+        let _startpos = _startpos_nm_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 154 "parser_cocci_menhir.mly"
+      (Ast_cocci.rulename)
+# 17865 "parser_cocci_menhir.ml"
+        ) = 
+# 202 "parser_cocci_menhir.mly"
+                      ( P.make_iso_rule_name_result (P.id2name nm) )
+# 17869 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 17890 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_iter_ident = 
+# 1713 "parser_cocci_menhir.mly"
+         ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) )
+# 17897 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 65 "parser_cocci_menhir.mly"
+       (Parse_aux.idinfo)
+# 17918 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_iter_ident = 
+# 1715 "parser_cocci_menhir.mly"
+         ( let (nm,constraints,pure,clt) = _1 in
+         Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) )
+# 17926 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_TMul_ = 
+# 114 "standard.mly"
+    ( [] )
+# 17943 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_TMul_ = Obj.magic xs in
+        let x : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 17970 "parser_cocci_menhir.ml"
+        ) = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_TMul_ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 17977 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_array_dec_ = 
+# 114 "standard.mly"
+    ( [] )
+# 17994 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_array_dec_ = Obj.magic xs in
+        let x : 'tv_array_dec = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_array_dec_ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18024 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_case_line_ = 
+# 114 "standard.mly"
+    ( [] )
+# 18041 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_case_line_ = Obj.magic xs in
+        let x : 'tv_case_line = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_case_line_ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18071 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_decl_var_ = 
+# 114 "standard.mly"
+    ( [] )
+# 18088 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_decl_var_ = Obj.magic xs in
+        let x : 'tv_decl_var = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_decl_var_ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18118 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_designator_ = 
+# 114 "standard.mly"
+    ( [] )
+# 18135 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_designator_ = Obj.magic xs in
+        let x : 'tv_designator = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_designator_ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18165 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_incl_ = 
+# 114 "standard.mly"
+    ( [] )
+# 18182 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_incl_ = Obj.magic xs in
+        let x : 'tv_incl = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_incl_ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18212 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_iso_ctype__ = 
+# 114 "standard.mly"
+    ( [] )
+# 18229 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_iso_ctype__ = Obj.magic xs in
+        let x : 'tv_iso_ctype_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_iso_ctype__ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18259 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_iso_decl_var__ = 
+# 114 "standard.mly"
+    ( [] )
+# 18276 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_iso_decl_var__ = Obj.magic xs in
+        let x : 'tv_iso_decl_var_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_iso_decl_var__ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18306 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_iso_eexpr__ = 
+# 114 "standard.mly"
+    ( [] )
+# 18323 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_iso_eexpr__ = Obj.magic xs in
+        let x : 'tv_iso_eexpr_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_iso_eexpr__ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18353 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_iso_nest_start__ = 
+# 114 "standard.mly"
+    ( [] )
+# 18370 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_iso_nest_start__ = Obj.magic xs in
+        let x : 'tv_iso_nest_start_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_iso_nest_start__ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18400 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_iso_single_statement__ = 
+# 114 "standard.mly"
+    ( [] )
+# 18417 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_iso_single_statement__ = Obj.magic xs in
+        let x : 'tv_iso_single_statement_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_iso_single_statement__ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18447 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_mzl_ctype__ = 
+# 114 "standard.mly"
+    ( [] )
+# 18464 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_mzl_ctype__ = Obj.magic xs in
+        let x : 'tv_mzl_ctype_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_mzl_ctype__ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18494 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_mzl_eexpr__ = 
+# 114 "standard.mly"
+    ( [] )
+# 18511 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_mzl_eexpr__ = Obj.magic xs in
+        let x : 'tv_mzl_eexpr_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_mzl_eexpr__ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18541 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_mzl_fun_after_dots_or__ = 
+# 114 "standard.mly"
+    ( [] )
+# 18558 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_mzl_fun_after_dots_or__ = Obj.magic xs in
+        let x : 'tv_mzl_fun_after_dots_or_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_mzl_fun_after_dots_or__ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18588 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_mzl_fun_start__ = 
+# 114 "standard.mly"
+    ( [] )
+# 18605 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_mzl_fun_start__ = Obj.magic xs in
+        let x : 'tv_mzl_fun_start_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_mzl_fun_start__ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18635 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_mzl_rule_elem_statement__ = 
+# 114 "standard.mly"
+    ( [] )
+# 18652 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_mzl_rule_elem_statement__ = Obj.magic xs in
+        let x : 'tv_mzl_rule_elem_statement_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_mzl_rule_elem_statement__ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18682 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_mzl_statement__ = 
+# 114 "standard.mly"
+    ( [] )
+# 18699 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_mzl_statement__ = Obj.magic xs in
+        let x : 'tv_mzl_statement_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_mzl_statement__ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18729 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = 
+# 114 "standard.mly"
+    ( [] )
+# 18746 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = y0;
+            MenhirLib.EngineTypes.startp = _startpos_y0_;
+            MenhirLib.EngineTypes.endp = _endpos_y0_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = Obj.magic xs in
+        let y0 : 'tv_dexpr = Obj.magic y0 in
+        let x0 : 'tv_edots_when_TEllipsis_eexpr_ = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = let x =
+          let y = y0 in
+          let x = x0 in
+          
+# 70 "standard.mly"
+    ( (x, y) )
+# 18785 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 116 "standard.mly"
+    ( x :: xs )
+# 18791 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_list_whenppdecs_ = 
+# 114 "standard.mly"
+    ( [] )
+# 18808 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_list_whenppdecs_ = Obj.magic xs in
+        let x : 'tv_whenppdecs = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_list_whenppdecs_ = 
+# 116 "standard.mly"
+    ( x :: xs )
+# 18838 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_pure_ident_or_meta_ident = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_list_len = 
+# 334 "parser_cocci_menhir.mly"
+                           ( Common.Left _1 )
+# 18862 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 18883 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_list_len = 
+# 335 "parser_cocci_menhir.mly"
+       ( let (x,clt) = _1 in Common.Right (int_of_string x) )
+# 18890 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_loption_choose_iso_ = 
+# 57 "standard.mly"
+    ( [] )
+# 18907 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let x : 'tv_choose_iso = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_loption_choose_iso_ = 
+# 59 "standard.mly"
+    ( x )
+# 18931 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_loption_disable_ = 
+# 57 "standard.mly"
+    ( [] )
+# 18948 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let x : 'tv_disable = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_loption_disable_ = 
+# 59 "standard.mly"
+    ( x )
+# 18972 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_loption_filespec_ = 
+# 57 "standard.mly"
+    ( [] )
+# 18989 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let x : 'tv_filespec = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_loption_filespec_ = 
+# 59 "standard.mly"
+    ( x )
+# 19013 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_loption_minus_start_ = 
+# 57 "standard.mly"
+    ( [] )
+# 19030 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let x : 'tv_minus_start = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_loption_minus_start_ = 
+# 59 "standard.mly"
+    ( x )
+# 19054 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_loption_not_pos_ = 
+# 57 "standard.mly"
+    ( [] )
+# 19071 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let x : 'tv_not_pos = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_loption_not_pos_ = 
+# 59 "standard.mly"
+    ( x )
+# 19095 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_loption_plus_start_ = 
+# 57 "standard.mly"
+    ( [] )
+# 19112 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let x : 'tv_plus_start = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_loption_plus_start_ = 
+# 59 "standard.mly"
+    ( x )
+# 19136 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = t;
+          MenhirLib.EngineTypes.startp = _startpos_t_;
+          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let t : 'tv_typedef_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_t_ in
+        let _v : 'tv_meta_exp_type = 
+# 512 "parser_cocci_menhir.mly"
+    ( [Ast0_cocci.ast0_type_to_type t] )
+# 19160 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = t;
+              MenhirLib.EngineTypes.startp = _startpos_t_;
+              MenhirLib.EngineTypes.endp = _endpos_t_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let t : 'tv_typedef_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_meta_exp_type = 
+# 514 "parser_cocci_menhir.mly"
+    ( [Type_cocci.Array (Ast0_cocci.ast0_type_to_type t)] )
+# 19192 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__3_;
+            MenhirLib.EngineTypes.endp = _endpos__3_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = t;
+              MenhirLib.EngineTypes.startp = _startpos_t_;
+              MenhirLib.EngineTypes.endp = _endpos_t_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let t : 'tv_comma_list_ctype_ = Obj.magic t in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_meta_exp_type = 
+# 516 "parser_cocci_menhir.mly"
+    ( List.map
+       (function x -> P.ty_pointerify (Ast0_cocci.ast0_type_to_type x) m)
+       t )
+# 19232 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_pure_ident = Obj.magic _3 in
+        let _1 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 19263 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_meta_ident = 
+# 1482 "parser_cocci_menhir.mly"
+                                   ( (Some _1,P.id2name _3) )
+# 19270 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_pure_ident_kwd = Obj.magic _3 in
+        let _1 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 19301 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_meta_ident = 
+# 1483 "parser_cocci_menhir.mly"
+                                   ( (Some _1,_3) )
+# 19308 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let m : 'tv_metadec = Obj.magic m in
+        let _startpos = _startpos_m_ in
+        let _endpos = _endpos_m_ in
+        let _v : (
+# 162 "parser_cocci_menhir.mly"
+      ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
+# 19332 "parser_cocci_menhir.ml"
+        ) = 
+# 186 "parser_cocci_menhir.mly"
+                       ( m (!Ast0.rule_name) )
+# 19336 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 346 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta ->
+      let tok = check_meta(Ast.MetaParamDecl(arity,name)) in
+      !Data.add_param_meta name pure; tok) )
+# 19383 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 275 "parser_cocci_menhir.mly"
+    ( P.create_metadec ar ispure kindfn ids )
+# 19389 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__6_;
+          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__4_;
+              MenhirLib.EngineTypes.endp = _endpos__4_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__3_;
+                MenhirLib.EngineTypes.endp = _endpos__3_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = ispure;
+                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = ar;
+                    MenhirLib.EngineTypes.startp = _startpos_ar_;
+                    MenhirLib.EngineTypes.endp = _endpos_ar_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__6_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 350 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta ->
+      let len = Ast.AnyLen in
+      let tok = check_meta(Ast.MetaParamListDecl(arity,name,len)) in
+      !Data.add_paramlist_meta name len pure; tok) )
+# 19441 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 275 "parser_cocci_menhir.mly"
+    ( P.create_metadec ar ispure kindfn ids )
+# 19447 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__6_;
+          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__4_;
+              MenhirLib.EngineTypes.endp = _endpos__4_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__3_;
+                MenhirLib.EngineTypes.endp = _endpos__3_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = ispure;
+                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = ar;
+                    MenhirLib.EngineTypes.startp = _startpos_ar_;
+                    MenhirLib.EngineTypes.endp = _endpos_ar_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__6_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 355 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta ->
+      let len = Ast.AnyLen in
+      let tok = check_meta(Ast.MetaExpListDecl(arity,name,len)) in
+      !Data.add_explist_meta name len pure; tok) )
+# 19499 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 275 "parser_cocci_menhir.mly"
+    ( P.create_metadec ar ispure kindfn ids )
+# 19505 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 360 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta ->
+      let tok = check_meta(Ast.MetaTypeDecl(arity,name)) in
+      !Data.add_type_meta name pure; tok) )
+# 19552 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 275 "parser_cocci_menhir.mly"
+    ( P.create_metadec ar ispure kindfn ids )
+# 19558 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 364 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta ->
+      let tok = check_meta(Ast.MetaInitDecl(arity,name)) in
+      !Data.add_init_meta name pure; tok) )
+# 19605 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 275 "parser_cocci_menhir.mly"
+    ( P.create_metadec ar ispure kindfn ids )
+# 19611 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 368 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta ->
+      let tok = check_meta(Ast.MetaStmDecl(arity,name)) in
+      !Data.add_stm_meta name pure; tok) )
+# 19658 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 275 "parser_cocci_menhir.mly"
+    ( P.create_metadec ar ispure kindfn ids )
+# 19664 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 372 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta ->
+      let tok = check_meta(Ast.MetaDeclDecl(arity,name)) in
+      !Data.add_decl_meta name pure; tok) )
+# 19711 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 275 "parser_cocci_menhir.mly"
+    ( P.create_metadec ar ispure kindfn ids )
+# 19717 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 376 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta ->
+      let tok = check_meta(Ast.MetaFieldDecl(arity,name)) in
+      !Data.add_field_meta name pure; tok) )
+# 19764 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 275 "parser_cocci_menhir.mly"
+    ( P.create_metadec ar ispure kindfn ids )
+# 19770 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__6_;
+          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__4_;
+              MenhirLib.EngineTypes.endp = _endpos__4_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__3_;
+                MenhirLib.EngineTypes.endp = _endpos__3_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = ispure;
+                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = ar;
+                    MenhirLib.EngineTypes.startp = _startpos_ar_;
+                    MenhirLib.EngineTypes.endp = _endpos_ar_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__6_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 380 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta ->
+      let tok = check_meta(Ast.MetaStmListDecl(arity,name)) in
+      !Data.add_stmlist_meta name pure; tok) )
+# 19821 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 275 "parser_cocci_menhir.mly"
+    ( P.create_metadec ar ispure kindfn ids )
+# 19827 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 384 "parser_cocci_menhir.mly"
+    ( (fun arity (_,name) pure check_meta ->
+      if arity = Ast.NONE && pure = Ast0.Impure
+      then (!Data.add_type_name name; [])
+      else raise (Semantic_cocci.Semantic "bad typedef")) )
+# 19875 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 275 "parser_cocci_menhir.mly"
+    ( P.create_metadec ar ispure kindfn ids )
+# 19881 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__6_;
+          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__4_;
+              MenhirLib.EngineTypes.endp = _endpos__4_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__3_;
+                MenhirLib.EngineTypes.endp = _endpos__3_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = ispure;
+                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = ar;
+                    MenhirLib.EngineTypes.startp = _startpos_ar_;
+                    MenhirLib.EngineTypes.endp = _endpos_ar_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__6_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 389 "parser_cocci_menhir.mly"
+    ( (fun arity (_,name) pure check_meta ->
+      if arity = Ast.NONE && pure = Ast0.Impure
+      then (!Data.add_declarer_name name; [])
+      else raise (Semantic_cocci.Semantic "bad declarer")) )
+# 19933 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 275 "parser_cocci_menhir.mly"
+    ( P.create_metadec ar ispure kindfn ids )
+# 19939 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__6_;
+          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__4_;
+              MenhirLib.EngineTypes.endp = _endpos__4_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__3_;
+                MenhirLib.EngineTypes.endp = _endpos__3_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = ispure;
+                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = ar;
+                    MenhirLib.EngineTypes.startp = _startpos_ar_;
+                    MenhirLib.EngineTypes.endp = _endpos_ar_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__6_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 394 "parser_cocci_menhir.mly"
+    ( (fun arity (_,name) pure check_meta ->
+      if arity = Ast.NONE && pure = Ast0.Impure
+      then (!Data.add_iterator_name name; [])
+      else raise (Semantic_cocci.Semantic "bad iterator")) )
+# 19991 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 275 "parser_cocci_menhir.mly"
+    ( P.create_metadec ar ispure kindfn ids )
+# 19997 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_seed_ = Obj.magic ids in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 339 "parser_cocci_menhir.mly"
+    ( (fun name check_meta seed ->
+      let tok = check_meta(Ast.MetaFreshIdDecl(name,seed)) in
+      !Data.add_fresh_id_meta name; tok) )
+# 20036 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 278 "parser_cocci_menhir.mly"
+    ( P.create_fresh_metadec kindfn ids )
+# 20042 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 401 "parser_cocci_menhir.mly"
+    (
+     let idfn arity name pure check_meta constraints =
+       let tok = check_meta(Ast.MetaIdDecl(arity,name)) in
+       !Data.add_id_meta name constraints pure; tok in
+     let virtfn arity name pure check_meta virtual_env =
+       try
+        let vl = List.assoc name virtual_env in
+        !Data.add_virt_id_meta_found name vl; []
+       with Not_found ->
+        let name = ("virtual",name) in
+        let tok = check_meta(Ast.MetaIdDecl(arity,name)) in
+        !Data.add_virt_id_meta_not_found name pure; tok in
+     (idfn,virtfn) )
+# 20099 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 284 "parser_cocci_menhir.mly"
+    ( let (normal,virt) = Common.partition_either (fun x -> x) ids in
+    let (idfn,virtfn) = kindfn in
+    function cr ->
+      (P.create_metadec_with_constraints ar ispure idfn normal cr) @
+      (P.create_metadec_virt ar ispure virtfn virt cr) )
+# 20109 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 417 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      let tok = check_meta(Ast.MetaFuncDecl(arity,name)) in
+      !Data.add_func_meta name constraints pure; tok) )
+# 20156 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 293 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20162 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__6_;
+          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__4_;
+              MenhirLib.EngineTypes.endp = _endpos__4_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__3_;
+                MenhirLib.EngineTypes.endp = _endpos__3_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = ispure;
+                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = ar;
+                    MenhirLib.EngineTypes.startp = _startpos_ar_;
+                    MenhirLib.EngineTypes.endp = _endpos_ar_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__6_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 421 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      let tok = check_meta(Ast.MetaLocalFuncDecl(arity,name)) in
+      !Data.add_local_func_meta name constraints pure;
+      tok) )
+# 20214 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 293 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20220 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 426 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      let tok = check_meta(Ast.MetaDeclarerDecl(arity,name)) in
+      !Data.add_declarer_meta name constraints pure; tok) )
+# 20267 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 293 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20273 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 430 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      let tok = check_meta(Ast.MetaIteratorDecl(arity,name)) in
+      !Data.add_iterator_meta name constraints pure; tok) )
+# 20320 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 293 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20326 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 436 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      let tok = check_meta(Ast.MetaErrDecl(arity,name)) in
+      !Data.add_err_meta name constraints pure; tok) )
+# 20373 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 298 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20379 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__6_;
+          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__4_;
+              MenhirLib.EngineTypes.endp = _endpos__4_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l0;
+                MenhirLib.EngineTypes.startp = _startpos_l0_;
+                MenhirLib.EngineTypes.endp = _endpos_l0_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = ispure;
+                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = ar;
+                    MenhirLib.EngineTypes.startp = _startpos_ar_;
+                    MenhirLib.EngineTypes.endp = _endpos_ar_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in
+        let l0 : 'tv_option_TLocal_ = Obj.magic l0 in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__6_ in
+        let _v : 'tv_metadec = let kindfn =
+          let l = l0 in
+          let ty =
+            
+# 39 "standard.mly"
+    ( None )
+# 20432 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 440 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      match l with
+       None ->
+         !Data.add_idexp_meta ty name constraints pure;
+         check_meta(Ast.MetaIdExpDecl(arity,name,ty))
+      | Some _ ->
+         !Data.add_local_idexp_meta ty name constraints pure;
+         check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) )
+# 20445 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 298 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20451 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__7_;
+          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = x00;
+              MenhirLib.EngineTypes.startp = _startpos_x00_;
+              MenhirLib.EngineTypes.endp = _endpos_x00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__4_;
+                MenhirLib.EngineTypes.endp = _endpos__4_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = l0;
+                  MenhirLib.EngineTypes.startp = _startpos_l0_;
+                  MenhirLib.EngineTypes.endp = _endpos_l0_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = ispure;
+                    MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                    MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = ar;
+                      MenhirLib.EngineTypes.startp = _startpos_ar_;
+                      MenhirLib.EngineTypes.endp = _endpos_ar_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in
+        let x00 : 'tv_meta_exp_type = Obj.magic x00 in
+        let l0 : 'tv_option_TLocal_ = Obj.magic l0 in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__7_ in
+        let _v : 'tv_metadec = let kindfn =
+          let x0 = x00 in
+          let l = l0 in
+          let ty =
+            let x = x0 in
+            
+# 41 "standard.mly"
+    ( Some x )
+# 20512 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 440 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      match l with
+       None ->
+         !Data.add_idexp_meta ty name constraints pure;
+         check_meta(Ast.MetaIdExpDecl(arity,name,ty))
+      | Some _ ->
+         !Data.add_local_idexp_meta ty name constraints pure;
+         check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) )
+# 20525 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 298 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20531 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__7_;
+          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = m0;
+              MenhirLib.EngineTypes.startp = _startpos_m0_;
+              MenhirLib.EngineTypes.endp = _endpos_m0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__4_;
+                MenhirLib.EngineTypes.endp = _endpos__4_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = l0;
+                  MenhirLib.EngineTypes.startp = _startpos_l0_;
+                  MenhirLib.EngineTypes.endp = _endpos_l0_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = ispure;
+                    MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                    MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = ar;
+                      MenhirLib.EngineTypes.startp = _startpos_ar_;
+                      MenhirLib.EngineTypes.endp = _endpos_ar_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in
+        let m0 : 'tv_nonempty_list_TMul_ = Obj.magic m0 in
+        let l0 : 'tv_option_TLocal_ = Obj.magic l0 in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__7_ in
+        let _v : 'tv_metadec = let kindfn =
+          let m = m0 in
+          let l = l0 in
+          
+# 449 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      let ty = Some [P.ty_pointerify Type_cocci.Unknown m] in
+      match l with
+       None ->
+         !Data.add_idexp_meta ty name constraints pure;
+         check_meta(Ast.MetaIdExpDecl(arity,name,ty))
+      | Some _ ->
+         !Data.add_local_idexp_meta ty name constraints pure;
+         check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) )
+# 20598 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 298 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20604 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__6_;
+          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = ty0;
+              MenhirLib.EngineTypes.startp = _startpos_ty0_;
+              MenhirLib.EngineTypes.endp = _endpos_ty0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__3_;
+                MenhirLib.EngineTypes.endp = _endpos__3_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = ispure;
+                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = ar;
+                    MenhirLib.EngineTypes.startp = _startpos_ar_;
+                    MenhirLib.EngineTypes.endp = _endpos_ar_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in
+        let ty0 : 'tv_expression_type = Obj.magic ty0 in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__6_ in
+        let _v : 'tv_metadec = let kindfn =
+          let ty = ty0 in
+          
+# 459 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      let ty = Some [ty] in
+      let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in
+      !Data.add_exp_meta ty name constraints pure; tok) )
+# 20659 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 298 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20665 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          let ty =
+            
+# 39 "standard.mly"
+    ( None )
+# 20711 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 464 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in
+      !Data.add_const_meta ty name constraints pure; tok) )
+# 20719 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 298 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20725 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__6_;
+          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = x00;
+              MenhirLib.EngineTypes.startp = _startpos_x00_;
+              MenhirLib.EngineTypes.endp = _endpos_x00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__3_;
+                MenhirLib.EngineTypes.endp = _endpos__3_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = ispure;
+                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = ar;
+                    MenhirLib.EngineTypes.startp = _startpos_ar_;
+                    MenhirLib.EngineTypes.endp = _endpos_ar_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic ids in
+        let x00 : 'tv_meta_exp_type = Obj.magic x00 in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__6_ in
+        let _v : 'tv_metadec = let kindfn =
+          let x0 = x00 in
+          let ty =
+            let x = x0 in
+            
+# 41 "standard.mly"
+    ( Some x )
+# 20779 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 464 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in
+      !Data.add_const_meta ty name constraints pure; tok) )
+# 20787 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 298 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20793 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = Obj.magic ids in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          
+# 481 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      let tok = check_meta(Ast.MetaExpDecl(arity,name,None)) in
+      !Data.add_exp_meta None name constraints pure; tok) )
+# 20840 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 303 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20846 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = vl0;
+              MenhirLib.EngineTypes.startp = _startpos_vl0_;
+              MenhirLib.EngineTypes.endp = _endpos_vl0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ispure;
+                MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = Obj.magic ids in
+        let vl0 : 'tv_meta_exp_type = Obj.magic vl0 in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = let kindfn =
+          let vl = vl0 in
+          
+# 485 "parser_cocci_menhir.mly"
+    ( (fun arity name pure check_meta constraints ->
+      let ty = Some vl in
+      (match constraints with
+       Ast0.NotExpCstrt constraints ->
+         List.iter
+           (function c ->
+             match Ast0.unwrap c with
+               Ast0.Constant(_) ->
+                 if not
+                     (List.exists
+                        (function
+                            Type_cocci.BaseType(Type_cocci.IntType) -> true
+                          | Type_cocci.BaseType(Type_cocci.ShortType) -> true
+                          | Type_cocci.BaseType(Type_cocci.LongType) -> true
+                          | _ -> false)
+                        vl)
+                 then
+                   failwith "metavariable with int constraint must be an int"
+             | _ -> ())
+           constraints
+      |        _ -> ());
+      let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in
+      !Data.add_exp_meta ty name constraints pure; tok)
+    )
+# 20917 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 303 "parser_cocci_menhir.mly"
+    ( P.create_metadec_with_constraints ar ispure kindfn ids )
+# 20923 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = a;
+              MenhirLib.EngineTypes.startp = _startpos_a_;
+              MenhirLib.EngineTypes.endp = _endpos_a_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = ar;
+                  MenhirLib.EngineTypes.startp = _startpos_ar_;
+                  MenhirLib.EngineTypes.endp = _endpos_ar_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_x_eq_not_pos__ = Obj.magic ids in
+        let a : 'tv_option_TPosAny_ = Obj.magic a in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_metadec = 
+# 309 "parser_cocci_menhir.mly"
+    ( (if !Data.in_generating
+      then failwith "position variables not allowed in a generated rule file");
+      let kindfn arity name pure check_meta constraints =
+      let tok = check_meta(Ast.MetaPosDecl(arity,name)) in
+      let any = match a with None -> Ast.PER | Some _ -> Ast.ALL in
+      !Data.add_pos_meta name constraints any; tok in
+    P.create_metadec_with_constraints ar false kindfn ids )
+# 20973 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__9_;
+          MenhirLib.EngineTypes.endp = _endpos__9_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__7_;
+              MenhirLib.EngineTypes.endp = _endpos__7_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = len;
+                MenhirLib.EngineTypes.startp = _startpos_len_;
+                MenhirLib.EngineTypes.endp = _endpos_len_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.startp = _startpos__5_;
+                  MenhirLib.EngineTypes.endp = _endpos__5_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.startp = _startpos__4_;
+                    MenhirLib.EngineTypes.endp = _endpos__4_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.startp = _startpos__3_;
+                      MenhirLib.EngineTypes.endp = _endpos__3_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.semv = ispure;
+                        MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                        MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.state = _menhir_s;
+                          MenhirLib.EngineTypes.semv = ar;
+                          MenhirLib.EngineTypes.startp = _startpos_ar_;
+                          MenhirLib.EngineTypes.endp = _endpos_ar_;
+                          MenhirLib.EngineTypes.next = _menhir_stack;
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let len : 'tv_list_len = Obj.magic len in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__9_ in
+        let _v : 'tv_metadec = 
+# 319 "parser_cocci_menhir.mly"
+    ( P.create_len_metadec ar ispure
+       (fun lenname arity name pure check_meta ->
+         let tok = check_meta(Ast.MetaParamListDecl(arity,name,lenname)) in
+         !Data.add_paramlist_meta name lenname pure; tok)
+       len ids )
+# 21039 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__9_;
+          MenhirLib.EngineTypes.endp = _endpos__9_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ids;
+            MenhirLib.EngineTypes.startp = _startpos_ids_;
+            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__7_;
+              MenhirLib.EngineTypes.endp = _endpos__7_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = len;
+                MenhirLib.EngineTypes.startp = _startpos_len_;
+                MenhirLib.EngineTypes.endp = _endpos_len_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.startp = _startpos__5_;
+                  MenhirLib.EngineTypes.endp = _endpos__5_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.startp = _startpos__4_;
+                    MenhirLib.EngineTypes.endp = _endpos__4_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.startp = _startpos__3_;
+                      MenhirLib.EngineTypes.endp = _endpos__3_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.semv = ispure;
+                        MenhirLib.EngineTypes.startp = _startpos_ispure_;
+                        MenhirLib.EngineTypes.endp = _endpos_ispure_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.state = _menhir_s;
+                          MenhirLib.EngineTypes.semv = ar;
+                          MenhirLib.EngineTypes.startp = _startpos_ar_;
+                          MenhirLib.EngineTypes.endp = _endpos_ar_;
+                          MenhirLib.EngineTypes.next = _menhir_stack;
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
+        let len : 'tv_list_len = Obj.magic len in
+        let ispure : 'tv_pure = Obj.magic ispure in
+        let ar : 'tv_arity = Obj.magic ar in
+        let _startpos = _startpos_ar_ in
+        let _endpos = _endpos__9_ in
+        let _v : 'tv_metadec = 
+# 327 "parser_cocci_menhir.mly"
+    ( P.create_len_metadec ar ispure
+       (fun lenname arity name pure check_meta ->
+         let tok = check_meta(Ast.MetaExpListDecl(arity,name,lenname)) in
+         !Data.add_explist_meta name lenname pure; tok)
+       len ids )
+# 21105 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_list_mzl_ctype__ = Obj.magic b in
+        let a : 'tv_ctype = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_midzero_list_ctype_ctype_ = 
+# 2009 "parser_cocci_menhir.mly"
+     ( let (mids,code) = List.split b in (mids,(a::code)) )
+# 21135 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_list_mzl_eexpr__ = Obj.magic b in
+        let a : 'tv_eexpr = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_midzero_list_eexpr_eexpr_ = 
+# 2009 "parser_cocci_menhir.mly"
+     ( let (mids,code) = List.split b in (mids,(a::code)) )
+# 21165 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_list_mzl_eexpr__ = Obj.magic b in
+        let a : 'tv_expr = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_midzero_list_expr_eexpr_ = 
+# 2009 "parser_cocci_menhir.mly"
+     ( let (mids,code) = List.split b in (mids,(a::code)) )
+# 21195 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_list_mzl_fun_after_dots_or__ = Obj.magic b in
+        let a : 'tv_fun_after_stm = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = 
+# 2009 "parser_cocci_menhir.mly"
+     ( let (mids,code) = List.split b in (mids,(a::code)) )
+# 21225 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_list_mzl_fun_start__ = Obj.magic b in
+        let a : 'tv_fun_start = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_midzero_list_fun_start_fun_start_ = 
+# 2009 "parser_cocci_menhir.mly"
+     ( let (mids,code) = List.split b in (mids,(a::code)) )
+# 21255 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_list_mzl_rule_elem_statement__ = Obj.magic b in
+        let a : 'tv_rule_elem_statement = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = 
+# 2009 "parser_cocci_menhir.mly"
+     ( let (mids,code) = List.split b in (mids,(a::code)) )
+# 21285 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_list_mzl_statement__ = Obj.magic b in
+        let a : 'tv_statement = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_midzero_list_statement_statement_ = 
+# 2009 "parser_cocci_menhir.mly"
+     ( let (mids,code) = List.split b in (mids,(a::code)) )
+# 21315 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = f;
+            MenhirLib.EngineTypes.startp = _startpos_f_;
+            MenhirLib.EngineTypes.endp = _endpos_f_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_loption_minus_start_ = Obj.magic b in
+        let f : 'tv_loption_filespec_ = Obj.magic f in
+        let _startpos = _startpos_f_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_minus_body = 
+# 701 "parser_cocci_menhir.mly"
+    ( match f@b(*@ew*) with
+      [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty")
+    | code -> Top_level.top_level code )
+# 21347 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = f;
+            MenhirLib.EngineTypes.startp = _startpos_f_;
+            MenhirLib.EngineTypes.endp = _endpos_f_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_top_eexpr = Obj.magic b in
+        let f : 'tv_loption_filespec_ = Obj.magic f in
+        let _startpos = _startpos_f_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_minus_exp_body = 
+# 715 "parser_cocci_menhir.mly"
+    ( match f@[b](*@ew*) with
+      [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty")
+    | code -> Top_level.top_level code )
+# 21379 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _1 : 'tv_minus_exp_body = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 142 "parser_cocci_menhir.mly"
+      (Ast0_cocci.rule)
+# 21407 "parser_cocci_menhir.ml"
+        ) = 
+# 182 "parser_cocci_menhir.mly"
+                                   ( _1 )
+# 21411 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = m;
+            MenhirLib.EngineTypes.startp = _startpos_m_;
+            MenhirLib.EngineTypes.endp = _endpos_m_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let m : 'tv_minus_exp_body = Obj.magic m in
+        let _startpos = _startpos_m_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 142 "parser_cocci_menhir.mly"
+      (Ast0_cocci.rule)
+# 21439 "parser_cocci_menhir.ml"
+        ) = 
+# 182 "parser_cocci_menhir.mly"
+                                                                       ( m )
+# 21443 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = m;
+            MenhirLib.EngineTypes.startp = _startpos_m_;
+            MenhirLib.EngineTypes.endp = _endpos_m_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let m : 'tv_minus_exp_body = Obj.magic m in
+        let _startpos = _startpos_m_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 142 "parser_cocci_menhir.mly"
+      (Ast0_cocci.rule)
+# 21471 "parser_cocci_menhir.ml"
+        ) = 
+# 183 "parser_cocci_menhir.mly"
+                         ( m )
+# 21475 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _1 : 'tv_minus_body = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 139 "parser_cocci_menhir.mly"
+      (Ast0_cocci.rule)
+# 21503 "parser_cocci_menhir.ml"
+        ) = 
+# 178 "parser_cocci_menhir.mly"
+                           ( _1 )
+# 21507 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = m;
+            MenhirLib.EngineTypes.startp = _startpos_m_;
+            MenhirLib.EngineTypes.endp = _endpos_m_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let m : 'tv_minus_body = Obj.magic m in
+        let _startpos = _startpos_m_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 139 "parser_cocci_menhir.mly"
+      (Ast0_cocci.rule)
+# 21535 "parser_cocci_menhir.ml"
+        ) = 
+# 178 "parser_cocci_menhir.mly"
+                                                           ( m )
+# 21539 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = m;
+            MenhirLib.EngineTypes.startp = _startpos_m_;
+            MenhirLib.EngineTypes.endp = _endpos_m_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let m : 'tv_minus_body = Obj.magic m in
+        let _startpos = _startpos_m_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 139 "parser_cocci_menhir.mly"
+      (Ast0_cocci.rule)
+# 21567 "parser_cocci_menhir.ml"
+        ) = 
+# 179 "parser_cocci_menhir.mly"
+                     ( m )
+# 21571 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_fundecl = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_minus_start = 
+# 1834 "parser_cocci_menhir.mly"
+                         ( [Ast0.wrap(Ast0.DECL(_1))] )
+# 21595 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_ctype = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_minus_start = 
+# 1835 "parser_cocci_menhir.mly"
+                         ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] )
+# 21619 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_top_init = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_minus_start = 
+# 1836 "parser_cocci_menhir.mly"
+                    ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] )
+# 21643 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_minus_start = 
+# 1838 "parser_cocci_menhir.mly"
+    ( List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1 )
+# 21667 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_ctype = Obj.magic b in
+        let a : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 21694 "parser_cocci_menhir.ml"
+        ) = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_mzl_ctype_ = 
+# 2012 "parser_cocci_menhir.mly"
+                 ( (P.clt2mcode "|" a, b) )
+# 21701 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_eexpr = Obj.magic b in
+        let a : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 21728 "parser_cocci_menhir.ml"
+        ) = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_mzl_eexpr_ = 
+# 2012 "parser_cocci_menhir.mly"
+                 ( (P.clt2mcode "|" a, b) )
+# 21735 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_fun_after_dots_or = Obj.magic b in
+        let a : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 21762 "parser_cocci_menhir.ml"
+        ) = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_mzl_fun_after_dots_or_ = 
+# 2012 "parser_cocci_menhir.mly"
+                 ( (P.clt2mcode "|" a, b) )
+# 21769 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_fun_start = Obj.magic b in
+        let a : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 21796 "parser_cocci_menhir.ml"
+        ) = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_mzl_fun_start_ = 
+# 2012 "parser_cocci_menhir.mly"
+                 ( (P.clt2mcode "|" a, b) )
+# 21803 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_rule_elem_statement = Obj.magic b in
+        let a : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 21830 "parser_cocci_menhir.ml"
+        ) = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_mzl_rule_elem_statement_ = 
+# 2012 "parser_cocci_menhir.mly"
+                 ( (P.clt2mcode "|" a, b) )
+# 21837 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = a;
+            MenhirLib.EngineTypes.startp = _startpos_a_;
+            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let b : 'tv_statement = Obj.magic b in
+        let a : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 21864 "parser_cocci_menhir.ml"
+        ) = Obj.magic a in
+        let _startpos = _startpos_a_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_mzl_statement_ = 
+# 2012 "parser_cocci_menhir.mly"
+                 ( (P.clt2mcode "|" a, b) )
+# 21871 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_decl = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_name_opt_decl = 
+# 908 "parser_cocci_menhir.mly"
+            ( _1 )
+# 21895 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = rp1;
+          MenhirLib.EngineTypes.startp = _startpos_rp1_;
+          MenhirLib.EngineTypes.endp = _endpos_rp1_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = lp1;
+              MenhirLib.EngineTypes.startp = _startpos_lp1_;
+              MenhirLib.EngineTypes.endp = _endpos_lp1_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = rp;
+                MenhirLib.EngineTypes.startp = _startpos_rp_;
+                MenhirLib.EngineTypes.endp = _endpos_rp_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = s;
+                  MenhirLib.EngineTypes.startp = _startpos_s_;
+                  MenhirLib.EngineTypes.endp = _endpos_s_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = lp;
+                    MenhirLib.EngineTypes.startp = _startpos_lp_;
+                    MenhirLib.EngineTypes.endp = _endpos_lp_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = t;
+                      MenhirLib.EngineTypes.startp = _startpos_t_;
+                      MenhirLib.EngineTypes.endp = _endpos_t_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let rp1 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 21946 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp1 in
+        let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
+        let lp1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 21952 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp1 in
+        let rp : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 21957 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp in
+        let s : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 21962 "parser_cocci_menhir.ml"
+        ) = Obj.magic s in
+        let lp : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 21967 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_rp1_ in
+        let _v : 'tv_name_opt_decl = 
+# 911 "parser_cocci_menhir.mly"
+        ( let fnptr =
+         Ast0.wrap
+           (Ast0.FunctionPointer
+              (t,P.clt2mcode "(" lp,P.clt2mcode "*" s,P.clt2mcode ")" rp,
+               P.clt2mcode "(" lp1,d,P.clt2mcode ")" rp1)) in
+       Ast0.wrap(Ast0.Param(fnptr, None)) )
+# 21980 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_nest_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nest_after_dots = 
+# 1954 "parser_cocci_menhir.mly"
+                                     (_1@_2)
+# 22010 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_nest_after_exp = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nest_after_dots = 
+# 1955 "parser_cocci_menhir.mly"
+                                (_2)
+# 22038 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_nest_after_exp = Obj.magic _2 in
+        let _1 : 'tv_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nest_after_dots = 
+# 1956 "parser_cocci_menhir.mly"
+                                ((Ast0.wrap(Ast0.Exp(_1)))::_2)
+# 22068 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_nest_after_exp = 
+# 1964 "parser_cocci_menhir.mly"
+                                ([])
+# 22085 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_nest_after_dots = Obj.magic _2 in
+        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nest_after_exp = 
+# 1965 "parser_cocci_menhir.mly"
+                                (_1::_2)
+# 22115 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_nest_after_stm = 
+# 1959 "parser_cocci_menhir.mly"
+                                ([])
+# 22132 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_nest_after_dots = Obj.magic _2 in
+        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nest_after_stm = 
+# 1960 "parser_cocci_menhir.mly"
+                                (_1::_2)
+# 22162 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_nest_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nest_after_stm = 
+# 1961 "parser_cocci_menhir.mly"
+                                (_1@_2)
+# 22192 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = c;
+          MenhirLib.EngineTypes.startp = _startpos_c_;
+          MenhirLib.EngineTypes.endp = _endpos_c_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let c : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22223 "parser_cocci_menhir.ml"
+        ) = Obj.magic c in
+        let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in
+        let _1 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22229 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_c_ in
+        let _v : 'tv_nest_expressions = 
+# 1279 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<..." _1,
+                             Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))),
+                             P.clt2mcode "...>" c, None, false)) )
+# 22238 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = c;
+          MenhirLib.EngineTypes.startp = _startpos_c_;
+          MenhirLib.EngineTypes.endp = _endpos_c_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let c : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22269 "parser_cocci_menhir.ml"
+        ) = Obj.magic c in
+        let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in
+        let _1 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22275 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_c_ in
+        let _v : 'tv_nest_expressions = 
+# 1283 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<+..." _1,
+                             Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))),
+                             P.clt2mcode "...+>" c, None, true)) )
+# 22284 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_nest_after_dots = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_nest_start = 
+# 1951 "parser_cocci_menhir.mly"
+                   ( Ast0.wrap(Ast0.DOTS(_1)) )
+# 22308 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : (
+# 173 "parser_cocci_menhir.mly"
+      (unit)
+# 22330 "parser_cocci_menhir.ml"
+        ) = 
+# 2079 "parser_cocci_menhir.mly"
+                    ( () )
+# 22334 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 173 "parser_cocci_menhir.mly"
+      (unit)
+# 22360 "parser_cocci_menhir.ml"
+        ) = 
+# 2080 "parser_cocci_menhir.mly"
+                    ( () )
+# 22364 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : (
+# 173 "parser_cocci_menhir.mly"
+      (unit)
+# 22386 "parser_cocci_menhir.ml"
+        ) = 
+# 2081 "parser_cocci_menhir.mly"
+                    ( () )
+# 22390 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = dg;
+          MenhirLib.EngineTypes.startp = _startpos_dg_;
+          MenhirLib.EngineTypes.endp = _endpos_dg_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = g;
+            MenhirLib.EngineTypes.startp = _startpos_g_;
+            MenhirLib.EngineTypes.endp = _endpos_g_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let dg : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = Obj.magic dg in
+        let g : 'tv_dexpr = Obj.magic g in
+        let _startpos = _startpos_g_ in
+        let _endpos = _endpos_dg_ in
+        let _v : 'tv_no_dot_start_end_dexpr_edots_when_TEllipsis_eexpr__ = 
+# 1449 "parser_cocci_menhir.mly"
+  ( function dot_builder ->
+      g :: (List.concat(List.map (function (d,g) -> [dot_builder d;g]) dg)) )
+# 22421 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let x : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22442 "parser_cocci_menhir.ml"
+        ) = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_nonempty_list_TMul_ = 
+# 124 "standard.mly"
+    ( [ x ] )
+# 22449 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = x;
+            MenhirLib.EngineTypes.startp = _startpos_x_;
+            MenhirLib.EngineTypes.endp = _endpos_x_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let xs : 'tv_nonempty_list_TMul_ = Obj.magic xs in
+        let x : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22476 "parser_cocci_menhir.ml"
+        ) = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_nonempty_list_TMul_ = 
+# 126 "standard.mly"
+    ( x :: xs )
+# 22483 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_aexpr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
+# 1761 "parser_cocci_menhir.mly"
+       ( fun build_dots build_comma -> [_1] )
+# 22507 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22533 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_aexpr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
+# 1763 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 22542 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_nonempty_list_start_aexpr_TEllipsis_ = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22574 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_aexpr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
+# 1766 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (_3 build_dots build_comma) )
+# 22584 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_nonempty_list_start_aexpr_TEllipsis_ = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
+# 1769 "parser_cocci_menhir.mly"
+                                            ( _2 )
+# 22612 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = d;
+          MenhirLib.EngineTypes.startp = _startpos_d_;
+          MenhirLib.EngineTypes.endp = _endpos_d_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22633 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_d_ in
+        let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
+# 1770 "parser_cocci_menhir.mly"
+           ( fun build_dots build_comma -> [(build_dots "..." d)] )
+# 22640 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22666 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22671 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
+# 1772 "parser_cocci_menhir.mly"
+      ( fun build_dots build_comma ->
+       [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 22679 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = r;
+          MenhirLib.EngineTypes.startp = _startpos_r_;
+          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = d;
+              MenhirLib.EngineTypes.startp = _startpos_d_;
+              MenhirLib.EngineTypes.endp = _endpos_d_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let r : 'tv_continue_list_aexpr_TEllipsis_ = Obj.magic r in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22711 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22716 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_r_ in
+        let _v : 'tv_nonempty_list_start_aexpr_TEllipsis_ = 
+# 1775 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      (build_dots "..." d)::
+      (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (r build_dots build_comma) )
+# 22726 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_dparam = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
+# 1761 "parser_cocci_menhir.mly"
+       ( fun build_dots build_comma -> [_1] )
+# 22750 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22776 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_dparam = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
+# 1763 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 22785 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_nonempty_list_start_dparam_TEllipsis_ = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22817 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_dparam = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
+# 1766 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (_3 build_dots build_comma) )
+# 22827 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_nonempty_list_start_dparam_TEllipsis_ = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
+# 1769 "parser_cocci_menhir.mly"
+                                            ( _2 )
+# 22855 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = d;
+          MenhirLib.EngineTypes.startp = _startpos_d_;
+          MenhirLib.EngineTypes.endp = _endpos_d_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22876 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_d_ in
+        let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
+# 1770 "parser_cocci_menhir.mly"
+           ( fun build_dots build_comma -> [(build_dots "..." d)] )
+# 22883 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22909 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22914 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
+# 1772 "parser_cocci_menhir.mly"
+      ( fun build_dots build_comma ->
+       [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 22922 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = r;
+          MenhirLib.EngineTypes.startp = _startpos_r_;
+          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = d;
+              MenhirLib.EngineTypes.startp = _startpos_d_;
+              MenhirLib.EngineTypes.endp = _endpos_d_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let r : 'tv_continue_list_dparam_TEllipsis_ = Obj.magic r in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22954 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 22959 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_r_ in
+        let _v : 'tv_nonempty_list_start_dparam_TEllipsis_ = 
+# 1775 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      (build_dots "..." d)::
+      (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (r build_dots build_comma) )
+# 22969 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_enum_decl_one = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
+# 1761 "parser_cocci_menhir.mly"
+       ( fun build_dots build_comma -> [_1] )
+# 22993 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23019 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_enum_decl_one = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
+# 1763 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 23028 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23060 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_enum_decl_one = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
+# 1766 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (_3 build_dots build_comma) )
+# 23070 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
+# 1769 "parser_cocci_menhir.mly"
+                                            ( _2 )
+# 23098 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = d;
+          MenhirLib.EngineTypes.startp = _startpos_d_;
+          MenhirLib.EngineTypes.endp = _endpos_d_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let d : 'tv_edots_when_TEllipsis_enum_decl_one_ = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_d_ in
+        let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
+# 1770 "parser_cocci_menhir.mly"
+           ( fun build_dots build_comma -> [(build_dots "..." d)] )
+# 23122 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23148 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let d : 'tv_edots_when_TEllipsis_enum_decl_one_ = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
+# 1772 "parser_cocci_menhir.mly"
+      ( fun build_dots build_comma ->
+       [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 23157 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = r;
+          MenhirLib.EngineTypes.startp = _startpos_r_;
+          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = d;
+              MenhirLib.EngineTypes.startp = _startpos_d_;
+              MenhirLib.EngineTypes.endp = _endpos_d_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let r : 'tv_continue_list_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = Obj.magic r in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23189 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let d : 'tv_edots_when_TEllipsis_enum_decl_one_ = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_r_ in
+        let _v : 'tv_nonempty_list_start_enum_decl_one_edots_when_TEllipsis_enum_decl_one__ = 
+# 1775 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      (build_dots "..." d)::
+      (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (r build_dots build_comma) )
+# 23200 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_initialize2 = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1761 "parser_cocci_menhir.mly"
+       ( fun build_dots build_comma -> [_1] )
+# 23224 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23250 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_initialize2 = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1763 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 23259 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23291 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_initialize2 = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1766 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (_3 build_dots build_comma) )
+# 23301 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1769 "parser_cocci_menhir.mly"
+                                            ( _2 )
+# 23329 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = d;
+          MenhirLib.EngineTypes.startp = _startpos_d_;
+          MenhirLib.EngineTypes.endp = _endpos_d_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let d : 'tv_edots_when_TEllipsis_initialize_ = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_d_ in
+        let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1770 "parser_cocci_menhir.mly"
+           ( fun build_dots build_comma -> [(build_dots "..." d)] )
+# 23353 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23379 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let d : 'tv_edots_when_TEllipsis_initialize_ = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1772 "parser_cocci_menhir.mly"
+      ( fun build_dots build_comma ->
+       [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 23388 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = r;
+          MenhirLib.EngineTypes.startp = _startpos_r_;
+          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = d;
+              MenhirLib.EngineTypes.startp = _startpos_d_;
+              MenhirLib.EngineTypes.endp = _endpos_d_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let r : 'tv_continue_list_initialize2_edots_when_TEllipsis_initialize__ = Obj.magic r in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23420 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let d : 'tv_edots_when_TEllipsis_initialize_ = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_r_ in
+        let _v : 'tv_nonempty_list_start_initialize2_edots_when_TEllipsis_initialize__ = 
+# 1775 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      (build_dots "..." d)::
+      (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (r build_dots build_comma) )
+# 23431 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
+# 1761 "parser_cocci_menhir.mly"
+       ( fun build_dots build_comma -> [_1] )
+# 23455 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23481 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
+# 1763 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 23490 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23522 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
+# 1766 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (_3 build_dots build_comma) )
+# 23532 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
+# 1769 "parser_cocci_menhir.mly"
+                                            ( _2 )
+# 23560 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = d;
+          MenhirLib.EngineTypes.startp = _startpos_d_;
+          MenhirLib.EngineTypes.endp = _endpos_d_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23581 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_d_ in
+        let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
+# 1770 "parser_cocci_menhir.mly"
+           ( fun build_dots build_comma -> [(build_dots "..." d)] )
+# 23588 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23614 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23619 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
+# 1772 "parser_cocci_menhir.mly"
+      ( fun build_dots build_comma ->
+       [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 23627 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = r;
+          MenhirLib.EngineTypes.startp = _startpos_r_;
+          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = d;
+              MenhirLib.EngineTypes.startp = _startpos_d_;
+              MenhirLib.EngineTypes.endp = _endpos_d_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let r : 'tv_continue_list_one_dec_decl__TEllipsis_ = Obj.magic r in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23659 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23664 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_r_ in
+        let _v : 'tv_nonempty_list_start_one_dec_decl__TEllipsis_ = 
+# 1775 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      (build_dots "..." d)::
+      (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (r build_dots build_comma) )
+# 23674 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
+# 1761 "parser_cocci_menhir.mly"
+       ( fun build_dots build_comma -> [_1] )
+# 23698 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23724 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
+# 1763 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::[Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 23733 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23765 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
+# 1766 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      _1::(Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (_3 build_dots build_comma) )
+# 23775 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
+# 1769 "parser_cocci_menhir.mly"
+                                            ( _2 )
+# 23803 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = d;
+          MenhirLib.EngineTypes.startp = _startpos_d_;
+          MenhirLib.EngineTypes.endp = _endpos_d_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23824 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_d_ in
+        let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
+# 1770 "parser_cocci_menhir.mly"
+           ( fun build_dots build_comma -> [(build_dots "..." d)] )
+# 23831 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23857 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23862 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
+# 1772 "parser_cocci_menhir.mly"
+      ( fun build_dots build_comma ->
+       [(build_dots "..." d);Ast0.wrap(build_comma(P.clt2mcode "," _2))] )
+# 23870 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = r;
+          MenhirLib.EngineTypes.startp = _startpos_r_;
+          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = d;
+              MenhirLib.EngineTypes.startp = _startpos_d_;
+              MenhirLib.EngineTypes.endp = _endpos_d_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let r : 'tv_continue_list_one_dec_name_opt_decl__TEllipsis_ = Obj.magic r in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23902 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let d : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 23907 "parser_cocci_menhir.ml"
+        ) = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_r_ in
+        let _v : 'tv_nonempty_list_start_one_dec_name_opt_decl__TEllipsis_ = 
+# 1775 "parser_cocci_menhir.mly"
+    ( fun build_dots build_comma ->
+      (build_dots "..." d)::
+      (Ast0.wrap(build_comma(P.clt2mcode "," _2)))::
+      (r build_dots build_comma) )
+# 23917 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = i;
+          MenhirLib.EngineTypes.startp = _startpos_i_;
+          MenhirLib.EngineTypes.endp = _endpos_i_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let i : 'tv_ident_or_const = Obj.magic i in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_i_ in
+        let _v : 'tv_not_ceq = 
+# 1622 "parser_cocci_menhir.mly"
+         ( (if !Data.in_iso
+          then failwith "constraints not allowed in iso file");
+          (if !Data.in_generating
+          then failwith "constraints not allowed in a generated rule file");
+          [i] )
+# 23949 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = l;
+            MenhirLib.EngineTypes.startp = _startpos_l_;
+            MenhirLib.EngineTypes.endp = _endpos_l_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let l : 'tv_comma_list_ident_or_const_ = Obj.magic l in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_not_ceq = 
+# 1628 "parser_cocci_menhir.mly"
+  ( (if !Data.in_iso
+          then failwith "constraints not allowed in iso file");
+          (if !Data.in_generating
+          then failwith "constraints not allowed in a generated rule file");
+          l )
+# 23989 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = ceq;
+          MenhirLib.EngineTypes.startp = _startpos_ceq_;
+          MenhirLib.EngineTypes.endp = _endpos_ceq_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let ceq : 'tv_not_ceq = Obj.magic ceq in
+        let _startpos = _startpos_ceq_ in
+        let _endpos = _endpos_ceq_ in
+        let _v : 'tv_not_ceq_or_sub = 
+# 1598 "parser_cocci_menhir.mly"
+                  (Ast0.NotExpCstrt ceq)
+# 24013 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = s;
+          MenhirLib.EngineTypes.startp = _startpos_s_;
+          MenhirLib.EngineTypes.endp = _endpos_s_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let s : 'tv_sub = Obj.magic s in
+        let _startpos = _startpos_s_ in
+        let _endpos = _endpos_s_ in
+        let _v : 'tv_not_ceq_or_sub = 
+# 1599 "parser_cocci_menhir.mly"
+                  (Ast0.SubExpCstrt s)
+# 24037 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = i;
+          MenhirLib.EngineTypes.startp = _startpos_i_;
+          MenhirLib.EngineTypes.endp = _endpos_i_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_i_ in
+        let _v : 'tv_not_eqe = 
+# 1603 "parser_cocci_menhir.mly"
+         ( (if !Data.in_iso
+          then failwith "constraints not allowed in iso file");
+          (if !Data.in_generating
+          then failwith "constraints not allowed in a generated rule file");
+          [Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i))))]
+        )
+# 24070 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = l;
+            MenhirLib.EngineTypes.startp = _startpos_l_;
+            MenhirLib.EngineTypes.endp = _endpos_l_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let l : 'tv_comma_list_pure_ident_ = Obj.magic l in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_not_eqe = 
+# 1610 "parser_cocci_menhir.mly"
+  ( (if !Data.in_iso
+          then failwith "constraints not allowed in iso file");
+          (if !Data.in_generating
+          then failwith "constraints not allowed in a generated rule file");
+          List.map
+            (function i ->
+               Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i)))))
+            l
+        )
+# 24114 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = i;
+          MenhirLib.EngineTypes.startp = _startpos_i_;
+          MenhirLib.EngineTypes.endp = _endpos_i_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_i_ in
+        let _v : 'tv_not_eqid = 
+# 1560 "parser_cocci_menhir.mly"
+         ( (if !Data.in_iso
+          then failwith "constraints not allowed in iso file");
+          (if !Data.in_generating
+           (* pb: constraints not stored with metavars; too lazy to search for
+             them in the pattern *)
+          then failwith "constraints not allowed in a generated rule file");
+          (match i with
+            (Some rn,id) ->
+              let i =
+                P.check_inherited_constraint i
+                  (function mv -> Ast.MetaIdDecl(Ast.NONE,mv)) in
+              Ast.IdNegIdSet([],[i])
+          | (None,i) -> Ast.IdNegIdSet([i],[])) )
+# 24154 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = l;
+            MenhirLib.EngineTypes.startp = _startpos_l_;
+            MenhirLib.EngineTypes.endp = _endpos_l_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let l : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic l in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_not_eqid = 
+# 1574 "parser_cocci_menhir.mly"
+  ( (if !Data.in_iso
+          then failwith "constraints not allowed in iso file");
+          (if !Data.in_generating
+          then failwith "constraints not allowed in a generated rule file");
+          let (str,meta) =
+            List.fold_left
+              (function (str,meta) ->
+                function 
+                  (Some rn,id) as i ->
+                    let i =
+                      P.check_inherited_constraint i
+                        (function mv -> Ast.MetaIdDecl(Ast.NONE,mv)) in
+                    (str,i::meta)
+                | (None,i) -> (i::str,meta))
+              ([],[]) l in
+          Ast.IdNegIdSet(str,meta)
+        )
+# 24206 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = i;
+          MenhirLib.EngineTypes.startp = _startpos_i_;
+          MenhirLib.EngineTypes.endp = _endpos_i_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let i : 'tv_meta_ident = Obj.magic i in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos_i_ in
+        let _v : 'tv_not_pos = 
+# 1666 "parser_cocci_menhir.mly"
+         ( (if !Data.in_iso
+          then failwith "constraints not allowed in iso file");
+          (if !Data.in_generating
+          then failwith "constraints not allowed in a generated rule file");
+          let i =
+            P.check_inherited_constraint i
+              (function mv -> Ast.MetaPosDecl(Ast.NONE,mv)) in
+          [i] )
+# 24241 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = l;
+            MenhirLib.EngineTypes.startp = _startpos_l_;
+            MenhirLib.EngineTypes.endp = _endpos_l_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let l : 'tv_comma_list_meta_ident_ = Obj.magic l in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_not_pos = 
+# 1675 "parser_cocci_menhir.mly"
+  ( (if !Data.in_iso
+          then failwith "constraints not allowed in iso file");
+          (if !Data.in_generating
+          then failwith "constraints not allowed in a generated rule file");
+          List.map
+            (function i ->
+              P.check_inherited_constraint i
+                (function mv -> Ast.MetaPosDecl(Ast.NONE,mv)))
+            l )
+# 24285 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_decl = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_one_dec_decl_ = 
+# 1736 "parser_cocci_menhir.mly"
+        ( _1 )
+# 24309 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 69 "parser_cocci_menhir.mly"
+       (Parse_aux.list_info)
+# 24330 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_one_dec_decl_ = 
+# 1738 "parser_cocci_menhir.mly"
+    ( let (nm,lenname,pure,clt) = _1 in
+    let nm = P.clt2mcode nm clt in
+      let lenname =
+       match lenname with
+         Ast.AnyLen -> Ast0.AnyListLen
+       | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt)
+       | Ast.CstLen n -> Ast0.CstListLen n in
+    Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) )
+# 24344 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_name_opt_decl = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_one_dec_name_opt_decl_ = 
+# 1736 "parser_cocci_menhir.mly"
+        ( _1 )
+# 24368 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 69 "parser_cocci_menhir.mly"
+       (Parse_aux.list_info)
+# 24389 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_one_dec_name_opt_decl_ = 
+# 1738 "parser_cocci_menhir.mly"
+    ( let (nm,lenname,pure,clt) = _1 in
+    let nm = P.clt2mcode nm clt in
+      let lenname =
+       match lenname with
+         Ast.AnyLen -> Ast0.AnyListLen
+       | Ast.MetaLen nm -> Ast0.MetaListLen(P.clt2mcode nm clt)
+       | Ast.CstLen n -> Ast0.CstListLen n in
+    Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) )
+# 24403 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = t;
+            MenhirLib.EngineTypes.startp = _startpos_t_;
+            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 24429 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = 
+# 1087 "parser_cocci_menhir.mly"
+      ( Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv)) )
+# 24437 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 68 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 24458 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_one_decl_var = 
+# 1088 "parser_cocci_menhir.mly"
+              ( P.meta_decl _1 )
+# 24465 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = t;
+              MenhirLib.EngineTypes.startp = _startpos_t_;
+              MenhirLib.EngineTypes.endp = _endpos_t_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 24496 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_d_ident = Obj.magic d in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let s =
+          
+# 39 "standard.mly"
+    ( None )
+# 24506 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1090 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
+# 24513 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = t;
+              MenhirLib.EngineTypes.startp = _startpos_t_;
+              MenhirLib.EngineTypes.endp = _endpos_t_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 24549 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_d_ident = Obj.magic d in
+        let t : 'tv_ctype = Obj.magic t in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let s =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 24561 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1090 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
+# 24568 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = f;
+          MenhirLib.EngineTypes.startp = _startpos_f_;
+          MenhirLib.EngineTypes.endp = _endpos_f_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let f : 'tv_funproto = Obj.magic f in
+        let _startpos = _startpos_f_ in
+        let _endpos = _endpos_f_ in
+        let _v : 'tv_one_decl_var = 
+# 1092 "parser_cocci_menhir.mly"
+               ( f )
+# 24592 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = d;
+                MenhirLib.EngineTypes.startp = _startpos_d_;
+                MenhirLib.EngineTypes.endp = _endpos_d_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = t;
+                  MenhirLib.EngineTypes.startp = _startpos_t_;
+                  MenhirLib.EngineTypes.endp = _endpos_t_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 24633 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 24639 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let d : 'tv_d_ident = Obj.magic d in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let s =
+          
+# 39 "standard.mly"
+    ( None )
+# 24649 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1094 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+      Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) )
+# 24656 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = d;
+                MenhirLib.EngineTypes.startp = _startpos_d_;
+                MenhirLib.EngineTypes.endp = _endpos_d_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = t;
+                  MenhirLib.EngineTypes.startp = _startpos_t_;
+                  MenhirLib.EngineTypes.endp = _endpos_t_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 24702 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 24708 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let d : 'tv_d_ident = Obj.magic d in
+        let t : 'tv_ctype = Obj.magic t in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let s =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 24720 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1094 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+      Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) )
+# 24727 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = i;
+              MenhirLib.EngineTypes.startp = _startpos_i_;
+              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 24758 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let _startpos = _startpos_i_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 24768 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
+          
+# 39 "standard.mly"
+    ( None )
+# 24775 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1099 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+       Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) )
+# 24783 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = i;
+              MenhirLib.EngineTypes.startp = _startpos_i_;
+              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 24819 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 24831 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
+          
+# 39 "standard.mly"
+    ( None )
+# 24838 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1099 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+       Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) )
+# 24846 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = i;
+              MenhirLib.EngineTypes.startp = _startpos_i_;
+              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 24882 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 24893 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 24901 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1099 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+       Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) )
+# 24909 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = i;
+              MenhirLib.EngineTypes.startp = _startpos_i_;
+              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = x1;
+                MenhirLib.EngineTypes.startp = _startpos_x1_;
+                MenhirLib.EngineTypes.endp = _endpos_x1_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = x0;
+                  MenhirLib.EngineTypes.startp = _startpos_x0_;
+                  MenhirLib.EngineTypes.endp = _endpos_x0_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 24950 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x1 : 'tv_const_vol = Obj.magic x1 in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let cv =
+          let x = x1 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 24963 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 24971 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1099 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+       Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) )
+# 24979 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = d;
+                MenhirLib.EngineTypes.startp = _startpos_d_;
+                MenhirLib.EngineTypes.endp = _endpos_d_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = i;
+                  MenhirLib.EngineTypes.startp = _startpos_i_;
+                  MenhirLib.EngineTypes.endp = _endpos_i_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25020 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25026 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let _startpos = _startpos_i_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 25036 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
+          
+# 39 "standard.mly"
+    ( None )
+# 25043 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1104 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+      !Data.add_type_name (P.id2name i);
+      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+      Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
+                          P.clt2mcode ";" pv)) )
+# 25053 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = d;
+                MenhirLib.EngineTypes.startp = _startpos_d_;
+                MenhirLib.EngineTypes.endp = _endpos_d_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = i;
+                  MenhirLib.EngineTypes.startp = _startpos_i_;
+                  MenhirLib.EngineTypes.endp = _endpos_i_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25099 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25105 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 25117 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
+          
+# 39 "standard.mly"
+    ( None )
+# 25124 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1104 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+      !Data.add_type_name (P.id2name i);
+      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+      Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
+                          P.clt2mcode ";" pv)) )
+# 25134 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = d;
+                MenhirLib.EngineTypes.startp = _startpos_d_;
+                MenhirLib.EngineTypes.endp = _endpos_d_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = i;
+                  MenhirLib.EngineTypes.startp = _startpos_i_;
+                  MenhirLib.EngineTypes.endp = _endpos_i_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25180 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25186 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 25197 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 25205 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1104 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+      !Data.add_type_name (P.id2name i);
+      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+      Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
+                          P.clt2mcode ";" pv)) )
+# 25215 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = d;
+                MenhirLib.EngineTypes.startp = _startpos_d_;
+                MenhirLib.EngineTypes.endp = _endpos_d_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = i;
+                  MenhirLib.EngineTypes.startp = _startpos_i_;
+                  MenhirLib.EngineTypes.endp = _endpos_i_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = x1;
+                    MenhirLib.EngineTypes.startp = _startpos_x1_;
+                    MenhirLib.EngineTypes.endp = _endpos_x1_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = x0;
+                      MenhirLib.EngineTypes.startp = _startpos_x0_;
+                      MenhirLib.EngineTypes.endp = _endpos_x0_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25266 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25272 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x1 : 'tv_const_vol = Obj.magic x1 in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let cv =
+          let x = x1 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 25285 "parser_cocci_menhir.ml"
+          
+        in
+        let s =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 25293 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1104 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+      !Data.add_type_name (P.id2name i);
+      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+      Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
+                          P.clt2mcode ";" pv)) )
+# 25303 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = rp2;
+            MenhirLib.EngineTypes.startp = _startpos_rp2_;
+            MenhirLib.EngineTypes.endp = _endpos_rp2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = p;
+              MenhirLib.EngineTypes.startp = _startpos_p_;
+              MenhirLib.EngineTypes.endp = _endpos_p_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = lp2;
+                MenhirLib.EngineTypes.startp = _startpos_lp2_;
+                MenhirLib.EngineTypes.endp = _endpos_lp2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = rp1;
+                  MenhirLib.EngineTypes.startp = _startpos_rp1_;
+                  MenhirLib.EngineTypes.endp = _endpos_rp1_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = d;
+                    MenhirLib.EngineTypes.startp = _startpos_d_;
+                    MenhirLib.EngineTypes.endp = _endpos_d_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = st;
+                      MenhirLib.EngineTypes.startp = _startpos_st_;
+                      MenhirLib.EngineTypes.endp = _endpos_st_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.semv = lp1;
+                        MenhirLib.EngineTypes.startp = _startpos_lp1_;
+                        MenhirLib.EngineTypes.endp = _endpos_lp1_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.state = _menhir_s;
+                          MenhirLib.EngineTypes.semv = t;
+                          MenhirLib.EngineTypes.startp = _startpos_t_;
+                          MenhirLib.EngineTypes.endp = _endpos_t_;
+                          MenhirLib.EngineTypes.next = _menhir_stack;
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25364 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let rp2 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25369 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp2 in
+        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
+        let lp2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25375 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp2 in
+        let rp1 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25380 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp1 in
+        let d : 'tv_d_ident = Obj.magic d in
+        let st : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25386 "parser_cocci_menhir.ml"
+        ) = Obj.magic st in
+        let lp1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25391 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp1 in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let s =
+          
+# 39 "standard.mly"
+    ( None )
+# 25400 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1114 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        let t =
+         Ast0.wrap
+           (Ast0.FunctionPointer
+              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
+               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
+        Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
+# 25412 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = rp2;
+            MenhirLib.EngineTypes.startp = _startpos_rp2_;
+            MenhirLib.EngineTypes.endp = _endpos_rp2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = p;
+              MenhirLib.EngineTypes.startp = _startpos_p_;
+              MenhirLib.EngineTypes.endp = _endpos_p_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = lp2;
+                MenhirLib.EngineTypes.startp = _startpos_lp2_;
+                MenhirLib.EngineTypes.endp = _endpos_lp2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = rp1;
+                  MenhirLib.EngineTypes.startp = _startpos_rp1_;
+                  MenhirLib.EngineTypes.endp = _endpos_rp1_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = d;
+                    MenhirLib.EngineTypes.startp = _startpos_d_;
+                    MenhirLib.EngineTypes.endp = _endpos_d_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = st;
+                      MenhirLib.EngineTypes.startp = _startpos_st_;
+                      MenhirLib.EngineTypes.endp = _endpos_st_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.semv = lp1;
+                        MenhirLib.EngineTypes.startp = _startpos_lp1_;
+                        MenhirLib.EngineTypes.endp = _endpos_lp1_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.semv = t;
+                          MenhirLib.EngineTypes.startp = _startpos_t_;
+                          MenhirLib.EngineTypes.endp = _endpos_t_;
+                          MenhirLib.EngineTypes.next = {
+                            MenhirLib.EngineTypes.state = _menhir_s;
+                            MenhirLib.EngineTypes.semv = x0;
+                            MenhirLib.EngineTypes.startp = _startpos_x0_;
+                            MenhirLib.EngineTypes.endp = _endpos_x0_;
+                            MenhirLib.EngineTypes.next = _menhir_stack;
+                            };
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25478 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let rp2 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25483 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp2 in
+        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
+        let lp2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25489 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp2 in
+        let rp1 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25494 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp1 in
+        let d : 'tv_d_ident = Obj.magic d in
+        let st : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25500 "parser_cocci_menhir.ml"
+        ) = Obj.magic st in
+        let lp1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25505 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp1 in
+        let t : 'tv_ctype = Obj.magic t in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let s =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 25516 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1114 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        let t =
+         Ast0.wrap
+           (Ast0.FunctionPointer
+              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
+               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
+        Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
+# 25528 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _5;
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _4;
+            MenhirLib.EngineTypes.startp = _startpos__4_;
+            MenhirLib.EngineTypes.endp = _endpos__4_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = _3;
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = _2;
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = _1;
+                  MenhirLib.EngineTypes.startp = _startpos__1_;
+                  MenhirLib.EngineTypes.endp = _endpos__1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let _5 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25569 "parser_cocci_menhir.ml"
+        ) = Obj.magic _5 in
+        let _4 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25574 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25580 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_decl_ident = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_one_decl_var = 
+# 1122 "parser_cocci_menhir.mly"
+      ( Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3,
+                                 P.clt2mcode ")" _4,P.clt2mcode ";" _5)) )
+# 25589 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = rp2;
+                MenhirLib.EngineTypes.startp = _startpos_rp2_;
+                MenhirLib.EngineTypes.endp = _endpos_rp2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = p;
+                  MenhirLib.EngineTypes.startp = _startpos_p_;
+                  MenhirLib.EngineTypes.endp = _endpos_p_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = lp2;
+                    MenhirLib.EngineTypes.startp = _startpos_lp2_;
+                    MenhirLib.EngineTypes.endp = _endpos_lp2_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = rp1;
+                      MenhirLib.EngineTypes.startp = _startpos_rp1_;
+                      MenhirLib.EngineTypes.endp = _endpos_rp1_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.semv = d;
+                        MenhirLib.EngineTypes.startp = _startpos_d_;
+                        MenhirLib.EngineTypes.endp = _endpos_d_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.semv = st;
+                          MenhirLib.EngineTypes.startp = _startpos_st_;
+                          MenhirLib.EngineTypes.endp = _endpos_st_;
+                          MenhirLib.EngineTypes.next = {
+                            MenhirLib.EngineTypes.semv = lp1;
+                            MenhirLib.EngineTypes.startp = _startpos_lp1_;
+                            MenhirLib.EngineTypes.endp = _endpos_lp1_;
+                            MenhirLib.EngineTypes.next = {
+                              MenhirLib.EngineTypes.state = _menhir_s;
+                              MenhirLib.EngineTypes.semv = t;
+                              MenhirLib.EngineTypes.startp = _startpos_t_;
+                              MenhirLib.EngineTypes.endp = _endpos_t_;
+                              MenhirLib.EngineTypes.next = _menhir_stack;
+                              };
+                            };
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25660 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25666 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let rp2 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25671 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp2 in
+        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
+        let lp2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25677 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp2 in
+        let rp1 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25682 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp1 in
+        let d : 'tv_d_ident = Obj.magic d in
+        let st : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25688 "parser_cocci_menhir.ml"
+        ) = Obj.magic st in
+        let lp1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25693 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp1 in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let s =
+          
+# 39 "standard.mly"
+    ( None )
+# 25702 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1128 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        let t =
+         Ast0.wrap
+           (Ast0.FunctionPointer
+              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
+               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
+      Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)))
+# 25714 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = e;
+            MenhirLib.EngineTypes.startp = _startpos_e_;
+            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = q;
+              MenhirLib.EngineTypes.startp = _startpos_q_;
+              MenhirLib.EngineTypes.endp = _endpos_q_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = rp2;
+                MenhirLib.EngineTypes.startp = _startpos_rp2_;
+                MenhirLib.EngineTypes.endp = _endpos_rp2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = p;
+                  MenhirLib.EngineTypes.startp = _startpos_p_;
+                  MenhirLib.EngineTypes.endp = _endpos_p_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = lp2;
+                    MenhirLib.EngineTypes.startp = _startpos_lp2_;
+                    MenhirLib.EngineTypes.endp = _endpos_lp2_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = rp1;
+                      MenhirLib.EngineTypes.startp = _startpos_rp1_;
+                      MenhirLib.EngineTypes.endp = _endpos_rp1_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.semv = d;
+                        MenhirLib.EngineTypes.startp = _startpos_d_;
+                        MenhirLib.EngineTypes.endp = _endpos_d_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.semv = st;
+                          MenhirLib.EngineTypes.startp = _startpos_st_;
+                          MenhirLib.EngineTypes.endp = _endpos_st_;
+                          MenhirLib.EngineTypes.next = {
+                            MenhirLib.EngineTypes.semv = lp1;
+                            MenhirLib.EngineTypes.startp = _startpos_lp1_;
+                            MenhirLib.EngineTypes.endp = _endpos_lp1_;
+                            MenhirLib.EngineTypes.next = {
+                              MenhirLib.EngineTypes.semv = t;
+                              MenhirLib.EngineTypes.startp = _startpos_t_;
+                              MenhirLib.EngineTypes.endp = _endpos_t_;
+                              MenhirLib.EngineTypes.next = {
+                                MenhirLib.EngineTypes.state = _menhir_s;
+                                MenhirLib.EngineTypes.semv = x0;
+                                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                                MenhirLib.EngineTypes.next = _menhir_stack;
+                                };
+                              };
+                            };
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25790 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let e : 'tv_initialize = Obj.magic e in
+        let q : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25796 "parser_cocci_menhir.ml"
+        ) = Obj.magic q in
+        let rp2 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25801 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp2 in
+        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
+        let lp2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25807 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp2 in
+        let rp1 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25812 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp1 in
+        let d : 'tv_d_ident = Obj.magic d in
+        let st : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25818 "parser_cocci_menhir.ml"
+        ) = Obj.magic st in
+        let lp1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 25823 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp1 in
+        let t : 'tv_ctype = Obj.magic t in
+        let x0 : 'tv_storage = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_one_decl_var = let s =
           let x = x0 in
           
-# 70 "standard.mly"
-    ( (x, y) )
-# 15082 "parser_cocci_menhir.ml"
+# 41 "standard.mly"
+    ( Some x )
+# 25834 "parser_cocci_menhir.ml"
           
         in
         
-# 116 "standard.mly"
-    ( x :: xs )
-# 15088 "parser_cocci_menhir.ml"
+# 1128 "parser_cocci_menhir.mly"
+      ( let (id,fn) = d in
+        let t =
+         Ast0.wrap
+           (Ast0.FunctionPointer
+              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
+               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
+      Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)))
+# 25846 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15098,10 +25856,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_list_whenppdecs_ = 
-# 114 "standard.mly"
-    ( [] )
-# 15105 "parser_cocci_menhir.ml"
+        let _v : 'tv_option_TLocal_ = 
+# 29 "standard.mly"
+    ( None )
+# 25863 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15113,25 +25871,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let xs : 'tv_list_whenppdecs_ = Obj.magic xs in
-        let x : 'tv_whenppdecs = Obj.magic x in
+        let x : unit = Obj.magic x in
         let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_list_whenppdecs_ = 
-# 116 "standard.mly"
-    ( x :: xs )
-# 15135 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_option_TLocal_ = 
+# 31 "standard.mly"
+    ( Some x )
+# 25887 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15145,10 +25897,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_loption_choose_iso_ = 
-# 57 "standard.mly"
-    ( [] )
-# 15152 "parser_cocci_menhir.ml"
+        let _v : 'tv_option_TPosAny_ = 
+# 29 "standard.mly"
+    ( None )
+# 25904 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15166,13 +25918,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let x : 'tv_choose_iso = Obj.magic x in
+        let x : unit = Obj.magic x in
         let _startpos = _startpos_x_ in
         let _endpos = _endpos_x_ in
-        let _v : 'tv_loption_choose_iso_ = 
-# 59 "standard.mly"
-    ( x )
-# 15176 "parser_cocci_menhir.ml"
+        let _v : 'tv_option_TPosAny_ = 
+# 31 "standard.mly"
+    ( Some x )
+# 25928 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15186,10 +25938,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_loption_disable_ = 
-# 57 "standard.mly"
-    ( [] )
-# 15193 "parser_cocci_menhir.ml"
+        let _v : 'tv_option_eexpr_ = 
+# 29 "standard.mly"
+    ( None )
+# 25945 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15207,13 +25959,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let x : 'tv_disable = Obj.magic x in
+        let x : 'tv_eexpr = Obj.magic x in
         let _startpos = _startpos_x_ in
         let _endpos = _endpos_x_ in
-        let _v : 'tv_loption_disable_ = 
-# 59 "standard.mly"
-    ( x )
-# 15217 "parser_cocci_menhir.ml"
+        let _v : 'tv_option_eexpr_ = 
+# 31 "standard.mly"
+    ( Some x )
+# 25969 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15227,10 +25979,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_loption_error_words_ = 
-# 57 "standard.mly"
-    ( [] )
-# 15234 "parser_cocci_menhir.ml"
+        let _v : 'tv_option_not_ceq_or_sub_ = 
+# 29 "standard.mly"
+    ( None )
+# 25986 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15248,13 +26000,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let x : 'tv_error_words = Obj.magic x in
+        let x : 'tv_not_ceq_or_sub = Obj.magic x in
         let _startpos = _startpos_x_ in
         let _endpos = _endpos_x_ in
-        let _v : 'tv_loption_error_words_ = 
-# 59 "standard.mly"
-    ( x )
-# 15258 "parser_cocci_menhir.ml"
+        let _v : 'tv_option_not_ceq_or_sub_ = 
+# 31 "standard.mly"
+    ( Some x )
+# 26010 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15268,10 +26020,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_loption_filespec_ = 
-# 57 "standard.mly"
-    ( [] )
-# 15275 "parser_cocci_menhir.ml"
+        let _v : 'tv_option_re_or_not_eqe_or_sub_ = 
+# 29 "standard.mly"
+    ( None )
+# 26027 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15289,13 +26041,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let x : 'tv_filespec = Obj.magic x in
+        let x : 'tv_re_or_not_eqe_or_sub = Obj.magic x in
         let _startpos = _startpos_x_ in
         let _endpos = _endpos_x_ in
-        let _v : 'tv_loption_filespec_ = 
-# 59 "standard.mly"
-    ( x )
-# 15299 "parser_cocci_menhir.ml"
+        let _v : 'tv_option_re_or_not_eqe_or_sub_ = 
+# 31 "standard.mly"
+    ( Some x )
+# 26051 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15309,10 +26061,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_loption_minus_start_ = 
-# 57 "standard.mly"
-    ( [] )
-# 15316 "parser_cocci_menhir.ml"
+        let _v : 'tv_option_re_or_not_eqid_ = 
+# 29 "standard.mly"
+    ( None )
+# 26068 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15330,13 +26082,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let x : 'tv_minus_start = Obj.magic x in
+        let x : 'tv_re_or_not_eqid = Obj.magic x in
         let _startpos = _startpos_x_ in
         let _endpos = _endpos_x_ in
-        let _v : 'tv_loption_minus_start_ = 
-# 59 "standard.mly"
-    ( x )
-# 15340 "parser_cocci_menhir.ml"
+        let _v : 'tv_option_re_or_not_eqid_ = 
+# 31 "standard.mly"
+    ( Some x )
+# 26092 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15350,10 +26102,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_loption_not_ceq_ = 
-# 57 "standard.mly"
-    ( [] )
-# 15357 "parser_cocci_menhir.ml"
+        let _v : 'tv_plus_after_dots = 
+# 1901 "parser_cocci_menhir.mly"
+                                                                         ([])
+# 26109 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15365,19 +26117,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let x : 'tv_not_ceq = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_loption_not_ceq_ = 
-# 59 "standard.mly"
-    ( x )
-# 15381 "parser_cocci_menhir.ml"
+        let _2 : 'tv_plus_after_exp = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_plus_after_dots = 
+# 1902 "parser_cocci_menhir.mly"
+                                                                         (_2)
+# 26137 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15388,13 +26144,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_loption_not_eq_ = 
-# 57 "standard.mly"
-    ( [] )
-# 15398 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_plus_after_exp = Obj.magic _2 in
+        let _1 : 'tv_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_plus_after_dots = 
+# 1904 "parser_cocci_menhir.mly"
+                     ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 )
+# 26167 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15406,19 +26175,55 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_plus_after_stm = Obj.magic _2 in
+        let _1 : 'tv_fundecl = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_plus_after_dots = 
+# 1905 "parser_cocci_menhir.mly"
+                                             ( Ast0.wrap(Ast0.DECL(_1))::_2 )
+# 26197 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
           MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let x : 'tv_not_eq = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_loption_not_eq_ = 
-# 59 "standard.mly"
-    ( x )
-# 15422 "parser_cocci_menhir.ml"
+        let _2 : 'tv_plus_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_plus_after_dots = 
+# 1907 "parser_cocci_menhir.mly"
+                ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 )
+# 26227 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15432,10 +26237,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_loption_not_eqe_ = 
-# 57 "standard.mly"
-    ( [] )
-# 15439 "parser_cocci_menhir.ml"
+        let _v : 'tv_plus_after_exp = 
+# 1897 "parser_cocci_menhir.mly"
+                                                                         ([])
+# 26244 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15447,19 +26252,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let x : 'tv_not_eqe = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_loption_not_eqe_ = 
-# 59 "standard.mly"
-    ( x )
-# 15463 "parser_cocci_menhir.ml"
+        let _2 : 'tv_plus_after_dots = Obj.magic _2 in
+        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_plus_after_exp = 
+# 1898 "parser_cocci_menhir.mly"
+                                          ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 )
+# 26274 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15473,10 +26284,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
         let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
         let _endpos = _startpos in
-        let _v : 'tv_loption_not_pos_ = 
-# 57 "standard.mly"
-    ( [] )
-# 15480 "parser_cocci_menhir.ml"
+        let _v : 'tv_plus_after_stm = 
+# 1910 "parser_cocci_menhir.mly"
+                                                                         ([])
+# 26291 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_plus_after_dots = Obj.magic _2 in
+        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_plus_after_stm = 
+# 1911 "parser_cocci_menhir.mly"
+                                          ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 )
+# 26321 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15488,19 +26329,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let x : 'tv_not_pos = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_loption_not_pos_ = 
-# 59 "standard.mly"
-    ( x )
-# 15504 "parser_cocci_menhir.ml"
+        let _2 : 'tv_plus_after_stm = Obj.magic _2 in
+        let _1 : 'tv_fundecl = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_plus_after_stm = 
+# 1912 "parser_cocci_menhir.mly"
+                                             ( Ast0.wrap(Ast0.DECL(_1))::_2 )
+# 26351 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15511,13 +26358,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_loption_plus_start_ = 
-# 57 "standard.mly"
-    ( [] )
-# 15521 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_plus_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_plus_after_stm = 
+# 1914 "parser_cocci_menhir.mly"
+                ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 )
+# 26381 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15529,19 +26389,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = f;
+            MenhirLib.EngineTypes.startp = _startpos_f_;
+            MenhirLib.EngineTypes.endp = _endpos_f_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let x : 'tv_plus_start = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_loption_plus_start_ = 
-# 59 "standard.mly"
-    ( x )
-# 15545 "parser_cocci_menhir.ml"
+        let b : 'tv_loption_plus_start_ = Obj.magic b in
+        let f : 'tv_loption_filespec_ = Obj.magic f in
+        let _startpos = _startpos_f_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_plus_body = 
+# 709 "parser_cocci_menhir.mly"
+    ( Top_level.top_level (f@b(*@ew*)) )
+# 26411 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15553,19 +26419,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = f;
+            MenhirLib.EngineTypes.startp = _startpos_f_;
+            MenhirLib.EngineTypes.endp = _endpos_f_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let t : 'tv_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_meta_exp_type = 
-# 439 "parser_cocci_menhir.mly"
-    ( [Ast0_cocci.ast0_type_to_type t] )
-# 15569 "parser_cocci_menhir.ml"
+        let b : 'tv_top_eexpr = Obj.magic b in
+        let f : 'tv_loption_filespec_ = Obj.magic f in
+        let _startpos = _startpos_f_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_plus_exp_body = 
+# 723 "parser_cocci_menhir.mly"
+    ( Top_level.top_level (f@[b](*@ew*)) )
+# 26441 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15577,35 +26449,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = m;
-          MenhirLib.EngineTypes.startp = _startpos_m_;
-          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__3_;
-            MenhirLib.EngineTypes.endp = _endpos__3_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = t;
-              MenhirLib.EngineTypes.startp = _startpos_t_;
-              MenhirLib.EngineTypes.endp = _endpos_t_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let m : 'tv_list_TMul_ = Obj.magic m in
-        let t : 'tv_comma_list_ctype_ = Obj.magic t in
+        let _1 : 'tv_plus_exp_body = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_m_ in
-        let _v : 'tv_meta_exp_type = 
-# 441 "parser_cocci_menhir.mly"
-    ( List.map
-       (function x -> P.ty_pointerify (Ast0_cocci.ast0_type_to_type x) m)
-       t )
-# 15609 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 148 "parser_cocci_menhir.mly"
+      (Ast0_cocci.rule)
+# 26469 "parser_cocci_menhir.ml"
+        ) = 
+# 184 "parser_cocci_menhir.mly"
+                                 ( _1 )
+# 26473 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15617,33 +26481,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = p;
+            MenhirLib.EngineTypes.startp = _startpos_p_;
+            MenhirLib.EngineTypes.endp = _endpos_p_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _3 : 'tv_pure_ident = Obj.magic _3 in
-        let _1 : (
-# 47 "parser_cocci_menhir.mly"
-      (string)
-# 15640 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_meta_ident = 
-# 1377 "parser_cocci_menhir.mly"
-                                 ( (Some _1,P.id2name _3) )
-# 15647 "parser_cocci_menhir.ml"
+        let p : 'tv_plus_exp_body = Obj.magic p in
+        let _startpos = _startpos_p_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 148 "parser_cocci_menhir.mly"
+      (Ast0_cocci.rule)
+# 26501 "parser_cocci_menhir.ml"
+        ) = 
+# 184 "parser_cocci_menhir.mly"
+                                                                    ( p )
+# 26505 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15655,23 +26513,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = m;
-          MenhirLib.EngineTypes.startp = _startpos_m_;
-          MenhirLib.EngineTypes.endp = _endpos_m_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = p;
+            MenhirLib.EngineTypes.startp = _startpos_p_;
+            MenhirLib.EngineTypes.endp = _endpos_p_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let m : 'tv_metadec = Obj.magic m in
-        let _startpos = _startpos_m_ in
-        let _endpos = _endpos_m_ in
+        let p : 'tv_plus_exp_body = Obj.magic p in
+        let _startpos = _startpos_p_ in
+        let _endpos = _endpos__2_ in
         let _v : (
-# 156 "parser_cocci_menhir.mly"
-      ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
-# 15671 "parser_cocci_menhir.ml"
+# 148 "parser_cocci_menhir.mly"
+      (Ast0_cocci.rule)
+# 26533 "parser_cocci_menhir.ml"
         ) = 
-# 180 "parser_cocci_menhir.mly"
-                       ( m (!Ast0.rule_name) )
-# 15675 "parser_cocci_menhir.ml"
+# 185 "parser_cocci_menhir.mly"
+                        ( p )
+# 26537 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15683,52 +26545,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__6_;
-          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__4_;
-              MenhirLib.EngineTypes.endp = _endpos__4_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__3_;
-                MenhirLib.EngineTypes.endp = _endpos__3_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = ispure;
-                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = ar;
-                    MenhirLib.EngineTypes.startp = _startpos_ar_;
-                    MenhirLib.EngineTypes.endp = _endpos_ar_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__6_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 304 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta ->
-      let tok = check_meta(Ast.MetaFreshIdDecl(arity,name)) in
-      !Data.add_id_meta name [] pure; tok) )
-# 15726 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 258 "parser_cocci_menhir.mly"
-    ( P.create_metadec ar ispure kindfn ids )
-# 15732 "parser_cocci_menhir.ml"
+        let _1 : 'tv_plus_body = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 145 "parser_cocci_menhir.mly"
+      (Ast0_cocci.rule)
+# 26565 "parser_cocci_menhir.ml"
+        ) = 
+# 180 "parser_cocci_menhir.mly"
+                         ( _1 )
+# 26569 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15740,48 +26577,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = ispure;
-                MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = p;
+            MenhirLib.EngineTypes.startp = _startpos_p_;
+            MenhirLib.EngineTypes.endp = _endpos_p_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 308 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta ->
-      let tok = check_meta(Ast.MetaParamDecl(arity,name)) in
-      !Data.add_param_meta name pure; tok) )
-# 15779 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 258 "parser_cocci_menhir.mly"
-    ( P.create_metadec ar ispure kindfn ids )
-# 15785 "parser_cocci_menhir.ml"
+        let p : 'tv_plus_body = Obj.magic p in
+        let _startpos = _startpos_p_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 145 "parser_cocci_menhir.mly"
+      (Ast0_cocci.rule)
+# 26597 "parser_cocci_menhir.ml"
+        ) = 
+# 180 "parser_cocci_menhir.mly"
+                                                        ( p )
+# 26601 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15793,52 +26609,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__6_;
-          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__4_;
-              MenhirLib.EngineTypes.endp = _endpos__4_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__3_;
-                MenhirLib.EngineTypes.endp = _endpos__3_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = ispure;
-                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = ar;
-                    MenhirLib.EngineTypes.startp = _startpos_ar_;
-                    MenhirLib.EngineTypes.endp = _endpos_ar_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = p;
+            MenhirLib.EngineTypes.startp = _startpos_p_;
+            MenhirLib.EngineTypes.endp = _endpos_p_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__6_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 312 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta ->
-      let tok = check_meta(Ast.MetaParamListDecl(arity,name,None)) in
-      !Data.add_paramlist_meta name None pure; tok) )
-# 15836 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 258 "parser_cocci_menhir.mly"
-    ( P.create_metadec ar ispure kindfn ids )
-# 15842 "parser_cocci_menhir.ml"
+        let p : 'tv_plus_body = Obj.magic p in
+        let _startpos = _startpos_p_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 145 "parser_cocci_menhir.mly"
+      (Ast0_cocci.rule)
+# 26629 "parser_cocci_menhir.ml"
+        ) = 
+# 181 "parser_cocci_menhir.mly"
+                    ( p )
+# 26633 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15850,52 +26641,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__6_;
-          MenhirLib.EngineTypes.endp = _endpos__6_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__4_;
-              MenhirLib.EngineTypes.endp = _endpos__4_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__3_;
-                MenhirLib.EngineTypes.endp = _endpos__3_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = ispure;
-                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = ar;
-                    MenhirLib.EngineTypes.startp = _startpos_ar_;
-                    MenhirLib.EngineTypes.endp = _endpos_ar_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__6_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 316 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta ->
-      let tok = check_meta(Ast.MetaExpListDecl(arity,name,None)) in
-      !Data.add_explist_meta name None pure; tok) )
-# 15893 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 258 "parser_cocci_menhir.mly"
-    ( P.create_metadec ar ispure kindfn ids )
-# 15899 "parser_cocci_menhir.ml"
+        let _1 : 'tv_ctype = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_plus_start = 
+# 1886 "parser_cocci_menhir.mly"
+                          ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] )
+# 26657 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15907,48 +26665,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = ispure;
-                MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 320 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta ->
-      let tok = check_meta(Ast.MetaTypeDecl(arity,name)) in
-      !Data.add_type_meta name pure; tok) )
-# 15946 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 258 "parser_cocci_menhir.mly"
-    ( P.create_metadec ar ispure kindfn ids )
-# 15952 "parser_cocci_menhir.ml"
+        let _1 : 'tv_top_init = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_plus_start = 
+# 1887 "parser_cocci_menhir.mly"
+                     ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] )
+# 26681 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -15960,48 +26689,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = ispure;
-                MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
-            };
-          } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 324 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta ->
-      let tok = check_meta(Ast.MetaStmDecl(arity,name)) in
-      !Data.add_stm_meta name pure; tok) )
-# 15999 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 258 "parser_cocci_menhir.mly"
-    ( P.create_metadec ar ispure kindfn ids )
-# 16005 "parser_cocci_menhir.ml"
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_plus_after_dots = Obj.magic _2 in
+        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_plus_start = 
+# 1889 "parser_cocci_menhir.mly"
+                                          ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 )
+# 26711 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16013,52 +26719,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__6_;
-          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__4_;
-              MenhirLib.EngineTypes.endp = _endpos__4_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__3_;
-                MenhirLib.EngineTypes.endp = _endpos__3_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = ispure;
-                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = ar;
-                    MenhirLib.EngineTypes.startp = _startpos_ar_;
-                    MenhirLib.EngineTypes.endp = _endpos_ar_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__6_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 328 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta ->
-      let tok = check_meta(Ast.MetaStmListDecl(arity,name)) in
-      !Data.add_stmlist_meta name pure; tok) )
-# 16056 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 258 "parser_cocci_menhir.mly"
-    ( P.create_metadec ar ispure kindfn ids )
-# 16062 "parser_cocci_menhir.ml"
+        let _2 : 'tv_plus_after_exp = Obj.magic _2 in
+        let _1 : 'tv_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_plus_start = 
+# 1891 "parser_cocci_menhir.mly"
+                     ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 )
+# 26741 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16070,49 +26749,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = ispure;
-                MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 332 "parser_cocci_menhir.mly"
-    ( (fun arity (_,name) pure check_meta ->
-      if arity = Ast.NONE && pure = Ast0.Impure
-      then (!Data.add_type_name name; [])
-      else raise (Semantic_cocci.Semantic "bad typedef")) )
-# 16110 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 258 "parser_cocci_menhir.mly"
-    ( P.create_metadec ar ispure kindfn ids )
-# 16116 "parser_cocci_menhir.ml"
+        let _2 : 'tv_plus_after_stm = Obj.magic _2 in
+        let _1 : 'tv_fundecl = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_plus_start = 
+# 1892 "parser_cocci_menhir.mly"
+                                             ( Ast0.wrap(Ast0.DECL(_1))::_2 )
+# 26771 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16124,53 +26779,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__6_;
-          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__4_;
-              MenhirLib.EngineTypes.endp = _endpos__4_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__3_;
-                MenhirLib.EngineTypes.endp = _endpos__3_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = ispure;
-                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = ar;
-                    MenhirLib.EngineTypes.startp = _startpos_ar_;
-                    MenhirLib.EngineTypes.endp = _endpos_ar_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__6_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 337 "parser_cocci_menhir.mly"
-    ( (fun arity (_,name) pure check_meta ->
-      if arity = Ast.NONE && pure = Ast0.Impure
-      then (!Data.add_declarer_name name; [])
-      else raise (Semantic_cocci.Semantic "bad declarer")) )
-# 16168 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 258 "parser_cocci_menhir.mly"
-    ( P.create_metadec ar ispure kindfn ids )
-# 16174 "parser_cocci_menhir.ml"
+        let _2 : 'tv_plus_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_plus_start = 
+# 1894 "parser_cocci_menhir.mly"
+                ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 )
+# 26801 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16182,53 +26809,55 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__6_;
-          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 26822 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pnrule = 
+# 235 "parser_cocci_menhir.mly"
+                   ( Ast.Dep      _1 )
+# 26829 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__4_;
-              MenhirLib.EngineTypes.endp = _endpos__4_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__3_;
-                MenhirLib.EngineTypes.endp = _endpos__3_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = ispure;
-                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = ar;
-                    MenhirLib.EngineTypes.startp = _startpos_ar_;
-                    MenhirLib.EngineTypes.endp = _endpos_ar_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__6_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 342 "parser_cocci_menhir.mly"
-    ( (fun arity (_,name) pure check_meta ->
-      if arity = Ast.NONE && pure = Ast0.Impure
-      then (!Data.add_iterator_name name; [])
-      else raise (Semantic_cocci.Semantic "bad iterator")) )
-# 16226 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 258 "parser_cocci_menhir.mly"
-    ( P.create_metadec ar ispure kindfn ids )
-# 16232 "parser_cocci_menhir.ml"
+        let _2 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 26854 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_pnrule = 
+# 236 "parser_cocci_menhir.mly"
+                   ( Ast.AntiDep  _2 )
+# 26861 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16240,48 +26869,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = ispure;
-                MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 350 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let tok = check_meta(Ast.MetaIdDecl(arity,name)) in
-      !Data.add_id_meta name constraints pure; tok) )
-# 16279 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 262 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 16285 "parser_cocci_menhir.ml"
+        let _2 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 26886 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_pnrule = 
+# 237 "parser_cocci_menhir.mly"
+                   ( Ast.EverDep  _2 )
+# 26893 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16293,48 +26901,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = ispure;
-                MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 354 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let tok = check_meta(Ast.MetaFuncDecl(arity,name)) in
-      !Data.add_func_meta name constraints pure; tok) )
-# 16332 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 262 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 16338 "parser_cocci_menhir.ml"
+        let _2 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 26918 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_pnrule = 
+# 238 "parser_cocci_menhir.mly"
+                   ( Ast.NeverDep _2 )
+# 26925 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16346,53 +26933,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__6_;
-          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__4_;
-              MenhirLib.EngineTypes.endp = _endpos__4_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__3_;
-                MenhirLib.EngineTypes.endp = _endpos__3_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = ispure;
-                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = ar;
-                    MenhirLib.EngineTypes.startp = _startpos_ar_;
-                    MenhirLib.EngineTypes.endp = _endpos_ar_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__6_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 358 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let tok = check_meta(Ast.MetaLocalFuncDecl(arity,name)) in
-      !Data.add_local_func_meta name constraints pure;
-      tok) )
-# 16390 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 262 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 16396 "parser_cocci_menhir.ml"
+        let _2 : 'tv_dep = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_pnrule = 
+# 239 "parser_cocci_menhir.mly"
+                   ( _2 )
+# 26957 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16404,48 +26965,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = ispure;
-                MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 363 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let tok = check_meta(Ast.MetaDeclarerDecl(arity,name)) in
-      !Data.add_declarer_meta name constraints pure; tok) )
-# 16443 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 262 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 16449 "parser_cocci_menhir.ml"
+        let _1 : 'tv_primary_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
+# 1382 "parser_cocci_menhir.mly"
+                                                 ( _1 )
+# 26981 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16457,48 +26989,46 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = _4;
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.semv = _3;
+            MenhirLib.EngineTypes.startp = _startpos__3_;
+            MenhirLib.EngineTypes.endp = _endpos__3_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.semv = _2;
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = ispure;
-                MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = _1;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
                 };
               };
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 367 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let tok = check_meta(Ast.MetaIteratorDecl(arity,name)) in
-      !Data.add_iterator_meta name constraints pure; tok) )
-# 16496 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 262 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 16502 "parser_cocci_menhir.ml"
+        let _4 : (
+# 105 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27017 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr = Obj.magic _3 in
+        let _2 : (
+# 105 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27023 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
+# 1384 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
+                                      P.clt2mcode "]" _4)) )
+# 27032 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16510,48 +27040,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = ispure;
-                MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 373 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let tok = check_meta(Ast.MetaErrDecl(arity,name)) in
-      !Data.add_err_meta name constraints pure; tok) )
-# 16549 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 266 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 16555 "parser_cocci_menhir.ml"
+        let _3 : 'tv_ident = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27064 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
+# 1387 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
+# 27072 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16563,67 +27080,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__6_;
-          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__4_;
-              MenhirLib.EngineTypes.endp = _endpos__4_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = l0;
-                MenhirLib.EngineTypes.startp = _startpos_l0_;
-                MenhirLib.EngineTypes.endp = _endpos_l0_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = ispure;
-                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = ar;
-                    MenhirLib.EngineTypes.startp = _startpos_ar_;
-                    MenhirLib.EngineTypes.endp = _endpos_ar_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in
-        let l0 : 'tv_option_TLocal_ = Obj.magic l0 in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__6_ in
-        let _v : 'tv_metadec = let kindfn =
-          let l = l0 in
-          let ty =
-            
-# 39 "standard.mly"
-    ( None )
-# 16608 "parser_cocci_menhir.ml"
-            
-          in
-          
-# 377 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      match l with
-       None ->
-         !Data.add_idexp_meta ty name constraints pure;
-         check_meta(Ast.MetaIdExpDecl(arity,name,ty))
-      | Some _ ->
-         !Data.add_local_idexp_meta ty name constraints pure;
-         check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) )
-# 16621 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 266 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 16627 "parser_cocci_menhir.ml"
+        let _3 : 'tv_ident = Obj.magic _3 in
+        let _2 : (
+# 107 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27104 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
+# 1389 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
+                                    _3)) )
+# 27113 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16635,75 +27121,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__7_;
-          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = x00;
-              MenhirLib.EngineTypes.startp = _startpos_x00_;
-              MenhirLib.EngineTypes.endp = _endpos_x00_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__4_;
-                MenhirLib.EngineTypes.endp = _endpos__4_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = l0;
-                  MenhirLib.EngineTypes.startp = _startpos_l0_;
-                  MenhirLib.EngineTypes.endp = _endpos_l0_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = ispure;
-                    MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                    MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.semv = ar;
-                      MenhirLib.EngineTypes.startp = _startpos_ar_;
-                      MenhirLib.EngineTypes.endp = _endpos_ar_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in
-        let x00 : 'tv_meta_exp_type = Obj.magic x00 in
-        let l0 : 'tv_option_TLocal_ = Obj.magic l0 in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__7_ in
-        let _v : 'tv_metadec = let kindfn =
-          let x0 = x00 in
-          let l = l0 in
-          let ty =
-            let x = x0 in
-            
-# 41 "standard.mly"
-    ( Some x )
-# 16688 "parser_cocci_menhir.ml"
-            
-          in
-          
-# 377 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      match l with
-       None ->
-         !Data.add_idexp_meta ty name constraints pure;
-         check_meta(Ast.MetaIdExpDecl(arity,name,ty))
-      | Some _ ->
-         !Data.add_local_idexp_meta ty name constraints pure;
-         check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) )
-# 16701 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 266 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 16707 "parser_cocci_menhir.ml"
+        let _2 : (
+# 88 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27139 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
+# 1392 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
+# 27147 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16715,68 +27155,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__7_;
-          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = m0;
-              MenhirLib.EngineTypes.startp = _startpos_m0_;
-              MenhirLib.EngineTypes.endp = _endpos_m0_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__4_;
-                MenhirLib.EngineTypes.endp = _endpos__4_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = l0;
-                  MenhirLib.EngineTypes.startp = _startpos_l0_;
-                  MenhirLib.EngineTypes.endp = _endpos_l0_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = ispure;
-                    MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                    MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.semv = ar;
-                      MenhirLib.EngineTypes.startp = _startpos_ar_;
-                      MenhirLib.EngineTypes.endp = _endpos_ar_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
-                    };
-                  };
-                };
-              };
-            };
-          } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in
-        let m0 : 'tv_nonempty_list_TMul_ = Obj.magic m0 in
-        let l0 : 'tv_option_TLocal_ = Obj.magic l0 in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__7_ in
-        let _v : 'tv_metadec = let kindfn =
-          let m = m0 in
-          let l = l0 in
-          
-# 386 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let ty = Some [P.ty_pointerify Type_cocci.Unknown m] in
-      match l with
-       None ->
-         !Data.add_idexp_meta ty name constraints pure;
-         check_meta(Ast.MetaIdExpDecl(arity,name,ty))
-      | Some _ ->
-         !Data.add_local_idexp_meta ty name constraints pure;
-         check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) )
-# 16774 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 266 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 16780 "parser_cocci_menhir.ml"
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : (
+# 88 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27173 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
+# 1394 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
+# 27181 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16788,56 +27189,47 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__6_;
-          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.semv = _4;
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.semv = _3;
+            MenhirLib.EngineTypes.startp = _startpos__3_;
+            MenhirLib.EngineTypes.endp = _endpos__3_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = m0;
-              MenhirLib.EngineTypes.startp = _startpos_m0_;
-              MenhirLib.EngineTypes.endp = _endpos_m0_;
+              MenhirLib.EngineTypes.semv = _2;
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__3_;
-                MenhirLib.EngineTypes.endp = _endpos__3_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = ispure;
-                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = ar;
-                    MenhirLib.EngineTypes.startp = _startpos_ar_;
-                    MenhirLib.EngineTypes.endp = _endpos_ar_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = _1;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
                 };
               };
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in
-        let m0 : 'tv_nonempty_list_TMul_ = Obj.magic m0 in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__6_ in
-        let _v : 'tv_metadec = let kindfn =
-          let m = m0 in
-          
-# 396 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let ty = Some [P.ty_pointerify Type_cocci.Unknown m] in
-      let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in
-      !Data.add_exp_meta ty name constraints pure; tok) )
-# 16835 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 266 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 16841 "parser_cocci_menhir.ml"
+        let _4 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27217 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27223 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
+# 1396 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
+                             _3,
+                             P.clt2mcode ")" _4)) )
+# 27233 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16849,60 +27241,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__7_;
-          MenhirLib.EngineTypes.endp = _endpos__7_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__5_;
-              MenhirLib.EngineTypes.endp = _endpos__5_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__4_;
-                MenhirLib.EngineTypes.endp = _endpos__4_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = vl0;
-                  MenhirLib.EngineTypes.startp = _startpos_vl0_;
-                  MenhirLib.EngineTypes.endp = _endpos_vl0_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = ispure;
-                    MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                    MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.semv = ar;
-                      MenhirLib.EngineTypes.startp = _startpos_ar_;
-                      MenhirLib.EngineTypes.endp = _endpos_ar_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
-                    };
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in
-        let vl0 : 'tv_meta_exp_type = Obj.magic vl0 in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__7_ in
-        let _v : 'tv_metadec = let kindfn =
-          let vl = vl0 in
-          
-# 401 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let ty = Some (List.map (function x -> Type_cocci.Array x) vl) in
-      let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in
-      !Data.add_exp_meta ty name constraints pure; tok) )
-# 16900 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 266 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 16906 "parser_cocci_menhir.ml"
+        let _1 : 'tv_primary_expr_eexpr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
+# 1382 "parser_cocci_menhir.mly"
+                                                 ( _1 )
+# 27257 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16914,55 +27265,46 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = _4;
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.semv = _3;
+            MenhirLib.EngineTypes.startp = _startpos__3_;
+            MenhirLib.EngineTypes.endp = _endpos__3_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.semv = _2;
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = ispure;
-                MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = _1;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
                 };
               };
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = let kindfn =
-          let ty =
-            
-# 39 "standard.mly"
-    ( None )
-# 16952 "parser_cocci_menhir.ml"
-            
-          in
-          
-# 406 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in
-      !Data.add_const_meta ty name constraints pure; tok) )
-# 16960 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 266 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 16966 "parser_cocci_menhir.ml"
+        let _4 : (
+# 105 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27293 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr = Obj.magic _3 in
+        let _2 : (
+# 105 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27299 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
+# 1384 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
+                                      P.clt2mcode "]" _4)) )
+# 27308 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -16974,63 +27316,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__6_;
-          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = x00;
-              MenhirLib.EngineTypes.startp = _startpos_x00_;
-              MenhirLib.EngineTypes.endp = _endpos_x00_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__3_;
-                MenhirLib.EngineTypes.endp = _endpos__3_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = ispure;
-                  MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                  MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = ar;
-                    MenhirLib.EngineTypes.startp = _startpos_ar_;
-                    MenhirLib.EngineTypes.endp = _endpos_ar_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
-            };
-          } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic ids in
-        let x00 : 'tv_meta_exp_type = Obj.magic x00 in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__6_ in
-        let _v : 'tv_metadec = let kindfn =
-          let x0 = x00 in
-          let ty =
-            let x = x0 in
-            
-# 41 "standard.mly"
-    ( Some x )
-# 17020 "parser_cocci_menhir.ml"
-            
-          in
-          
-# 406 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in
-      !Data.add_const_meta ty name constraints pure; tok) )
-# 17028 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 266 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 17034 "parser_cocci_menhir.ml"
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
+          } = _menhir_stack in
+        let _3 : 'tv_ident = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27340 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
+# 1387 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
+# 27348 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17042,48 +27356,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = ispure;
-                MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = Obj.magic ids in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = let kindfn =
-          
-# 412 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let tok = check_meta(Ast.MetaExpDecl(arity,name,None)) in
-      !Data.add_exp_meta None name constraints pure; tok) )
-# 17081 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 270 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 17087 "parser_cocci_menhir.ml"
+        let _3 : 'tv_ident = Obj.magic _3 in
+        let _2 : (
+# 107 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27380 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
+# 1389 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
+                                    _3)) )
+# 27389 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17095,67 +27397,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = vl0;
-              MenhirLib.EngineTypes.startp = _startpos_vl0_;
-              MenhirLib.EngineTypes.endp = _endpos_vl0_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = ispure;
-                MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = Obj.magic ids in
-        let vl0 : 'tv_meta_exp_type = Obj.magic vl0 in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = let kindfn =
-          let vl = vl0 in
-          
-# 416 "parser_cocci_menhir.mly"
-    ( (fun arity name pure check_meta constraints ->
-      let ty = Some vl in
-      List.iter
-       (function c ->
-         match Ast0.unwrap c with
-           Ast0.Constant(_) ->
-             if not
-                 (List.exists
-                    (function
-                        Type_cocci.BaseType(Type_cocci.IntType) -> true
-                      | Type_cocci.BaseType(Type_cocci.ShortType) -> true
-                      | Type_cocci.BaseType(Type_cocci.LongType) -> true
-                      | _ -> false)
-                    vl)
-             then failwith "metavariable with int constraint must be an int"
-         | _ -> ())
-       constraints;
-      let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in
-      !Data.add_exp_meta ty name constraints pure; tok) )
-# 17153 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 270 "parser_cocci_menhir.mly"
-    ( P.create_metadec_ne ar ispure kindfn ids )
-# 17159 "parser_cocci_menhir.ml"
+        let _2 : (
+# 88 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27415 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
+# 1392 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
+# 27423 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17167,45 +27431,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = a;
-              MenhirLib.EngineTypes.startp = _startpos_a_;
-              MenhirLib.EngineTypes.endp = _endpos_a_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__2_;
-                MenhirLib.EngineTypes.endp = _endpos__2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = ar;
-                  MenhirLib.EngineTypes.startp = _startpos_ar_;
-                  MenhirLib.EngineTypes.endp = _endpos_ar_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_with_not_eq_not_pos__ = Obj.magic ids in
-        let a : 'tv_option_TPosAny_ = Obj.magic a in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_metadec = 
-# 276 "parser_cocci_menhir.mly"
-    ( (if !Data.in_generating
-      then failwith "position variables not allowed in a generated rule file");
-      let kindfn arity name pure check_meta constraints =
-      let tok = check_meta(Ast.MetaPosDecl(arity,name)) in
-      let any = match a with None -> Ast.PER | Some _ -> Ast.ALL in
-      !Data.add_pos_meta name constraints any; tok in
-    P.create_metadec_ne ar false kindfn ids )
-# 17209 "parser_cocci_menhir.ml"
+        let _2 : (
+# 88 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27449 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
+# 1394 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
+# 27457 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17217,62 +27465,71 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__9_;
-          MenhirLib.EngineTypes.endp = _endpos__9_;
+          MenhirLib.EngineTypes.semv = _4;
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.semv = _3;
+            MenhirLib.EngineTypes.startp = _startpos__3_;
+            MenhirLib.EngineTypes.endp = _endpos__3_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__7_;
-              MenhirLib.EngineTypes.endp = _endpos__7_;
+              MenhirLib.EngineTypes.semv = _2;
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = id;
-                MenhirLib.EngineTypes.startp = _startpos_id_;
-                MenhirLib.EngineTypes.endp = _endpos_id_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.startp = _startpos__5_;
-                  MenhirLib.EngineTypes.endp = _endpos__5_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.startp = _startpos__4_;
-                    MenhirLib.EngineTypes.endp = _endpos__4_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.startp = _startpos__3_;
-                      MenhirLib.EngineTypes.endp = _endpos__3_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.semv = ispure;
-                        MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                        MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.state = _menhir_s;
-                          MenhirLib.EngineTypes.semv = ar;
-                          MenhirLib.EngineTypes.startp = _startpos_ar_;
-                          MenhirLib.EngineTypes.endp = _endpos_ar_;
-                          MenhirLib.EngineTypes.next = _menhir_stack;
-                          };
-                        };
-                      };
-                    };
-                  };
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = _1;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
                 };
               };
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
-        let id : 'tv_pure_ident_or_meta_ident = Obj.magic id in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__9_ in
-        let _v : 'tv_metadec = 
-# 286 "parser_cocci_menhir.mly"
-    ( P.create_len_metadec ar ispure
-       (fun lenname arity name pure check_meta ->
-         let tok =
-           check_meta(Ast.MetaParamListDecl(arity,name,Some lenname)) in
-         !Data.add_paramlist_meta name (Some lenname) pure; tok)
-       id ids )
-# 17276 "parser_cocci_menhir.ml"
+        let _4 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27493 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27499 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
+# 1396 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
+                             _3,
+                             P.clt2mcode ")" _4)) )
+# 27509 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : 'tv_primary_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
+# 1382 "parser_cocci_menhir.mly"
+                                                 ( _1 )
+# 27533 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17284,62 +27541,46 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__9_;
-          MenhirLib.EngineTypes.endp = _endpos__9_;
+          MenhirLib.EngineTypes.semv = _4;
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ids;
-            MenhirLib.EngineTypes.startp = _startpos_ids_;
-            MenhirLib.EngineTypes.endp = _endpos_ids_;
+            MenhirLib.EngineTypes.semv = _3;
+            MenhirLib.EngineTypes.startp = _startpos__3_;
+            MenhirLib.EngineTypes.endp = _endpos__3_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__7_;
-              MenhirLib.EngineTypes.endp = _endpos__7_;
+              MenhirLib.EngineTypes.semv = _2;
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = id;
-                MenhirLib.EngineTypes.startp = _startpos_id_;
-                MenhirLib.EngineTypes.endp = _endpos_id_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.startp = _startpos__5_;
-                  MenhirLib.EngineTypes.endp = _endpos__5_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.startp = _startpos__4_;
-                    MenhirLib.EngineTypes.endp = _endpos__4_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.startp = _startpos__3_;
-                      MenhirLib.EngineTypes.endp = _endpos__3_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.semv = ispure;
-                        MenhirLib.EngineTypes.startp = _startpos_ispure_;
-                        MenhirLib.EngineTypes.endp = _endpos_ispure_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.state = _menhir_s;
-                          MenhirLib.EngineTypes.semv = ar;
-                          MenhirLib.EngineTypes.startp = _startpos_ar_;
-                          MenhirLib.EngineTypes.endp = _endpos_ar_;
-                          MenhirLib.EngineTypes.next = _menhir_stack;
-                          };
-                        };
-                      };
-                    };
-                  };
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = _1;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
                 };
               };
             };
           } = _menhir_stack in
-        let ids : 'tv_comma_list_pure_ident_or_meta_ident_ = Obj.magic ids in
-        let id : 'tv_pure_ident_or_meta_ident = Obj.magic id in
-        let ispure : 'tv_pure = Obj.magic ispure in
-        let ar : 'tv_arity = Obj.magic ar in
-        let _startpos = _startpos_ar_ in
-        let _endpos = _endpos__9_ in
-        let _v : 'tv_metadec = 
-# 295 "parser_cocci_menhir.mly"
-    ( P.create_len_metadec ar ispure
-       (fun lenname arity name pure check_meta ->
-         let tok =
-           check_meta(Ast.MetaExpListDecl(arity,name,Some lenname)) in
-         !Data.add_explist_meta name (Some lenname) pure; tok)
-       id ids )
-# 17343 "parser_cocci_menhir.ml"
+        let _4 : (
+# 105 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27569 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr = Obj.magic _3 in
+        let _2 : (
+# 105 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27575 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
+# 1384 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
+                                      P.clt2mcode "]" _4)) )
+# 27584 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17351,25 +27592,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let b : 'tv_list_mzl_ctype__ = Obj.magic b in
-        let a : 'tv_ctype = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_midzero_list_ctype_ctype_ = 
-# 1776 "parser_cocci_menhir.mly"
-     ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 17373 "parser_cocci_menhir.ml"
+        let _3 : 'tv_ident = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27616 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
+# 1387 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
+# 27624 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17381,25 +27632,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let b : 'tv_list_mzl_eexpr__ = Obj.magic b in
-        let a : 'tv_eexpr = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_midzero_list_eexpr_eexpr_ = 
-# 1776 "parser_cocci_menhir.mly"
-     ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 17403 "parser_cocci_menhir.ml"
+        let _3 : 'tv_ident = Obj.magic _3 in
+        let _2 : (
+# 107 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27656 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
+# 1389 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
+                                    _3)) )
+# 27665 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17411,25 +27673,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let b : 'tv_list_mzl_eexpr__ = Obj.magic b in
-        let a : 'tv_expr = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_midzero_list_expr_eexpr_ = 
-# 1776 "parser_cocci_menhir.mly"
-     ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 17433 "parser_cocci_menhir.ml"
+        let _2 : (
+# 88 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27691 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
+# 1392 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
+# 27699 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17441,25 +27707,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let b : 'tv_list_mzl_fun_after_dots_or__ = Obj.magic b in
-        let a : 'tv_fun_after_stm = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = 
-# 1776 "parser_cocci_menhir.mly"
-     ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 17463 "parser_cocci_menhir.ml"
+        let _2 : (
+# 88 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27725 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
+# 1394 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
+# 27733 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17471,25 +27741,47 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.semv = _4;
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _3;
+            MenhirLib.EngineTypes.startp = _startpos__3_;
+            MenhirLib.EngineTypes.endp = _endpos__3_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = _2;
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = _1;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let b : 'tv_list_mzl_fun_start__ = Obj.magic b in
-        let a : 'tv_fun_start = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_midzero_list_fun_start_fun_start_ = 
-# 1776 "parser_cocci_menhir.mly"
-     ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 17493 "parser_cocci_menhir.ml"
+        let _4 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27769 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27775 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
+# 1396 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
+                             _3,
+                             P.clt2mcode ")" _4)) )
+# 27785 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17501,25 +27793,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let b : 'tv_list_mzl_rule_elem_statement__ = Obj.magic b in
-        let a : 'tv_rule_elem_statement = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = 
-# 1776 "parser_cocci_menhir.mly"
-     ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 17523 "parser_cocci_menhir.ml"
+        let _1 : 'tv_primary_expr_expr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_postfix_expr_expr_invalid_ = 
+# 1382 "parser_cocci_menhir.mly"
+                                                 ( _1 )
+# 27809 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17531,25 +27817,46 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.semv = _4;
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _3;
+            MenhirLib.EngineTypes.startp = _startpos__3_;
+            MenhirLib.EngineTypes.endp = _endpos__3_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = _2;
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = _1;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let b : 'tv_list_mzl_statement__ = Obj.magic b in
-        let a : 'tv_statement = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_midzero_list_statement_statement_ = 
-# 1776 "parser_cocci_menhir.mly"
-     ( let (mids,code) = List.split b in (mids,(a::code)) )
-# 17553 "parser_cocci_menhir.ml"
+        let _4 : (
+# 105 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27845 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr = Obj.magic _3 in
+        let _2 : (
+# 105 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27851 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_postfix_expr_expr_invalid_ = 
+# 1384 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
+                                      P.clt2mcode "]" _4)) )
+# 27860 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17561,33 +27868,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = ew;
-          MenhirLib.EngineTypes.startp = _startpos_ew_;
-          MenhirLib.EngineTypes.endp = _endpos_ew_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = b;
-            MenhirLib.EngineTypes.startp = _startpos_b_;
-            MenhirLib.EngineTypes.endp = _endpos_b_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = f;
-              MenhirLib.EngineTypes.startp = _startpos_f_;
-              MenhirLib.EngineTypes.endp = _endpos_f_;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let ew : 'tv_loption_error_words_ = Obj.magic ew in
-        let b : 'tv_loption_minus_start_ = Obj.magic b in
-        let f : 'tv_loption_filespec_ = Obj.magic f in
-        let _startpos = _startpos_f_ in
-        let _endpos = _endpos_ew_ in
-        let _v : 'tv_minus_body = 
-# 592 "parser_cocci_menhir.mly"
-    ( match f@b@ew with
-      [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty")
-    | code -> Top_level.top_level code )
-# 17591 "parser_cocci_menhir.ml"
+        let _3 : 'tv_ident = Obj.magic _3 in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27892 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_postfix_expr_expr_invalid_ = 
+# 1387 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
+# 27900 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17599,33 +27908,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = ew;
-          MenhirLib.EngineTypes.startp = _startpos_ew_;
-          MenhirLib.EngineTypes.endp = _endpos_ew_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = b;
-            MenhirLib.EngineTypes.startp = _startpos_b_;
-            MenhirLib.EngineTypes.endp = _endpos_b_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = f;
-              MenhirLib.EngineTypes.startp = _startpos_f_;
-              MenhirLib.EngineTypes.endp = _endpos_f_;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let ew : 'tv_loption_error_words_ = Obj.magic ew in
-        let b : 'tv_top_eexpr = Obj.magic b in
-        let f : 'tv_loption_filespec_ = Obj.magic f in
-        let _startpos = _startpos_f_ in
-        let _endpos = _endpos_ew_ in
-        let _v : 'tv_minus_exp_body = 
-# 606 "parser_cocci_menhir.mly"
-    ( match f@[b]@ew with
-      [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty")
-    | code -> Top_level.top_level code )
-# 17629 "parser_cocci_menhir.ml"
+        let _3 : 'tv_ident = Obj.magic _3 in
+        let _2 : (
+# 107 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27932 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_postfix_expr_expr_invalid_ = 
+# 1389 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
+                                    _3)) )
+# 27941 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17637,6 +27949,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
+          MenhirLib.EngineTypes.semv = _2;
           MenhirLib.EngineTypes.startp = _startpos__2_;
           MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
@@ -17647,49 +27960,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _1 : 'tv_minus_exp_body = Obj.magic _1 in
+        let _2 : (
+# 88 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 27967 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
-        let _v : (
-# 136 "parser_cocci_menhir.mly"
-      (Ast0_cocci.rule)
-# 17657 "parser_cocci_menhir.ml"
-        ) = 
-# 176 "parser_cocci_menhir.mly"
-                                   ( _1 )
-# 17661 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = m;
-            MenhirLib.EngineTypes.startp = _startpos_m_;
-            MenhirLib.EngineTypes.endp = _endpos_m_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
-          } = _menhir_stack in
-        let m : 'tv_minus_exp_body = Obj.magic m in
-        let _startpos = _startpos_m_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 136 "parser_cocci_menhir.mly"
-      (Ast0_cocci.rule)
-# 17689 "parser_cocci_menhir.ml"
-        ) = 
-# 176 "parser_cocci_menhir.mly"
-                                                                       ( m )
-# 17693 "parser_cocci_menhir.ml"
+        let _v : 'tv_postfix_expr_expr_invalid_ = 
+# 1392 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
+# 27975 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17701,27 +27983,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
+          MenhirLib.EngineTypes.semv = _2;
           MenhirLib.EngineTypes.startp = _startpos__2_;
           MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = m;
-            MenhirLib.EngineTypes.startp = _startpos_m_;
-            MenhirLib.EngineTypes.endp = _endpos_m_;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let m : 'tv_minus_exp_body = Obj.magic m in
-        let _startpos = _startpos_m_ in
+        let _2 : (
+# 88 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 28001 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
-        let _v : (
-# 136 "parser_cocci_menhir.mly"
-      (Ast0_cocci.rule)
-# 17721 "parser_cocci_menhir.ml"
-        ) = 
-# 177 "parser_cocci_menhir.mly"
-                         ( m )
-# 17725 "parser_cocci_menhir.ml"
+        let _v : 'tv_postfix_expr_expr_invalid_ = 
+# 1394 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
+# 28009 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17733,27 +28017,47 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = _4;
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _3;
+            MenhirLib.EngineTypes.startp = _startpos__3_;
+            MenhirLib.EngineTypes.endp = _endpos__3_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = _2;
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = _1;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let _1 : 'tv_minus_body = Obj.magic _1 in
+        let _4 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 28045 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 28051 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 133 "parser_cocci_menhir.mly"
-      (Ast0_cocci.rule)
-# 17753 "parser_cocci_menhir.ml"
-        ) = 
-# 172 "parser_cocci_menhir.mly"
-                           ( _1 )
-# 17757 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_postfix_expr_expr_invalid_ = 
+# 1396 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
+                             _3,
+                             P.clt2mcode ")" _4)) )
+# 28061 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17761,31 +28065,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.startp = _startpos;
           MenhirLib.EngineTypes.endp = _endpos;
           MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = m;
-            MenhirLib.EngineTypes.startp = _startpos_m_;
-            MenhirLib.EngineTypes.endp = _endpos_m_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let m : 'tv_minus_body = Obj.magic m in
-        let _startpos = _startpos_m_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 133 "parser_cocci_menhir.mly"
-      (Ast0_cocci.rule)
-# 17785 "parser_cocci_menhir.ml"
-        ) = 
-# 172 "parser_cocci_menhir.mly"
-                                                           ( m )
-# 17789 "parser_cocci_menhir.ml"
+        let _1 : 'tv_func_ident = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1401 "parser_cocci_menhir.mly"
+                ( Ast0.wrap(Ast0.Ident(_1)) )
+# 28085 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17797,27 +28093,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = m;
-            MenhirLib.EngineTypes.startp = _startpos_m_;
-            MenhirLib.EngineTypes.endp = _endpos_m_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let m : 'tv_minus_body = Obj.magic m in
-        let _startpos = _startpos_m_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 133 "parser_cocci_menhir.mly"
-      (Ast0_cocci.rule)
-# 17817 "parser_cocci_menhir.ml"
-        ) = 
-# 173 "parser_cocci_menhir.mly"
-                     ( m )
-# 17821 "parser_cocci_menhir.ml"
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 28106 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1403 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
+# 28114 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17835,13 +28128,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_fundecl = Obj.magic _1 in
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 28135 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_minus_start = 
-# 1585 "parser_cocci_menhir.mly"
-                         ( [Ast0.wrap(Ast0.DECL(_1))] )
-# 17845 "parser_cocci_menhir.ml"
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1406 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
+# 28143 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17859,13 +28157,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_ctype = Obj.magic _1 in
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 28164 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_minus_start = 
-# 1586 "parser_cocci_menhir.mly"
-                         ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] )
-# 17869 "parser_cocci_menhir.ml"
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1409 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
+# 28172 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17883,13 +28186,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_top_init = Obj.magic _1 in
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 28193 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_minus_start = 
-# 1587 "parser_cocci_menhir.mly"
-                    ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] )
-# 17893 "parser_cocci_menhir.ml"
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1412 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
+# 28201 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17907,13 +28215,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = Obj.magic _1 in
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 28222 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_minus_start = 
-# 1589 "parser_cocci_menhir.mly"
-    ( List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1 )
-# 17917 "parser_cocci_menhir.ml"
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1415 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
+# 28231 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17925,29 +28239,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let b : 'tv_ctype = Obj.magic b in
-        let a : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 17944 "parser_cocci_menhir.ml"
-        ) = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_mzl_ctype_ = 
-# 1779 "parser_cocci_menhir.mly"
-                 ( (P.clt2mcode "|" a, b) )
-# 17951 "parser_cocci_menhir.ml"
+        let _1 : (
+# 66 "parser_cocci_menhir.mly"
+       (Parse_aux.expinfo)
+# 28252 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1419 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,clt) = _1 in
+     Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
+# 28260 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17959,29 +28268,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let b : 'tv_eexpr = Obj.magic b in
-        let a : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 17978 "parser_cocci_menhir.ml"
-        ) = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_mzl_eexpr_ = 
-# 1779 "parser_cocci_menhir.mly"
-                 ( (P.clt2mcode "|" a, b) )
-# 17985 "parser_cocci_menhir.ml"
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 28281 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1422 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
+# 28290 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -17993,29 +28298,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let b : 'tv_fun_after_dots_or = Obj.magic b in
-        let a : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 18012 "parser_cocci_menhir.ml"
-        ) = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_mzl_fun_after_dots_or_ = 
-# 1779 "parser_cocci_menhir.mly"
-                 ( (P.clt2mcode "|" a, b) )
-# 18019 "parser_cocci_menhir.ml"
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 28311 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1426 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
+# 28320 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18027,29 +28328,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let b : 'tv_fun_start = Obj.magic b in
-        let a : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 18046 "parser_cocci_menhir.ml"
-        ) = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_mzl_fun_start_ = 
-# 1779 "parser_cocci_menhir.mly"
-                 ( (P.clt2mcode "|" a, b) )
-# 18053 "parser_cocci_menhir.ml"
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 28341 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1430 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) )
+# 28350 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18061,29 +28358,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let b : 'tv_rule_elem_statement = Obj.magic b in
-        let a : (
-# 76 "parser_cocci_menhir.mly"
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 28381 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_eexpr = Obj.magic _2 in
+        let _1 : (
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 18080 "parser_cocci_menhir.ml"
-        ) = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_mzl_rule_elem_statement_ = 
-# 1779 "parser_cocci_menhir.mly"
-                 ( (P.clt2mcode "|" a, b) )
-# 18087 "parser_cocci_menhir.ml"
+# 28387 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1434 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
+                           P.clt2mcode ")" _3)) )
+# 28395 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18095,29 +28403,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = a;
-            MenhirLib.EngineTypes.startp = _startpos_a_;
-            MenhirLib.EngineTypes.endp = _endpos_a_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let b : 'tv_statement = Obj.magic b in
-        let a : (
-# 76 "parser_cocci_menhir.mly"
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 18114 "parser_cocci_menhir.ml"
-        ) = Obj.magic a in
-        let _startpos = _startpos_a_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_mzl_statement_ = 
-# 1779 "parser_cocci_menhir.mly"
-                 ( (P.clt2mcode "|" a, b) )
-# 18121 "parser_cocci_menhir.ml"
+# 28426 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in
+        let _1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 28432 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1437 "parser_cocci_menhir.mly"
+     ( let (mids,code) = _2 in
+       Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
+                              code, mids,
+                              P.clt2mcode ")" _3)) )
+# 28442 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18135,13 +28456,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_decl = Obj.magic _1 in
+        let _1 : 'tv_dot_expressions = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_name_opt_decl = 
-# 824 "parser_cocci_menhir.mly"
-            ( _1 )
-# 18145 "parser_cocci_menhir.ml"
+        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
+# 1441 "parser_cocci_menhir.mly"
+                 ( _1 )
+# 28466 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18154,18 +28475,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = t;
-          MenhirLib.EngineTypes.startp = _startpos_t_;
-          MenhirLib.EngineTypes.endp = _endpos_t_;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let t : 'tv_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_t_ in
-        let _v : 'tv_name_opt_decl = 
-# 825 "parser_cocci_menhir.mly"
-              ( Ast0.wrap(Ast0.Param(t, None)) )
-# 18169 "parser_cocci_menhir.ml"
+        let _1 : 'tv_func_ident = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1401 "parser_cocci_menhir.mly"
+                ( Ast0.wrap(Ast0.Ident(_1)) )
+# 28490 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18177,80 +28498,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = rp1;
-          MenhirLib.EngineTypes.startp = _startpos_rp1_;
-          MenhirLib.EngineTypes.endp = _endpos_rp1_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = lp1;
-              MenhirLib.EngineTypes.startp = _startpos_lp1_;
-              MenhirLib.EngineTypes.endp = _endpos_lp1_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = rp;
-                MenhirLib.EngineTypes.startp = _startpos_rp_;
-                MenhirLib.EngineTypes.endp = _endpos_rp_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = s;
-                  MenhirLib.EngineTypes.startp = _startpos_s_;
-                  MenhirLib.EngineTypes.endp = _endpos_s_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = lp;
-                    MenhirLib.EngineTypes.startp = _startpos_lp_;
-                    MenhirLib.EngineTypes.endp = _endpos_lp_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.semv = t;
-                      MenhirLib.EngineTypes.startp = _startpos_t_;
-                      MenhirLib.EngineTypes.endp = _endpos_t_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
-                    };
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let rp1 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 18220 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp1 in
-        let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in
-        let lp1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 18226 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp1 in
-        let rp : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 18231 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp in
-        let s : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 18236 "parser_cocci_menhir.ml"
-        ) = Obj.magic s in
-        let lp : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 18241 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp in
-        let t : 'tv_fn_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_rp1_ in
-        let _v : 'tv_name_opt_decl = 
-# 828 "parser_cocci_menhir.mly"
-        ( let fnptr =
-         Ast0.wrap
-           (Ast0.FunctionPointer
-              (t,P.clt2mcode "(" lp,P.clt2mcode "*" s,P.clt2mcode ")" rp,
-               P.clt2mcode "(" lp1,d,P.clt2mcode ")" rp1)) in
-       Ast0.wrap(Ast0.Param(fnptr, None)) )
-# 18254 "parser_cocci_menhir.ml"
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 28511 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1403 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
+# 28519 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18262,25 +28527,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_nest_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 28540 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_nest_after_dots = 
-# 1700 "parser_cocci_menhir.mly"
-                                     (_1@_2)
-# 18284 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1406 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
+# 28548 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18292,23 +28556,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_nest_after_exp = Obj.magic _2 in
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 28569 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_nest_after_dots = 
-# 1701 "parser_cocci_menhir.mly"
-                                (_2)
-# 18312 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1409 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
+# 28577 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18320,25 +28585,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_nest_after_exp = Obj.magic _2 in
-        let _1 : 'tv_expr = Obj.magic _1 in
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 28598 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_nest_after_dots = 
-# 1702 "parser_cocci_menhir.mly"
-                                ((Ast0.wrap(Ast0.Exp(_1)))::_2)
-# 18342 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1412 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
+# 28606 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18349,13 +28613,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_nest_after_exp = 
-# 1710 "parser_cocci_menhir.mly"
-                                ([])
-# 18359 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 28627 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1415 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
+# 28636 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18367,25 +28644,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_nest_after_dots = Obj.magic _2 in
-        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _1 : (
+# 66 "parser_cocci_menhir.mly"
+       (Parse_aux.expinfo)
+# 28657 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_nest_after_exp = 
-# 1711 "parser_cocci_menhir.mly"
-                                (_1::_2)
-# 18389 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1419 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,clt) = _1 in
+     Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
+# 28665 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18396,13 +28672,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_nest_after_stm = 
-# 1705 "parser_cocci_menhir.mly"
-                                ([])
-# 18406 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 28686 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1422 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
+# 28695 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18414,25 +28703,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_nest_after_dots = Obj.magic _2 in
-        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 28716 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_nest_after_stm = 
-# 1706 "parser_cocci_menhir.mly"
-                                (_1::_2)
-# 18436 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1426 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
+# 28725 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18444,25 +28733,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_nest_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement = Obj.magic _1 in
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 28746 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_nest_after_stm = 
-# 1707 "parser_cocci_menhir.mly"
-                                (_1@_2)
-# 18466 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1430 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) )
+# 28755 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18474,13 +28763,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = c;
-          MenhirLib.EngineTypes.startp = _startpos_c_;
-          MenhirLib.EngineTypes.endp = _endpos_c_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
               MenhirLib.EngineTypes.semv = _1;
@@ -18490,25 +28779,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               };
             };
           } = _menhir_stack in
-        let c : (
-# 72 "parser_cocci_menhir.mly"
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 18497 "parser_cocci_menhir.ml"
-        ) = Obj.magic c in
-        let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in
+# 28786 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 72 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 18503 "parser_cocci_menhir.ml"
+# 28792 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_c_ in
-        let _v : 'tv_nest_expressions = 
-# 1200 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<..." _1,
-                             Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))),
-                             P.clt2mcode "...>" c, None, false)) )
-# 18512 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1434 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
+                           P.clt2mcode ")" _3)) )
+# 28800 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18520,13 +28808,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = c;
-          MenhirLib.EngineTypes.startp = _startpos_c_;
-          MenhirLib.EngineTypes.endp = _endpos_c_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
               MenhirLib.EngineTypes.semv = _1;
@@ -18536,25 +28824,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               };
             };
           } = _menhir_stack in
-        let c : (
-# 72 "parser_cocci_menhir.mly"
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 18543 "parser_cocci_menhir.ml"
-        ) = Obj.magic c in
-        let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in
+# 28831 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in
         let _1 : (
-# 72 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 18549 "parser_cocci_menhir.ml"
+# 28837 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_c_ in
-        let _v : 'tv_nest_expressions = 
-# 1204 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<+..." _1,
-                             Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))),
-                             P.clt2mcode "...+>" c, None, true)) )
-# 18558 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1437 "parser_cocci_menhir.mly"
+     ( let (mids,code) = _2 in
+       Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
+                              code, mids,
+                              P.clt2mcode ")" _3)) )
+# 28847 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18572,13 +28861,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_nest_after_dots = Obj.magic _1 in
+        let _1 : 'tv_invalid = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_nest_start = 
-# 1697 "parser_cocci_menhir.mly"
-                   ( Ast0.wrap(Ast0.DOTS(_1)) )
-# 18582 "parser_cocci_menhir.ml"
+        let _v : 'tv_primary_expr_eexpr_invalid_ = 
+# 1441 "parser_cocci_menhir.mly"
+                 ( _1 )
+# 28871 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18591,20 +28880,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
           MenhirLib.EngineTypes.startp = _startpos__1_;
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
+        let _1 : 'tv_func_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : (
-# 167 "parser_cocci_menhir.mly"
-      (unit)
-# 18604 "parser_cocci_menhir.ml"
-        ) = 
-# 1842 "parser_cocci_menhir.mly"
-                    ( () )
-# 18608 "parser_cocci_menhir.ml"
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1401 "parser_cocci_menhir.mly"
+                ( Ast0.wrap(Ast0.Ident(_1)) )
+# 28895 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18616,25 +28903,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 28916 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 167 "parser_cocci_menhir.mly"
-      (unit)
-# 18634 "parser_cocci_menhir.ml"
-        ) = 
-# 1843 "parser_cocci_menhir.mly"
-                    ( () )
-# 18638 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1403 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
+# 28924 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18647,20 +28933,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
           MenhirLib.EngineTypes.startp = _startpos__1_;
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 28945 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : (
-# 167 "parser_cocci_menhir.mly"
-      (unit)
-# 18660 "parser_cocci_menhir.ml"
-        ) = 
-# 1844 "parser_cocci_menhir.mly"
-                    ( () )
-# 18664 "parser_cocci_menhir.ml"
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1406 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
+# 28953 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18672,26 +28961,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = dg;
-          MenhirLib.EngineTypes.startp = _startpos_dg_;
-          MenhirLib.EngineTypes.endp = _endpos_dg_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = g;
-            MenhirLib.EngineTypes.startp = _startpos_g_;
-            MenhirLib.EngineTypes.endp = _endpos_g_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let dg : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = Obj.magic dg in
-        let g : 'tv_dexpr = Obj.magic g in
-        let _startpos = _startpos_g_ in
-        let _endpos = _endpos_dg_ in
-        let _v : 'tv_no_dot_start_end_dexpr_edots_when_TEllipsis_eexpr__ = 
-# 1368 "parser_cocci_menhir.mly"
-  ( function dot_builder ->
-      g :: (List.concat(List.map (function (d,g) -> [dot_builder d;g]) dg)) )
-# 18695 "parser_cocci_menhir.ml"
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 28974 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1409 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
+# 28982 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18704,22 +28991,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let x : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 18716 "parser_cocci_menhir.ml"
-        ) = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_nonempty_list_TMul_ = 
-# 124 "standard.mly"
-    ( [ x ] )
-# 18723 "parser_cocci_menhir.ml"
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 29003 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1412 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
+# 29011 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18731,61 +29019,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = x;
-            MenhirLib.EngineTypes.startp = _startpos_x_;
-            MenhirLib.EngineTypes.endp = _endpos_x_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
-          } = _menhir_stack in
-        let xs : 'tv_nonempty_list_TMul_ = Obj.magic xs in
-        let x : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 18750 "parser_cocci_menhir.ml"
-        ) = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_nonempty_list_TMul_ = 
-# 126 "standard.mly"
-    ( x :: xs )
-# 18757 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = i;
-          MenhirLib.EngineTypes.startp = _startpos_i_;
-          MenhirLib.EngineTypes.endp = _endpos_i_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
           } = _menhir_stack in
-        let i : 'tv_ident_or_const = Obj.magic i in
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 29032 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_i_ in
-        let _v : 'tv_not_ceq = 
-# 1425 "parser_cocci_menhir.mly"
-         ( (if !Data.in_iso
-          then failwith "constraints not allowed in iso file");
-          (if !Data.in_generating
-          then failwith "constraints not allowed in a generated rule file");
-          [i] )
-# 18789 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1415 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
+# 29041 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18797,35 +29049,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = l;
-            MenhirLib.EngineTypes.startp = _startpos_l_;
-            MenhirLib.EngineTypes.endp = _endpos_l_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__2_;
-              MenhirLib.EngineTypes.endp = _endpos__2_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let l : 'tv_comma_list_ident_or_const_ = Obj.magic l in
+        let _1 : (
+# 66 "parser_cocci_menhir.mly"
+       (Parse_aux.expinfo)
+# 29062 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_not_ceq = 
-# 1431 "parser_cocci_menhir.mly"
-  ( (if !Data.in_iso
-          then failwith "constraints not allowed in iso file");
-          (if !Data.in_generating
-          then failwith "constraints not allowed in a generated rule file");
-          l )
-# 18829 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1419 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,clt) = _1 in
+     Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
+# 29070 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18837,29 +29078,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = i;
-          MenhirLib.EngineTypes.startp = _startpos_i_;
-          MenhirLib.EngineTypes.endp = _endpos_i_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let i : 'tv_pure_ident = Obj.magic i in
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 29091 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_i_ in
-        let _v : 'tv_not_eq = 
-# 1392 "parser_cocci_menhir.mly"
-         ( (if !Data.in_iso
-          then failwith "constraints not allowed in iso file");
-          (if !Data.in_generating
-           (* pb: constraints not stored with metavars; too lazy to search for
-             them in the pattern *)
-          then failwith "constraints not allowed in a generated rule file");
-          [Ast0.wrap(Ast0.Id(P.id2mcode i))] )
-# 18863 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1422 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
+# 29100 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18871,35 +29108,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = l;
-            MenhirLib.EngineTypes.startp = _startpos_l_;
-            MenhirLib.EngineTypes.endp = _endpos_l_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__2_;
-              MenhirLib.EngineTypes.endp = _endpos__2_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let l : 'tv_comma_list_pure_ident_ = Obj.magic l in
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 29121 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_not_eq = 
-# 1400 "parser_cocci_menhir.mly"
-  ( (if !Data.in_iso
-          then failwith "constraints not allowed in iso file");
-          (if !Data.in_generating
-          then failwith "constraints not allowed in a generated rule file");
-          List.map (function i -> Ast0.wrap(Ast0.Id(P.id2mcode i))) l )
-# 18903 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1426 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
+# 29130 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18911,27 +29138,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = i;
-          MenhirLib.EngineTypes.startp = _startpos_i_;
-          MenhirLib.EngineTypes.endp = _endpos_i_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let i : 'tv_pure_ident = Obj.magic i in
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 29151 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_i_ in
-        let _v : 'tv_not_eqe = 
-# 1408 "parser_cocci_menhir.mly"
-         ( (if !Data.in_iso
-          then failwith "constraints not allowed in iso file");
-          (if !Data.in_generating
-          then failwith "constraints not allowed in a generated rule file");
-          [Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i))))] )
-# 18935 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1430 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) )
+# 29160 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18943,38 +29168,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = l;
-            MenhirLib.EngineTypes.startp = _startpos_l_;
-            MenhirLib.EngineTypes.endp = _endpos_l_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__2_;
-              MenhirLib.EngineTypes.endp = _endpos__2_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let l : 'tv_comma_list_pure_ident_ = Obj.magic l in
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 29191 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_eexpr = Obj.magic _2 in
+        let _1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 29197 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_not_eqe = 
-# 1414 "parser_cocci_menhir.mly"
-  ( (if !Data.in_iso
-          then failwith "constraints not allowed in iso file");
-          (if !Data.in_generating
-          then failwith "constraints not allowed in a generated rule file");
-          List.map
-            (function i ->
-              Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i)))))
-            l )
-# 18978 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1434 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
+                           P.clt2mcode ")" _3)) )
+# 29205 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -18986,32 +29213,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = i;
-          MenhirLib.EngineTypes.startp = _startpos_i_;
-          MenhirLib.EngineTypes.endp = _endpos_i_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let i : 'tv_meta_ident = Obj.magic i in
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 29236 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in
+        let _1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 29242 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos_i_ in
-        let _v : 'tv_not_pos = 
-# 1445 "parser_cocci_menhir.mly"
-         ( (if !Data.in_iso
-          then failwith "constraints not allowed in iso file");
-          (if !Data.in_generating
-          then failwith "constraints not allowed in a generated rule file");
-          match i with
-            (None,_) -> failwith "constraint must be an inherited variable"
-          | (Some rule,name) ->
-              let i = (rule,name) in
-              P.check_meta(Ast.MetaPosDecl(Ast.NONE,i));
-              [i] )
-# 19015 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1437 "parser_cocci_menhir.mly"
+     ( let (mids,code) = _2 in
+       Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
+                              code, mids,
+                              P.clt2mcode ")" _3)) )
+# 29252 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19023,43 +29260,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = l;
-            MenhirLib.EngineTypes.startp = _startpos_l_;
-            MenhirLib.EngineTypes.endp = _endpos_l_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__2_;
-              MenhirLib.EngineTypes.endp = _endpos__2_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let l : 'tv_comma_list_meta_ident_ = Obj.magic l in
+        let _1 : 'tv_nest_expressions = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_not_pos = 
-# 1456 "parser_cocci_menhir.mly"
-  ( (if !Data.in_iso
-          then failwith "constraints not allowed in iso file");
-          (if !Data.in_generating
-          then failwith "constraints not allowed in a generated rule file");
-          List.map
-            (function
-                (None,_) ->
-                  failwith "constraint must be an inherited variable"
-              | (Some rule,name) ->
-                  let i = (rule,name) in
-                  P.check_meta(Ast.MetaPosDecl(Ast.NONE,i));
-                  i)
-            l )
-# 19063 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
+# 1441 "parser_cocci_menhir.mly"
+                 ( _1 )
+# 29276 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19077,13 +29290,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_decl = Obj.magic _1 in
+        let _1 : 'tv_func_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_one_dec_decl_ = 
-# 1529 "parser_cocci_menhir.mly"
-        ( _1 )
-# 19087 "parser_cocci_menhir.ml"
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1401 "parser_cocci_menhir.mly"
+                ( Ast0.wrap(Ast0.Ident(_1)) )
+# 29300 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19102,22 +29315,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 65 "parser_cocci_menhir.mly"
-       (Parse_aux.list_info)
-# 19108 "parser_cocci_menhir.ml"
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 29321 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_one_dec_decl_ = 
-# 1531 "parser_cocci_menhir.mly"
-    ( let (nm,lenname,pure,clt) = _1 in
-    let nm = P.clt2mcode nm clt in
-    let lenname =
-      match lenname with
-       Some nm -> Some(P.clt2mcode nm clt)
-      | None -> None in
-    Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) )
-# 19121 "parser_cocci_menhir.ml"
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1403 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
+# 29329 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19135,13 +29343,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_name_opt_decl = Obj.magic _1 in
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 29350 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_one_dec_name_opt_decl_ = 
-# 1529 "parser_cocci_menhir.mly"
-        ( _1 )
-# 19145 "parser_cocci_menhir.ml"
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1406 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
+# 29358 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19160,22 +29373,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 65 "parser_cocci_menhir.mly"
-       (Parse_aux.list_info)
-# 19166 "parser_cocci_menhir.ml"
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 29379 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_one_dec_name_opt_decl_ = 
-# 1531 "parser_cocci_menhir.mly"
-    ( let (nm,lenname,pure,clt) = _1 in
-    let nm = P.clt2mcode nm clt in
-    let lenname =
-      match lenname with
-       Some nm -> Some(P.clt2mcode nm clt)
-      | None -> None in
-    Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) )
-# 19179 "parser_cocci_menhir.ml"
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1409 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
+# 29387 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19187,29 +29395,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = t;
-            MenhirLib.EngineTypes.startp = _startpos_t_;
-            MenhirLib.EngineTypes.endp = _endpos_t_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19205 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let t : 'tv_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = 
-# 995 "parser_cocci_menhir.mly"
-      ( Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv)) )
-# 19213 "parser_cocci_menhir.ml"
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 29408 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1412 "parser_cocci_menhir.mly"
+     ( let (x,clt) = _1 in
+     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
+# 29416 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19221,43 +29424,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = t;
-              MenhirLib.EngineTypes.startp = _startpos_t_;
-              MenhirLib.EngineTypes.endp = _endpos_t_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19244 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_d_ident = Obj.magic d in
-        let t : 'tv_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let s =
-          
-# 39 "standard.mly"
-    ( None )
-# 19254 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 997 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
-# 19261 "parser_cocci_menhir.ml"
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 29437 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1415 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
+# 29446 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19269,50 +29454,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = t;
-              MenhirLib.EngineTypes.startp = _startpos_t_;
-              MenhirLib.EngineTypes.endp = _endpos_t_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = x0;
-                MenhirLib.EngineTypes.startp = _startpos_x0_;
-                MenhirLib.EngineTypes.endp = _endpos_x0_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19297 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_d_ident = Obj.magic d in
-        let t : 'tv_ctype = Obj.magic t in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let s =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 19309 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 997 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
-# 19316 "parser_cocci_menhir.ml"
+        let _1 : (
+# 66 "parser_cocci_menhir.mly"
+       (Parse_aux.expinfo)
+# 29467 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1419 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,clt) = _1 in
+     Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
+# 29475 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19325,18 +29484,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = f;
-          MenhirLib.EngineTypes.startp = _startpos_f_;
-          MenhirLib.EngineTypes.endp = _endpos_f_;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let f : 'tv_funproto = Obj.magic f in
-        let _startpos = _startpos_f_ in
-        let _endpos = _endpos_f_ in
-        let _v : 'tv_one_decl_var = 
-# 999 "parser_cocci_menhir.mly"
-               ( f )
-# 19340 "parser_cocci_menhir.ml"
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 29496 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1422 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
+# 29505 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19348,59 +29513,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = d;
-                MenhirLib.EngineTypes.startp = _startpos_d_;
-                MenhirLib.EngineTypes.endp = _endpos_d_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = t;
-                  MenhirLib.EngineTypes.startp = _startpos_t_;
-                  MenhirLib.EngineTypes.endp = _endpos_t_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19381 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19387 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let d : 'tv_d_ident = Obj.magic d in
-        let t : 'tv_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let s =
-          
-# 39 "standard.mly"
-    ( None )
-# 19397 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1001 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-      Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) )
-# 19404 "parser_cocci_menhir.ml"
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 29526 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1426 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
+# 29535 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19412,66 +29543,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = d;
-                MenhirLib.EngineTypes.startp = _startpos_d_;
-                MenhirLib.EngineTypes.endp = _endpos_d_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = t;
-                  MenhirLib.EngineTypes.startp = _startpos_t_;
-                  MenhirLib.EngineTypes.endp = _endpos_t_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = x0;
-                    MenhirLib.EngineTypes.startp = _startpos_x0_;
-                    MenhirLib.EngineTypes.endp = _endpos_x0_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19450 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19456 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let d : 'tv_d_ident = Obj.magic d in
-        let t : 'tv_ctype = Obj.magic t in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let s =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 19468 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1001 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-      Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) )
-# 19475 "parser_cocci_menhir.ml"
+        let _1 : (
+# 70 "parser_cocci_menhir.mly"
+       (Parse_aux.typed_expinfo)
+# 29556 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1430 "parser_cocci_menhir.mly"
+     ( let (nm,constraints,pure,ty,clt) = _1 in
+     Ast0.wrap
+       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) )
+# 29565 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19483,51 +29573,40 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = i;
-              MenhirLib.EngineTypes.startp = _startpos_i_;
-              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 19506 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let _startpos = _startpos_i_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let cv =
-          
-# 39 "standard.mly"
-    ( None )
-# 19516 "parser_cocci_menhir.ml"
-          
-        in
-        let s =
-          
-# 39 "standard.mly"
-    ( None )
-# 19523 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1006 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-       Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) )
-# 19531 "parser_cocci_menhir.ml"
+# 29596 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_eexpr = Obj.magic _2 in
+        let _1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 29602 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1434 "parser_cocci_menhir.mly"
+     ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
+                           P.clt2mcode ")" _3)) )
+# 29610 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19539,58 +29618,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = i;
-              MenhirLib.EngineTypes.startp = _startpos_i_;
-              MenhirLib.EngineTypes.endp = _endpos_i_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = x0;
-                MenhirLib.EngineTypes.startp = _startpos_x0_;
-                MenhirLib.EngineTypes.endp = _endpos_x0_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 19567 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let x0 : 'tv_const_vol = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let cv =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 19579 "parser_cocci_menhir.ml"
-          
-        in
-        let s =
-          
-# 39 "standard.mly"
-    ( None )
-# 19586 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1006 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-       Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) )
-# 19594 "parser_cocci_menhir.ml"
+# 29641 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_midzero_list_expr_eexpr_ = Obj.magic _2 in
+        let _1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 29647 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1437 "parser_cocci_menhir.mly"
+     ( let (mids,code) = _2 in
+       Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
+                              code, mids,
+                              P.clt2mcode ")" _3)) )
+# 29657 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19602,58 +29665,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = i;
-              MenhirLib.EngineTypes.startp = _startpos_i_;
-              MenhirLib.EngineTypes.endp = _endpos_i_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = x0;
-                MenhirLib.EngineTypes.startp = _startpos_x0_;
-                MenhirLib.EngineTypes.endp = _endpos_x0_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19630 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let cv =
-          
-# 39 "standard.mly"
-    ( None )
-# 19641 "parser_cocci_menhir.ml"
-          
-        in
-        let s =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 19649 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1006 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-       Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) )
-# 19657 "parser_cocci_menhir.ml"
+        let _1 : 'tv_invalid = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_primary_expr_expr_invalid_ = 
+# 1441 "parser_cocci_menhir.mly"
+                 ( _1 )
+# 29681 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19665,65 +29689,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = i;
-              MenhirLib.EngineTypes.startp = _startpos_i_;
-              MenhirLib.EngineTypes.endp = _endpos_i_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = x1;
-                MenhirLib.EngineTypes.startp = _startpos_x1_;
-                MenhirLib.EngineTypes.endp = _endpos_x1_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = x0;
-                  MenhirLib.EngineTypes.startp = _startpos_x0_;
-                  MenhirLib.EngineTypes.endp = _endpos_x0_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19698 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let x1 : 'tv_const_vol = Obj.magic x1 in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let cv =
-          let x = x1 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 19711 "parser_cocci_menhir.ml"
-          
-        in
-        let s =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 19719 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1006 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-       Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) )
-# 19727 "parser_cocci_menhir.ml"
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure = 
+# 195 "parser_cocci_menhir.mly"
+                 ( Ast0.Pure )
+# 29703 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19735,69 +29711,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = d;
-                MenhirLib.EngineTypes.startp = _startpos_d_;
-                MenhirLib.EngineTypes.endp = _endpos_d_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = i;
-                  MenhirLib.EngineTypes.startp = _startpos_i_;
-                  MenhirLib.EngineTypes.endp = _endpos_i_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19768 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19774 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let _startpos = _startpos_i_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let cv =
-          
-# 39 "standard.mly"
-    ( None )
-# 19784 "parser_cocci_menhir.ml"
-          
-        in
-        let s =
-          
-# 39 "standard.mly"
-    ( None )
-# 19791 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1011 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-      !Data.add_type_name (P.id2name i);
-      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-      Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
-                          P.clt2mcode ";" pv)) )
-# 19801 "parser_cocci_menhir.ml"
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure = 
+# 196 "parser_cocci_menhir.mly"
+                 ( Ast0.Context )
+# 29725 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19809,76 +29733,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = d;
-                MenhirLib.EngineTypes.startp = _startpos_d_;
-                MenhirLib.EngineTypes.endp = _endpos_d_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = i;
-                  MenhirLib.EngineTypes.startp = _startpos_i_;
-                  MenhirLib.EngineTypes.endp = _endpos_i_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = x0;
-                    MenhirLib.EngineTypes.startp = _startpos_x0_;
-                    MenhirLib.EngineTypes.endp = _endpos_x0_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
-            };
-          } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19847 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19853 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let x0 : 'tv_const_vol = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let cv =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 19865 "parser_cocci_menhir.ml"
-          
-        in
-        let s =
-          
-# 39 "standard.mly"
-    ( None )
-# 19872 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1011 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-      !Data.add_type_name (P.id2name i);
-      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-      Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
-                          P.clt2mcode ";" pv)) )
-# 19882 "parser_cocci_menhir.ml"
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_pure = 
+# 197 "parser_cocci_menhir.mly"
+                 ( Ast0.PureContext )
+# 29751 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19890,76 +29759,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = d;
-                MenhirLib.EngineTypes.startp = _startpos_d_;
-                MenhirLib.EngineTypes.endp = _endpos_d_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = i;
-                  MenhirLib.EngineTypes.startp = _startpos_i_;
-                  MenhirLib.EngineTypes.endp = _endpos_i_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = x0;
-                    MenhirLib.EngineTypes.startp = _startpos_x0_;
-                    MenhirLib.EngineTypes.endp = _endpos_x0_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19928 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 19934 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let cv =
-          
-# 39 "standard.mly"
-    ( None )
-# 19945 "parser_cocci_menhir.ml"
-          
-        in
-        let s =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 19953 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1011 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-      !Data.add_type_name (P.id2name i);
-      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-      Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
-                          P.clt2mcode ";" pv)) )
-# 19963 "parser_cocci_menhir.ml"
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_pure = 
+# 198 "parser_cocci_menhir.mly"
+                 ( Ast0.PureContext )
+# 29777 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -19970,84 +29784,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = d;
-                MenhirLib.EngineTypes.startp = _startpos_d_;
-                MenhirLib.EngineTypes.endp = _endpos_d_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = i;
-                  MenhirLib.EngineTypes.startp = _startpos_i_;
-                  MenhirLib.EngineTypes.endp = _endpos_i_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = x1;
-                    MenhirLib.EngineTypes.startp = _startpos_x1_;
-                    MenhirLib.EngineTypes.endp = _endpos_x1_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.semv = x0;
-                      MenhirLib.EngineTypes.startp = _startpos_x0_;
-                      MenhirLib.EngineTypes.endp = _endpos_x0_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
-                    };
-                  };
-                };
-              };
-            };
-          } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20014 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20020 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let x1 : 'tv_const_vol = Obj.magic x1 in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let cv =
-          let x = x1 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 20033 "parser_cocci_menhir.ml"
-          
-        in
-        let s =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 20041 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1011 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-      !Data.add_type_name (P.id2name i);
-      let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-      Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e,
-                          P.clt2mcode ";" pv)) )
-# 20051 "parser_cocci_menhir.ml"
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_pure = 
+# 199 "parser_cocci_menhir.mly"
+                 ( Ast0.Impure )
+# 29794 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20059,104 +29802,45 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = rp2;
-            MenhirLib.EngineTypes.startp = _startpos_rp2_;
-            MenhirLib.EngineTypes.endp = _endpos_rp2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = p;
-              MenhirLib.EngineTypes.startp = _startpos_p_;
-              MenhirLib.EngineTypes.endp = _endpos_p_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = lp2;
-                MenhirLib.EngineTypes.startp = _startpos_lp2_;
-                MenhirLib.EngineTypes.endp = _endpos_lp2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = rp1;
-                  MenhirLib.EngineTypes.startp = _startpos_rp1_;
-                  MenhirLib.EngineTypes.endp = _endpos_rp1_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = d;
-                    MenhirLib.EngineTypes.startp = _startpos_d_;
-                    MenhirLib.EngineTypes.endp = _endpos_d_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.semv = st;
-                      MenhirLib.EngineTypes.startp = _startpos_st_;
-                      MenhirLib.EngineTypes.endp = _endpos_st_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.semv = lp1;
-                        MenhirLib.EngineTypes.startp = _startpos_lp1_;
-                        MenhirLib.EngineTypes.endp = _endpos_lp1_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.state = _menhir_s;
-                          MenhirLib.EngineTypes.semv = t;
-                          MenhirLib.EngineTypes.startp = _startpos_t_;
-                          MenhirLib.EngineTypes.endp = _endpos_t_;
-                          MenhirLib.EngineTypes.next = _menhir_stack;
-                          };
-                        };
-                      };
-                    };
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20112 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let rp2 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20117 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp2 in
-        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
-        let lp2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20123 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp2 in
-        let rp1 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20128 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp1 in
-        let d : 'tv_d_ident = Obj.magic d in
-        let st : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20134 "parser_cocci_menhir.ml"
-        ) = Obj.magic st in
-        let lp1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20139 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp1 in
-        let t : 'tv_fn_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let s =
-          
-# 39 "standard.mly"
-    ( None )
-# 20148 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1021 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        let t =
-         Ast0.wrap
-           (Ast0.FunctionPointer
-              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
-               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
-        Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
-# 20160 "parser_cocci_menhir.ml"
+        let _1 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 29815 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident = 
+# 1455 "parser_cocci_menhir.mly"
+            ( _1 )
+# 29822 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1458 "parser_cocci_menhir.mly"
+                 ( "identifier" )
+# 29844 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20168,111 +29852,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = rp2;
-            MenhirLib.EngineTypes.startp = _startpos_rp2_;
-            MenhirLib.EngineTypes.endp = _endpos_rp2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = p;
-              MenhirLib.EngineTypes.startp = _startpos_p_;
-              MenhirLib.EngineTypes.endp = _endpos_p_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = lp2;
-                MenhirLib.EngineTypes.startp = _startpos_lp2_;
-                MenhirLib.EngineTypes.endp = _endpos_lp2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = rp1;
-                  MenhirLib.EngineTypes.startp = _startpos_rp1_;
-                  MenhirLib.EngineTypes.endp = _endpos_rp1_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = d;
-                    MenhirLib.EngineTypes.startp = _startpos_d_;
-                    MenhirLib.EngineTypes.endp = _endpos_d_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.semv = st;
-                      MenhirLib.EngineTypes.startp = _startpos_st_;
-                      MenhirLib.EngineTypes.endp = _endpos_st_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.semv = lp1;
-                        MenhirLib.EngineTypes.startp = _startpos_lp1_;
-                        MenhirLib.EngineTypes.endp = _endpos_lp1_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.semv = t;
-                          MenhirLib.EngineTypes.startp = _startpos_t_;
-                          MenhirLib.EngineTypes.endp = _endpos_t_;
-                          MenhirLib.EngineTypes.next = {
-                            MenhirLib.EngineTypes.state = _menhir_s;
-                            MenhirLib.EngineTypes.semv = x0;
-                            MenhirLib.EngineTypes.startp = _startpos_x0_;
-                            MenhirLib.EngineTypes.endp = _endpos_x0_;
-                            MenhirLib.EngineTypes.next = _menhir_stack;
-                            };
-                          };
-                        };
-                      };
-                    };
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20226 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let rp2 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20231 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp2 in
-        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
-        let lp2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20237 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp2 in
-        let rp1 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20242 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp1 in
-        let d : 'tv_d_ident = Obj.magic d in
-        let st : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20248 "parser_cocci_menhir.ml"
-        ) = Obj.magic st in
-        let lp1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20253 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp1 in
-        let t : 'tv_fn_ctype = Obj.magic t in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let s =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 20264 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1021 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        let t =
-         Ast0.wrap
-           (Ast0.FunctionPointer
-              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
-               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
-        Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) )
-# 20276 "parser_cocci_menhir.ml"
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1459 "parser_cocci_menhir.mly"
+                 ( "expression" )
+# 29866 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20284,56 +29874,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _5;
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _4;
-            MenhirLib.EngineTypes.startp = _startpos__4_;
-            MenhirLib.EngineTypes.endp = _endpos__4_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _3;
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = _2;
-                MenhirLib.EngineTypes.startp = _startpos__2_;
-                MenhirLib.EngineTypes.endp = _endpos__2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = _1;
-                  MenhirLib.EngineTypes.startp = _startpos__1_;
-                  MenhirLib.EngineTypes.endp = _endpos__1_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _5 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20317 "parser_cocci_menhir.ml"
-        ) = Obj.magic _5 in
-        let _4 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20322 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20328 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_decl_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_one_decl_var = 
-# 1029 "parser_cocci_menhir.mly"
-      ( Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3,
-                                 P.clt2mcode ")" _4,P.clt2mcode ";" _5)) )
-# 20337 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1460 "parser_cocci_menhir.mly"
+                ( "statement" )
+# 29888 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20345,120 +29896,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = rp2;
-                MenhirLib.EngineTypes.startp = _startpos_rp2_;
-                MenhirLib.EngineTypes.endp = _endpos_rp2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = p;
-                  MenhirLib.EngineTypes.startp = _startpos_p_;
-                  MenhirLib.EngineTypes.endp = _endpos_p_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = lp2;
-                    MenhirLib.EngineTypes.startp = _startpos_lp2_;
-                    MenhirLib.EngineTypes.endp = _endpos_lp2_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.semv = rp1;
-                      MenhirLib.EngineTypes.startp = _startpos_rp1_;
-                      MenhirLib.EngineTypes.endp = _endpos_rp1_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.semv = d;
-                        MenhirLib.EngineTypes.startp = _startpos_d_;
-                        MenhirLib.EngineTypes.endp = _endpos_d_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.semv = st;
-                          MenhirLib.EngineTypes.startp = _startpos_st_;
-                          MenhirLib.EngineTypes.endp = _endpos_st_;
-                          MenhirLib.EngineTypes.next = {
-                            MenhirLib.EngineTypes.semv = lp1;
-                            MenhirLib.EngineTypes.startp = _startpos_lp1_;
-                            MenhirLib.EngineTypes.endp = _endpos_lp1_;
-                            MenhirLib.EngineTypes.next = {
-                              MenhirLib.EngineTypes.state = _menhir_s;
-                              MenhirLib.EngineTypes.semv = t;
-                              MenhirLib.EngineTypes.startp = _startpos_t_;
-                              MenhirLib.EngineTypes.endp = _endpos_t_;
-                              MenhirLib.EngineTypes.next = _menhir_stack;
-                              };
-                            };
-                          };
-                        };
-                      };
-                    };
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20408 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20414 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let rp2 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20419 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp2 in
-        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
-        let lp2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20425 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp2 in
-        let rp1 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20430 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp1 in
-        let d : 'tv_d_ident = Obj.magic d in
-        let st : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20436 "parser_cocci_menhir.ml"
-        ) = Obj.magic st in
-        let lp1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20441 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp1 in
-        let t : 'tv_fn_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let s =
-          
-# 39 "standard.mly"
-    ( None )
-# 20450 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1035 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        let t =
-         Ast0.wrap
-           (Ast0.FunctionPointer
-              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
-               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
-      Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)))
-# 20462 "parser_cocci_menhir.ml"
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1461 "parser_cocci_menhir.mly"
+               ( "function" )
+# 29910 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20470,127 +29918,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = e;
-            MenhirLib.EngineTypes.startp = _startpos_e_;
-            MenhirLib.EngineTypes.endp = _endpos_e_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = q;
-              MenhirLib.EngineTypes.startp = _startpos_q_;
-              MenhirLib.EngineTypes.endp = _endpos_q_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = rp2;
-                MenhirLib.EngineTypes.startp = _startpos_rp2_;
-                MenhirLib.EngineTypes.endp = _endpos_rp2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = p;
-                  MenhirLib.EngineTypes.startp = _startpos_p_;
-                  MenhirLib.EngineTypes.endp = _endpos_p_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = lp2;
-                    MenhirLib.EngineTypes.startp = _startpos_lp2_;
-                    MenhirLib.EngineTypes.endp = _endpos_lp2_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.semv = rp1;
-                      MenhirLib.EngineTypes.startp = _startpos_rp1_;
-                      MenhirLib.EngineTypes.endp = _endpos_rp1_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.semv = d;
-                        MenhirLib.EngineTypes.startp = _startpos_d_;
-                        MenhirLib.EngineTypes.endp = _endpos_d_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.semv = st;
-                          MenhirLib.EngineTypes.startp = _startpos_st_;
-                          MenhirLib.EngineTypes.endp = _endpos_st_;
-                          MenhirLib.EngineTypes.next = {
-                            MenhirLib.EngineTypes.semv = lp1;
-                            MenhirLib.EngineTypes.startp = _startpos_lp1_;
-                            MenhirLib.EngineTypes.endp = _endpos_lp1_;
-                            MenhirLib.EngineTypes.next = {
-                              MenhirLib.EngineTypes.semv = t;
-                              MenhirLib.EngineTypes.startp = _startpos_t_;
-                              MenhirLib.EngineTypes.endp = _endpos_t_;
-                              MenhirLib.EngineTypes.next = {
-                                MenhirLib.EngineTypes.state = _menhir_s;
-                                MenhirLib.EngineTypes.semv = x0;
-                                MenhirLib.EngineTypes.startp = _startpos_x0_;
-                                MenhirLib.EngineTypes.endp = _endpos_x0_;
-                                MenhirLib.EngineTypes.next = _menhir_stack;
-                                };
-                              };
-                            };
-                          };
-                        };
-                      };
-                    };
-                  };
-                };
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20538 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let e : 'tv_initialize = Obj.magic e in
-        let q : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20544 "parser_cocci_menhir.ml"
-        ) = Obj.magic q in
-        let rp2 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20549 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp2 in
-        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
-        let lp2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20555 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp2 in
-        let rp1 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20560 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp1 in
-        let d : 'tv_d_ident = Obj.magic d in
-        let st : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20566 "parser_cocci_menhir.ml"
-        ) = Obj.magic st in
-        let lp1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 20571 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp1 in
-        let t : 'tv_fn_ctype = Obj.magic t in
-        let x0 : 'tv_storage = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_one_decl_var = let s =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 20582 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 1035 "parser_cocci_menhir.mly"
-      ( let (id,fn) = d in
-        let t =
-         Ast0.wrap
-           (Ast0.FunctionPointer
-              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
-               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
-      Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)))
-# 20594 "parser_cocci_menhir.ml"
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1462 "parser_cocci_menhir.mly"
+            ( "local" )
+# 29932 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20601,13 +29939,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_option_TLocal_ = 
-# 29 "standard.mly"
-    ( None )
-# 20611 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1463 "parser_cocci_menhir.mly"
+           ( "type" )
+# 29954 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20620,18 +29963,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let x : unit = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_option_TLocal_ = 
-# 31 "standard.mly"
-    ( Some x )
-# 20635 "parser_cocci_menhir.ml"
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1464 "parser_cocci_menhir.mly"
+                ( "parameter" )
+# 29976 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20642,13 +29983,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_option_TPosAny_ = 
-# 29 "standard.mly"
-    ( None )
-# 20652 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1465 "parser_cocci_menhir.mly"
+                   ( "idexpression" )
+# 29998 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20661,18 +30007,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let x : unit = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_option_TPosAny_ = 
-# 31 "standard.mly"
-    ( Some x )
-# 20676 "parser_cocci_menhir.ml"
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1466 "parser_cocci_menhir.mly"
+                  ( "initialiser" )
+# 30020 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20683,13 +30027,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_option_eexpr_ = 
-# 29 "standard.mly"
-    ( None )
-# 20693 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1467 "parser_cocci_menhir.mly"
+           ( "list" )
+# 30042 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20702,18 +30051,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let x : 'tv_eexpr = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_option_eexpr_ = 
-# 31 "standard.mly"
-    ( Some x )
-# 20717 "parser_cocci_menhir.ml"
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1468 "parser_cocci_menhir.mly"
+            ( "fresh" )
+# 30064 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20724,13 +30071,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_plus_after_dots = 
-# 1647 "parser_cocci_menhir.mly"
-                                                                         ([])
-# 20734 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1469 "parser_cocci_menhir.mly"
+               ( "constant" )
+# 30086 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20742,23 +30094,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_plus_after_exp = Obj.magic _2 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_plus_after_dots = 
-# 1648 "parser_cocci_menhir.mly"
-                                                                         (_2)
-# 20762 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1470 "parser_cocci_menhir.mly"
+            ( "error" )
+# 30108 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20770,25 +30116,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_plus_after_exp = Obj.magic _2 in
-        let _1 : 'tv_expr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_plus_after_dots = 
-# 1650 "parser_cocci_menhir.mly"
-                     ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 )
-# 20792 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1471 "parser_cocci_menhir.mly"
+            ( "words" )
+# 30130 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20800,25 +30138,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_plus_after_stm = Obj.magic _2 in
-        let _1 : 'tv_fundecl = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_plus_after_dots = 
-# 1651 "parser_cocci_menhir.mly"
-                                             ( Ast0.wrap(Ast0.DECL(_1))::_2 )
-# 20822 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1472 "parser_cocci_menhir.mly"
+           ( "pure" )
+# 30152 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20830,25 +30160,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_plus_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_plus_after_dots = 
-# 1653 "parser_cocci_menhir.mly"
-                ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 )
-# 20852 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1473 "parser_cocci_menhir.mly"
+              ( "context" )
+# 30174 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20859,13 +30181,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_plus_after_exp = 
-# 1643 "parser_cocci_menhir.mly"
-                                                                         ([])
-# 20869 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1474 "parser_cocci_menhir.mly"
+                ( "generated" )
+# 30196 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20877,25 +30204,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_plus_after_dots = Obj.magic _2 in
-        let _1 : 'tv_stm_dots = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_plus_after_exp = 
-# 1644 "parser_cocci_menhir.mly"
-                                          ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 )
-# 20899 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1475 "parser_cocci_menhir.mly"
+              ( "typedef" )
+# 30218 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20906,13 +30225,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_plus_after_stm = 
-# 1656 "parser_cocci_menhir.mly"
-                                                                         ([])
-# 20916 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1476 "parser_cocci_menhir.mly"
+               ( "declarer" )
+# 30240 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20924,25 +30248,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_plus_after_dots = Obj.magic _2 in
-        let _1 : 'tv_stm_dots = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_plus_after_stm = 
-# 1657 "parser_cocci_menhir.mly"
-                                          ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 )
-# 20946 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1477 "parser_cocci_menhir.mly"
+               ( "iterator" )
+# 30262 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20954,25 +30270,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_plus_after_stm = Obj.magic _2 in
-        let _1 : 'tv_fundecl = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_plus_after_stm = 
-# 1658 "parser_cocci_menhir.mly"
-                                             ( Ast0.wrap(Ast0.DECL(_1))::_2 )
-# 20976 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1478 "parser_cocci_menhir.mly"
+           ( "name" )
+# 30284 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -20984,25 +30292,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_plus_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_plus_after_stm = 
-# 1660 "parser_cocci_menhir.mly"
-                ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 )
-# 21006 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_kwd = 
+# 1479 "parser_cocci_menhir.mly"
+               ( "position" )
+# 30306 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21014,31 +30314,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = ew;
-          MenhirLib.EngineTypes.startp = _startpos_ew_;
-          MenhirLib.EngineTypes.endp = _endpos_ew_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = b;
-            MenhirLib.EngineTypes.startp = _startpos_b_;
-            MenhirLib.EngineTypes.endp = _endpos_b_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = f;
-              MenhirLib.EngineTypes.startp = _startpos_f_;
-              MenhirLib.EngineTypes.endp = _endpos_f_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let ew : 'tv_loption_error_words_ = Obj.magic ew in
-        let b : 'tv_loption_plus_start_ = Obj.magic b in
-        let f : 'tv_loption_filespec_ = Obj.magic f in
-        let _startpos = _startpos_f_ in
-        let _endpos = _endpos_ew_ in
-        let _v : 'tv_plus_body = 
-# 600 "parser_cocci_menhir.mly"
-    ( Top_level.top_level (f@b@ew) )
-# 21042 "parser_cocci_menhir.ml"
+        let _1 : 'tv_pure_ident = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_or_meta_ident = 
+# 1486 "parser_cocci_menhir.mly"
+                                 ( (None,P.id2name _1) )
+# 30330 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21050,31 +30338,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = ew;
-          MenhirLib.EngineTypes.startp = _startpos_ew_;
-          MenhirLib.EngineTypes.endp = _endpos_ew_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = b;
-            MenhirLib.EngineTypes.startp = _startpos_b_;
-            MenhirLib.EngineTypes.endp = _endpos_b_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = f;
-              MenhirLib.EngineTypes.startp = _startpos_f_;
-              MenhirLib.EngineTypes.endp = _endpos_f_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let ew : 'tv_loption_error_words_ = Obj.magic ew in
-        let b : 'tv_top_eexpr = Obj.magic b in
-        let f : 'tv_loption_filespec_ = Obj.magic f in
-        let _startpos = _startpos_f_ in
-        let _endpos = _endpos_ew_ in
-        let _v : 'tv_plus_exp_body = 
-# 614 "parser_cocci_menhir.mly"
-    ( Top_level.top_level (f@[b]@ew) )
-# 21078 "parser_cocci_menhir.ml"
+        let _1 : 'tv_pure_ident_kwd = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_or_meta_ident = 
+# 1487 "parser_cocci_menhir.mly"
+                                 ( (None,_1) )
+# 30354 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21086,27 +30362,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_plus_exp_body = Obj.magic _1 in
+        let _1 : 'tv_meta_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 142 "parser_cocci_menhir.mly"
-      (Ast0_cocci.rule)
-# 21106 "parser_cocci_menhir.ml"
-        ) = 
-# 178 "parser_cocci_menhir.mly"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_pure_ident_or_meta_ident = 
+# 1488 "parser_cocci_menhir.mly"
                                  ( _1 )
-# 21110 "parser_cocci_menhir.ml"
+# 30378 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21118,27 +30386,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = optc;
+          MenhirLib.EngineTypes.startp = _startpos_optc_;
+          MenhirLib.EngineTypes.endp = _endpos_optc_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = p;
-            MenhirLib.EngineTypes.startp = _startpos_p_;
-            MenhirLib.EngineTypes.endp = _endpos_p_;
+            MenhirLib.EngineTypes.semv = i;
+            MenhirLib.EngineTypes.startp = _startpos_i_;
+            MenhirLib.EngineTypes.endp = _endpos_i_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let p : 'tv_plus_exp_body = Obj.magic p in
-        let _startpos = _startpos_p_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 142 "parser_cocci_menhir.mly"
-      (Ast0_cocci.rule)
-# 21138 "parser_cocci_menhir.ml"
-        ) = 
-# 178 "parser_cocci_menhir.mly"
-                                                                    ( p )
-# 21142 "parser_cocci_menhir.ml"
+        let optc : 'tv_option_not_ceq_or_sub_ = Obj.magic optc in
+        let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in
+        let _startpos = _startpos_i_ in
+        let _endpos = _endpos_optc_ in
+        let _v : 'tv_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub_ = 
+# 1514 "parser_cocci_menhir.mly"
+    (
+      match optc with
+         None   -> (i, Ast0.NoConstraint)
+       | Some c -> (i, c)
+    )
+# 30412 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21150,27 +30420,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = optc;
+          MenhirLib.EngineTypes.startp = _startpos_optc_;
+          MenhirLib.EngineTypes.endp = _endpos_optc_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = p;
-            MenhirLib.EngineTypes.startp = _startpos_p_;
-            MenhirLib.EngineTypes.endp = _endpos_p_;
+            MenhirLib.EngineTypes.semv = i;
+            MenhirLib.EngineTypes.startp = _startpos_i_;
+            MenhirLib.EngineTypes.endp = _endpos_i_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let p : 'tv_plus_exp_body = Obj.magic p in
-        let _startpos = _startpos_p_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 142 "parser_cocci_menhir.mly"
-      (Ast0_cocci.rule)
-# 21170 "parser_cocci_menhir.ml"
-        ) = 
-# 179 "parser_cocci_menhir.mly"
-                        ( p )
-# 21174 "parser_cocci_menhir.ml"
+        let optc : 'tv_option_re_or_not_eqe_or_sub_ = Obj.magic optc in
+        let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in
+        let _startpos = _startpos_i_ in
+        let _endpos = _endpos_optc_ in
+        let _v : 'tv_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub_ = 
+# 1514 "parser_cocci_menhir.mly"
+    (
+      match optc with
+         None   -> (i, Ast0.NoConstraint)
+       | Some c -> (i, c)
+    )
+# 30446 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21182,27 +30454,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = c;
+          MenhirLib.EngineTypes.startp = _startpos_c_;
+          MenhirLib.EngineTypes.endp = _endpos_c_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.semv = i;
+            MenhirLib.EngineTypes.startp = _startpos_i_;
+            MenhirLib.EngineTypes.endp = _endpos_i_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _1 : 'tv_plus_body = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 139 "parser_cocci_menhir.mly"
-      (Ast0_cocci.rule)
-# 21202 "parser_cocci_menhir.ml"
-        ) = 
-# 174 "parser_cocci_menhir.mly"
-                         ( _1 )
-# 21206 "parser_cocci_menhir.ml"
+        let c : 'tv_option_re_or_not_eqid_ = Obj.magic c in
+        let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in
+        let _startpos = _startpos_i_ in
+        let _endpos = _endpos_c_ in
+        let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid_ = 
+# 1532 "parser_cocci_menhir.mly"
+    (
+      match c with
+         None -> (i, Ast.IdNoConstraint)
+       | Some constraint_ -> (i,constraint_)
+    )
+# 30480 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21214,27 +30488,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = c;
+          MenhirLib.EngineTypes.startp = _startpos_c_;
+          MenhirLib.EngineTypes.endp = _endpos_c_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = p;
-            MenhirLib.EngineTypes.startp = _startpos_p_;
-            MenhirLib.EngineTypes.endp = _endpos_p_;
+            MenhirLib.EngineTypes.semv = i;
+            MenhirLib.EngineTypes.startp = _startpos_i_;
+            MenhirLib.EngineTypes.endp = _endpos_i_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let p : 'tv_plus_body = Obj.magic p in
-        let _startpos = _startpos_p_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 139 "parser_cocci_menhir.mly"
-      (Ast0_cocci.rule)
-# 21234 "parser_cocci_menhir.ml"
-        ) = 
-# 174 "parser_cocci_menhir.mly"
-                                                        ( p )
-# 21238 "parser_cocci_menhir.ml"
+        let c : 'tv_option_re_or_not_eqid_ = Obj.magic c in
+        let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in
+        let _startpos = _startpos_i_ in
+        let _endpos = _endpos_c_ in
+        let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid_ = 
+# 1522 "parser_cocci_menhir.mly"
+    (
+      Common.Left
+        (match c with
+         None -> (i, Ast.IdNoConstraint)
+       | Some constraint_ -> (i,constraint_))
+    )
+# 30515 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21246,27 +30523,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = p;
-            MenhirLib.EngineTypes.startp = _startpos_p_;
-            MenhirLib.EngineTypes.endp = _endpos_p_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let p : 'tv_plus_body = Obj.magic p in
-        let _startpos = _startpos_p_ in
-        let _endpos = _endpos__2_ in
-        let _v : (
-# 139 "parser_cocci_menhir.mly"
-      (Ast0_cocci.rule)
-# 21266 "parser_cocci_menhir.ml"
-        ) = 
-# 175 "parser_cocci_menhir.mly"
-                    ( p )
-# 21270 "parser_cocci_menhir.ml"
+        let _3 : 'tv_pure_ident = Obj.magic _3 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid_ = 
+# 1528 "parser_cocci_menhir.mly"
+                           ( Common.Right (P.id2name _3) )
+# 30547 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21284,13 +30561,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_ctype = Obj.magic _1 in
+        let _1 : 'tv_pure_ident_or_meta_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_plus_start = 
-# 1632 "parser_cocci_menhir.mly"
-                          ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] )
-# 21294 "parser_cocci_menhir.ml"
+        let _v : 'tv_pure_ident_or_meta_ident_with_seed = 
+# 1491 "parser_cocci_menhir.mly"
+                                ( (_1,Ast.NoVal) )
+# 30571 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21302,19 +30579,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_top_init = Obj.magic _1 in
+        let _3 : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = Obj.magic _3 in
+        let _1 : 'tv_pure_ident_or_meta_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_plus_start = 
-# 1633 "parser_cocci_menhir.mly"
-                     ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] )
-# 21318 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_pure_ident_or_meta_ident_with_seed = 
+# 1494 "parser_cocci_menhir.mly"
+  ( match _3 with
+          [Ast.SeedString s] -> (_1,Ast.StringSeed s)
+        | _ -> (_1,Ast.ListSeed _3) )
+# 30607 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21326,25 +30615,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = l;
+          MenhirLib.EngineTypes.startp = _startpos_l_;
+          MenhirLib.EngineTypes.endp = _endpos_l_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.semv = i;
+            MenhirLib.EngineTypes.startp = _startpos_i_;
+            MenhirLib.EngineTypes.endp = _endpos_i_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : 'tv_plus_after_dots = Obj.magic _2 in
-        let _1 : 'tv_stm_dots = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_plus_start = 
-# 1635 "parser_cocci_menhir.mly"
-                                          ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 )
-# 21348 "parser_cocci_menhir.ml"
+        let l : 'tv_loption_not_pos_ = Obj.magic l in
+        let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in
+        let _startpos = _startpos_i_ in
+        let _endpos = _endpos_l_ in
+        let _v : 'tv_pure_ident_or_meta_ident_with_x_eq_not_pos_ = 
+# 1508 "parser_cocci_menhir.mly"
+    (
+      (i, l)
+    )
+# 30639 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21356,25 +30647,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = re;
+          MenhirLib.EngineTypes.startp = _startpos_re_;
+          MenhirLib.EngineTypes.endp = _endpos_re_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_plus_after_exp = Obj.magic _2 in
-        let _1 : 'tv_expr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_plus_start = 
-# 1637 "parser_cocci_menhir.mly"
-                     ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 )
-# 21378 "parser_cocci_menhir.ml"
+        let re : 'tv_regexp_eqid = Obj.magic re in
+        let _startpos = _startpos_re_ in
+        let _endpos = _endpos_re_ in
+        let _v : 'tv_re_or_not_eqe_or_sub = 
+# 1593 "parser_cocci_menhir.mly"
+                  (Ast0.NotIdCstrt  re)
+# 30663 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21386,25 +30671,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = ne;
+          MenhirLib.EngineTypes.startp = _startpos_ne_;
+          MenhirLib.EngineTypes.endp = _endpos_ne_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_plus_after_stm = Obj.magic _2 in
-        let _1 : 'tv_fundecl = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_plus_start = 
-# 1638 "parser_cocci_menhir.mly"
-                                             ( Ast0.wrap(Ast0.DECL(_1))::_2 )
-# 21408 "parser_cocci_menhir.ml"
+        let ne : 'tv_not_eqe = Obj.magic ne in
+        let _startpos = _startpos_ne_ in
+        let _endpos = _endpos_ne_ in
+        let _v : 'tv_re_or_not_eqe_or_sub = 
+# 1594 "parser_cocci_menhir.mly"
+                  (Ast0.NotExpCstrt ne)
+# 30687 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21416,25 +30695,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = s;
+          MenhirLib.EngineTypes.startp = _startpos_s_;
+          MenhirLib.EngineTypes.endp = _endpos_s_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : 'tv_plus_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_plus_start = 
-# 1640 "parser_cocci_menhir.mly"
-                ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 )
-# 21438 "parser_cocci_menhir.ml"
+        let s : 'tv_sub = Obj.magic s in
+        let _startpos = _startpos_s_ in
+        let _endpos = _endpos_s_ in
+        let _v : 'tv_re_or_not_eqe_or_sub = 
+# 1595 "parser_cocci_menhir.mly"
+                  (Ast0.SubExpCstrt s)
+# 30711 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21447,22 +30720,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = re;
+          MenhirLib.EngineTypes.startp = _startpos_re_;
+          MenhirLib.EngineTypes.endp = _endpos_re_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 47 "parser_cocci_menhir.mly"
-      (string)
-# 21459 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_pnrule = 
-# 225 "parser_cocci_menhir.mly"
-                   ( Ast.Dep      _1 )
-# 21466 "parser_cocci_menhir.ml"
+        let re : 'tv_regexp_eqid = Obj.magic re in
+        let _startpos = _startpos_re_ in
+        let _endpos = _endpos_re_ in
+        let _v : 'tv_re_or_not_eqid = 
+# 1539 "parser_cocci_menhir.mly"
+                  (Ast.IdRegExpConstraint re)
+# 30735 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21474,27 +30743,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = ne;
+          MenhirLib.EngineTypes.startp = _startpos_ne_;
+          MenhirLib.EngineTypes.endp = _endpos_ne_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : (
-# 47 "parser_cocci_menhir.mly"
-      (string)
-# 21491 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_pnrule = 
-# 226 "parser_cocci_menhir.mly"
-                   ( Ast.AntiDep  _2 )
-# 21498 "parser_cocci_menhir.ml"
+        let ne : 'tv_not_eqid = Obj.magic ne in
+        let _startpos = _startpos_ne_ in
+        let _endpos = _endpos_ne_ in
+        let _v : 'tv_re_or_not_eqid = 
+# 1540 "parser_cocci_menhir.mly"
+                  (ne)
+# 30759 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21506,9 +30767,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = re;
+          MenhirLib.EngineTypes.startp = _startpos_re_;
+          MenhirLib.EngineTypes.endp = _endpos_re_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
             MenhirLib.EngineTypes.startp = _startpos__1_;
@@ -21516,17 +30777,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : (
-# 47 "parser_cocci_menhir.mly"
-      (string)
-# 21523 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
+        let re : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 30784 "parser_cocci_menhir.ml"
+        ) = Obj.magic re in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_pnrule = 
-# 227 "parser_cocci_menhir.mly"
-                   ( Ast.EverDep  _2 )
-# 21530 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_re_ in
+        let _v : 'tv_regexp_eqid = 
+# 1544 "parser_cocci_menhir.mly"
+         ( (if !Data.in_iso
+           then failwith "constraints not allowed in iso file");
+          (if !Data.in_generating
+           then failwith "constraints not allowed in a generated rule file");
+          let (s,_) = re in Ast.IdRegExp (s,Str.regexp s)
+        )
+# 30796 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21538,9 +30804,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = re;
+          MenhirLib.EngineTypes.startp = _startpos_re_;
+          MenhirLib.EngineTypes.endp = _endpos_re_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
             MenhirLib.EngineTypes.startp = _startpos__1_;
@@ -21548,17 +30814,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : (
-# 47 "parser_cocci_menhir.mly"
-      (string)
-# 21555 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
+        let re : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 30821 "parser_cocci_menhir.ml"
+        ) = Obj.magic re in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_pnrule = 
-# 228 "parser_cocci_menhir.mly"
-                   ( Ast.NeverDep _2 )
-# 21562 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_re_ in
+        let _v : 'tv_regexp_eqid = 
+# 1551 "parser_cocci_menhir.mly"
+         ( (if !Data.in_iso
+           then failwith "constraints not allowed in iso file");
+          (if !Data.in_generating
+           then failwith "constraints not allowed in a generated rule file");
+          let (s,_) = re in Ast.IdNotRegExp (s,Str.regexp s)
+        )
+# 30833 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21569,28 +30840,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
-          } = _menhir_stack in
-        let _2 : 'tv_dep = Obj.magic _2 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_pnrule = 
-# 229 "parser_cocci_menhir.mly"
-                   ( _2 )
-# 21594 "parser_cocci_menhir.ml"
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : (
+# 136 "parser_cocci_menhir.mly"
+      (unit)
+# 30850 "parser_cocci_menhir.ml"
+        ) = 
+# 177 "parser_cocci_menhir.mly"
+        ( )
+# 30854 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21608,13 +30868,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_primary_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _1 : 'tv_one_decl_var = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1301 "parser_cocci_menhir.mly"
-                                                 ( _1 )
-# 21618 "parser_cocci_menhir.ml"
+        let _v : 'tv_rule_elem_statement = 
+# 983 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),_1)) )
+# 30878 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21626,46 +30886,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _4;
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _3;
-            MenhirLib.EngineTypes.startp = _startpos__3_;
-            MenhirLib.EngineTypes.endp = _endpos__3_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _2;
-              MenhirLib.EngineTypes.startp = _startpos__2_;
-              MenhirLib.EngineTypes.endp = _endpos__2_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = _1;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _4 : (
-# 101 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 21654 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr = Obj.magic _3 in
         let _2 : (
-# 101 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 21660 "parser_cocci_menhir.ml"
+# 30904 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _1 : 'tv_expr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1303 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
-                                      P.clt2mcode "]" _4)) )
-# 21669 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_rule_elem_statement = 
+# 984 "parser_cocci_menhir.mly"
+               ( P.exp_stm _1 _2 )
+# 30912 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21693,60 +30936,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               };
             };
           } = _menhir_stack in
-        let _3 : 'tv_ident = Obj.magic _3 in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
+        let _3 : (
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 21701 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1306 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
-# 21709 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
-          } = _menhir_stack in
-        let _3 : 'tv_ident = Obj.magic _3 in
-        let _2 : (
-# 103 "parser_cocci_menhir.mly"
+# 30943 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_eexpr = Obj.magic _2 in
+        let _1 : (
+# 59 "parser_cocci_menhir.mly"
        (Data.clt)
-# 21741 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+# 30949 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
-        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1308 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
-                                    _3)) )
-# 21750 "parser_cocci_menhir.ml"
+        let _v : 'tv_rule_elem_statement = 
+# 985 "parser_cocci_menhir.mly"
+                        ( P.ret_exp _1 _2 _3 )
+# 30956 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21770,17 +30976,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 84 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 21776 "parser_cocci_menhir.ml"
+# 30982 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _1 : (
+# 59 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 30987 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
-        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1311 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
-# 21784 "parser_cocci_menhir.ml"
+        let _v : 'tv_rule_elem_statement = 
+# 986 "parser_cocci_menhir.mly"
+                  ( P.ret _1 _2 )
+# 30994 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21804,17 +31014,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _2 : (
-# 84 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 21810 "parser_cocci_menhir.ml"
+# 31020 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
+        let _1 : (
+# 60 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 31025 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
-        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1313 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
-# 21818 "parser_cocci_menhir.ml"
+        let _v : 'tv_rule_elem_statement = 
+# 987 "parser_cocci_menhir.mly"
+                 ( P.break _1 _2 )
+# 31032 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21826,122 +31040,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _4;
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _3;
-            MenhirLib.EngineTypes.startp = _startpos__3_;
-            MenhirLib.EngineTypes.endp = _endpos__3_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _2;
-              MenhirLib.EngineTypes.startp = _startpos__2_;
-              MenhirLib.EngineTypes.endp = _endpos__2_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = _1;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _4 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 21854 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
         let _2 : (
-# 75 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 21860 "parser_cocci_menhir.ml"
+# 31058 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = 
-# 1315 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
-                             _3,
-                             P.clt2mcode ")" _4)) )
-# 21870 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_primary_expr_eexpr_invalid_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1301 "parser_cocci_menhir.mly"
-                                                 ( _1 )
-# 21894 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _4;
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _3;
-            MenhirLib.EngineTypes.startp = _startpos__3_;
-            MenhirLib.EngineTypes.endp = _endpos__3_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _2;
-              MenhirLib.EngineTypes.startp = _startpos__2_;
-              MenhirLib.EngineTypes.endp = _endpos__2_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = _1;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
-              };
-            };
-          } = _menhir_stack in
-        let _4 : (
-# 101 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 21930 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr = Obj.magic _3 in
-        let _2 : (
-# 101 "parser_cocci_menhir.mly"
+        let _1 : (
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 21936 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
+# 31063 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1303 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
-                                      P.clt2mcode "]" _4)) )
-# 21945 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_rule_elem_statement = 
+# 988 "parser_cocci_menhir.mly"
+                    ( P.cont _1 _2 )
+# 31070 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21969,19 +31094,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               };
             };
           } = _menhir_stack in
-        let _3 : 'tv_ident = Obj.magic _3 in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 21977 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
+# 31101 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = Obj.magic _2 in
+        let _1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 31107 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
-        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1306 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
-# 21985 "parser_cocci_menhir.ml"
+        let _v : 'tv_rule_elem_statement = 
+# 990 "parser_cocci_menhir.mly"
+    ( let (mids,code) = _2 in
+    Ast0.wrap
+      (Ast0.Disj(P.clt2mcode "(" _1,
+                List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code,
+                mids, P.clt2mcode ")" _3)) )
+# 31118 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -21993,36 +31126,62 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.startp = _startpos__7_;
+          MenhirLib.EngineTypes.endp = _endpos__7_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = ee;
+            MenhirLib.EngineTypes.startp = _startpos_ee_;
+            MenhirLib.EngineTypes.endp = _endpos_ee_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = e;
+              MenhirLib.EngineTypes.startp = _startpos_e_;
+              MenhirLib.EngineTypes.endp = _endpos_e_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = a;
+                MenhirLib.EngineTypes.startp = _startpos_a_;
+                MenhirLib.EngineTypes.endp = _endpos_a_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = i;
+                  MenhirLib.EngineTypes.startp = _startpos_i_;
+                  MenhirLib.EngineTypes.endp = _endpos_i_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = d;
+                    MenhirLib.EngineTypes.startp = _startpos_d_;
+                    MenhirLib.EngineTypes.endp = _endpos_d_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.startp = _startpos__1_;
+                      MenhirLib.EngineTypes.endp = _endpos__1_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
               };
             };
           } = _menhir_stack in
-        let _3 : 'tv_ident = Obj.magic _3 in
-        let _2 : (
-# 103 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22017 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
+        let ee : 'tv_is_expression = Obj.magic ee in
+        let e : 'tv_exists = Obj.magic e in
+        let a : 'tv_loption_disable_ = Obj.magic a in
+        let i : 'tv_loption_choose_iso_ = Obj.magic i in
+        let d : 'tv_depends = Obj.magic d in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1308 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
-                                    _3)) )
-# 22026 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__7_ in
+        let _v : (
+# 158 "parser_cocci_menhir.mly"
+      (Ast_cocci.rulename)
+# 31174 "parser_cocci_menhir.ml"
+        ) = let nm =
+          
+# 39 "standard.mly"
+    ( None )
+# 31179 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 207 "parser_cocci_menhir.mly"
+      ( P.make_cocci_rule_name_result nm d i a e ee )
+# 31185 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22034,29 +31193,69 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.startp = _startpos__8_;
+          MenhirLib.EngineTypes.endp = _endpos__8_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ee;
+            MenhirLib.EngineTypes.startp = _startpos_ee_;
+            MenhirLib.EngineTypes.endp = _endpos_ee_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = e;
+              MenhirLib.EngineTypes.startp = _startpos_e_;
+              MenhirLib.EngineTypes.endp = _endpos_e_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = a;
+                MenhirLib.EngineTypes.startp = _startpos_a_;
+                MenhirLib.EngineTypes.endp = _endpos_a_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = i;
+                  MenhirLib.EngineTypes.startp = _startpos_i_;
+                  MenhirLib.EngineTypes.endp = _endpos_i_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = d;
+                    MenhirLib.EngineTypes.startp = _startpos_d_;
+                    MenhirLib.EngineTypes.endp = _endpos_d_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.startp = _startpos__2_;
+                      MenhirLib.EngineTypes.endp = _endpos__2_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.state = _menhir_s;
+                        MenhirLib.EngineTypes.semv = x0;
+                        MenhirLib.EngineTypes.startp = _startpos_x0_;
+                        MenhirLib.EngineTypes.endp = _endpos_x0_;
+                        MenhirLib.EngineTypes.next = _menhir_stack;
+                        };
+                      };
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : (
-# 84 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22052 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1311 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
-# 22060 "parser_cocci_menhir.ml"
+        let ee : 'tv_is_expression = Obj.magic ee in
+        let e : 'tv_exists = Obj.magic e in
+        let a : 'tv_loption_disable_ = Obj.magic a in
+        let i : 'tv_loption_choose_iso_ = Obj.magic i in
+        let d : 'tv_depends = Obj.magic d in
+        let x0 : 'tv_pure_ident = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos__8_ in
+        let _v : (
+# 158 "parser_cocci_menhir.mly"
+      (Ast_cocci.rulename)
+# 31247 "parser_cocci_menhir.ml"
+        ) = let nm =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 31253 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 207 "parser_cocci_menhir.mly"
+      ( P.make_cocci_rule_name_result nm d i a e ee )
+# 31259 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22068,29 +31267,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.startp = _startpos__8_;
+          MenhirLib.EngineTypes.endp = _endpos__8_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ee;
+            MenhirLib.EngineTypes.startp = _startpos_ee_;
+            MenhirLib.EngineTypes.endp = _endpos_ee_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = e;
+              MenhirLib.EngineTypes.startp = _startpos_e_;
+              MenhirLib.EngineTypes.endp = _endpos_e_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = a;
+                MenhirLib.EngineTypes.startp = _startpos_a_;
+                MenhirLib.EngineTypes.endp = _endpos_a_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = i;
+                  MenhirLib.EngineTypes.startp = _startpos_i_;
+                  MenhirLib.EngineTypes.endp = _endpos_i_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = d;
+                    MenhirLib.EngineTypes.startp = _startpos_d_;
+                    MenhirLib.EngineTypes.endp = _endpos_d_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.startp = _startpos__2_;
+                      MenhirLib.EngineTypes.endp = _endpos__2_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.state = _menhir_s;
+                        MenhirLib.EngineTypes.startp = _startpos__1_;
+                        MenhirLib.EngineTypes.endp = _endpos__1_;
+                        MenhirLib.EngineTypes.next = _menhir_stack;
+                        };
+                      };
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : (
-# 84 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22086 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
+        let ee : 'tv_is_expression = Obj.magic ee in
+        let e : 'tv_exists = Obj.magic e in
+        let a : 'tv_loption_disable_ = Obj.magic a in
+        let i : 'tv_loption_choose_iso_ = Obj.magic i in
+        let d : 'tv_depends = Obj.magic d in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1313 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
-# 22094 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__8_ in
+        let _v : (
+# 158 "parser_cocci_menhir.mly"
+      (Ast_cocci.rulename)
+# 31319 "parser_cocci_menhir.ml"
+        ) = 
+# 212 "parser_cocci_menhir.mly"
+      ( P.make_generated_rule_name_result None d i a e ee )
+# 31323 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22102,47 +31331,48 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _4;
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _3;
-            MenhirLib.EngineTypes.startp = _startpos__3_;
-            MenhirLib.EngineTypes.endp = _endpos__3_;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _2;
-              MenhirLib.EngineTypes.startp = _startpos__2_;
-              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.semv = lang;
+              MenhirLib.EngineTypes.startp = _startpos_lang_;
+              MenhirLib.EngineTypes.endp = _endpos_lang_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = _1;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.startp = _startpos__1_;
+                  MenhirLib.EngineTypes.endp = _endpos__1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
                 };
               };
             };
           } = _menhir_stack in
-        let _4 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22130 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22136 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in
+        let d : 'tv_depends = Obj.magic d in
+        let lang : 'tv_pure_ident = Obj.magic lang in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_postfix_expr_eexpr_invalid_ = 
-# 1315 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
-                             _3,
-                             P.clt2mcode ")" _4)) )
-# 22146 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__5_ in
+        let _v : (
+# 158 "parser_cocci_menhir.mly"
+      (Ast_cocci.rulename)
+# 31365 "parser_cocci_menhir.ml"
+        ) = let nm =
+          
+# 39 "standard.mly"
+    ( None )
+# 31370 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 214 "parser_cocci_menhir.mly"
+      ( P.make_script_rule_name_result lang nm d )
+# 31376 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22154,19 +31384,55 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.startp = _startpos__6_;
+          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = lang;
+                MenhirLib.EngineTypes.startp = _startpos_lang_;
+                MenhirLib.EngineTypes.endp = _endpos_lang_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.startp = _startpos__2_;
+                  MenhirLib.EngineTypes.endp = _endpos__2_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.startp = _startpos__1_;
+                    MenhirLib.EngineTypes.endp = _endpos__1_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_primary_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let d : 'tv_depends = Obj.magic d in
+        let x0 : 'tv_pure_ident = Obj.magic x0 in
+        let lang : 'tv_pure_ident = Obj.magic lang in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1301 "parser_cocci_menhir.mly"
-                                                 ( _1 )
-# 22170 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__6_ in
+        let _v : (
+# 158 "parser_cocci_menhir.mly"
+      (Ast_cocci.rulename)
+# 31424 "parser_cocci_menhir.ml"
+        ) = let nm =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 31430 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 214 "parser_cocci_menhir.mly"
+      ( P.make_script_rule_name_result lang nm d )
+# 31436 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22178,46 +31444,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _4;
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _3;
-            MenhirLib.EngineTypes.startp = _startpos__3_;
-            MenhirLib.EngineTypes.endp = _endpos__3_;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _2;
-              MenhirLib.EngineTypes.startp = _startpos__2_;
-              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.semv = lang;
+              MenhirLib.EngineTypes.startp = _startpos_lang_;
+              MenhirLib.EngineTypes.endp = _endpos_lang_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = _1;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.startp = _startpos__1_;
+                  MenhirLib.EngineTypes.endp = _endpos__1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
                 };
               };
             };
           } = _menhir_stack in
-        let _4 : (
-# 101 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22206 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr = Obj.magic _3 in
-        let _2 : (
-# 101 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22212 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let d : 'tv_depends = Obj.magic d in
+        let lang : 'tv_pure_ident = Obj.magic lang in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1303 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
-                                      P.clt2mcode "]" _4)) )
-# 22221 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__5_ in
+        let _v : (
+# 158 "parser_cocci_menhir.mly"
+      (Ast_cocci.rulename)
+# 31478 "parser_cocci_menhir.ml"
+        ) = 
+# 216 "parser_cocci_menhir.mly"
+      ( P.make_initial_script_rule_name_result lang d )
+# 31482 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22229,35 +31490,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = lang;
+              MenhirLib.EngineTypes.startp = _startpos_lang_;
+              MenhirLib.EngineTypes.endp = _endpos_lang_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.startp = _startpos__1_;
+                  MenhirLib.EngineTypes.endp = _endpos__1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
               };
             };
           } = _menhir_stack in
-        let _3 : 'tv_ident = Obj.magic _3 in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22253 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let d : 'tv_depends = Obj.magic d in
+        let lang : 'tv_pure_ident = Obj.magic lang in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1306 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
-# 22261 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__5_ in
+        let _v : (
+# 158 "parser_cocci_menhir.mly"
+      (Ast_cocci.rulename)
+# 31524 "parser_cocci_menhir.ml"
+        ) = 
+# 218 "parser_cocci_menhir.mly"
+      ( P.make_final_script_rule_name_result lang d )
+# 31528 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22269,36 +31536,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = py;
+            MenhirLib.EngineTypes.startp = _startpos_py_;
+            MenhirLib.EngineTypes.endp = _endpos_py_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _3 : 'tv_ident = Obj.magic _3 in
-        let _2 : (
-# 103 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22293 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1308 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
-                                    _3)) )
-# 22302 "parser_cocci_menhir.ml"
+        let py : 'tv_pure_ident = Obj.magic py in
+        let _startpos = _startpos_py_ in
+        let _endpos = _endpos__2_ in
+        let _v : (
+# 164 "parser_cocci_menhir.mly"
+       ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
+# 31556 "parser_cocci_menhir.ml"
+        ) = 
+# 2085 "parser_cocci_menhir.mly"
+  ( ((Some (P.id2name py), None), None) )
+# 31560 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22310,29 +31568,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = py;
+              MenhirLib.EngineTypes.startp = _startpos_py_;
+              MenhirLib.EngineTypes.endp = _endpos_py_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : (
-# 84 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22328 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1311 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
-# 22336 "parser_cocci_menhir.ml"
+        let _2 : 'tv_script_name_decl = Obj.magic _2 in
+        let py : 'tv_pure_ident = Obj.magic py in
+        let _startpos = _startpos_py_ in
+        let _endpos = _endpos__3_ in
+        let _v : (
+# 164 "parser_cocci_menhir.mly"
+       ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
+# 31594 "parser_cocci_menhir.ml"
+        ) = 
+# 2087 "parser_cocci_menhir.mly"
+  ( ((Some (P.id2name py), None), Some _2) )
+# 31598 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22344,29 +31606,49 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.startp = _startpos__7_;
+          MenhirLib.EngineTypes.endp = _endpos__7_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = _6;
+            MenhirLib.EngineTypes.startp = _startpos__6_;
+            MenhirLib.EngineTypes.endp = _endpos__6_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__5_;
+              MenhirLib.EngineTypes.endp = _endpos__5_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ast;
+                MenhirLib.EngineTypes.startp = _startpos_ast_;
+                MenhirLib.EngineTypes.endp = _endpos_ast_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.startp = _startpos__3_;
+                  MenhirLib.EngineTypes.endp = _endpos__3_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.startp = _startpos__2_;
+                    MenhirLib.EngineTypes.endp = _endpos__2_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.startp = _startpos__1_;
+                      MenhirLib.EngineTypes.endp = _endpos__1_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : (
-# 84 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22362 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _6 : 'tv_script_name_decl = Obj.magic _6 in
+        let ast : 'tv_pure_ident = Obj.magic ast in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1313 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
-# 22370 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__7_ in
+        let _v : (
+# 164 "parser_cocci_menhir.mly"
+       ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
+# 31648 "parser_cocci_menhir.ml"
+        ) = 
+# 2089 "parser_cocci_menhir.mly"
+  ( ((None, Some (P.id2name ast)), Some _6) )
+# 31652 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22378,47 +31660,49 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _4;
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.startp = _startpos__7_;
+          MenhirLib.EngineTypes.endp = _endpos__7_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _3;
-            MenhirLib.EngineTypes.startp = _startpos__3_;
-            MenhirLib.EngineTypes.endp = _endpos__3_;
+            MenhirLib.EngineTypes.semv = _6;
+            MenhirLib.EngineTypes.startp = _startpos__6_;
+            MenhirLib.EngineTypes.endp = _endpos__6_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _2;
-              MenhirLib.EngineTypes.startp = _startpos__2_;
-              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.startp = _startpos__5_;
+              MenhirLib.EngineTypes.endp = _endpos__5_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = _1;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
+                MenhirLib.EngineTypes.startp = _startpos__4_;
+                MenhirLib.EngineTypes.endp = _endpos__4_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.startp = _startpos__3_;
+                  MenhirLib.EngineTypes.endp = _endpos__3_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = str;
+                    MenhirLib.EngineTypes.startp = _startpos_str_;
+                    MenhirLib.EngineTypes.endp = _endpos_str_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.startp = _startpos__1_;
+                      MenhirLib.EngineTypes.endp = _endpos__1_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
                 };
               };
             };
           } = _menhir_stack in
-        let _4 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22406 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22412 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in
+        let _6 : 'tv_script_name_decl = Obj.magic _6 in
+        let str : 'tv_pure_ident = Obj.magic str in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = 
-# 1315 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
-                             _3,
-                             P.clt2mcode ")" _4)) )
-# 22422 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__7_ in
+        let _v : (
+# 164 "parser_cocci_menhir.mly"
+       ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
+# 31702 "parser_cocci_menhir.ml"
+        ) = 
+# 2091 "parser_cocci_menhir.mly"
+  ( ((Some (P.id2name str), None), Some _6) )
+# 31706 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22430,19 +31714,51 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.startp = _startpos__7_;
+          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _6;
+            MenhirLib.EngineTypes.startp = _startpos__6_;
+            MenhirLib.EngineTypes.endp = _endpos__6_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__5_;
+              MenhirLib.EngineTypes.endp = _endpos__5_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = ast;
+                MenhirLib.EngineTypes.startp = _startpos_ast_;
+                MenhirLib.EngineTypes.endp = _endpos_ast_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.startp = _startpos__3_;
+                  MenhirLib.EngineTypes.endp = _endpos__3_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = str;
+                    MenhirLib.EngineTypes.startp = _startpos_str_;
+                    MenhirLib.EngineTypes.endp = _endpos_str_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.startp = _startpos__1_;
+                      MenhirLib.EngineTypes.endp = _endpos__1_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_primary_expr_expr_invalid_ = Obj.magic _1 in
+        let _6 : 'tv_script_name_decl = Obj.magic _6 in
+        let ast : 'tv_pure_ident = Obj.magic ast in
+        let str : 'tv_pure_ident = Obj.magic str in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1301 "parser_cocci_menhir.mly"
-                                                 ( _1 )
-# 22446 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__7_ in
+        let _v : (
+# 164 "parser_cocci_menhir.mly"
+       ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
+# 31758 "parser_cocci_menhir.ml"
+        ) = 
+# 2093 "parser_cocci_menhir.mly"
+  ( ((Some (P.id2name str), Some (P.id2name ast)), Some _6) )
+# 31762 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22454,11 +31770,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _4;
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
+          MenhirLib.EngineTypes.semv = cocci;
+          MenhirLib.EngineTypes.startp = _startpos_cocci_;
+          MenhirLib.EngineTypes.endp = _endpos_cocci_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _3;
             MenhirLib.EngineTypes.startp = _startpos__3_;
             MenhirLib.EngineTypes.endp = _endpos__3_;
             MenhirLib.EngineTypes.next = {
@@ -22467,7 +31782,6 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               MenhirLib.EngineTypes.endp = _endpos__2_;
               MenhirLib.EngineTypes.next = {
                 MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = _1;
                 MenhirLib.EngineTypes.startp = _startpos__1_;
                 MenhirLib.EngineTypes.endp = _endpos__1_;
                 MenhirLib.EngineTypes.next = _menhir_stack;
@@ -22475,25 +31789,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               };
             };
           } = _menhir_stack in
-        let _4 : (
-# 101 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22482 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr = Obj.magic _3 in
+        let cocci : 'tv_pure_ident = Obj.magic cocci in
         let _2 : (
-# 101 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22488 "parser_cocci_menhir.ml"
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 31797 "parser_cocci_menhir.ml"
         ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1303 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3,
-                                      P.clt2mcode "]" _4)) )
-# 22497 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_cocci_ in
+        let _v : 'tv_script_name_decl = 
+# 2097 "parser_cocci_menhir.mly"
+      ( let nm = P.id2name cocci in
+        let mv = Parse_aux.lookup _2 nm in
+        ((_2, nm), mv) )
+# 31806 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22505,35 +31814,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = cocci;
+          MenhirLib.EngineTypes.startp = _startpos_cocci_;
+          MenhirLib.EngineTypes.endp = _endpos_cocci_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.startp = _startpos__3_;
+            MenhirLib.EngineTypes.endp = _endpos__3_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
               };
             };
           } = _menhir_stack in
-        let _3 : 'tv_ident = Obj.magic _3 in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22529 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
+        let cocci : 'tv_pure_ident = Obj.magic cocci in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1306 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) )
-# 22537 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_cocci_ in
+        let _v : 'tv_script_name_decl = 
+# 2101 "parser_cocci_menhir.mly"
+      ( let nm = P.id2name cocci in
+        let name = ("virtual", nm) in
+        let mv = Ast.MetaIdDecl(Ast.NONE,name) in
+        (name,mv) )
+# 31845 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22545,70 +31853,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
-          } = _menhir_stack in
-        let _3 : 'tv_ident = Obj.magic _3 in
-        let _2 : (
-# 103 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22569 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1308 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2,
-                                    _3)) )
-# 22578 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
           } = _menhir_stack in
-        let _2 : (
-# 84 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22604 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
+        let _1 : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 31866 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1311 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) )
-# 22612 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_seed_elem = 
+# 1499 "parser_cocci_menhir.mly"
+          ( let (x,_) = _1 in Ast.SeedString x )
+# 31873 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22620,29 +31881,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : (
-# 84 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22638 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
+        let _1 : (
+# 64 "parser_cocci_menhir.mly"
+       (Parse_aux.idinfo)
+# 31894 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1313 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) )
-# 22646 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_seed_elem = 
+# 1500 "parser_cocci_menhir.mly"
+          ( let (x,_,_,_) = _1 in Ast.SeedId x )
+# 31901 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22654,47 +31909,35 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _4;
-          MenhirLib.EngineTypes.startp = _startpos__4_;
-          MenhirLib.EngineTypes.endp = _endpos__4_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _3;
-            MenhirLib.EngineTypes.startp = _startpos__3_;
-            MenhirLib.EngineTypes.endp = _endpos__3_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _2;
-              MenhirLib.EngineTypes.startp = _startpos__2_;
-              MenhirLib.EngineTypes.endp = _endpos__2_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = _1;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
-                };
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let _4 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22682 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 22688 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in
+        let _3 : 'tv_pure_ident = Obj.magic _3 in
+        let _1 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 31932 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__4_ in
-        let _v : 'tv_postfix_expr_expr_invalid_ = 
-# 1315 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2,
-                             _3,
-                             P.clt2mcode ")" _4)) )
-# 22698 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_seed_elem = 
+# 1502 "parser_cocci_menhir.mly"
+    ( let nm = (_1,P.id2name _3) in
+      P.check_meta(Ast.MetaIdDecl(Ast.NONE,nm));
+      Ast.SeedId nm )
+# 31941 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22707,18 +31950,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_func_ident = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1320 "parser_cocci_menhir.mly"
-                ( Ast0.wrap(Ast0.Ident(_1)) )
-# 22722 "parser_cocci_menhir.ml"
+        let x : (
+# 90 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 31962 "parser_cocci_menhir.ml"
+        ) = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_TString_ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 31969 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22730,24 +31977,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
+        let xs : 'tv_separated_nonempty_list_TComma_TString_ = Obj.magic xs in
+        let x : (
+# 90 "parser_cocci_menhir.mly"
        (string * Data.clt)
-# 22743 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1322 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
-# 22751 "parser_cocci_menhir.ml"
+# 32000 "parser_cocci_menhir.ml"
+        ) = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_TString_ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32007 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22760,23 +32016,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 22772 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1325 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
-# 22780 "parser_cocci_menhir.ml"
+        let x : 'tv_any_strict = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32031 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22788,24 +32039,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 22801 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1328 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
-# 22809 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_any_strict_ = Obj.magic xs in
+        let x : 'tv_any_strict = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32065 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22818,23 +32074,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 22830 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1331 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
-# 22838 "parser_cocci_menhir.ml"
+        let x : 'tv_ctype = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_ctype_ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32089 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22846,25 +32097,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 22859 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1334 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
-# 22868 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_ctype_ = Obj.magic xs in
+        let x : 'tv_ctype = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_ctype_ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32123 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22877,23 +32132,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 63 "parser_cocci_menhir.mly"
-       (Parse_aux.expinfo)
-# 22889 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1338 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,clt) = _1 in
-     Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
-# 22897 "parser_cocci_menhir.ml"
+        let x : 'tv_d_ident = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32147 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22905,25 +32155,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 22918 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1341 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
-# 22927 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_d_ident_ = Obj.magic xs in
+        let x : 'tv_d_ident = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32181 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22936,24 +32190,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 22948 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1345 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
-# 22957 "parser_cocci_menhir.ml"
+        let x : 'tv_ident_or_const = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32205 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22965,25 +32213,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 22978 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1349 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) )
-# 22987 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_ident_or_const_ = Obj.magic xs in
+        let x : 'tv_ident_or_const = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32239 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -22995,40 +32247,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _3 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 23018 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_eexpr = Obj.magic _2 in
-        let _1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 23024 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1353 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
-                           P.clt2mcode ")" _3)) )
-# 23032 "parser_cocci_menhir.ml"
+        let x : 'tv_meta_ident = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32263 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23040,42 +32271,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
             MenhirLib.EngineTypes.startp = _startpos__2_;
             MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let _3 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 23063 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in
-        let _1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 23069 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1356 "parser_cocci_menhir.mly"
-     ( let (mids,code) = _2 in
-       Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
-                              code, mids,
-                              P.clt2mcode ")" _3)) )
-# 23079 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_meta_ident_ = Obj.magic xs in
+        let x : 'tv_meta_ident = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32297 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23088,18 +32306,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_dot_expressions = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_dot_expressions_ = 
-# 1360 "parser_cocci_menhir.mly"
-                 ( _1 )
-# 23103 "parser_cocci_menhir.ml"
+        let x : 'tv_pure_ident = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32321 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23111,19 +32329,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_func_ident = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1320 "parser_cocci_menhir.mly"
-                ( Ast0.wrap(Ast0.Ident(_1)) )
-# 23127 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_ = Obj.magic xs in
+        let x : 'tv_pure_ident = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32355 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23136,23 +32364,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 23148 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1322 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
-# 23156 "parser_cocci_menhir.ml"
+        let x : 'tv_pure_ident_or_meta_ident = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32379 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23164,24 +32387,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 23177 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1325 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
-# 23185 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = Obj.magic xs in
+        let x : 'tv_pure_ident_or_meta_ident = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32413 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23194,23 +32422,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 23206 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1328 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
-# 23214 "parser_cocci_menhir.ml"
+        let x : 'tv_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32437 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23222,24 +32445,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 23235 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1331 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
-# 23243 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = Obj.magic xs in
+        let x : 'tv_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32471 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23252,24 +32480,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 23264 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1334 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
-# 23273 "parser_cocci_menhir.ml"
+        let x : 'tv_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32495 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23281,24 +32503,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 63 "parser_cocci_menhir.mly"
-       (Parse_aux.expinfo)
-# 23294 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1338 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,clt) = _1 in
-     Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
-# 23302 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = Obj.magic xs in
+        let x : 'tv_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32529 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23311,24 +32538,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 23323 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1341 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
-# 23332 "parser_cocci_menhir.ml"
+        let x : 'tv_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32553 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23340,25 +32561,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 23353 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1345 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
-# 23362 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = Obj.magic xs in
+        let x : 'tv_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32587 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23371,24 +32596,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 23383 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1349 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) )
-# 23392 "parser_cocci_menhir.ml"
+        let x : 'tv_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32611 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23400,40 +32619,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
             MenhirLib.EngineTypes.startp = _startpos__2_;
             MenhirLib.EngineTypes.endp = _endpos__2_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let _3 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 23423 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_eexpr = Obj.magic _2 in
-        let _1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 23429 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1353 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
-                           P.clt2mcode ")" _3)) )
-# 23437 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = Obj.magic xs in
+        let x : 'tv_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32645 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23445,42 +32653,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _3 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 23468 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in
-        let _1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 23474 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1356 "parser_cocci_menhir.mly"
-     ( let (mids,code) = _2 in
-       Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
-                              code, mids,
-                              P.clt2mcode ")" _3)) )
-# 23484 "parser_cocci_menhir.ml"
+        let x : 'tv_pure_ident_or_meta_ident_with_seed = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_seed_ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32669 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23492,19 +32677,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_invalid = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_invalid_ = 
-# 1360 "parser_cocci_menhir.mly"
-                 ( _1 )
-# 23508 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_seed_ = Obj.magic xs in
+        let x : 'tv_pure_ident_or_meta_ident_with_seed = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_seed_ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32703 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23517,18 +32712,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_func_ident = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1320 "parser_cocci_menhir.mly"
-                ( Ast0.wrap(Ast0.Ident(_1)) )
-# 23532 "parser_cocci_menhir.ml"
+        let x : 'tv_pure_ident_or_meta_ident_with_x_eq_not_pos_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_x_eq_not_pos__ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32727 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23540,24 +32735,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 23553 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1322 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
-# 23561 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_x_eq_not_pos__ = Obj.magic xs in
+        let x : 'tv_pure_ident_or_meta_ident_with_x_eq_not_pos_ = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_x_eq_not_pos__ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32761 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23570,23 +32770,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 23582 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1325 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
-# 23590 "parser_cocci_menhir.ml"
+        let x : 'tv_typedef_ident = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TComma_typedef_ident_ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32785 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23598,24 +32793,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 23611 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1328 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
-# 23619 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TComma_typedef_ident_ = Obj.magic xs in
+        let x : 'tv_typedef_ident = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TComma_typedef_ident_ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32819 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23628,23 +32828,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = x;
+          MenhirLib.EngineTypes.startp = _startpos_x_;
+          MenhirLib.EngineTypes.endp = _endpos_x_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 23640 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1331 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
-# 23648 "parser_cocci_menhir.ml"
+        let x : 'tv_seed_elem = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_x_ in
+        let _v : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = 
+# 144 "standard.mly"
+    ( [ x ] )
+# 32843 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23656,25 +32851,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = xs;
+          MenhirLib.EngineTypes.startp = _startpos_xs_;
+          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x;
+              MenhirLib.EngineTypes.startp = _startpos_x_;
+              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 23669 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1334 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
-# 23678 "parser_cocci_menhir.ml"
+        let xs : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = Obj.magic xs in
+        let x : 'tv_seed_elem = Obj.magic x in
+        let _startpos = _startpos_x_ in
+        let _endpos = _endpos_xs_ in
+        let _v : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = 
+# 146 "standard.mly"
+    ( x :: xs )
+# 32877 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23692,18 +32891,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 63 "parser_cocci_menhir.mly"
-       (Parse_aux.expinfo)
-# 23699 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_statement = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1338 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,clt) = _1 in
-     Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
-# 23707 "parser_cocci_menhir.ml"
+        let _v : 'tv_single_statement = 
+# 998 "parser_cocci_menhir.mly"
+                                      ( _1 )
+# 32901 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23715,25 +32909,43 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
+        let _3 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 32932 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_midzero_list_statement_statement_ = Obj.magic _2 in
         let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 23728 "parser_cocci_menhir.ml"
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 32938 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1341 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
-# 23737 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_single_statement = 
+# 1002 "parser_cocci_menhir.mly"
+      ( let (mids,code) = _2 in
+        Ast0.wrap
+         (Ast0.Disj(P.clt2mcode "(" _1,
+                    List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code,
+                    mids, P.clt2mcode ")" _3)) )
+# 32949 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23751,19 +32963,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 23758 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_includes = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1345 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
-# 23767 "parser_cocci_menhir.ml"
+        let _v : 'tv_statement = 
+# 925 "parser_cocci_menhir.mly"
+           ( _1 )
+# 32973 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23782,18 +32988,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 23788 "parser_cocci_menhir.ml"
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 32994 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1349 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) )
-# 23797 "parser_cocci_menhir.ml"
+        let _v : 'tv_statement = 
+# 927 "parser_cocci_menhir.mly"
+    ( P.meta_stm _1 )
+# 33001 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23805,40 +33009,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
-          } = _menhir_stack in
-        let _3 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 23828 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_eexpr = Obj.magic _2 in
-        let _1 : (
-# 75 "parser_cocci_menhir.mly"
+          } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 23834 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+# 33027 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_expr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1353 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
-                           P.clt2mcode ")" _3)) )
-# 23842 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_statement = 
+# 929 "parser_cocci_menhir.mly"
+    ( P.exp_stm _1 _2 )
+# 33035 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23850,42 +33043,55 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = _5;
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = _4;
+            MenhirLib.EngineTypes.startp = _startpos__4_;
+            MenhirLib.EngineTypes.endp = _endpos__4_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = _3;
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = _2;
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = _1;
+                  MenhirLib.EngineTypes.startp = _startpos__1_;
+                  MenhirLib.EngineTypes.endp = _endpos__1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
               };
             };
           } = _menhir_stack in
-        let _3 : (
-# 76 "parser_cocci_menhir.mly"
+        let _5 : 'tv_single_statement = Obj.magic _5 in
+        let _4 : (
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 23873 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in
+# 33077 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33083 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
         let _1 : (
-# 75 "parser_cocci_menhir.mly"
+# 59 "parser_cocci_menhir.mly"
        (Data.clt)
-# 23879 "parser_cocci_menhir.ml"
+# 33088 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1356 "parser_cocci_menhir.mly"
-     ( let (mids,code) = _2 in
-       Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
-                              code, mids,
-                              P.clt2mcode ")" _3)) )
-# 23889 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_statement = 
+# 931 "parser_cocci_menhir.mly"
+    ( P.ifthen _1 _2 _3 _4 _5 )
+# 33095 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23897,19 +33103,71 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _7;
+          MenhirLib.EngineTypes.startp = _startpos__7_;
+          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _6;
+            MenhirLib.EngineTypes.startp = _startpos__6_;
+            MenhirLib.EngineTypes.endp = _endpos__6_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = _5;
+              MenhirLib.EngineTypes.startp = _startpos__5_;
+              MenhirLib.EngineTypes.endp = _endpos__5_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = _4;
+                MenhirLib.EngineTypes.startp = _startpos__4_;
+                MenhirLib.EngineTypes.endp = _endpos__4_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = _3;
+                  MenhirLib.EngineTypes.startp = _startpos__3_;
+                  MenhirLib.EngineTypes.endp = _endpos__3_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = _2;
+                    MenhirLib.EngineTypes.startp = _startpos__2_;
+                    MenhirLib.EngineTypes.endp = _endpos__2_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = _1;
+                      MenhirLib.EngineTypes.startp = _startpos__1_;
+                      MenhirLib.EngineTypes.endp = _endpos__1_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_nest_expressions = Obj.magic _1 in
+        let _7 : 'tv_single_statement = Obj.magic _7 in
+        let _6 : (
+# 59 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33147 "parser_cocci_menhir.ml"
+        ) = Obj.magic _6 in
+        let _5 : 'tv_single_statement = Obj.magic _5 in
+        let _4 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33153 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33159 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : (
+# 59 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33164 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_eexpr_nest_expressions_ = 
-# 1360 "parser_cocci_menhir.mly"
-                 ( _1 )
-# 23913 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__7_ in
+        let _v : 'tv_statement = 
+# 933 "parser_cocci_menhir.mly"
+    ( P.ifthenelse _1 _2 _3 _4 _5 _6 _7 )
+# 33171 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23921,19 +33179,87 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _9;
+          MenhirLib.EngineTypes.startp = _startpos__9_;
+          MenhirLib.EngineTypes.endp = _endpos__9_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _8;
+            MenhirLib.EngineTypes.startp = _startpos__8_;
+            MenhirLib.EngineTypes.endp = _endpos__8_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = _7;
+              MenhirLib.EngineTypes.startp = _startpos__7_;
+              MenhirLib.EngineTypes.endp = _endpos__7_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = _6;
+                MenhirLib.EngineTypes.startp = _startpos__6_;
+                MenhirLib.EngineTypes.endp = _endpos__6_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = _5;
+                  MenhirLib.EngineTypes.startp = _startpos__5_;
+                  MenhirLib.EngineTypes.endp = _endpos__5_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = _4;
+                    MenhirLib.EngineTypes.startp = _startpos__4_;
+                    MenhirLib.EngineTypes.endp = _endpos__4_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = _3;
+                      MenhirLib.EngineTypes.startp = _startpos__3_;
+                      MenhirLib.EngineTypes.endp = _endpos__3_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.semv = _2;
+                        MenhirLib.EngineTypes.startp = _startpos__2_;
+                        MenhirLib.EngineTypes.endp = _endpos__2_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.state = _menhir_s;
+                          MenhirLib.EngineTypes.semv = _1;
+                          MenhirLib.EngineTypes.startp = _startpos__1_;
+                          MenhirLib.EngineTypes.endp = _endpos__1_;
+                          MenhirLib.EngineTypes.next = _menhir_stack;
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_func_ident = Obj.magic _1 in
+        let _9 : 'tv_single_statement = Obj.magic _9 in
+        let _8 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33233 "parser_cocci_menhir.ml"
+        ) = Obj.magic _8 in
+        let _7 : 'tv_option_eexpr_ = Obj.magic _7 in
+        let _6 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33239 "parser_cocci_menhir.ml"
+        ) = Obj.magic _6 in
+        let _5 : 'tv_option_eexpr_ = Obj.magic _5 in
+        let _4 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33245 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_option_eexpr_ = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33251 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : (
+# 59 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33256 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1320 "parser_cocci_menhir.mly"
-                ( Ast0.wrap(Ast0.Ident(_1)) )
-# 23937 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__9_ in
+        let _v : 'tv_statement = 
+# 936 "parser_cocci_menhir.mly"
+    ( P.forloop _1 _2 _3 _4 _5 _6 _7 _8 _9 )
+# 33263 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23945,24 +33271,55 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _5;
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _4;
+            MenhirLib.EngineTypes.startp = _startpos__4_;
+            MenhirLib.EngineTypes.endp = _endpos__4_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = _3;
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = _2;
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = _1;
+                  MenhirLib.EngineTypes.startp = _startpos__1_;
+                  MenhirLib.EngineTypes.endp = _endpos__1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
+        let _5 : 'tv_single_statement = Obj.magic _5 in
+        let _4 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33305 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33311 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
         let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 23958 "parser_cocci_menhir.ml"
+# 59 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33316 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1322 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) )
-# 23966 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_statement = 
+# 938 "parser_cocci_menhir.mly"
+    ( P.whileloop _1 _2 _3 _4 _5 )
+# 33323 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -23974,24 +33331,75 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _7;
+          MenhirLib.EngineTypes.startp = _startpos__7_;
+          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _6;
+            MenhirLib.EngineTypes.startp = _startpos__6_;
+            MenhirLib.EngineTypes.endp = _endpos__6_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = _5;
+              MenhirLib.EngineTypes.startp = _startpos__5_;
+              MenhirLib.EngineTypes.endp = _endpos__5_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = _4;
+                MenhirLib.EngineTypes.startp = _startpos__4_;
+                MenhirLib.EngineTypes.endp = _endpos__4_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = _3;
+                  MenhirLib.EngineTypes.startp = _startpos__3_;
+                  MenhirLib.EngineTypes.endp = _endpos__3_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = _2;
+                    MenhirLib.EngineTypes.startp = _startpos__2_;
+                    MenhirLib.EngineTypes.endp = _endpos__2_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = _1;
+                      MenhirLib.EngineTypes.startp = _startpos__1_;
+                      MenhirLib.EngineTypes.endp = _endpos__1_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
+        let _7 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33374 "parser_cocci_menhir.ml"
+        ) = Obj.magic _7 in
+        let _6 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33379 "parser_cocci_menhir.ml"
+        ) = Obj.magic _6 in
+        let _5 : 'tv_eexpr = Obj.magic _5 in
+        let _4 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33385 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : (
+# 59 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33390 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_single_statement = Obj.magic _2 in
         let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 23987 "parser_cocci_menhir.ml"
+# 59 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33396 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1325 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) )
-# 23995 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__7_ in
+        let _v : 'tv_statement = 
+# 940 "parser_cocci_menhir.mly"
+    ( P.doloop _1 _2 _3 _4 _5 _6 _7 )
+# 33403 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24003,24 +33411,51 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _5;
+          MenhirLib.EngineTypes.startp = _startpos__5_;
+          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _4;
+            MenhirLib.EngineTypes.startp = _startpos__4_;
+            MenhirLib.EngineTypes.endp = _endpos__4_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = _3;
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = _2;
+                MenhirLib.EngineTypes.startp = _startpos__2_;
+                MenhirLib.EngineTypes.endp = _endpos__2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = _1;
+                  MenhirLib.EngineTypes.startp = _startpos__1_;
+                  MenhirLib.EngineTypes.endp = _endpos__1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 24016 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _5 : 'tv_single_statement = Obj.magic _5 in
+        let _4 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33445 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33451 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_iter_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1328 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) )
-# 24024 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__5_ in
+        let _v : 'tv_statement = 
+# 942 "parser_cocci_menhir.mly"
+    ( P.iterator _1 _2 _3 _4 _5 )
+# 33459 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24032,24 +33467,81 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _8;
+          MenhirLib.EngineTypes.startp = _startpos__8_;
+          MenhirLib.EngineTypes.endp = _endpos__8_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _7;
+            MenhirLib.EngineTypes.startp = _startpos__7_;
+            MenhirLib.EngineTypes.endp = _endpos__7_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = _6;
+              MenhirLib.EngineTypes.startp = _startpos__6_;
+              MenhirLib.EngineTypes.endp = _endpos__6_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = _5;
+                MenhirLib.EngineTypes.startp = _startpos__5_;
+                MenhirLib.EngineTypes.endp = _endpos__5_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = _4;
+                  MenhirLib.EngineTypes.startp = _startpos__4_;
+                  MenhirLib.EngineTypes.endp = _endpos__4_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = _3;
+                    MenhirLib.EngineTypes.startp = _startpos__3_;
+                    MenhirLib.EngineTypes.endp = _endpos__3_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = _2;
+                      MenhirLib.EngineTypes.startp = _startpos__2_;
+                      MenhirLib.EngineTypes.endp = _endpos__2_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.state = _menhir_s;
+                        MenhirLib.EngineTypes.semv = _1;
+                        MenhirLib.EngineTypes.startp = _startpos__1_;
+                        MenhirLib.EngineTypes.endp = _endpos__1_;
+                        MenhirLib.EngineTypes.next = _menhir_stack;
+                        };
+                      };
+                    };
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
+        let _8 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33515 "parser_cocci_menhir.ml"
+        ) = Obj.magic _8 in
+        let _7 : 'tv_list_case_line_ = Obj.magic _7 in
+        let _6 : 'tv_list_decl_var_ = Obj.magic _6 in
+        let _5 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33522 "parser_cocci_menhir.ml"
+        ) = Obj.magic _5 in
+        let _4 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33527 "parser_cocci_menhir.ml"
+        ) = Obj.magic _4 in
+        let _3 : 'tv_eexpr = Obj.magic _3 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33533 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
         let _1 : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 24045 "parser_cocci_menhir.ml"
+# 59 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33538 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1331 "parser_cocci_menhir.mly"
-     ( let (x,clt) = _1 in
-     Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) )
-# 24053 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__8_ in
+        let _v : 'tv_statement = 
+# 944 "parser_cocci_menhir.mly"
+    ( P.switch _1 _2 _3 _4 _5 (List.concat _6) _7 _8 )
+# 33545 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24061,25 +33553,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _3;
+          MenhirLib.EngineTypes.startp = _startpos__3_;
+          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = _2;
+            MenhirLib.EngineTypes.startp = _startpos__2_;
+            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = _1;
+              MenhirLib.EngineTypes.startp = _startpos__1_;
+              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
+        let _3 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33576 "parser_cocci_menhir.ml"
+        ) = Obj.magic _3 in
+        let _2 : 'tv_eexpr = Obj.magic _2 in
         let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 24074 "parser_cocci_menhir.ml"
+# 59 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33582 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1334 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) )
-# 24083 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__3_ in
+        let _v : 'tv_statement = 
+# 945 "parser_cocci_menhir.mly"
+                        ( P.ret_exp _1 _2 _3 )
+# 33589 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24091,24 +33597,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33615 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
         let _1 : (
-# 63 "parser_cocci_menhir.mly"
-       (Parse_aux.expinfo)
-# 24104 "parser_cocci_menhir.ml"
+# 59 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33620 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1338 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,clt) = _1 in
-     Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) )
-# 24112 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_statement = 
+# 946 "parser_cocci_menhir.mly"
+                  ( P.ret _1 _2 )
+# 33627 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24120,25 +33635,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33653 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
         let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 24133 "parser_cocci_menhir.ml"
+# 60 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33658 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1341 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) )
-# 24142 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_statement = 
+# 947 "parser_cocci_menhir.mly"
+                 ( P.break _1 _2 )
+# 33665 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24150,25 +33673,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
+        let _2 : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33691 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
         let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 24163 "parser_cocci_menhir.ml"
+# 60 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33696 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1345 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) )
-# 24172 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_statement = 
+# 948 "parser_cocci_menhir.mly"
+                    ( P.cont _1 _2 )
+# 33703 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24180,25 +33711,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let _1 : (
-# 66 "parser_cocci_menhir.mly"
-       (Parse_aux.typed_info)
-# 24193 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33729 "parser_cocci_menhir.ml"
+        ) = Obj.magic _2 in
+        let _1 : 'tv_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1349 "parser_cocci_menhir.mly"
-     ( let (nm,constraints,pure,ty,clt) = _1 in
-     Ast0.wrap
-       (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) )
-# 24202 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_statement = 
+# 949 "parser_cocci_menhir.mly"
+                ( P.label _1 _2 )
+# 33737 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24227,23 +33762,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 76 "parser_cocci_menhir.mly"
+# 110 "parser_cocci_menhir.mly"
        (Data.clt)
-# 24233 "parser_cocci_menhir.ml"
+# 33768 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
-        let _2 : 'tv_eexpr = Obj.magic _2 in
+        let _2 : 'tv_ident = Obj.magic _2 in
         let _1 : (
-# 75 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 24239 "parser_cocci_menhir.ml"
+# 33774 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1353 "parser_cocci_menhir.mly"
-     ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2,
-                           P.clt2mcode ")" _3)) )
-# 24247 "parser_cocci_menhir.ml"
+        let _v : 'tv_statement = 
+# 950 "parser_cocci_menhir.mly"
+                      ( P.goto _1 _2 _3 )
+# 33781 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24272,49 +33806,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 76 "parser_cocci_menhir.mly"
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 24278 "parser_cocci_menhir.ml"
+# 33812 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
-        let _2 : 'tv_midzero_list_expr_eexpr_ = Obj.magic _2 in
+        let _2 : 'tv_fun_start = Obj.magic _2 in
         let _1 : (
-# 75 "parser_cocci_menhir.mly"
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 24284 "parser_cocci_menhir.ml"
+# 33818 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1356 "parser_cocci_menhir.mly"
-     ( let (mids,code) = _2 in
-       Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1,
-                              code, mids,
-                              P.clt2mcode ")" _3)) )
-# 24294 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_invalid = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_primary_expr_expr_invalid_ = 
-# 1360 "parser_cocci_menhir.mly"
-                 ( _1 )
-# 24318 "parser_cocci_menhir.ml"
+        let _v : 'tv_statement = 
+# 952 "parser_cocci_menhir.mly"
+    ( P.seq _1 _2 _3 )
+# 33825 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24326,17 +33833,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = w;
+          MenhirLib.EngineTypes.startp = _startpos_w_;
+          MenhirLib.EngineTypes.endp = _endpos_w_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
+        let w : 'tv_list_whenppdecs_ = Obj.magic w in
+        let _1 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33852 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_pure = 
-# 189 "parser_cocci_menhir.mly"
-                 ( Ast0.Pure )
-# 24340 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_w_ in
+        let _v : 'tv_stm_dots = 
+# 956 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." _1, List.concat w)) )
+# 33859 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24348,17 +33867,46 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = c;
+          MenhirLib.EngineTypes.startp = _startpos_c_;
+          MenhirLib.EngineTypes.endp = _endpos_c_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = b;
+            MenhirLib.EngineTypes.startp = _startpos_b_;
+            MenhirLib.EngineTypes.endp = _endpos_b_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = w;
+              MenhirLib.EngineTypes.startp = _startpos_w_;
+              MenhirLib.EngineTypes.endp = _endpos_w_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = _1;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
           } = _menhir_stack in
+        let c : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33895 "parser_cocci_menhir.ml"
+        ) = Obj.magic c in
+        let b : 'tv_nest_start = Obj.magic b in
+        let w : 'tv_list_whenppdecs_ = Obj.magic w in
+        let _1 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33902 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_pure = 
-# 190 "parser_cocci_menhir.mly"
-                 ( Ast0.Context )
-# 24362 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_c_ in
+        let _v : 'tv_stm_dots = 
+# 958 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." _1, b,
+                         P.clt2mcode "...>" c, List.concat w, false)) )
+# 33910 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24370,21 +33918,46 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = c;
+          MenhirLib.EngineTypes.startp = _startpos_c_;
+          MenhirLib.EngineTypes.endp = _endpos_c_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = b;
+            MenhirLib.EngineTypes.startp = _startpos_b_;
+            MenhirLib.EngineTypes.endp = _endpos_b_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = w;
+              MenhirLib.EngineTypes.startp = _startpos_w_;
+              MenhirLib.EngineTypes.endp = _endpos_w_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = _1;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
+        let c : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33946 "parser_cocci_menhir.ml"
+        ) = Obj.magic c in
+        let b : 'tv_nest_start = Obj.magic b in
+        let w : 'tv_list_whenppdecs_ = Obj.magic w in
+        let _1 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 33953 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_pure = 
-# 191 "parser_cocci_menhir.mly"
-                 ( Ast0.PureContext )
-# 24388 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_c_ in
+        let _v : 'tv_stm_dots = 
+# 961 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." _1, b,
+                         P.clt2mcode "...+>" c, List.concat w, true)) )
+# 33961 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24396,21 +33969,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = s;
+          MenhirLib.EngineTypes.startp = _startpos_s_;
+          MenhirLib.EngineTypes.endp = _endpos_s_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_pure = 
-# 192 "parser_cocci_menhir.mly"
-                 ( Ast0.PureContext )
-# 24414 "parser_cocci_menhir.ml"
+        let s : (
+# 55 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 33982 "parser_cocci_menhir.ml"
+        ) = Obj.magic s in
+        let _startpos = _startpos_s_ in
+        let _endpos = _endpos_s_ in
+        let _v : 'tv_storage = 
+# 887 "parser_cocci_menhir.mly"
+                        ( P.clt2mcode Ast.Static s )
+# 33989 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24421,13 +33996,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_pure = 
-# 193 "parser_cocci_menhir.mly"
-                 ( Ast0.Impure )
-# 24431 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = s;
+          MenhirLib.EngineTypes.startp = _startpos_s_;
+          MenhirLib.EngineTypes.endp = _endpos_s_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let s : (
+# 55 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 34010 "parser_cocci_menhir.ml"
+        ) = Obj.magic s in
+        let _startpos = _startpos_s_ in
+        let _endpos = _endpos_s_ in
+        let _v : 'tv_storage = 
+# 888 "parser_cocci_menhir.mly"
+                        ( P.clt2mcode Ast.Auto s )
+# 34017 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24440,22 +34026,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = s;
+          MenhirLib.EngineTypes.startp = _startpos_s_;
+          MenhirLib.EngineTypes.endp = _endpos_s_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : (
-# 59 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 24452 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_pure_ident = 
-# 1374 "parser_cocci_menhir.mly"
-            ( _1 )
-# 24459 "parser_cocci_menhir.ml"
+        let s : (
+# 55 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 34038 "parser_cocci_menhir.ml"
+        ) = Obj.magic s in
+        let _startpos = _startpos_s_ in
+        let _endpos = _endpos_s_ in
+        let _v : 'tv_storage = 
+# 889 "parser_cocci_menhir.mly"
+                        ( P.clt2mcode Ast.Register s )
+# 34045 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24468,18 +34054,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = s;
+          MenhirLib.EngineTypes.startp = _startpos_s_;
+          MenhirLib.EngineTypes.endp = _endpos_s_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_pure_ident = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_pure_ident_or_meta_ident = 
-# 1380 "parser_cocci_menhir.mly"
-                                 ( (None,P.id2name _1) )
-# 24483 "parser_cocci_menhir.ml"
+        let s : (
+# 55 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 34066 "parser_cocci_menhir.ml"
+        ) = Obj.magic s in
+        let _startpos = _startpos_s_ in
+        let _endpos = _endpos_s_ in
+        let _v : 'tv_storage = 
+# 890 "parser_cocci_menhir.mly"
+                        ( P.clt2mcode Ast.Extern s )
+# 34073 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24492,18 +34082,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
           MenhirLib.EngineTypes.startp = _startpos__1_;
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_meta_ident = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_pure_ident_or_meta_ident = 
-# 1381 "parser_cocci_menhir.mly"
-                                 ( _1 )
-# 24507 "parser_cocci_menhir.ml"
+        let _v : 'tv_struct_decl = 
+# 621 "parser_cocci_menhir.mly"
+                      ( [] )
+# 34095 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24516,16 +34104,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
           MenhirLib.EngineTypes.startp = _startpos__1_;
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
+        let _1 : 'tv_struct_decl_one = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_pure_ident_or_meta_ident = 
-# 1382 "parser_cocci_menhir.mly"
-                                 ( (None,"list") )
-# 24529 "parser_cocci_menhir.ml"
+        let _v : 'tv_struct_decl = 
+# 622 "parser_cocci_menhir.mly"
+                      ( [_1] )
+# 34119 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24538,16 +34128,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
           MenhirLib.EngineTypes.startp = _startpos__1_;
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
+        let _1 : 'tv_struct_decl_list_start = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_pure_ident_or_meta_ident = 
-# 1383 "parser_cocci_menhir.mly"
-                                 ( (None,"error") )
-# 24551 "parser_cocci_menhir.ml"
+        let _v : 'tv_struct_decl_list = 
+# 644 "parser_cocci_menhir.mly"
+                          ( Ast0.wrap(Ast0.DOTS(_1)) )
+# 34143 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24560,16 +34152,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
           MenhirLib.EngineTypes.startp = _startpos__1_;
           MenhirLib.EngineTypes.endp = _endpos__1_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
+        let _1 : 'tv_struct_decl = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
-        let _v : 'tv_pure_ident_or_meta_ident = 
-# 1384 "parser_cocci_menhir.mly"
-                                 ( (None,"type") )
-# 24573 "parser_cocci_menhir.ml"
+        let _v : 'tv_struct_decl_list_start = 
+# 647 "parser_cocci_menhir.mly"
+                                     ( _1 )
+# 34167 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24581,17 +34175,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
+        let _2 : 'tv_struct_decl_list_start = Obj.magic _2 in
+        let _1 : 'tv_struct_decl = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_pure_ident_or_meta_ident = 
-# 1385 "parser_cocci_menhir.mly"
-                                 ( (None,"name") )
-# 24595 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_struct_decl_list_start = 
+# 648 "parser_cocci_menhir.mly"
+                                     ( _1@_2 )
+# 34197 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24603,25 +34205,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = l;
-          MenhirLib.EngineTypes.startp = _startpos_l_;
-          MenhirLib.EngineTypes.endp = _endpos_l_;
+          MenhirLib.EngineTypes.semv = r;
+          MenhirLib.EngineTypes.startp = _startpos_r_;
+          MenhirLib.EngineTypes.endp = _endpos_r_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = i;
-            MenhirLib.EngineTypes.startp = _startpos_i_;
-            MenhirLib.EngineTypes.endp = _endpos_i_;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let l : 'tv_loption_not_ceq_ = Obj.magic l in
-        let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in
-        let _startpos = _startpos_i_ in
-        let _endpos = _endpos_l_ in
-        let _v : 'tv_pure_ident_or_meta_ident_with_not_eq_not_ceq_ = 
-# 1388 "parser_cocci_menhir.mly"
-                                                    ( (i,l) )
-# 24625 "parser_cocci_menhir.ml"
+        let r : 'tv_continue_struct_decl_list = Obj.magic r in
+        let d : 'tv_edots_when_TEllipsis_struct_decl_one_ = Obj.magic d in
+        let _startpos = _startpos_d_ in
+        let _endpos = _endpos_r_ in
+        let _v : 'tv_struct_decl_list_start = 
+# 650 "parser_cocci_menhir.mly"
+    ( (P.mkddots_one "..." d)::r )
+# 34227 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24633,25 +34235,64 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = l;
-          MenhirLib.EngineTypes.startp = _startpos_l_;
-          MenhirLib.EngineTypes.endp = _endpos_l_;
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          } = _menhir_stack in
+        let _1 : (
+# 68 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 34248 "parser_cocci_menhir.ml"
+        ) = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_struct_decl_one = 
+# 625 "parser_cocci_menhir.mly"
+                 ( P.meta_field _1 )
+# 34255 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = i;
-            MenhirLib.EngineTypes.startp = _startpos_i_;
-            MenhirLib.EngineTypes.endp = _endpos_i_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = t;
+              MenhirLib.EngineTypes.startp = _startpos_t_;
+              MenhirLib.EngineTypes.endp = _endpos_t_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let l : 'tv_loption_not_eq_ = Obj.magic l in
-        let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in
-        let _startpos = _startpos_i_ in
-        let _endpos = _endpos_l_ in
-        let _v : 'tv_pure_ident_or_meta_ident_with_not_eq_not_eq_ = 
-# 1388 "parser_cocci_menhir.mly"
-                                                    ( (i,l) )
-# 24655 "parser_cocci_menhir.ml"
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 34286 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_d_ident = Obj.magic d in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_struct_decl_one = 
+# 627 "parser_cocci_menhir.mly"
+  ( let (id,fn) = d in
+        Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv)) )
+# 34296 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24663,25 +34304,97 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = l;
-          MenhirLib.EngineTypes.startp = _startpos_l_;
-          MenhirLib.EngineTypes.endp = _endpos_l_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = i;
-            MenhirLib.EngineTypes.startp = _startpos_i_;
-            MenhirLib.EngineTypes.endp = _endpos_i_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = rp2;
+            MenhirLib.EngineTypes.startp = _startpos_rp2_;
+            MenhirLib.EngineTypes.endp = _endpos_rp2_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = p;
+              MenhirLib.EngineTypes.startp = _startpos_p_;
+              MenhirLib.EngineTypes.endp = _endpos_p_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = lp2;
+                MenhirLib.EngineTypes.startp = _startpos_lp2_;
+                MenhirLib.EngineTypes.endp = _endpos_lp2_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = rp1;
+                  MenhirLib.EngineTypes.startp = _startpos_rp1_;
+                  MenhirLib.EngineTypes.endp = _endpos_rp1_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = d;
+                    MenhirLib.EngineTypes.startp = _startpos_d_;
+                    MenhirLib.EngineTypes.endp = _endpos_d_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.semv = st;
+                      MenhirLib.EngineTypes.startp = _startpos_st_;
+                      MenhirLib.EngineTypes.endp = _endpos_st_;
+                      MenhirLib.EngineTypes.next = {
+                        MenhirLib.EngineTypes.semv = lp1;
+                        MenhirLib.EngineTypes.startp = _startpos_lp1_;
+                        MenhirLib.EngineTypes.endp = _endpos_lp1_;
+                        MenhirLib.EngineTypes.next = {
+                          MenhirLib.EngineTypes.state = _menhir_s;
+                          MenhirLib.EngineTypes.semv = t;
+                          MenhirLib.EngineTypes.startp = _startpos_t_;
+                          MenhirLib.EngineTypes.endp = _endpos_t_;
+                          MenhirLib.EngineTypes.next = _menhir_stack;
+                          };
+                        };
+                      };
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let l : 'tv_loption_not_eqe_ = Obj.magic l in
-        let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in
-        let _startpos = _startpos_i_ in
-        let _endpos = _endpos_l_ in
-        let _v : 'tv_pure_ident_or_meta_ident_with_not_eq_not_eqe_ = 
-# 1388 "parser_cocci_menhir.mly"
-                                                    ( (i,l) )
-# 24685 "parser_cocci_menhir.ml"
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 34357 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let rp2 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 34362 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp2 in
+        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
+        let lp2 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 34368 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp2 in
+        let rp1 : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 34373 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp1 in
+        let d : 'tv_d_ident = Obj.magic d in
+        let st : (
+# 102 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 34379 "parser_cocci_menhir.ml"
+        ) = Obj.magic st in
+        let lp1 : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 34384 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp1 in
+        let t : 'tv_ctype = Obj.magic t in
+        let _startpos = _startpos_t_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_struct_decl_one = 
+# 631 "parser_cocci_menhir.mly"
+        ( let (id,fn) = d in
+        let t =
+         Ast0.wrap
+           (Ast0.FunctionPointer
+              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
+               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
+        Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv)) )
+# 34398 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24693,25 +34406,44 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = l;
-          MenhirLib.EngineTypes.startp = _startpos_l_;
-          MenhirLib.EngineTypes.endp = _endpos_l_;
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = i;
-            MenhirLib.EngineTypes.startp = _startpos_i_;
-            MenhirLib.EngineTypes.endp = _endpos_i_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = i;
+              MenhirLib.EngineTypes.startp = _startpos_i_;
+              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let l : 'tv_loption_not_pos_ = Obj.magic l in
-        let i : 'tv_pure_ident_or_meta_ident = Obj.magic i in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 34429 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
         let _startpos = _startpos_i_ in
-        let _endpos = _endpos_l_ in
-        let _v : 'tv_pure_ident_or_meta_ident_with_not_eq_not_pos_ = 
-# 1388 "parser_cocci_menhir.mly"
-                                                    ( (i,l) )
-# 24715 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_struct_decl_one = let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 34439 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 639 "parser_cocci_menhir.mly"
+  ( let (id,fn) = d in
+        let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+        Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv)) )
+# 34447 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24722,17 +34454,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : (
-# 130 "parser_cocci_menhir.mly"
-      (unit)
-# 24732 "parser_cocci_menhir.ml"
-        ) = 
-# 171 "parser_cocci_menhir.mly"
-        ( )
-# 24736 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = pv;
+          MenhirLib.EngineTypes.startp = _startpos_pv_;
+          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = d;
+            MenhirLib.EngineTypes.startp = _startpos_d_;
+            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = i;
+              MenhirLib.EngineTypes.startp = _startpos_i_;
+              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let pv : (
+# 110 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 34483 "parser_cocci_menhir.ml"
+        ) = Obj.magic pv in
+        let d : 'tv_d_ident = Obj.magic d in
+        let i : 'tv_pure_ident = Obj.magic i in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_pv_ in
+        let _v : 'tv_struct_decl_one = let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 34495 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 639 "parser_cocci_menhir.mly"
+  ( let (id,fn) = d in
+        let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
+        Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv)) )
+# 34503 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24745,18 +34512,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.semv = s;
+          MenhirLib.EngineTypes.startp = _startpos_s_;
+          MenhirLib.EngineTypes.endp = _endpos_s_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _1 : 'tv_one_decl_var = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_rule_elem_statement = 
-# 900 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),_1)) )
-# 24760 "parser_cocci_menhir.ml"
+        let s : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 34524 "parser_cocci_menhir.ml"
+        ) = Obj.magic s in
+        let _startpos = _startpos_s_ in
+        let _endpos = _endpos_s_ in
+        let _v : 'tv_struct_or_union = 
+# 617 "parser_cocci_menhir.mly"
+                 ( P.clt2mcode Ast.Struct s )
+# 34531 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24768,73 +34539,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
-          } = _menhir_stack in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 24786 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_expr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_rule_elem_statement = 
-# 901 "parser_cocci_menhir.mly"
-               ( P.exp_stm _1 _2 )
-# 24794 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.semv = u;
+          MenhirLib.EngineTypes.startp = _startpos_u_;
+          MenhirLib.EngineTypes.endp = _endpos_u_;
           MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
-            };
           } = _menhir_stack in
-        let _3 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 24825 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_eexpr = Obj.magic _2 in
-        let _1 : (
-# 57 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 24831 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_rule_elem_statement = 
-# 902 "parser_cocci_menhir.mly"
-                        ( P.ret_exp _1 _2 _3 )
-# 24838 "parser_cocci_menhir.ml"
+        let u : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 34552 "parser_cocci_menhir.ml"
+        ) = Obj.magic u in
+        let _startpos = _startpos_u_ in
+        let _endpos = _endpos_u_ in
+        let _v : 'tv_struct_or_union = 
+# 618 "parser_cocci_menhir.mly"
+                 ( P.clt2mcode Ast.Union u )
+# 34559 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24846,33 +34567,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = i;
+          MenhirLib.EngineTypes.startp = _startpos_i_;
+          MenhirLib.EngineTypes.endp = _endpos_i_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
             MenhirLib.EngineTypes.startp = _startpos__1_;
             MenhirLib.EngineTypes.endp = _endpos__1_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 24864 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 57 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 24869 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let i : 'tv_meta_ident = Obj.magic i in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_rule_elem_statement = 
-# 903 "parser_cocci_menhir.mly"
-                  ( P.ret _1 _2 )
-# 24876 "parser_cocci_menhir.ml"
+        let _endpos = _endpos_i_ in
+        let _v : 'tv_sub = 
+# 1639 "parser_cocci_menhir.mly"
+         ( (if !Data.in_iso
+          then failwith "constraints not allowed in iso file");
+          (if !Data.in_generating
+          then failwith "constraints not allowed in a generated rule file");
+          let i =
+            P.check_inherited_constraint i
+              (function mv -> Ast.MetaExpDecl(Ast.NONE,mv,None)) in
+          [i] )
+# 34594 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24884,33 +34602,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.startp = _startpos__4_;
+          MenhirLib.EngineTypes.endp = _endpos__4_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = l;
+            MenhirLib.EngineTypes.startp = _startpos_l_;
+            MenhirLib.EngineTypes.endp = _endpos_l_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.startp = _startpos__1_;
+                MenhirLib.EngineTypes.endp = _endpos__1_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 24902 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 58 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 24907 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let l : 'tv_comma_list_meta_ident_ = Obj.magic l in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_rule_elem_statement = 
-# 904 "parser_cocci_menhir.mly"
-                 ( P.break _1 _2 )
-# 24914 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__4_ in
+        let _v : 'tv_sub = 
+# 1648 "parser_cocci_menhir.mly"
+  ( (if !Data.in_iso
+          then failwith "constraints not allowed in iso file");
+          (if !Data.in_generating
+          then failwith "constraints not allowed in a generated rule file");
+           List.map
+            (function i ->
+              P.check_inherited_constraint i
+                (function mv -> Ast.MetaExpDecl(Ast.NONE,mv,None)))
+            l)
+# 34638 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24921,34 +34645,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
-            };
+        let {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = _1;
+          MenhirLib.EngineTypes.startp = _startpos__1_;
+          MenhirLib.EngineTypes.endp = _endpos__1_;
+          MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 24940 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 58 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 24945 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
+        let _1 : 'tv_eexpr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_rule_elem_statement = 
-# 905 "parser_cocci_menhir.mly"
-                    ( P.cont _1 _2 )
-# 24952 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__1_ in
+        let _v : 'tv_top_eexpr = 
+# 1267 "parser_cocci_menhir.mly"
+        ( Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))) )
+# 34662 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -24977,26 +34687,44 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let _3 : (
-# 76 "parser_cocci_menhir.mly"
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 24983 "parser_cocci_menhir.ml"
+# 34693 "parser_cocci_menhir.ml"
         ) = Obj.magic _3 in
-        let _2 : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = Obj.magic _2 in
+        let _2 : 'tv_initialize_list = Obj.magic _2 in
         let _1 : (
-# 75 "parser_cocci_menhir.mly"
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 24989 "parser_cocci_menhir.ml"
+# 34699 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
-        let _v : 'tv_rule_elem_statement = 
-# 907 "parser_cocci_menhir.mly"
-    ( let (mids,code) = _2 in
-    Ast0.wrap
-      (Ast0.Disj(P.clt2mcode "(" _1,
-                List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code,
-                mids, P.clt2mcode ")" _3)) )
-# 25000 "parser_cocci_menhir.ml"
+        let _v : 'tv_top_init = 
+# 1874 "parser_cocci_menhir.mly"
+    ( if P.struct_initializer _2
+    then
+      let il = P.drop_dot_commas _2 in
+      Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,il,P.clt2mcode "}" _3,false))
+    else
+      Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3,true)) )
+# 34711 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_toplevel_after_dots = 
+# 1862 "parser_cocci_menhir.mly"
+                                     ([])
+# 34728 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25008,62 +34736,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__7_;
-          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ee;
-            MenhirLib.EngineTypes.startp = _startpos_ee_;
-            MenhirLib.EngineTypes.endp = _endpos_ee_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = e;
-              MenhirLib.EngineTypes.startp = _startpos_e_;
-              MenhirLib.EngineTypes.endp = _endpos_e_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = a;
-                MenhirLib.EngineTypes.startp = _startpos_a_;
-                MenhirLib.EngineTypes.endp = _endpos_a_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = i;
-                  MenhirLib.EngineTypes.startp = _startpos_i_;
-                  MenhirLib.EngineTypes.endp = _endpos_i_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = d;
-                    MenhirLib.EngineTypes.startp = _startpos_d_;
-                    MenhirLib.EngineTypes.endp = _endpos_d_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.startp = _startpos__1_;
-                      MenhirLib.EngineTypes.endp = _endpos__1_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ee : 'tv_is_expression = Obj.magic ee in
-        let e : 'tv_exists = Obj.magic e in
-        let a : 'tv_loption_disable_ = Obj.magic a in
-        let i : 'tv_loption_choose_iso_ = Obj.magic i in
-        let d : 'tv_depends = Obj.magic d in
+        let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__7_ in
-        let _v : (
-# 152 "parser_cocci_menhir.mly"
-      (Ast_cocci.rulename)
-# 25056 "parser_cocci_menhir.ml"
-        ) = let nm =
-          
-# 39 "standard.mly"
-    ( None )
-# 25061 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 201 "parser_cocci_menhir.mly"
-      ( P.make_cocci_rule_name_result nm d i a e ee )
-# 25067 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_after_dots = 
+# 1863 "parser_cocci_menhir.mly"
+                                     (_2)
+# 34756 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25075,69 +34764,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__8_;
-          MenhirLib.EngineTypes.endp = _endpos__8_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ee;
-            MenhirLib.EngineTypes.startp = _startpos_ee_;
-            MenhirLib.EngineTypes.endp = _endpos_ee_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = e;
-              MenhirLib.EngineTypes.startp = _startpos_e_;
-              MenhirLib.EngineTypes.endp = _endpos_e_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = a;
-                MenhirLib.EngineTypes.startp = _startpos_a_;
-                MenhirLib.EngineTypes.endp = _endpos_a_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = i;
-                  MenhirLib.EngineTypes.startp = _startpos_i_;
-                  MenhirLib.EngineTypes.endp = _endpos_i_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = d;
-                    MenhirLib.EngineTypes.startp = _startpos_d_;
-                    MenhirLib.EngineTypes.endp = _endpos_d_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.startp = _startpos__2_;
-                      MenhirLib.EngineTypes.endp = _endpos__2_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.state = _menhir_s;
-                        MenhirLib.EngineTypes.semv = x0;
-                        MenhirLib.EngineTypes.startp = _startpos_x0_;
-                        MenhirLib.EngineTypes.endp = _endpos_x0_;
-                        MenhirLib.EngineTypes.next = _menhir_stack;
-                        };
-                      };
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ee : 'tv_is_expression = Obj.magic ee in
-        let e : 'tv_exists = Obj.magic e in
-        let a : 'tv_loption_disable_ = Obj.magic a in
-        let i : 'tv_loption_choose_iso_ = Obj.magic i in
-        let d : 'tv_depends = Obj.magic d in
-        let x0 : 'tv_pure_ident = Obj.magic x0 in
-        let _startpos = _startpos_x0_ in
-        let _endpos = _endpos__8_ in
-        let _v : (
-# 152 "parser_cocci_menhir.mly"
-      (Ast_cocci.rulename)
-# 25129 "parser_cocci_menhir.ml"
-        ) = let nm =
-          let x = x0 in
-          
-# 41 "standard.mly"
-    ( Some x )
-# 25135 "parser_cocci_menhir.ml"
-          
-        in
-        
-# 201 "parser_cocci_menhir.mly"
-      ( P.make_cocci_rule_name_result nm d i a e ee )
-# 25141 "parser_cocci_menhir.ml"
+        let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in
+        let _1 : 'tv_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_after_dots = 
+# 1864 "parser_cocci_menhir.mly"
+                                     ((Ast0.wrap(Ast0.Exp(_1)))::_2)
+# 34786 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25149,59 +34794,53 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__8_;
-          MenhirLib.EngineTypes.endp = _endpos__8_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = ee;
-            MenhirLib.EngineTypes.startp = _startpos_ee_;
-            MenhirLib.EngineTypes.endp = _endpos_ee_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = e;
-              MenhirLib.EngineTypes.startp = _startpos_e_;
-              MenhirLib.EngineTypes.endp = _endpos_e_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = a;
-                MenhirLib.EngineTypes.startp = _startpos_a_;
-                MenhirLib.EngineTypes.endp = _endpos_a_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = i;
-                  MenhirLib.EngineTypes.startp = _startpos_i_;
-                  MenhirLib.EngineTypes.endp = _endpos_i_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = d;
-                    MenhirLib.EngineTypes.startp = _startpos_d_;
-                    MenhirLib.EngineTypes.endp = _endpos_d_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.startp = _startpos__2_;
-                      MenhirLib.EngineTypes.endp = _endpos__2_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.state = _menhir_s;
-                        MenhirLib.EngineTypes.startp = _startpos__1_;
-                        MenhirLib.EngineTypes.endp = _endpos__1_;
-                        MenhirLib.EngineTypes.next = _menhir_stack;
-                        };
-                      };
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let ee : 'tv_is_expression = Obj.magic ee in
-        let e : 'tv_exists = Obj.magic e in
-        let a : 'tv_loption_disable_ = Obj.magic a in
-        let i : 'tv_loption_choose_iso_ = Obj.magic i in
-        let d : 'tv_depends = Obj.magic d in
+        let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__8_ in
-        let _v : (
-# 152 "parser_cocci_menhir.mly"
-      (Ast_cocci.rulename)
-# 25201 "parser_cocci_menhir.ml"
-        ) = 
-# 206 "parser_cocci_menhir.mly"
-      ( P.make_generated_rule_name_result None d i a e ee )
-# 25205 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_after_dots = 
+# 1865 "parser_cocci_menhir.mly"
+                                          (_1@_2)
+# 34816 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
+          MenhirLib.EngineTypes.state = _menhir_s;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
+          MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_after_dots_init = 
+# 1853 "parser_cocci_menhir.mly"
+                                     (_2)
+# 34844 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25213,41 +34852,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = lang;
-              MenhirLib.EngineTypes.startp = _startpos_lang_;
-              MenhirLib.EngineTypes.endp = _endpos_lang_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.startp = _startpos__2_;
-                MenhirLib.EngineTypes.endp = _endpos__2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.startp = _startpos__1_;
-                  MenhirLib.EngineTypes.endp = _endpos__1_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let d : 'tv_depends = Obj.magic d in
-        let lang : 'tv_pure_ident = Obj.magic lang in
+        let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in
+        let _1 : 'tv_expr = Obj.magic _1 in
         let _startpos = _startpos__1_ in
-        let _endpos = _endpos__5_ in
-        let _v : (
-# 152 "parser_cocci_menhir.mly"
-      (Ast_cocci.rulename)
-# 25247 "parser_cocci_menhir.ml"
-        ) = 
-# 208 "parser_cocci_menhir.mly"
-      ( P.make_script_rule_name_result lang d )
-# 25251 "parser_cocci_menhir.ml"
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_after_dots_init = 
+# 1854 "parser_cocci_menhir.mly"
+                                     ((Ast0.wrap(Ast0.Exp(_1)))::_2)
+# 34874 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25259,51 +34882,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.startp = _startpos__6_;
-          MenhirLib.EngineTypes.endp = _endpos__6_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = cocci;
-            MenhirLib.EngineTypes.startp = _startpos_cocci_;
-            MenhirLib.EngineTypes.endp = _endpos_cocci_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.startp = _startpos__4_;
-              MenhirLib.EngineTypes.endp = _endpos__4_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = _3;
-                MenhirLib.EngineTypes.startp = _startpos__3_;
-                MenhirLib.EngineTypes.endp = _endpos__3_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.startp = _startpos__2_;
-                  MenhirLib.EngineTypes.endp = _endpos__2_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.state = _menhir_s;
-                    MenhirLib.EngineTypes.semv = py;
-                    MenhirLib.EngineTypes.startp = _startpos_py_;
-                    MenhirLib.EngineTypes.endp = _endpos_py_;
-                    MenhirLib.EngineTypes.next = _menhir_stack;
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let cocci : 'tv_pure_ident = Obj.magic cocci in
-        let _3 : (
-# 47 "parser_cocci_menhir.mly"
-      (string)
-# 25295 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let py : 'tv_pure_ident = Obj.magic py in
-        let _startpos = _startpos_py_ in
-        let _endpos = _endpos__6_ in
-        let _v : (
-# 158 "parser_cocci_menhir.mly"
-       (string * (string * string))
-# 25303 "parser_cocci_menhir.ml"
-        ) = 
-# 1847 "parser_cocci_menhir.mly"
-  ( (P.id2name py, (_3, P.id2name cocci)) )
-# 25307 "parser_cocci_menhir.ml"
+        let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_after_dots_init = 
+# 1855 "parser_cocci_menhir.mly"
+                                          (_1@_2)
+# 34904 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25314,24 +34911,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let x : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 25328 "parser_cocci_menhir.ml"
-        ) = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_TString_ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 25335 "parser_cocci_menhir.ml"
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_toplevel_after_exp = 
+# 1858 "parser_cocci_menhir.mly"
+                                     ([])
+# 34921 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25343,33 +34929,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_TString_ = Obj.magic xs in
-        let x : (
-# 86 "parser_cocci_menhir.mly"
-       (string * Data.clt)
-# 25366 "parser_cocci_menhir.ml"
-        ) = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_TString_ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 25373 "parser_cocci_menhir.ml"
+        let _2 : 'tv_toplevel_after_dots = Obj.magic _2 in
+        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_after_exp = 
+# 1859 "parser_cocci_menhir.mly"
+                                     (_1::_2)
+# 34951 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25380,20 +34958,43 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
+        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
+        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
+        let _endpos = _startpos in
+        let _v : 'tv_toplevel_after_stm = 
+# 1868 "parser_cocci_menhir.mly"
+                                     ([])
+# 34968 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
           MenhirLib.EngineTypes.next = _menhir_stack;
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let x : 'tv_any_strict = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 25397 "parser_cocci_menhir.ml"
+        let _2 : 'tv_toplevel_after_dots = Obj.magic _2 in
+        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_after_stm = 
+# 1869 "parser_cocci_menhir.mly"
+                                     (_1::_2)
+# 34998 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25405,29 +35006,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_any_strict_ = Obj.magic xs in
-        let x : 'tv_any_strict = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 25431 "parser_cocci_menhir.ml"
+        let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_after_stm = 
+# 1870 "parser_cocci_menhir.mly"
+                                     (_1@_2)
+# 35028 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25439,19 +35036,55 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_toplevel_after_dots = Obj.magic _2 in
+        let _1 : 'tv_stm_dots = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = 
+# 1848 "parser_cocci_menhir.mly"
+                                     ( _1::_2 )
+# 35058 "parser_cocci_menhir.ml"
+         in
+        _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
+          MenhirLib.EngineTypes.semv = Obj.repr _v;
+          MenhirLib.EngineTypes.startp = _startpos;
+          MenhirLib.EngineTypes.endp = _endpos;
           MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let x : 'tv_ctype = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_ctype_ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 25455 "parser_cocci_menhir.ml"
+          });
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
+          } = _menhir_stack in
+        let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in
+        let _1 : 'tv_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = 
+# 1849 "parser_cocci_menhir.mly"
+                                     ( (Ast0.wrap(Ast0.Exp(_1)))::_2 )
+# 35088 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25463,29 +35096,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_ctype_ = Obj.magic xs in
-        let x : 'tv_ctype = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_ctype_ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 25489 "parser_cocci_menhir.ml"
+        let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = 
+# 1850 "parser_cocci_menhir.mly"
+                                          ( _1@_2 )
+# 35118 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25497,19 +35126,44 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = w0;
+            MenhirLib.EngineTypes.startp = _startpos_w0_;
+            MenhirLib.EngineTypes.endp = _endpos_w0_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = a0;
+              MenhirLib.EngineTypes.startp = _startpos_a0_;
+              MenhirLib.EngineTypes.endp = _endpos_a0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let x : 'tv_d_ident = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 25513 "parser_cocci_menhir.ml"
+        let b : 'tv_toplevel_after_dots_init = Obj.magic b in
+        let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
+        let a0 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 35151 "parser_cocci_menhir.ml"
+        ) = Obj.magic a0 in
+        let _startpos = _startpos_a0_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a =
+          let w = w0 in
+          let a = a0 in
+          
+# 966 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." a, List.concat w)) )
+# 35161 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1841 "parser_cocci_menhir.mly"
+                                             ( a::b )
+# 35167 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25521,29 +35175,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = c0;
+            MenhirLib.EngineTypes.startp = _startpos_c0_;
+            MenhirLib.EngineTypes.endp = _endpos_c0_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = b0;
+              MenhirLib.EngineTypes.startp = _startpos_b0_;
+              MenhirLib.EngineTypes.endp = _endpos_b0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = w0;
+                MenhirLib.EngineTypes.startp = _startpos_w0_;
+                MenhirLib.EngineTypes.endp = _endpos_w0_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = a0;
+                  MenhirLib.EngineTypes.startp = _startpos_a0_;
+                  MenhirLib.EngineTypes.endp = _endpos_a0_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
               };
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_d_ident_ = Obj.magic xs in
-        let x : 'tv_d_ident = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 25547 "parser_cocci_menhir.ml"
+        let b : 'tv_toplevel_after_dots_init = Obj.magic b in
+        let c0 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 35209 "parser_cocci_menhir.ml"
+        ) = Obj.magic c0 in
+        let b0 : 'tv_nest_start = Obj.magic b0 in
+        let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
+        let a0 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 35216 "parser_cocci_menhir.ml"
+        ) = Obj.magic a0 in
+        let _startpos = _startpos_a0_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a =
+          let c = c0 in
+          let b = b0 in
+          let w = w0 in
+          let a = a0 in
+          
+# 970 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b,
+                         P.clt2mcode "...>" c, List.concat w, false)) )
+# 35229 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1842 "parser_cocci_menhir.mly"
+                                              ( a::b )
+# 35235 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25555,19 +35243,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = b;
+          MenhirLib.EngineTypes.startp = _startpos_b_;
+          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = c0;
+            MenhirLib.EngineTypes.startp = _startpos_c0_;
+            MenhirLib.EngineTypes.endp = _endpos_c0_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = b0;
+              MenhirLib.EngineTypes.startp = _startpos_b0_;
+              MenhirLib.EngineTypes.endp = _endpos_b0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = w0;
+                MenhirLib.EngineTypes.startp = _startpos_w0_;
+                MenhirLib.EngineTypes.endp = _endpos_w0_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = a0;
+                  MenhirLib.EngineTypes.startp = _startpos_a0_;
+                  MenhirLib.EngineTypes.endp = _endpos_a0_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let x : 'tv_dexpr = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_dexpr_ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 25571 "parser_cocci_menhir.ml"
+        let b : 'tv_toplevel_after_dots_init = Obj.magic b in
+        let c0 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 35277 "parser_cocci_menhir.ml"
+        ) = Obj.magic c0 in
+        let b0 : 'tv_nest_start = Obj.magic b0 in
+        let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
+        let a0 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 35284 "parser_cocci_menhir.ml"
+        ) = Obj.magic a0 in
+        let _startpos = _startpos_a0_ in
+        let _endpos = _endpos_b_ in
+        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a =
+          let c = c0 in
+          let b = b0 in
+          let w = w0 in
+          let a = a0 in
+          
+# 973 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b,
+                         P.clt2mcode "...+>" c, List.concat w, true)) )
+# 35297 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1842 "parser_cocci_menhir.mly"
+                                              ( a::b )
+# 35303 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25579,29 +35311,57 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = c0;
+          MenhirLib.EngineTypes.startp = _startpos_c0_;
+          MenhirLib.EngineTypes.endp = _endpos_c0_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = b0;
+            MenhirLib.EngineTypes.startp = _startpos_b0_;
+            MenhirLib.EngineTypes.endp = _endpos_b0_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = w0;
+              MenhirLib.EngineTypes.startp = _startpos_w0_;
+              MenhirLib.EngineTypes.endp = _endpos_w0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = a0;
+                MenhirLib.EngineTypes.startp = _startpos_a0_;
+                MenhirLib.EngineTypes.endp = _endpos_a0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
               };
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_dexpr_ = Obj.magic xs in
-        let x : 'tv_dexpr = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_dexpr_ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 25605 "parser_cocci_menhir.ml"
+        let c0 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 35339 "parser_cocci_menhir.ml"
+        ) = Obj.magic c0 in
+        let b0 : 'tv_nest_start = Obj.magic b0 in
+        let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
+        let a0 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 35346 "parser_cocci_menhir.ml"
+        ) = Obj.magic a0 in
+        let _startpos = _startpos_a0_ in
+        let _endpos = _endpos_c0_ in
+        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a =
+          let c = c0 in
+          let b = b0 in
+          let w = w0 in
+          let a = a0 in
+          
+# 970 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b,
+                         P.clt2mcode "...>" c, List.concat w, false)) )
+# 35359 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1843 "parser_cocci_menhir.mly"
+                                       ( [a] )
+# 35365 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25613,19 +35373,57 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = c0;
+          MenhirLib.EngineTypes.startp = _startpos_c0_;
+          MenhirLib.EngineTypes.endp = _endpos_c0_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = b0;
+            MenhirLib.EngineTypes.startp = _startpos_b0_;
+            MenhirLib.EngineTypes.endp = _endpos_b0_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = w0;
+              MenhirLib.EngineTypes.startp = _startpos_w0_;
+              MenhirLib.EngineTypes.endp = _endpos_w0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = a0;
+                MenhirLib.EngineTypes.startp = _startpos_a0_;
+                MenhirLib.EngineTypes.endp = _endpos_a0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
           } = _menhir_stack in
-        let x : 'tv_ident_or_const = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 25629 "parser_cocci_menhir.ml"
+        let c0 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 35401 "parser_cocci_menhir.ml"
+        ) = Obj.magic c0 in
+        let b0 : 'tv_nest_start = Obj.magic b0 in
+        let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
+        let a0 : (
+# 76 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 35408 "parser_cocci_menhir.ml"
+        ) = Obj.magic a0 in
+        let _startpos = _startpos_a0_ in
+        let _endpos = _endpos_c0_ in
+        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a =
+          let c = c0 in
+          let b = b0 in
+          let w = w0 in
+          let a = a0 in
+          
+# 973 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b,
+                         P.clt2mcode "...+>" c, List.concat w, true)) )
+# 35421 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 1843 "parser_cocci_menhir.mly"
+                                       ( [a] )
+# 35427 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25637,29 +35435,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_ident_or_const_ = Obj.magic xs in
-        let x : 'tv_ident_or_const = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 25663 "parser_cocci_menhir.ml"
+        let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in
+        let _1 : 'tv_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = 
+# 1844 "parser_cocci_menhir.mly"
+                                     ( (Ast0.wrap(Ast0.Exp(_1)))::_2 )
+# 35457 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25671,19 +35465,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = _2;
+          MenhirLib.EngineTypes.startp = _startpos__2_;
+          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = _1;
+            MenhirLib.EngineTypes.startp = _startpos__1_;
+            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let x : 'tv_meta_ident = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 25687 "parser_cocci_menhir.ml"
+        let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in
+        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
+        let _startpos = _startpos__1_ in
+        let _endpos = _endpos__2_ in
+        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = 
+# 1845 "parser_cocci_menhir.mly"
+                                          ( _1@_2 )
+# 35487 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25695,53 +35495,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_meta_ident_ = Obj.magic xs in
-        let x : 'tv_meta_ident = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 25721 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let x : 'tv_pure_ident = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 25745 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35519 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35524 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 530 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
+# 35536 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 35542 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 35549 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 35555 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25753,29 +35563,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_ = Obj.magic xs in
-        let x : 'tv_pure_ident = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 25779 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35587 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35592 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 532 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
+# 35604 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 35610 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 35617 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 35623 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25787,19 +35631,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let x : 'tv_pure_ident_or_meta_ident = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 25803 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35655 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35660 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 534 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
+# 35672 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 35678 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 35685 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 35691 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25811,29 +35699,64 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = Obj.magic xs in
-        let x : 'tv_pure_ident_or_meta_ident = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 25837 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 35723 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35728 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let r = r0 in
+          let ty =
+            let p = p0 in
+            
+# 536 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = p in
+      Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
+# 35741 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 35747 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 35754 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 35760 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25845,19 +35768,84 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = r00;
+                MenhirLib.EngineTypes.startp = _startpos_r00_;
+                MenhirLib.EngineTypes.endp = _endpos_r00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = r1;
+                  MenhirLib.EngineTypes.startp = _startpos_r1_;
+                  MenhirLib.EngineTypes.endp = _endpos_r1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_ceq_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 25861 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 35801 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r00 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 35806 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let r1 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35811 "parser_cocci_menhir.ml"
+        ) = Obj.magic r1 in
+        let _startpos = _startpos_r1_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let r0 = r00 in
+          let r = r1 in
+          let ty =
+            let p = p0 in
+            let r = r0 in
+            
+# 539 "parser_cocci_menhir.mly"
+    ( let nm = (r,P.id2name p) in
+    (* this is only possible when we are in a metavar decl.  Otherwise,
+       it will be represented already as a MetaType *)
+    let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
+    Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
+                           Ast0.Impure (*will be ignored*))) )
+# 35830 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 35836 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 35843 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 35849 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25869,29 +35857,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = Obj.magic xs in
-        let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_ceq_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_ceq__ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 25895 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35881 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35886 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 546 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) )
+# 35898 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 35904 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 35911 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 35917 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25903,19 +35925,78 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty200;
+            MenhirLib.EngineTypes.startp = _startpos_ty200_;
+            MenhirLib.EngineTypes.endp = _endpos_ty200_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = ty100;
+              MenhirLib.EngineTypes.startp = _startpos_ty100_;
+              MenhirLib.EngineTypes.endp = _endpos_ty100_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = r0;
+                MenhirLib.EngineTypes.startp = _startpos_r0_;
+                MenhirLib.EngineTypes.endp = _endpos_r0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
           } = _menhir_stack in
-        let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_eq_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eq__ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 25919 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty200 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35954 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty200 in
+        let ty100 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35959 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty100 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 35964 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty20 = ty200 in
+          let ty10 = ty100 in
+          let r = r0 in
+          let ty =
+            let ty2 = ty20 in
+            let ty1 = ty10 in
+            
+# 548 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+       (Ast0.BaseType
+          (Ast.LongLongType,
+           [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
+# 35981 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 35987 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 35994 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36000 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25927,53 +36008,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eq__ = Obj.magic xs in
-        let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_eq_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eq__ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 25953 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_eqe_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 25977 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36032 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36037 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 530 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
+# 36049 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 36055 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36062 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36068 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -25985,53 +36076,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = Obj.magic xs in
-        let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_eqe_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_eqe__ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 26011 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = x;
-          MenhirLib.EngineTypes.startp = _startpos_x_;
-          MenhirLib.EngineTypes.endp = _endpos_x_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_pos_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_x_ in
-        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_pos__ = 
-# 144 "standard.mly"
-    ( [ x ] )
-# 26035 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36100 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36105 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 532 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
+# 36117 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 36123 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36130 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36136 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26043,53 +36144,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = xs;
-          MenhirLib.EngineTypes.startp = _startpos_xs_;
-          MenhirLib.EngineTypes.endp = _endpos_xs_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = x;
-              MenhirLib.EngineTypes.startp = _startpos_x_;
-              MenhirLib.EngineTypes.endp = _endpos_x_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let xs : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_pos__ = Obj.magic xs in
-        let x : 'tv_pure_ident_or_meta_ident_with_not_eq_not_pos_ = Obj.magic x in
-        let _startpos = _startpos_x_ in
-        let _endpos = _endpos_xs_ in
-        let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_not_eq_not_pos__ = 
-# 146 "standard.mly"
-    ( x :: xs )
-# 26069 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_statement = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_single_statement = 
-# 915 "parser_cocci_menhir.mly"
-                                      ( _1 )
-# 26093 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36168 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36173 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 534 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
+# 36185 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 36191 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36198 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36204 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26101,43 +36212,64 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let _3 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26124 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_midzero_list_statement_statement_ = Obj.magic _2 in
-        let _1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26130 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_single_statement = 
-# 919 "parser_cocci_menhir.mly"
-      ( let (mids,code) = _2 in
-        Ast0.wrap
-         (Ast0.Disj(P.clt2mcode "(" _1,
-                    List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code,
-                    mids, P.clt2mcode ")" _3)) )
-# 26141 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 36236 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36241 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let r = r0 in
+          let ty =
+            let p = p0 in
+            
+# 536 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = p in
+      Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
+# 36254 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 36260 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36267 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36273 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26149,19 +36281,84 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = r00;
+                MenhirLib.EngineTypes.startp = _startpos_r00_;
+                MenhirLib.EngineTypes.endp = _endpos_r00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = r1;
+                  MenhirLib.EngineTypes.startp = _startpos_r1_;
+                  MenhirLib.EngineTypes.endp = _endpos_r1_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
           } = _menhir_stack in
-        let _1 : 'tv_includes = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_statement = 
-# 842 "parser_cocci_menhir.mly"
-           ( _1 )
-# 26165 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 36314 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r00 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 36319 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let r1 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36324 "parser_cocci_menhir.ml"
+        ) = Obj.magic r1 in
+        let _startpos = _startpos_r1_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let r0 = r00 in
+          let r = r1 in
+          let ty =
+            let p = p0 in
+            let r = r0 in
+            
+# 539 "parser_cocci_menhir.mly"
+    ( let nm = (r,P.id2name p) in
+    (* this is only possible when we are in a metavar decl.  Otherwise,
+       it will be represented already as a MetaType *)
+    let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
+    Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
+                           Ast0.Impure (*will be ignored*))) )
+# 36343 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 36349 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36356 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36362 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26173,23 +36370,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
+            };
           } = _menhir_stack in
-        let _1 : (
-# 64 "parser_cocci_menhir.mly"
-       (Parse_aux.info)
-# 26186 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_statement = 
-# 844 "parser_cocci_menhir.mly"
-    ( P.meta_stm _1 )
-# 26193 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36394 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36399 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 546 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) )
+# 36411 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 36417 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36424 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36430 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26201,29 +36438,78 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty200;
+            MenhirLib.EngineTypes.startp = _startpos_ty200_;
+            MenhirLib.EngineTypes.endp = _endpos_ty200_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = ty100;
+              MenhirLib.EngineTypes.startp = _startpos_ty100_;
+              MenhirLib.EngineTypes.endp = _endpos_ty100_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = r0;
+                MenhirLib.EngineTypes.startp = _startpos_r0_;
+                MenhirLib.EngineTypes.endp = _endpos_r0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26219 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_expr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_statement = 
-# 846 "parser_cocci_menhir.mly"
-    ( P.exp_stm _1 _2 )
-# 26227 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty200 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36467 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty200 in
+        let ty100 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36472 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty100 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36477 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let _startpos = _startpos_r0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty20 = ty200 in
+          let ty10 = ty100 in
+          let r = r0 in
+          let ty =
+            let ty2 = ty20 in
+            let ty1 = ty10 in
+            
+# 548 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+       (Ast0.BaseType
+          (Ast.LongLongType,
+           [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
+# 36494 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 36500 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36507 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36513 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26235,55 +36521,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _5;
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _4;
-            MenhirLib.EngineTypes.startp = _startpos__4_;
-            MenhirLib.EngineTypes.endp = _endpos__4_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _3;
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = _2;
-                MenhirLib.EngineTypes.startp = _startpos__2_;
-                MenhirLib.EngineTypes.endp = _endpos__2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = _1;
-                  MenhirLib.EngineTypes.startp = _startpos__1_;
-                  MenhirLib.EngineTypes.endp = _endpos__1_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _5 : 'tv_single_statement = Obj.magic _5 in
-        let _4 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26269 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr = Obj.magic _3 in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26275 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 57 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26280 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_statement = 
-# 848 "parser_cocci_menhir.mly"
-    ( P.ifthen _1 _2 _3 _4 _5 )
-# 26287 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36540 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 530 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
+# 36551 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 36557 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36564 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36570 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26295,71 +36578,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _7;
-          MenhirLib.EngineTypes.startp = _startpos__7_;
-          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _6;
-            MenhirLib.EngineTypes.startp = _startpos__6_;
-            MenhirLib.EngineTypes.endp = _endpos__6_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _5;
-              MenhirLib.EngineTypes.startp = _startpos__5_;
-              MenhirLib.EngineTypes.endp = _endpos__5_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = _4;
-                MenhirLib.EngineTypes.startp = _startpos__4_;
-                MenhirLib.EngineTypes.endp = _endpos__4_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = _3;
-                  MenhirLib.EngineTypes.startp = _startpos__3_;
-                  MenhirLib.EngineTypes.endp = _endpos__3_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = _2;
-                    MenhirLib.EngineTypes.startp = _startpos__2_;
-                    MenhirLib.EngineTypes.endp = _endpos__2_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.semv = _1;
-                      MenhirLib.EngineTypes.startp = _startpos__1_;
-                      MenhirLib.EngineTypes.endp = _endpos__1_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
-                    };
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _7 : 'tv_single_statement = Obj.magic _7 in
-        let _6 : (
-# 57 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26339 "parser_cocci_menhir.ml"
-        ) = Obj.magic _6 in
-        let _5 : 'tv_single_statement = Obj.magic _5 in
-        let _4 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26345 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr = Obj.magic _3 in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26351 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 57 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26356 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__7_ in
-        let _v : 'tv_statement = 
-# 850 "parser_cocci_menhir.mly"
-    ( P.ifthenelse _1 _2 _3 _4 _5 _6 _7 )
-# 26363 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36597 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 532 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
+# 36608 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 36614 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36621 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36627 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26368,90 +36632,55 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos;
           MenhirLib.EngineTypes.next = _menhir_stack;
           });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.semv = _9;
-          MenhirLib.EngineTypes.startp = _startpos__9_;
-          MenhirLib.EngineTypes.endp = _endpos__9_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _8;
-            MenhirLib.EngineTypes.startp = _startpos__8_;
-            MenhirLib.EngineTypes.endp = _endpos__8_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _7;
-              MenhirLib.EngineTypes.startp = _startpos__7_;
-              MenhirLib.EngineTypes.endp = _endpos__7_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = _6;
-                MenhirLib.EngineTypes.startp = _startpos__6_;
-                MenhirLib.EngineTypes.endp = _endpos__6_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = _5;
-                  MenhirLib.EngineTypes.startp = _startpos__5_;
-                  MenhirLib.EngineTypes.endp = _endpos__5_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = _4;
-                    MenhirLib.EngineTypes.startp = _startpos__4_;
-                    MenhirLib.EngineTypes.endp = _endpos__4_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.semv = _3;
-                      MenhirLib.EngineTypes.startp = _startpos__3_;
-                      MenhirLib.EngineTypes.endp = _endpos__3_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.semv = _2;
-                        MenhirLib.EngineTypes.startp = _startpos__2_;
-                        MenhirLib.EngineTypes.endp = _endpos__2_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.state = _menhir_s;
-                          MenhirLib.EngineTypes.semv = _1;
-                          MenhirLib.EngineTypes.startp = _startpos__1_;
-                          MenhirLib.EngineTypes.endp = _endpos__1_;
-                          MenhirLib.EngineTypes.next = _menhir_stack;
-                          };
-                        };
-                      };
-                    };
-                  };
-                };
-              };
+      (fun _menhir_env ->
+        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
+        let {
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _9 : 'tv_single_statement = Obj.magic _9 in
-        let _8 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26425 "parser_cocci_menhir.ml"
-        ) = Obj.magic _8 in
-        let _7 : 'tv_option_eexpr_ = Obj.magic _7 in
-        let _6 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26431 "parser_cocci_menhir.ml"
-        ) = Obj.magic _6 in
-        let _5 : 'tv_option_eexpr_ = Obj.magic _5 in
-        let _4 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26437 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_option_eexpr_ = Obj.magic _3 in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26443 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 57 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26448 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__9_ in
-        let _v : 'tv_statement = 
-# 853 "parser_cocci_menhir.mly"
-    ( P.forloop _1 _2 _3 _4 _5 _6 _7 _8 _9 )
-# 26455 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36654 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 534 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
+# 36665 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 36671 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36678 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36684 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26463,55 +36692,53 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _5;
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _4;
-            MenhirLib.EngineTypes.startp = _startpos__4_;
-            MenhirLib.EngineTypes.endp = _endpos__4_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _3;
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = _2;
-                MenhirLib.EngineTypes.startp = _startpos__2_;
-                MenhirLib.EngineTypes.endp = _endpos__2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = _1;
-                  MenhirLib.EngineTypes.startp = _startpos__1_;
-                  MenhirLib.EngineTypes.endp = _endpos__1_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _5 : 'tv_single_statement = Obj.magic _5 in
-        let _4 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26497 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr = Obj.magic _3 in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26503 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 57 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26508 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_statement = 
-# 855 "parser_cocci_menhir.mly"
-    ( P.whileloop _1 _2 _3 _4 _5 )
-# 26515 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 36711 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let _startpos = _startpos_p00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let ty =
+            let p = p0 in
+            
+# 536 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = p in
+      Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
+# 36723 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 36729 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36736 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36742 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26523,75 +36750,73 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _7;
-          MenhirLib.EngineTypes.startp = _startpos__7_;
-          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _6;
-            MenhirLib.EngineTypes.startp = _startpos__6_;
-            MenhirLib.EngineTypes.endp = _endpos__6_;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _5;
-              MenhirLib.EngineTypes.startp = _startpos__5_;
-              MenhirLib.EngineTypes.endp = _endpos__5_;
+              MenhirLib.EngineTypes.startp = _startpos__2_;
+              MenhirLib.EngineTypes.endp = _endpos__2_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = _4;
-                MenhirLib.EngineTypes.startp = _startpos__4_;
-                MenhirLib.EngineTypes.endp = _endpos__4_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = _3;
-                  MenhirLib.EngineTypes.startp = _startpos__3_;
-                  MenhirLib.EngineTypes.endp = _endpos__3_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = _2;
-                    MenhirLib.EngineTypes.startp = _startpos__2_;
-                    MenhirLib.EngineTypes.endp = _endpos__2_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.semv = _1;
-                      MenhirLib.EngineTypes.startp = _startpos__1_;
-                      MenhirLib.EngineTypes.endp = _endpos__1_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
-                    };
-                  };
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = r00;
+                MenhirLib.EngineTypes.startp = _startpos_r00_;
+                MenhirLib.EngineTypes.endp = _endpos_r00_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
                 };
               };
             };
           } = _menhir_stack in
-        let _7 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26566 "parser_cocci_menhir.ml"
-        ) = Obj.magic _7 in
-        let _6 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26571 "parser_cocci_menhir.ml"
-        ) = Obj.magic _6 in
-        let _5 : 'tv_eexpr = Obj.magic _5 in
-        let _4 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26577 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : (
-# 57 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26582 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_single_statement = Obj.magic _2 in
-        let _1 : (
-# 57 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26588 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__7_ in
-        let _v : 'tv_statement = 
-# 857 "parser_cocci_menhir.mly"
-    ( P.doloop _1 _2 _3 _4 _5 _6 _7 )
-# 26595 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 36778 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r00 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 36783 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let _startpos = _startpos_r00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let r0 = r00 in
+          let ty =
+            let p = p0 in
+            let r = r0 in
+            
+# 539 "parser_cocci_menhir.mly"
+    ( let nm = (r,P.id2name p) in
+    (* this is only possible when we are in a metavar decl.  Otherwise,
+       it will be represented already as a MetaType *)
+    let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
+    Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
+                           Ast0.Impure (*will be ignored*))) )
+# 36801 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 36807 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36814 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36820 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26603,51 +36828,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _5;
-          MenhirLib.EngineTypes.startp = _startpos__5_;
-          MenhirLib.EngineTypes.endp = _endpos__5_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _4;
-            MenhirLib.EngineTypes.startp = _startpos__4_;
-            MenhirLib.EngineTypes.endp = _endpos__4_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _3;
-              MenhirLib.EngineTypes.startp = _startpos__3_;
-              MenhirLib.EngineTypes.endp = _endpos__3_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = _2;
-                MenhirLib.EngineTypes.startp = _startpos__2_;
-                MenhirLib.EngineTypes.endp = _endpos__2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = _1;
-                  MenhirLib.EngineTypes.startp = _startpos__1_;
-                  MenhirLib.EngineTypes.endp = _endpos__1_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
-                };
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _5 : 'tv_single_statement = Obj.magic _5 in
-        let _4 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26637 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr_list_option = Obj.magic _3 in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26643 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_iter_ident = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__5_ in
-        let _v : 'tv_statement = 
-# 859 "parser_cocci_menhir.mly"
-    ( P.iterator _1 _2 _3 _4 _5 )
-# 26651 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36847 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 546 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) )
+# 36858 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 36864 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36871 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36877 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26659,75 +36885,67 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _7;
-          MenhirLib.EngineTypes.startp = _startpos__7_;
-          MenhirLib.EngineTypes.endp = _endpos__7_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _6;
-            MenhirLib.EngineTypes.startp = _startpos__6_;
-            MenhirLib.EngineTypes.endp = _endpos__6_;
+            MenhirLib.EngineTypes.semv = ty200;
+            MenhirLib.EngineTypes.startp = _startpos_ty200_;
+            MenhirLib.EngineTypes.endp = _endpos_ty200_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = _5;
-              MenhirLib.EngineTypes.startp = _startpos__5_;
-              MenhirLib.EngineTypes.endp = _endpos__5_;
-              MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = _4;
-                MenhirLib.EngineTypes.startp = _startpos__4_;
-                MenhirLib.EngineTypes.endp = _endpos__4_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = _3;
-                  MenhirLib.EngineTypes.startp = _startpos__3_;
-                  MenhirLib.EngineTypes.endp = _endpos__3_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = _2;
-                    MenhirLib.EngineTypes.startp = _startpos__2_;
-                    MenhirLib.EngineTypes.endp = _endpos__2_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.state = _menhir_s;
-                      MenhirLib.EngineTypes.semv = _1;
-                      MenhirLib.EngineTypes.startp = _startpos__1_;
-                      MenhirLib.EngineTypes.endp = _endpos__1_;
-                      MenhirLib.EngineTypes.next = _menhir_stack;
-                      };
-                    };
-                  };
-                };
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = ty100;
+              MenhirLib.EngineTypes.startp = _startpos_ty100_;
+              MenhirLib.EngineTypes.endp = _endpos_ty100_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let _7 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26702 "parser_cocci_menhir.ml"
-        ) = Obj.magic _7 in
-        let _6 : 'tv_list_case_line_ = Obj.magic _6 in
-        let _5 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26708 "parser_cocci_menhir.ml"
-        ) = Obj.magic _5 in
-        let _4 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26713 "parser_cocci_menhir.ml"
-        ) = Obj.magic _4 in
-        let _3 : 'tv_eexpr = Obj.magic _3 in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26719 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 57 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26724 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__7_ in
-        let _v : 'tv_statement = 
-# 861 "parser_cocci_menhir.mly"
-    ( P.switch _1 _2 _3 _4 _5 _6 _7 )
-# 26731 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty200 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36909 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty200 in
+        let ty100 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36914 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty100 in
+        let _startpos = _startpos_ty100_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty20 = ty200 in
+          let ty10 = ty100 in
+          let ty =
+            let ty2 = ty20 in
+            let ty1 = ty10 in
+            
+# 548 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+       (Ast0.BaseType
+          (Ast.LongLongType,
+           [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
+# 36930 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 36936 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 36943 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 36949 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26739,39 +36957,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
-            MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
-              };
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _3 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26762 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_eexpr = Obj.magic _2 in
-        let _1 : (
-# 57 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26768 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_statement = 
-# 862 "parser_cocci_menhir.mly"
-                        ( P.ret_exp _1 _2 _3 )
-# 26775 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 36976 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 556 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) )
+# 36987 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 36993 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 37000 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37006 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26783,33 +37014,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26801 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 57 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26806 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_statement = 
-# 863 "parser_cocci_menhir.mly"
-                  ( P.ret _1 _2 )
-# 26813 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 37033 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 558 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) )
+# 37044 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 37050 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 37057 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37063 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26821,33 +37071,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
             MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26839 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 58 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26844 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_statement = 
-# 864 "parser_cocci_menhir.mly"
-                 ( P.break _1 _2 )
-# 26851 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 37090 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let _startpos = _startpos_ty00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 560 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) )
+# 37101 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 37107 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 37114 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37120 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26859,33 +37128,60 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = i00;
+            MenhirLib.EngineTypes.startp = _startpos_i00_;
+            MenhirLib.EngineTypes.endp = _endpos_i00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = s00;
+              MenhirLib.EngineTypes.startp = _startpos_s00_;
+              MenhirLib.EngineTypes.endp = _endpos_s00_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26877 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : (
-# 58 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26882 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_statement = 
-# 865 "parser_cocci_menhir.mly"
-                    ( P.cont _1 _2 )
-# 26889 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let i00 : 'tv_ident = Obj.magic i00 in
+        let s00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 37153 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let i0 = i00 in
+          let s0 = s00 in
+          let ty =
+            let i = i0 in
+            let s = s0 in
+            
+# 562 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) )
+# 37166 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 37172 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 37179 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37185 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26897,29 +37193,94 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
-          MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = ids00;
+              MenhirLib.EngineTypes.startp = _startpos_ids00_;
+              MenhirLib.EngineTypes.endp = _endpos_ids00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = s00;
+                  MenhirLib.EngineTypes.startp = _startpos_s00_;
+                  MenhirLib.EngineTypes.endp = _endpos_s00_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : (
-# 75 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26915 "parser_cocci_menhir.ml"
-        ) = Obj.magic _2 in
-        let _1 : 'tv_ident = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_statement = 
-# 866 "parser_cocci_menhir.mly"
-                ( P.label _1 _2 )
-# 26923 "parser_cocci_menhir.ml"
+# 37227 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 37233 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let s00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 37238 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let r0 = r00 in
+          let ids0 = ids00 in
+          let l0 = l00 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let ids = ids0 in
+            let l = l0 in
+            let s = s0 in
+            let i =
+              
+# 39 "standard.mly"
+    ( None )
+# 37256 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 564 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "enums must be named in the iso file");
+      Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
+                            P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
+# 37265 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 37271 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 37278 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37284 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26931,39 +37292,103 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = ids00;
+              MenhirLib.EngineTypes.startp = _startpos_ids00_;
+              MenhirLib.EngineTypes.endp = _endpos_ids00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = x000;
+                  MenhirLib.EngineTypes.startp = _startpos_x000_;
+                  MenhirLib.EngineTypes.endp = _endpos_x000_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = s00;
+                    MenhirLib.EngineTypes.startp = _startpos_s00_;
+                    MenhirLib.EngineTypes.endp = _endpos_s00_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
               };
             };
           } = _menhir_stack in
-        let _3 : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26954 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_ident = Obj.magic _2 in
-        let _1 : (
-# 58 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 26960 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_statement = 
-# 867 "parser_cocci_menhir.mly"
-                      ( P.goto _1 _2 _3 )
-# 26967 "parser_cocci_menhir.ml"
+# 37331 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 37337 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let x000 : 'tv_ident = Obj.magic x000 in
+        let s00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 37343 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let r0 = r00 in
+          let ids0 = ids00 in
+          let l0 = l00 in
+          let x00 = x000 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let ids = ids0 in
+            let l = l0 in
+            let x0 = x00 in
+            let s = s0 in
+            let i =
+              let x = x0 in
+              
+# 41 "standard.mly"
+    ( Some x )
+# 37364 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 564 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "enums must be named in the iso file");
+      Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
+                            P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
+# 37373 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 37379 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 37386 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37392 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -26975,39 +37400,56 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = i00;
+            MenhirLib.EngineTypes.startp = _startpos_i00_;
+            MenhirLib.EngineTypes.endp = _endpos_i00_;
             MenhirLib.EngineTypes.next = {
               MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
+              MenhirLib.EngineTypes.semv = s00;
+              MenhirLib.EngineTypes.startp = _startpos_s00_;
+              MenhirLib.EngineTypes.endp = _endpos_s00_;
               MenhirLib.EngineTypes.next = _menhir_stack;
               };
             };
           } = _menhir_stack in
-        let _3 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 26998 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_fun_start = Obj.magic _2 in
-        let _1 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27004 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_statement = 
-# 869 "parser_cocci_menhir.mly"
-    ( P.seq _1 _2 _3 )
-# 27011 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let i00 : 'tv_ident = Obj.magic i00 in
+        let s00 : 'tv_struct_or_union = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let i0 = i00 in
+          let s0 = s00 in
+          let ty =
+            let i = i0 in
+            let s = s0 in
+            
+# 569 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
+# 37434 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 37440 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 37447 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37453 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27019,29 +37461,91 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = w;
-          MenhirLib.EngineTypes.startp = _startpos_w_;
-          MenhirLib.EngineTypes.endp = _endpos_w_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = d00;
+              MenhirLib.EngineTypes.startp = _startpos_d00_;
+              MenhirLib.EngineTypes.endp = _endpos_d00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = s00;
+                  MenhirLib.EngineTypes.startp = _startpos_s00_;
+                  MenhirLib.EngineTypes.endp = _endpos_s00_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let w : 'tv_list_whenppdecs_ = Obj.magic w in
-        let _1 : (
-# 72 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27038 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos_w_ in
-        let _v : 'tv_stm_dots = 
-# 873 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." _1, List.concat w)) )
-# 27045 "parser_cocci_menhir.ml"
+# 37495 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let d00 : 'tv_struct_decl_list = Obj.magic d00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 37501 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let s00 : 'tv_struct_or_union = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let r0 = r00 in
+          let d0 = d00 in
+          let l0 = l00 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let d = d0 in
+            let l = l0 in
+            let s = s0 in
+            let i =
+              
+# 39 "standard.mly"
+    ( None )
+# 37520 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 572 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "structures must be named in the iso file");
+      Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
+                                   P.clt2mcode "{" l,
+                                   d, P.clt2mcode "}" r)) )
+# 37530 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 37536 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 37543 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37549 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27053,46 +37557,100 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = c;
-          MenhirLib.EngineTypes.startp = _startpos_c_;
-          MenhirLib.EngineTypes.endp = _endpos_c_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = b;
-            MenhirLib.EngineTypes.startp = _startpos_b_;
-            MenhirLib.EngineTypes.endp = _endpos_b_;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = w;
-              MenhirLib.EngineTypes.startp = _startpos_w_;
-              MenhirLib.EngineTypes.endp = _endpos_w_;
+              MenhirLib.EngineTypes.semv = d00;
+              MenhirLib.EngineTypes.startp = _startpos_d00_;
+              MenhirLib.EngineTypes.endp = _endpos_d00_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = _1;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = x000;
+                  MenhirLib.EngineTypes.startp = _startpos_x000_;
+                  MenhirLib.EngineTypes.endp = _endpos_x000_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = s00;
+                    MenhirLib.EngineTypes.startp = _startpos_s00_;
+                    MenhirLib.EngineTypes.endp = _endpos_s00_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
                 };
               };
             };
           } = _menhir_stack in
-        let c : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27081 "parser_cocci_menhir.ml"
-        ) = Obj.magic c in
-        let b : 'tv_nest_start = Obj.magic b in
-        let w : 'tv_list_whenppdecs_ = Obj.magic w in
-        let _1 : (
-# 72 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27088 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos_c_ in
-        let _v : 'tv_stm_dots = 
-# 875 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." _1, b,
-                         P.clt2mcode "...>" c, List.concat w, false)) )
-# 27096 "parser_cocci_menhir.ml"
+# 37596 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let d00 : 'tv_struct_decl_list = Obj.magic d00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 37602 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let x000 : 'tv_ident = Obj.magic x000 in
+        let s00 : 'tv_struct_or_union = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let r0 = r00 in
+          let d0 = d00 in
+          let l0 = l00 in
+          let x00 = x000 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let d = d0 in
+            let l = l0 in
+            let x0 = x00 in
+            let s = s0 in
+            let i =
+              let x = x0 in
+              
+# 41 "standard.mly"
+    ( Some x )
+# 37625 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 572 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "structures must be named in the iso file");
+      Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
+                                   P.clt2mcode "{" l,
+                                   d, P.clt2mcode "}" r)) )
+# 37635 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 37641 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 37648 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37654 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27104,46 +37662,86 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = c;
-          MenhirLib.EngineTypes.startp = _startpos_c_;
-          MenhirLib.EngineTypes.endp = _endpos_c_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = b;
-            MenhirLib.EngineTypes.startp = _startpos_b_;
-            MenhirLib.EngineTypes.endp = _endpos_b_;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = w;
-              MenhirLib.EngineTypes.startp = _startpos_w_;
-              MenhirLib.EngineTypes.endp = _endpos_w_;
+              MenhirLib.EngineTypes.semv = d00;
+              MenhirLib.EngineTypes.startp = _startpos_d00_;
+              MenhirLib.EngineTypes.endp = _endpos_d00_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = _1;
-                MenhirLib.EngineTypes.startp = _startpos__1_;
-                MenhirLib.EngineTypes.endp = _endpos__1_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = s00;
+                  MenhirLib.EngineTypes.startp = _startpos_s00_;
+                  MenhirLib.EngineTypes.endp = _endpos_s00_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
                 };
               };
             };
           } = _menhir_stack in
-        let c : (
-# 72 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27132 "parser_cocci_menhir.ml"
-        ) = Obj.magic c in
-        let b : 'tv_nest_start = Obj.magic b in
-        let w : 'tv_list_whenppdecs_ = Obj.magic w in
-        let _1 : (
-# 72 "parser_cocci_menhir.mly"
+# 37696 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let d00 : 'tv_struct_decl_list = Obj.magic d00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 27139 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos_c_ in
-        let _v : 'tv_stm_dots = 
-# 878 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." _1, b,
-                         P.clt2mcode "...+>" c, List.concat w, true)) )
-# 27147 "parser_cocci_menhir.ml"
+# 37702 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let s00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 37707 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let _startpos = _startpos_s00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let r0 = r00 in
+          let d0 = d00 in
+          let l0 = l00 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let d = d0 in
+            let l = l0 in
+            let s = s0 in
+            
+# 578 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = s in
+    let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in
+    Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) )
+# 37726 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 37732 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 37739 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37745 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27155,23 +37753,52 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = s;
-          MenhirLib.EngineTypes.startp = _startpos_s_;
-          MenhirLib.EngineTypes.endp = _endpos_s_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.state = _menhir_s;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = _menhir_stack;
+            };
           } = _menhir_stack in
-        let s : (
-# 53 "parser_cocci_menhir.mly"
-      (Data.clt)
-# 27168 "parser_cocci_menhir.ml"
-        ) = Obj.magic s in
-        let _startpos = _startpos_s_ in
-        let _endpos = _endpos_s_ in
-        let _v : 'tv_storage = 
-# 800 "parser_cocci_menhir.mly"
-                        ( P.clt2mcode Ast.Static s )
-# 27175 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 37772 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let _startpos = _startpos_p00_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let ty =
+            let p = p0 in
+            
+# 582 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
+# 37783 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 37789 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          
+# 39 "standard.mly"
+    ( None )
+# 37796 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37802 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27183,23 +37810,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = s;
-          MenhirLib.EngineTypes.startp = _startpos_s_;
-          MenhirLib.EngineTypes.endp = _endpos_s_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
           } = _menhir_stack in
-        let s : (
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 37839 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
 # 53 "parser_cocci_menhir.mly"
       (Data.clt)
-# 27196 "parser_cocci_menhir.ml"
-        ) = Obj.magic s in
-        let _startpos = _startpos_s_ in
-        let _endpos = _endpos_s_ in
-        let _v : 'tv_storage = 
-# 801 "parser_cocci_menhir.mly"
-                        ( P.clt2mcode Ast.Auto s )
-# 27203 "parser_cocci_menhir.ml"
+# 37844 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 530 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
+# 37857 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 37863 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 37871 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37877 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27211,23 +37885,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = s;
-          MenhirLib.EngineTypes.startp = _startpos_s_;
-          MenhirLib.EngineTypes.endp = _endpos_s_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
           } = _menhir_stack in
-        let s : (
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 37914 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
 # 53 "parser_cocci_menhir.mly"
       (Data.clt)
-# 27224 "parser_cocci_menhir.ml"
-        ) = Obj.magic s in
-        let _startpos = _startpos_s_ in
-        let _endpos = _endpos_s_ in
-        let _v : 'tv_storage = 
-# 802 "parser_cocci_menhir.mly"
-                        ( P.clt2mcode Ast.Register s )
-# 27231 "parser_cocci_menhir.ml"
+# 37919 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 532 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
+# 37932 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 37938 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 37946 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 37952 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27239,23 +37960,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = s;
-          MenhirLib.EngineTypes.startp = _startpos_s_;
-          MenhirLib.EngineTypes.endp = _endpos_s_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
           } = _menhir_stack in
-        let s : (
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 37989 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
 # 53 "parser_cocci_menhir.mly"
       (Data.clt)
-# 27252 "parser_cocci_menhir.ml"
-        ) = Obj.magic s in
-        let _startpos = _startpos_s_ in
-        let _endpos = _endpos_s_ in
-        let _v : 'tv_storage = 
-# 803 "parser_cocci_menhir.mly"
-                        ( P.clt2mcode Ast.Extern s )
-# 27259 "parser_cocci_menhir.ml"
+# 37994 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 534 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
+# 38007 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 38013 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 38021 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38027 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27267,17 +38035,71 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_struct_decl = 
-# 507 "parser_cocci_menhir.mly"
-               ( [] )
-# 27281 "parser_cocci_menhir.ml"
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 38064 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38069 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let r = r0 in
+          let ty =
+            let p = p0 in
+            
+# 536 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = p in
+      Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
+# 38083 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 38089 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 38097 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38103 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27289,36 +38111,91 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = t;
-              MenhirLib.EngineTypes.startp = _startpos_t_;
-              MenhirLib.EngineTypes.endp = _endpos_t_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.startp = _startpos__4_;
+              MenhirLib.EngineTypes.endp = _endpos__4_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = r00;
+                MenhirLib.EngineTypes.startp = _startpos_r00_;
+                MenhirLib.EngineTypes.endp = _endpos_r00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = r1;
+                  MenhirLib.EngineTypes.startp = _startpos_r1_;
+                  MenhirLib.EngineTypes.endp = _endpos_r1_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27312 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_d_ident = Obj.magic d in
-        let t : 'tv_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_struct_decl = 
-# 509 "parser_cocci_menhir.mly"
-  ( let (id,fn) = d in
-        [Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv))] )
-# 27322 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 38149 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r00 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 38154 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let r1 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38159 "parser_cocci_menhir.ml"
+        ) = Obj.magic r1 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let r0 = r00 in
+          let r = r1 in
+          let ty =
+            let p = p0 in
+            let r = r0 in
+            
+# 539 "parser_cocci_menhir.mly"
+    ( let nm = (r,P.id2name p) in
+    (* this is only possible when we are in a metavar decl.  Otherwise,
+       it will be represented already as a MetaType *)
+    let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
+    Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
+                           Ast0.Impure (*will be ignored*))) )
+# 38179 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 38185 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 38193 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38199 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27330,97 +38207,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = rp2;
-            MenhirLib.EngineTypes.startp = _startpos_rp2_;
-            MenhirLib.EngineTypes.endp = _endpos_rp2_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = p;
-              MenhirLib.EngineTypes.startp = _startpos_p_;
-              MenhirLib.EngineTypes.endp = _endpos_p_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = lp2;
-                MenhirLib.EngineTypes.startp = _startpos_lp2_;
-                MenhirLib.EngineTypes.endp = _endpos_lp2_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.semv = rp1;
-                  MenhirLib.EngineTypes.startp = _startpos_rp1_;
-                  MenhirLib.EngineTypes.endp = _endpos_rp1_;
-                  MenhirLib.EngineTypes.next = {
-                    MenhirLib.EngineTypes.semv = d;
-                    MenhirLib.EngineTypes.startp = _startpos_d_;
-                    MenhirLib.EngineTypes.endp = _endpos_d_;
-                    MenhirLib.EngineTypes.next = {
-                      MenhirLib.EngineTypes.semv = st;
-                      MenhirLib.EngineTypes.startp = _startpos_st_;
-                      MenhirLib.EngineTypes.endp = _endpos_st_;
-                      MenhirLib.EngineTypes.next = {
-                        MenhirLib.EngineTypes.semv = lp1;
-                        MenhirLib.EngineTypes.startp = _startpos_lp1_;
-                        MenhirLib.EngineTypes.endp = _endpos_lp1_;
-                        MenhirLib.EngineTypes.next = {
-                          MenhirLib.EngineTypes.state = _menhir_s;
-                          MenhirLib.EngineTypes.semv = t;
-                          MenhirLib.EngineTypes.startp = _startpos_t_;
-                          MenhirLib.EngineTypes.endp = _endpos_t_;
-                          MenhirLib.EngineTypes.next = _menhir_stack;
-                          };
-                        };
-                      };
-                    };
-                  };
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
                 };
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27383 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let rp2 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27388 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp2 in
-        let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in
-        let lp2 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27394 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp2 in
-        let rp1 : (
-# 76 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27399 "parser_cocci_menhir.ml"
-        ) = Obj.magic rp1 in
-        let d : 'tv_d_ident = Obj.magic d in
-        let st : (
-# 98 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27405 "parser_cocci_menhir.ml"
-        ) = Obj.magic st in
-        let lp1 : (
-# 75 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27410 "parser_cocci_menhir.ml"
-        ) = Obj.magic lp1 in
-        let t : 'tv_fn_ctype = Obj.magic t in
-        let _startpos = _startpos_t_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_struct_decl = 
-# 513 "parser_cocci_menhir.mly"
-        ( let (id,fn) = d in
-        let t =
-         Ast0.wrap
-           (Ast0.FunctionPointer
-              (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1,
-               P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in
-        [Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv))] )
-# 27424 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38236 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38241 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 546 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) )
+# 38254 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 38260 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 38268 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38274 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27432,44 +38282,85 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.semv = ty200;
+            MenhirLib.EngineTypes.startp = _startpos_ty200_;
+            MenhirLib.EngineTypes.endp = _endpos_ty200_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = i;
-              MenhirLib.EngineTypes.startp = _startpos_i_;
-              MenhirLib.EngineTypes.endp = _endpos_i_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = ty100;
+              MenhirLib.EngineTypes.startp = _startpos_ty100_;
+              MenhirLib.EngineTypes.endp = _endpos_ty100_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = r0;
+                MenhirLib.EngineTypes.startp = _startpos_r0_;
+                MenhirLib.EngineTypes.endp = _endpos_r0_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = x0;
+                  MenhirLib.EngineTypes.startp = _startpos_x0_;
+                  MenhirLib.EngineTypes.endp = _endpos_x0_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27455 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
-        let _startpos = _startpos_i_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_struct_decl = let cv =
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty200 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38316 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty200 in
+        let ty100 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38321 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty100 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38326 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty20 = ty200 in
+          let ty10 = ty100 in
+          let r = r0 in
+          let ty =
+            let ty2 = ty20 in
+            let ty1 = ty10 in
+            
+# 548 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+       (Ast0.BaseType
+          (Ast.LongLongType,
+           [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
+# 38344 "parser_cocci_menhir.ml"
+            
+          in
           
-# 39 "standard.mly"
-    ( None )
-# 27465 "parser_cocci_menhir.ml"
+# 587 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) )
+# 38350 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 38358 "parser_cocci_menhir.ml"
           
         in
         
-# 521 "parser_cocci_menhir.mly"
-  ( let (id,fn) = d in
-        let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-        [Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv))] )
-# 27473 "parser_cocci_menhir.ml"
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38364 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27481,17 +38372,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = pv;
-          MenhirLib.EngineTypes.startp = _startpos_pv_;
-          MenhirLib.EngineTypes.endp = _endpos_pv_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = i;
-              MenhirLib.EngineTypes.startp = _startpos_i_;
-              MenhirLib.EngineTypes.endp = _endpos_i_;
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
               MenhirLib.EngineTypes.next = {
                 MenhirLib.EngineTypes.state = _menhir_s;
                 MenhirLib.EngineTypes.semv = x0;
@@ -27502,78 +38393,49 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
               };
             };
           } = _menhir_stack in
-        let pv : (
-# 106 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27509 "parser_cocci_menhir.ml"
-        ) = Obj.magic pv in
-        let d : 'tv_d_ident = Obj.magic d in
-        let i : 'tv_pure_ident = Obj.magic i in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38401 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38406 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
         let x0 : 'tv_const_vol = Obj.magic x0 in
         let _startpos = _startpos_x0_ in
-        let _endpos = _endpos_pv_ in
-        let _v : 'tv_struct_decl = let cv =
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 530 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
+# 38419 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 38425 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
           let x = x0 in
           
 # 41 "standard.mly"
     ( Some x )
-# 27521 "parser_cocci_menhir.ml"
+# 38433 "parser_cocci_menhir.ml"
           
         in
         
-# 521 "parser_cocci_menhir.mly"
-  ( let (id,fn) = d in
-        let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in
-        [Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv))] )
-# 27529 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_struct_decl_list_start = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_struct_decl_list = 
-# 526 "parser_cocci_menhir.mly"
-                          ( Ast0.wrap(Ast0.DOTS(_1)) )
-# 27553 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_struct_decl = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_struct_decl_list_start = 
-# 529 "parser_cocci_menhir.mly"
-                                     ( _1 )
-# 27577 "parser_cocci_menhir.ml"
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38439 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27585,25 +38447,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_struct_decl_list_start = Obj.magic _2 in
-        let _1 : 'tv_struct_decl = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_struct_decl_list_start = 
-# 530 "parser_cocci_menhir.mly"
-                                     ( _1@_2 )
-# 27607 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38476 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38481 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 532 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
+# 38494 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 38500 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 38508 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38514 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27615,81 +38522,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = r;
-          MenhirLib.EngineTypes.startp = _startpos_r_;
-          MenhirLib.EngineTypes.endp = _endpos_r_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = d;
-            MenhirLib.EngineTypes.startp = _startpos_d_;
-            MenhirLib.EngineTypes.endp = _endpos_d_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let r : 'tv_continue_struct_decl_list = Obj.magic r in
-        let d : 'tv_edots_when_TEllipsis_struct_decl_ = Obj.magic d in
-        let _startpos = _startpos_d_ in
-        let _endpos = _endpos_r_ in
-        let _v : 'tv_struct_decl_list_start = 
-# 532 "parser_cocci_menhir.mly"
-    ( (P.mkddots "..." d)::r )
-# 27637 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = s;
-          MenhirLib.EngineTypes.startp = _startpos_s_;
-          MenhirLib.EngineTypes.endp = _endpos_s_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let s : (
-# 50 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
       (Data.clt)
-# 27658 "parser_cocci_menhir.ml"
-        ) = Obj.magic s in
-        let _startpos = _startpos_s_ in
-        let _endpos = _endpos_s_ in
-        let _v : 'tv_struct_or_union = 
-# 503 "parser_cocci_menhir.mly"
-                 ( P.clt2mcode Ast.Struct s )
-# 27665 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = u;
-          MenhirLib.EngineTypes.startp = _startpos_u_;
-          MenhirLib.EngineTypes.endp = _endpos_u_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let u : (
-# 50 "parser_cocci_menhir.mly"
+# 38551 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
       (Data.clt)
-# 27686 "parser_cocci_menhir.ml"
-        ) = Obj.magic u in
-        let _startpos = _startpos_u_ in
-        let _endpos = _endpos_u_ in
-        let _v : 'tv_struct_or_union = 
-# 504 "parser_cocci_menhir.mly"
-                 ( P.clt2mcode Ast.Union u )
-# 27693 "parser_cocci_menhir.ml"
+# 38556 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 534 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
+# 38569 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 38575 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 38583 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38589 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27701,19 +38597,71 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = _1;
-          MenhirLib.EngineTypes.startp = _startpos__1_;
-          MenhirLib.EngineTypes.endp = _endpos__1_;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          } = _menhir_stack in
-        let _1 : 'tv_eexpr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__1_ in
-        let _v : 'tv_top_eexpr = 
-# 1188 "parser_cocci_menhir.mly"
-        ( Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))) )
-# 27717 "parser_cocci_menhir.ml"
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 38626 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38631 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let r = r0 in
+          let ty =
+            let p = p0 in
+            
+# 536 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = p in
+      Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
+# 38645 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 38651 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 38659 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38665 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27725,56 +38673,91 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _3;
-          MenhirLib.EngineTypes.startp = _startpos__3_;
-          MenhirLib.EngineTypes.endp = _endpos__3_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = _2;
-            MenhirLib.EngineTypes.startp = _startpos__2_;
-            MenhirLib.EngineTypes.endp = _endpos__2_;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = _1;
-              MenhirLib.EngineTypes.startp = _startpos__1_;
-              MenhirLib.EngineTypes.endp = _endpos__1_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.startp = _startpos__4_;
+              MenhirLib.EngineTypes.endp = _endpos__4_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = r00;
+                MenhirLib.EngineTypes.startp = _startpos_r00_;
+                MenhirLib.EngineTypes.endp = _endpos_r00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = r1;
+                  MenhirLib.EngineTypes.startp = _startpos_r1_;
+                  MenhirLib.EngineTypes.endp = _endpos_r1_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
               };
             };
           } = _menhir_stack in
-        let _3 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27748 "parser_cocci_menhir.ml"
-        ) = Obj.magic _3 in
-        let _2 : 'tv_initialize_list = Obj.magic _2 in
-        let _1 : (
-# 100 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 27754 "parser_cocci_menhir.ml"
-        ) = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__3_ in
-        let _v : 'tv_top_init = 
-# 1625 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) )
-# 27761 "parser_cocci_menhir.ml"
-         in
-        _menhir_env.MenhirLib.EngineTypes.stack <- {
-          MenhirLib.EngineTypes.state = _menhir_s;
-          MenhirLib.EngineTypes.semv = Obj.repr _v;
-          MenhirLib.EngineTypes.startp = _startpos;
-          MenhirLib.EngineTypes.endp = _endpos;
-          MenhirLib.EngineTypes.next = _menhir_stack;
-          });
-      (fun _menhir_env ->
-        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_toplevel_after_dots = 
-# 1613 "parser_cocci_menhir.mly"
-                                     ([])
-# 27778 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 38711 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r00 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 38716 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let r1 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38721 "parser_cocci_menhir.ml"
+        ) = Obj.magic r1 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let r0 = r00 in
+          let r = r1 in
+          let ty =
+            let p = p0 in
+            let r = r0 in
+            
+# 539 "parser_cocci_menhir.mly"
+    ( let nm = (r,P.id2name p) in
+    (* this is only possible when we are in a metavar decl.  Otherwise,
+       it will be represented already as a MetaType *)
+    let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
+    Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
+                           Ast0.Impure (*will be ignored*))) )
+# 38741 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 38747 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 38755 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38761 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27786,23 +38769,70 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = r0;
+              MenhirLib.EngineTypes.startp = _startpos_r0_;
+              MenhirLib.EngineTypes.endp = _endpos_r0_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_after_dots = 
-# 1614 "parser_cocci_menhir.mly"
-                                     (_2)
-# 27806 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38798 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38803 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let r = r0 in
+          let ty =
+            let ty = ty0 in
+            
+# 546 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) )
+# 38816 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 38822 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 38830 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38836 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27814,25 +38844,85 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty200;
+            MenhirLib.EngineTypes.startp = _startpos_ty200_;
+            MenhirLib.EngineTypes.endp = _endpos_ty200_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = ty100;
+              MenhirLib.EngineTypes.startp = _startpos_ty100_;
+              MenhirLib.EngineTypes.endp = _endpos_ty100_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = r0;
+                MenhirLib.EngineTypes.startp = _startpos_r0_;
+                MenhirLib.EngineTypes.endp = _endpos_r0_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = x0;
+                  MenhirLib.EngineTypes.startp = _startpos_x0_;
+                  MenhirLib.EngineTypes.endp = _endpos_x0_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in
-        let _1 : 'tv_expr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_after_dots = 
-# 1615 "parser_cocci_menhir.mly"
-                                     ((Ast0.wrap(Ast0.Exp(_1)))::_2)
-# 27836 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty200 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38878 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty200 in
+        let ty100 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38883 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty100 in
+        let r0 : (
+# 53 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38888 "parser_cocci_menhir.ml"
+        ) = Obj.magic r0 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty20 = ty200 in
+          let ty10 = ty100 in
+          let r = r0 in
+          let ty =
+            let ty2 = ty20 in
+            let ty1 = ty10 in
+            
+# 548 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+       (Ast0.BaseType
+          (Ast.LongLongType,
+           [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
+# 38906 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 589 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) )
+# 38912 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 38920 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38926 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27844,25 +38934,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_after_dots = 
-# 1616 "parser_cocci_menhir.mly"
-                                          (_1@_2)
-# 27866 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 38958 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 530 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) )
+# 38970 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 38976 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 38984 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 38990 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27874,23 +38998,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_after_dots_init = 
-# 1604 "parser_cocci_menhir.mly"
-                                     (_2)
-# 27894 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 39022 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 532 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) )
+# 39034 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 39040 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39048 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39054 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27902,25 +39062,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in
-        let _1 : 'tv_expr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_after_dots_init = 
-# 1605 "parser_cocci_menhir.mly"
-                                     ((Ast0.wrap(Ast0.Exp(_1)))::_2)
-# 27924 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 39086 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 534 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) )
+# 39098 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 39104 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39112 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39118 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27932,25 +39126,60 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_after_dots_init = 
-# 1606 "parser_cocci_menhir.mly"
-                                          (_1@_2)
-# 27954 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 39150 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let ty =
+            let p = p0 in
+            
+# 536 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = p in
+      Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
+# 39163 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 39169 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39177 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39183 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27961,13 +39190,81 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_toplevel_after_exp = 
-# 1609 "parser_cocci_menhir.mly"
-                                     ([])
-# 27971 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.startp = _startpos__3_;
+              MenhirLib.EngineTypes.endp = _endpos__3_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = r00;
+                MenhirLib.EngineTypes.startp = _startpos_r00_;
+                MenhirLib.EngineTypes.endp = _endpos_r00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.state = _menhir_s;
+                  MenhirLib.EngineTypes.semv = x0;
+                  MenhirLib.EngineTypes.startp = _startpos_x0_;
+                  MenhirLib.EngineTypes.endp = _endpos_x0_;
+                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  };
+                };
+              };
+            };
+          } = _menhir_stack in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 39224 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let r00 : (
+# 49 "parser_cocci_menhir.mly"
+      (string)
+# 39229 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let r0 = r00 in
+          let ty =
+            let p = p0 in
+            let r = r0 in
+            
+# 539 "parser_cocci_menhir.mly"
+    ( let nm = (r,P.id2name p) in
+    (* this is only possible when we are in a metavar decl.  Otherwise,
+       it will be represented already as a MetaType *)
+    let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in
+    Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p),
+                           Ast0.Impure (*will be ignored*))) )
+# 39248 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 39254 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39262 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39268 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -27979,25 +39276,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_dots = Obj.magic _2 in
-        let _1 : 'tv_stm_dots = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_after_exp = 
-# 1610 "parser_cocci_menhir.mly"
-                                     (_1::_2)
-# 28001 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 39300 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 546 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) )
+# 39312 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 39318 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39326 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39332 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28008,13 +39339,75 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           });
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
-        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
-        let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in
-        let _endpos = _startpos in
-        let _v : 'tv_toplevel_after_stm = 
-# 1619 "parser_cocci_menhir.mly"
-                                     ([])
-# 28018 "parser_cocci_menhir.ml"
+        let {
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
+          MenhirLib.EngineTypes.next = {
+            MenhirLib.EngineTypes.semv = ty200;
+            MenhirLib.EngineTypes.startp = _startpos_ty200_;
+            MenhirLib.EngineTypes.endp = _endpos_ty200_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = ty100;
+              MenhirLib.EngineTypes.startp = _startpos_ty100_;
+              MenhirLib.EngineTypes.endp = _endpos_ty100_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
+            };
+          } = _menhir_stack in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty200 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 39369 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty200 in
+        let ty100 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 39374 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty100 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty20 = ty200 in
+          let ty10 = ty100 in
+          let ty =
+            let ty2 = ty20 in
+            let ty1 = ty10 in
+            
+# 548 "parser_cocci_menhir.mly"
+    ( Ast0.wrap
+       (Ast0.BaseType
+          (Ast.LongLongType,
+           [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) )
+# 39391 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 590 "parser_cocci_menhir.mly"
+                    ( ty )
+# 39397 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39405 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39411 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28026,25 +39419,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_dots = Obj.magic _2 in
-        let _1 : 'tv_stm_dots = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_after_stm = 
-# 1620 "parser_cocci_menhir.mly"
-                                     (_1::_2)
-# 28048 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 39443 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 556 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) )
+# 39455 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 39461 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39469 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39475 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28056,25 +39483,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_after_stm = 
-# 1621 "parser_cocci_menhir.mly"
-                                     (_1@_2)
-# 28078 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 39507 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 558 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) )
+# 39519 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 39525 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39533 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39539 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28086,25 +39547,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = ty00;
+            MenhirLib.EngineTypes.startp = _startpos_ty00_;
+            MenhirLib.EngineTypes.endp = _endpos_ty00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_dots = Obj.magic _2 in
-        let _1 : 'tv_stm_dots = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = 
-# 1599 "parser_cocci_menhir.mly"
-                                     ( _1::_2 )
-# 28108 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let ty00 : (
+# 51 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 39571 "parser_cocci_menhir.ml"
+        ) = Obj.magic ty00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let ty0 = ty00 in
+          let ty =
+            let ty = ty0 in
+            
+# 560 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) )
+# 39583 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 39589 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39597 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39603 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28116,25 +39611,67 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = i00;
+            MenhirLib.EngineTypes.startp = _startpos_i00_;
+            MenhirLib.EngineTypes.endp = _endpos_i00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = s00;
+              MenhirLib.EngineTypes.startp = _startpos_s00_;
+              MenhirLib.EngineTypes.endp = _endpos_s00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in
-        let _1 : 'tv_expr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = 
-# 1600 "parser_cocci_menhir.mly"
-                                     ( (Ast0.wrap(Ast0.Exp(_1)))::_2 )
-# 28138 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let i00 : 'tv_ident = Obj.magic i00 in
+        let s00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 39641 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let i0 = i00 in
+          let s0 = s00 in
+          let ty =
+            let i = i0 in
+            let s = s0 in
+            
+# 562 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, Some i)) )
+# 39655 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 39661 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39669 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39675 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28146,25 +39683,101 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.semv = ids00;
+              MenhirLib.EngineTypes.startp = _startpos_ids00_;
+              MenhirLib.EngineTypes.endp = _endpos_ids00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = s00;
+                  MenhirLib.EngineTypes.startp = _startpos_s00_;
+                  MenhirLib.EngineTypes.endp = _endpos_s00_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
+                };
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = 
-# 1601 "parser_cocci_menhir.mly"
-                                          ( _1@_2 )
-# 28168 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 39722 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 39728 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let s00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 39733 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let r0 = r00 in
+          let ids0 = ids00 in
+          let l0 = l00 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let ids = ids0 in
+            let l = l0 in
+            let s = s0 in
+            let i =
+              
+# 39 "standard.mly"
+    ( None )
+# 39752 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 564 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "enums must be named in the iso file");
+      Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
+                            P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
+# 39761 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 39767 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39775 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39781 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28176,44 +39789,110 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = w0;
-            MenhirLib.EngineTypes.startp = _startpos_w0_;
-            MenhirLib.EngineTypes.endp = _endpos_w0_;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.state = _menhir_s;
-              MenhirLib.EngineTypes.semv = a0;
-              MenhirLib.EngineTypes.startp = _startpos_a0_;
-              MenhirLib.EngineTypes.endp = _endpos_a0_;
-              MenhirLib.EngineTypes.next = _menhir_stack;
+              MenhirLib.EngineTypes.semv = ids00;
+              MenhirLib.EngineTypes.startp = _startpos_ids00_;
+              MenhirLib.EngineTypes.endp = _endpos_ids00_;
+              MenhirLib.EngineTypes.next = {
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = x000;
+                  MenhirLib.EngineTypes.startp = _startpos_x000_;
+                  MenhirLib.EngineTypes.endp = _endpos_x000_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = s00;
+                    MenhirLib.EngineTypes.startp = _startpos_s00_;
+                    MenhirLib.EngineTypes.endp = _endpos_s00_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = x0;
+                      MenhirLib.EngineTypes.startp = _startpos_x0_;
+                      MenhirLib.EngineTypes.endp = _endpos_x0_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
+                };
               };
             };
           } = _menhir_stack in
-        let b : 'tv_toplevel_after_dots_init = Obj.magic b in
-        let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
-        let a0 : (
-# 72 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28201 "parser_cocci_menhir.ml"
-        ) = Obj.magic a0 in
-        let _startpos = _startpos_a0_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a =
-          let w = w0 in
-          let a = a0 in
+# 39833 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let ids00 : 'tv_enum_decl_list = Obj.magic ids00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 39839 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let x000 : 'tv_ident = Obj.magic x000 in
+        let s00 : (
+# 52 "parser_cocci_menhir.mly"
+      (Data.clt)
+# 39845 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let r0 = r00 in
+          let ids0 = ids00 in
+          let l0 = l00 in
+          let x00 = x000 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let ids = ids0 in
+            let l = l0 in
+            let x0 = x00 in
+            let s = s0 in
+            let i =
+              let x = x0 in
+              
+# 41 "standard.mly"
+    ( Some x )
+# 39867 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 564 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "enums must be named in the iso file");
+      Ast0.wrap(Ast0.EnumDef(Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)),
+                            P.clt2mcode "{" l, ids, P.clt2mcode "}" r)) )
+# 39876 "parser_cocci_menhir.ml"
+            
+          in
           
-# 883 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." a, List.concat w)) )
-# 28211 "parser_cocci_menhir.ml"
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 39882 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39890 "parser_cocci_menhir.ml"
           
         in
         
-# 1592 "parser_cocci_menhir.mly"
-                                             ( a::b )
-# 28217 "parser_cocci_menhir.ml"
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39896 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28225,63 +39904,63 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = c0;
-            MenhirLib.EngineTypes.startp = _startpos_c0_;
-            MenhirLib.EngineTypes.endp = _endpos_c0_;
+            MenhirLib.EngineTypes.semv = i00;
+            MenhirLib.EngineTypes.startp = _startpos_i00_;
+            MenhirLib.EngineTypes.endp = _endpos_i00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = b0;
-              MenhirLib.EngineTypes.startp = _startpos_b0_;
-              MenhirLib.EngineTypes.endp = _endpos_b0_;
+              MenhirLib.EngineTypes.semv = s00;
+              MenhirLib.EngineTypes.startp = _startpos_s00_;
+              MenhirLib.EngineTypes.endp = _endpos_s00_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = w0;
-                MenhirLib.EngineTypes.startp = _startpos_w0_;
-                MenhirLib.EngineTypes.endp = _endpos_w0_;
-                MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = a0;
-                  MenhirLib.EngineTypes.startp = _startpos_a0_;
-                  MenhirLib.EngineTypes.endp = _endpos_a0_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
-                  };
+                MenhirLib.EngineTypes.state = _menhir_s;
+                MenhirLib.EngineTypes.semv = x0;
+                MenhirLib.EngineTypes.startp = _startpos_x0_;
+                MenhirLib.EngineTypes.endp = _endpos_x0_;
+                MenhirLib.EngineTypes.next = _menhir_stack;
                 };
               };
             };
           } = _menhir_stack in
-        let b : 'tv_toplevel_after_dots_init = Obj.magic b in
-        let c0 : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 28259 "parser_cocci_menhir.ml"
-        ) = Obj.magic c0 in
-        let b0 : 'tv_nest_start = Obj.magic b0 in
-        let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
-        let a0 : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 28266 "parser_cocci_menhir.ml"
-        ) = Obj.magic a0 in
-        let _startpos = _startpos_a0_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a =
-          let c = c0 in
-          let b = b0 in
-          let w = w0 in
-          let a = a0 in
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let i00 : 'tv_ident = Obj.magic i00 in
+        let s00 : 'tv_struct_or_union = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let i0 = i00 in
+          let s0 = s00 in
+          let ty =
+            let i = i0 in
+            let s = s0 in
+            
+# 569 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) )
+# 39944 "parser_cocci_menhir.ml"
+            
+          in
           
-# 887 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b,
-                         P.clt2mcode "...>" c, List.concat w, false)) )
-# 28279 "parser_cocci_menhir.ml"
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 39950 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 39958 "parser_cocci_menhir.ml"
           
         in
         
-# 1593 "parser_cocci_menhir.mly"
-                                              ( a::b )
-# 28285 "parser_cocci_menhir.ml"
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 39964 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28293,63 +39972,98 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = b;
-          MenhirLib.EngineTypes.startp = _startpos_b_;
-          MenhirLib.EngineTypes.endp = _endpos_b_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = c0;
-            MenhirLib.EngineTypes.startp = _startpos_c0_;
-            MenhirLib.EngineTypes.endp = _endpos_c0_;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = b0;
-              MenhirLib.EngineTypes.startp = _startpos_b0_;
-              MenhirLib.EngineTypes.endp = _endpos_b0_;
+              MenhirLib.EngineTypes.semv = d00;
+              MenhirLib.EngineTypes.startp = _startpos_d00_;
+              MenhirLib.EngineTypes.endp = _endpos_d00_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.semv = w0;
-                MenhirLib.EngineTypes.startp = _startpos_w0_;
-                MenhirLib.EngineTypes.endp = _endpos_w0_;
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
                 MenhirLib.EngineTypes.next = {
-                  MenhirLib.EngineTypes.state = _menhir_s;
-                  MenhirLib.EngineTypes.semv = a0;
-                  MenhirLib.EngineTypes.startp = _startpos_a0_;
-                  MenhirLib.EngineTypes.endp = _endpos_a0_;
-                  MenhirLib.EngineTypes.next = _menhir_stack;
+                  MenhirLib.EngineTypes.semv = s00;
+                  MenhirLib.EngineTypes.startp = _startpos_s00_;
+                  MenhirLib.EngineTypes.endp = _endpos_s00_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
                   };
                 };
               };
             };
           } = _menhir_stack in
-        let b : 'tv_toplevel_after_dots_init = Obj.magic b in
-        let c0 : (
-# 72 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28327 "parser_cocci_menhir.ml"
-        ) = Obj.magic c0 in
-        let b0 : 'tv_nest_start = Obj.magic b0 in
-        let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
-        let a0 : (
-# 72 "parser_cocci_menhir.mly"
+# 40011 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let d00 : 'tv_struct_decl_list = Obj.magic d00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28334 "parser_cocci_menhir.ml"
-        ) = Obj.magic a0 in
-        let _startpos = _startpos_a0_ in
-        let _endpos = _endpos_b_ in
-        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a =
-          let c = c0 in
-          let b = b0 in
-          let w = w0 in
-          let a = a0 in
+# 40017 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let s00 : 'tv_struct_or_union = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let r0 = r00 in
+          let d0 = d00 in
+          let l0 = l00 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let d = d0 in
+            let l = l0 in
+            let s = s0 in
+            let i =
+              
+# 39 "standard.mly"
+    ( None )
+# 40037 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 572 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "structures must be named in the iso file");
+      Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
+                                   P.clt2mcode "{" l,
+                                   d, P.clt2mcode "}" r)) )
+# 40047 "parser_cocci_menhir.ml"
+            
+          in
           
-# 890 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b,
-                         P.clt2mcode "...+>" c, List.concat w, true)) )
-# 28347 "parser_cocci_menhir.ml"
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 40053 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 40061 "parser_cocci_menhir.ml"
           
         in
         
-# 1593 "parser_cocci_menhir.mly"
-                                              ( a::b )
-# 28353 "parser_cocci_menhir.ml"
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 40067 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28361,57 +40075,107 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = c0;
-          MenhirLib.EngineTypes.startp = _startpos_c0_;
-          MenhirLib.EngineTypes.endp = _endpos_c0_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = b0;
-            MenhirLib.EngineTypes.startp = _startpos_b0_;
-            MenhirLib.EngineTypes.endp = _endpos_b0_;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = w0;
-              MenhirLib.EngineTypes.startp = _startpos_w0_;
-              MenhirLib.EngineTypes.endp = _endpos_w0_;
+              MenhirLib.EngineTypes.semv = d00;
+              MenhirLib.EngineTypes.startp = _startpos_d00_;
+              MenhirLib.EngineTypes.endp = _endpos_d00_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = a0;
-                MenhirLib.EngineTypes.startp = _startpos_a0_;
-                MenhirLib.EngineTypes.endp = _endpos_a0_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = x000;
+                  MenhirLib.EngineTypes.startp = _startpos_x000_;
+                  MenhirLib.EngineTypes.endp = _endpos_x000_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.semv = s00;
+                    MenhirLib.EngineTypes.startp = _startpos_s00_;
+                    MenhirLib.EngineTypes.endp = _endpos_s00_;
+                    MenhirLib.EngineTypes.next = {
+                      MenhirLib.EngineTypes.state = _menhir_s;
+                      MenhirLib.EngineTypes.semv = x0;
+                      MenhirLib.EngineTypes.startp = _startpos_x0_;
+                      MenhirLib.EngineTypes.endp = _endpos_x0_;
+                      MenhirLib.EngineTypes.next = _menhir_stack;
+                      };
+                    };
+                  };
                 };
               };
             };
           } = _menhir_stack in
-        let c0 : (
-# 72 "parser_cocci_menhir.mly"
-       (Data.clt)
-# 28389 "parser_cocci_menhir.ml"
-        ) = Obj.magic c0 in
-        let b0 : 'tv_nest_start = Obj.magic b0 in
-        let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
-        let a0 : (
-# 72 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28396 "parser_cocci_menhir.ml"
-        ) = Obj.magic a0 in
-        let _startpos = _startpos_a0_ in
-        let _endpos = _endpos_c0_ in
-        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a =
-          let c = c0 in
-          let b = b0 in
-          let w = w0 in
-          let a = a0 in
+# 40119 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let d00 : 'tv_struct_decl_list = Obj.magic d00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 40125 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let x000 : 'tv_ident = Obj.magic x000 in
+        let s00 : 'tv_struct_or_union = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let r0 = r00 in
+          let d0 = d00 in
+          let l0 = l00 in
+          let x00 = x000 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let d = d0 in
+            let l = l0 in
+            let x0 = x00 in
+            let s = s0 in
+            let i =
+              let x = x0 in
+              
+# 41 "standard.mly"
+    ( Some x )
+# 40149 "parser_cocci_menhir.ml"
+              
+            in
+            
+# 572 "parser_cocci_menhir.mly"
+    ( (if i = None && !Data.in_iso
+    then failwith "structures must be named in the iso file");
+      Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)),
+                                   P.clt2mcode "{" l,
+                                   d, P.clt2mcode "}" r)) )
+# 40159 "parser_cocci_menhir.ml"
+            
+          in
           
-# 887 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b,
-                         P.clt2mcode "...>" c, List.concat w, false)) )
-# 28409 "parser_cocci_menhir.ml"
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 40165 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 40173 "parser_cocci_menhir.ml"
           
         in
         
-# 1594 "parser_cocci_menhir.mly"
-                                       ( [a] )
-# 28415 "parser_cocci_menhir.ml"
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 40179 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28423,57 +40187,93 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = c0;
-          MenhirLib.EngineTypes.startp = _startpos_c0_;
-          MenhirLib.EngineTypes.endp = _endpos_c0_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.semv = b0;
-            MenhirLib.EngineTypes.startp = _startpos_b0_;
-            MenhirLib.EngineTypes.endp = _endpos_b0_;
+            MenhirLib.EngineTypes.semv = r00;
+            MenhirLib.EngineTypes.startp = _startpos_r00_;
+            MenhirLib.EngineTypes.endp = _endpos_r00_;
             MenhirLib.EngineTypes.next = {
-              MenhirLib.EngineTypes.semv = w0;
-              MenhirLib.EngineTypes.startp = _startpos_w0_;
-              MenhirLib.EngineTypes.endp = _endpos_w0_;
+              MenhirLib.EngineTypes.semv = d00;
+              MenhirLib.EngineTypes.startp = _startpos_d00_;
+              MenhirLib.EngineTypes.endp = _endpos_d00_;
               MenhirLib.EngineTypes.next = {
-                MenhirLib.EngineTypes.state = _menhir_s;
-                MenhirLib.EngineTypes.semv = a0;
-                MenhirLib.EngineTypes.startp = _startpos_a0_;
-                MenhirLib.EngineTypes.endp = _endpos_a0_;
-                MenhirLib.EngineTypes.next = _menhir_stack;
+                MenhirLib.EngineTypes.semv = l00;
+                MenhirLib.EngineTypes.startp = _startpos_l00_;
+                MenhirLib.EngineTypes.endp = _endpos_l00_;
+                MenhirLib.EngineTypes.next = {
+                  MenhirLib.EngineTypes.semv = s00;
+                  MenhirLib.EngineTypes.startp = _startpos_s00_;
+                  MenhirLib.EngineTypes.endp = _endpos_s00_;
+                  MenhirLib.EngineTypes.next = {
+                    MenhirLib.EngineTypes.state = _menhir_s;
+                    MenhirLib.EngineTypes.semv = x0;
+                    MenhirLib.EngineTypes.startp = _startpos_x0_;
+                    MenhirLib.EngineTypes.endp = _endpos_x0_;
+                    MenhirLib.EngineTypes.next = _menhir_stack;
+                    };
+                  };
                 };
               };
             };
           } = _menhir_stack in
-        let c0 : (
-# 72 "parser_cocci_menhir.mly"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let r00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28451 "parser_cocci_menhir.ml"
-        ) = Obj.magic c0 in
-        let b0 : 'tv_nest_start = Obj.magic b0 in
-        let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in
-        let a0 : (
-# 72 "parser_cocci_menhir.mly"
+# 40226 "parser_cocci_menhir.ml"
+        ) = Obj.magic r00 in
+        let d00 : 'tv_struct_decl_list = Obj.magic d00 in
+        let l00 : (
+# 104 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28458 "parser_cocci_menhir.ml"
-        ) = Obj.magic a0 in
-        let _startpos = _startpos_a0_ in
-        let _endpos = _endpos_c0_ in
-        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = let a =
-          let c = c0 in
-          let b = b0 in
-          let w = w0 in
-          let a = a0 in
+# 40232 "parser_cocci_menhir.ml"
+        ) = Obj.magic l00 in
+        let s00 : (
+# 67 "parser_cocci_menhir.mly"
+       (Parse_aux.info)
+# 40237 "parser_cocci_menhir.ml"
+        ) = Obj.magic s00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let r0 = r00 in
+          let d0 = d00 in
+          let l0 = l00 in
+          let s0 = s00 in
+          let ty =
+            let r = r0 in
+            let d = d0 in
+            let l = l0 in
+            let s = s0 in
+            
+# 578 "parser_cocci_menhir.mly"
+    ( let (nm,pure,clt) = s in
+    let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in
+    Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) )
+# 40257 "parser_cocci_menhir.ml"
+            
+          in
           
-# 890 "parser_cocci_menhir.mly"
-    ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b,
-                         P.clt2mcode "...+>" c, List.concat w, true)) )
-# 28471 "parser_cocci_menhir.ml"
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 40263 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 40271 "parser_cocci_menhir.ml"
           
         in
         
-# 1594 "parser_cocci_menhir.mly"
-                                       ( [a] )
-# 28477 "parser_cocci_menhir.ml"
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 40277 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28485,25 +40285,59 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = m;
+          MenhirLib.EngineTypes.startp = _startpos_m_;
+          MenhirLib.EngineTypes.endp = _endpos_m_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = p00;
+            MenhirLib.EngineTypes.startp = _startpos_p00_;
+            MenhirLib.EngineTypes.endp = _endpos_p00_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = x0;
+              MenhirLib.EngineTypes.startp = _startpos_x0_;
+              MenhirLib.EngineTypes.endp = _endpos_x0_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_exp = Obj.magic _2 in
-        let _1 : 'tv_expr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = 
-# 1595 "parser_cocci_menhir.mly"
-                                     ( (Ast0.wrap(Ast0.Exp(_1)))::_2 )
-# 28507 "parser_cocci_menhir.ml"
+        let m : 'tv_list_TMul_ = Obj.magic m in
+        let p00 : (
+# 61 "parser_cocci_menhir.mly"
+       (string * Data.clt)
+# 40309 "parser_cocci_menhir.ml"
+        ) = Obj.magic p00 in
+        let x0 : 'tv_const_vol = Obj.magic x0 in
+        let _startpos = _startpos_x0_ in
+        let _endpos = _endpos_m_ in
+        let _v : 'tv_typedef_ctype = let ty =
+          let p0 = p00 in
+          let ty =
+            let p = p0 in
+            
+# 582 "parser_cocci_menhir.mly"
+    ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) )
+# 40321 "parser_cocci_menhir.ml"
+            
+          in
+          
+# 591 "parser_cocci_menhir.mly"
+                        ( ty )
+# 40327 "parser_cocci_menhir.ml"
+          
+        in
+        let cv =
+          let x = x0 in
+          
+# 41 "standard.mly"
+    ( Some x )
+# 40335 "parser_cocci_menhir.ml"
+          
+        in
+        
+# 608 "parser_cocci_menhir.mly"
+    ( P.pointerify (P.make_cv cv ty) m )
+# 40341 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28515,25 +40349,41 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
       (fun _menhir_env ->
         let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
         let {
-          MenhirLib.EngineTypes.semv = _2;
-          MenhirLib.EngineTypes.startp = _startpos__2_;
-          MenhirLib.EngineTypes.endp = _endpos__2_;
+          MenhirLib.EngineTypes.semv = rp;
+          MenhirLib.EngineTypes.startp = _startpos_rp_;
+          MenhirLib.EngineTypes.endp = _endpos_rp_;
           MenhirLib.EngineTypes.next = {
-            MenhirLib.EngineTypes.state = _menhir_s;
-            MenhirLib.EngineTypes.semv = _1;
-            MenhirLib.EngineTypes.startp = _startpos__1_;
-            MenhirLib.EngineTypes.endp = _endpos__1_;
-            MenhirLib.EngineTypes.next = _menhir_stack;
+            MenhirLib.EngineTypes.semv = t;
+            MenhirLib.EngineTypes.startp = _startpos_t_;
+            MenhirLib.EngineTypes.endp = _endpos_t_;
+            MenhirLib.EngineTypes.next = {
+              MenhirLib.EngineTypes.state = _menhir_s;
+              MenhirLib.EngineTypes.semv = lp;
+              MenhirLib.EngineTypes.startp = _startpos_lp_;
+              MenhirLib.EngineTypes.endp = _endpos_lp_;
+              MenhirLib.EngineTypes.next = _menhir_stack;
+              };
             };
           } = _menhir_stack in
-        let _2 : 'tv_toplevel_after_stm = Obj.magic _2 in
-        let _1 : 'tv_decl_statement_expr = Obj.magic _1 in
-        let _startpos = _startpos__1_ in
-        let _endpos = _endpos__2_ in
-        let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = 
-# 1596 "parser_cocci_menhir.mly"
-                                          ( _1@_2 )
-# 28537 "parser_cocci_menhir.ml"
+        let rp : (
+# 80 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 40372 "parser_cocci_menhir.ml"
+        ) = Obj.magic rp in
+        let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in
+        let lp : (
+# 79 "parser_cocci_menhir.mly"
+       (Data.clt)
+# 40378 "parser_cocci_menhir.ml"
+        ) = Obj.magic lp in
+        let _startpos = _startpos_lp_ in
+        let _endpos = _endpos_rp_ in
+        let _v : 'tv_typedef_ctype = 
+# 610 "parser_cocci_menhir.mly"
+    ( let (mids,code) = t in
+      Ast0.wrap
+       (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) )
+# 40387 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28555,9 +40405,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_typedef_ident = 
-# 1505 "parser_cocci_menhir.mly"
+# 1720 "parser_cocci_menhir.mly"
          ( Ast0.wrap(Ast0.TypeName(P.id2mcode _1)) )
-# 28561 "parser_cocci_menhir.ml"
+# 40411 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28576,17 +40426,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 64 "parser_cocci_menhir.mly"
+# 67 "parser_cocci_menhir.mly"
        (Parse_aux.info)
-# 28582 "parser_cocci_menhir.ml"
+# 40432 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_typedef_ident = 
-# 1507 "parser_cocci_menhir.mly"
+# 1722 "parser_cocci_menhir.mly"
          ( let (nm,pure,clt) = _1 in
         Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) )
-# 28590 "parser_cocci_menhir.ml"
+# 40440 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28608,9 +40458,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1277 "parser_cocci_menhir.mly"
+# 1358 "parser_cocci_menhir.mly"
                                          ( _1 )
-# 28614 "parser_cocci_menhir.ml"
+# 40464 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28635,16 +40485,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in
         let _1 : (
-# 84 "parser_cocci_menhir.mly"
+# 88 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28641 "parser_cocci_menhir.ml"
+# 40491 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1279 "parser_cocci_menhir.mly"
+# 1360 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
-# 28648 "parser_cocci_menhir.ml"
+# 40498 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28669,16 +40519,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in
         let _1 : (
-# 84 "parser_cocci_menhir.mly"
+# 88 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28675 "parser_cocci_menhir.ml"
+# 40525 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1281 "parser_cocci_menhir.mly"
+# 1362 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
-# 28682 "parser_cocci_menhir.ml"
+# 40532 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28701,14 +40551,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in
+        let _2 : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic _2 in
         let _1 : 'tv_unary_op = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1283 "parser_cocci_menhir.mly"
+# 1364 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 28712 "parser_cocci_menhir.ml"
+# 40562 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28733,17 +40583,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in
         let _1 : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28739 "parser_cocci_menhir.ml"
+# 40589 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1285 "parser_cocci_menhir.mly"
+# 1366 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 28747 "parser_cocci_menhir.ml"
+# 40597 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28768,16 +40618,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in
         let _1 : (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28774 "parser_cocci_menhir.ml"
+# 40624 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1288 "parser_cocci_menhir.mly"
+# 1369 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
-# 28781 "parser_cocci_menhir.ml"
+# 40631 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28811,29 +40661,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 76 "parser_cocci_menhir.mly"
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28817 "parser_cocci_menhir.ml"
+# 40667 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28823 "parser_cocci_menhir.ml"
+# 40673 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28828 "parser_cocci_menhir.ml"
+# 40678 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_unary_expr_eexpr_dot_expressions_ = 
-# 1290 "parser_cocci_menhir.mly"
+# 1371 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
-# 28837 "parser_cocci_menhir.ml"
+# 40687 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28855,9 +40705,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1277 "parser_cocci_menhir.mly"
+# 1358 "parser_cocci_menhir.mly"
                                          ( _1 )
-# 28861 "parser_cocci_menhir.ml"
+# 40711 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28882,16 +40732,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in
         let _1 : (
-# 84 "parser_cocci_menhir.mly"
+# 88 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28888 "parser_cocci_menhir.ml"
+# 40738 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1279 "parser_cocci_menhir.mly"
+# 1360 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
-# 28895 "parser_cocci_menhir.ml"
+# 40745 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28916,16 +40766,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in
         let _1 : (
-# 84 "parser_cocci_menhir.mly"
+# 88 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28922 "parser_cocci_menhir.ml"
+# 40772 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1281 "parser_cocci_menhir.mly"
+# 1362 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
-# 28929 "parser_cocci_menhir.ml"
+# 40779 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28948,14 +40798,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in
+        let _2 : 'tv_cast_expr_eexpr_invalid_ = Obj.magic _2 in
         let _1 : 'tv_unary_op = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1283 "parser_cocci_menhir.mly"
+# 1364 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 28959 "parser_cocci_menhir.ml"
+# 40809 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -28980,17 +40830,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in
         let _1 : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 28986 "parser_cocci_menhir.ml"
+# 40836 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1285 "parser_cocci_menhir.mly"
+# 1366 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 28994 "parser_cocci_menhir.ml"
+# 40844 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29015,16 +40865,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in
         let _1 : (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29021 "parser_cocci_menhir.ml"
+# 40871 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1288 "parser_cocci_menhir.mly"
+# 1369 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
-# 29028 "parser_cocci_menhir.ml"
+# 40878 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29058,29 +40908,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 76 "parser_cocci_menhir.mly"
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29064 "parser_cocci_menhir.ml"
+# 40914 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29070 "parser_cocci_menhir.ml"
+# 40920 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29075 "parser_cocci_menhir.ml"
+# 40925 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_unary_expr_eexpr_invalid_ = 
-# 1290 "parser_cocci_menhir.mly"
+# 1371 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
-# 29084 "parser_cocci_menhir.ml"
+# 40934 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29102,9 +40952,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1277 "parser_cocci_menhir.mly"
+# 1358 "parser_cocci_menhir.mly"
                                          ( _1 )
-# 29108 "parser_cocci_menhir.ml"
+# 40958 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29129,16 +40979,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in
         let _1 : (
-# 84 "parser_cocci_menhir.mly"
+# 88 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29135 "parser_cocci_menhir.ml"
+# 40985 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1279 "parser_cocci_menhir.mly"
+# 1360 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
-# 29142 "parser_cocci_menhir.ml"
+# 40992 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29163,16 +41013,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in
         let _1 : (
-# 84 "parser_cocci_menhir.mly"
+# 88 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29169 "parser_cocci_menhir.ml"
+# 41019 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1281 "parser_cocci_menhir.mly"
+# 1362 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
-# 29176 "parser_cocci_menhir.ml"
+# 41026 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29195,14 +41045,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in
+        let _2 : 'tv_cast_expr_eexpr_nest_expressions_ = Obj.magic _2 in
         let _1 : 'tv_unary_op = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1283 "parser_cocci_menhir.mly"
+# 1364 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 29206 "parser_cocci_menhir.ml"
+# 41056 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29227,17 +41077,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in
         let _1 : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29233 "parser_cocci_menhir.ml"
+# 41083 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1285 "parser_cocci_menhir.mly"
+# 1366 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 29241 "parser_cocci_menhir.ml"
+# 41091 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29262,16 +41112,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in
         let _1 : (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29268 "parser_cocci_menhir.ml"
+# 41118 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1288 "parser_cocci_menhir.mly"
+# 1369 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
-# 29275 "parser_cocci_menhir.ml"
+# 41125 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29305,29 +41155,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 76 "parser_cocci_menhir.mly"
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29311 "parser_cocci_menhir.ml"
+# 41161 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29317 "parser_cocci_menhir.ml"
+# 41167 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29322 "parser_cocci_menhir.ml"
+# 41172 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_unary_expr_eexpr_nest_expressions_ = 
-# 1290 "parser_cocci_menhir.mly"
+# 1371 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
-# 29331 "parser_cocci_menhir.ml"
+# 41181 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29349,9 +41199,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1277 "parser_cocci_menhir.mly"
+# 1358 "parser_cocci_menhir.mly"
                                          ( _1 )
-# 29355 "parser_cocci_menhir.ml"
+# 41205 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29376,16 +41226,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in
         let _1 : (
-# 84 "parser_cocci_menhir.mly"
+# 88 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29382 "parser_cocci_menhir.ml"
+# 41232 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1279 "parser_cocci_menhir.mly"
+# 1360 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) )
-# 29389 "parser_cocci_menhir.ml"
+# 41239 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29410,16 +41260,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in
         let _1 : (
-# 84 "parser_cocci_menhir.mly"
+# 88 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29416 "parser_cocci_menhir.ml"
+# 41266 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1281 "parser_cocci_menhir.mly"
+# 1362 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) )
-# 29423 "parser_cocci_menhir.ml"
+# 41273 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29442,14 +41292,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             MenhirLib.EngineTypes.next = _menhir_stack;
             };
           } = _menhir_stack in
-        let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in
+        let _2 : 'tv_cast_expr_expr_invalid_ = Obj.magic _2 in
         let _1 : 'tv_unary_op = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1283 "parser_cocci_menhir.mly"
+# 1364 "parser_cocci_menhir.mly"
       ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 29453 "parser_cocci_menhir.ml"
+# 41303 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29474,17 +41324,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in
         let _1 : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29480 "parser_cocci_menhir.ml"
+# 41330 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1285 "parser_cocci_menhir.mly"
+# 1366 "parser_cocci_menhir.mly"
       ( let mcode = P.clt2mcode Ast.Not _1 in
       Ast0.wrap(Ast0.Unary(_2, mcode)) )
-# 29488 "parser_cocci_menhir.ml"
+# 41338 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29509,16 +41359,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           } = _menhir_stack in
         let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in
         let _1 : (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29515 "parser_cocci_menhir.ml"
+# 41365 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1288 "parser_cocci_menhir.mly"
+# 1369 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) )
-# 29522 "parser_cocci_menhir.ml"
+# 41372 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29552,29 +41402,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
             };
           } = _menhir_stack in
         let rp : (
-# 76 "parser_cocci_menhir.mly"
+# 80 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29558 "parser_cocci_menhir.ml"
+# 41408 "parser_cocci_menhir.ml"
         ) = Obj.magic rp in
         let t : 'tv_ctype = Obj.magic t in
         let lp : (
-# 75 "parser_cocci_menhir.mly"
+# 79 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29564 "parser_cocci_menhir.ml"
+# 41414 "parser_cocci_menhir.ml"
         ) = Obj.magic lp in
         let s : (
-# 58 "parser_cocci_menhir.mly"
+# 60 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29569 "parser_cocci_menhir.ml"
+# 41419 "parser_cocci_menhir.ml"
         ) = Obj.magic s in
         let _startpos = _startpos_s_ in
         let _endpos = _endpos_rp_ in
         let _v : 'tv_unary_expr_expr_invalid_ = 
-# 1290 "parser_cocci_menhir.mly"
+# 1371 "parser_cocci_menhir.mly"
       ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s,
                                    P.clt2mcode "(" lp,t,
                                    P.clt2mcode ")" rp)) )
-# 29578 "parser_cocci_menhir.ml"
+# 41428 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29593,16 +41443,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 92 "parser_cocci_menhir.mly"
+# 96 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29599 "parser_cocci_menhir.ml"
+# 41449 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1294 "parser_cocci_menhir.mly"
+# 1375 "parser_cocci_menhir.mly"
                   ( P.clt2mcode Ast.GetRef _1 )
-# 29606 "parser_cocci_menhir.ml"
+# 41456 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29621,16 +41471,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 98 "parser_cocci_menhir.mly"
+# 102 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29627 "parser_cocci_menhir.ml"
+# 41477 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1295 "parser_cocci_menhir.mly"
+# 1376 "parser_cocci_menhir.mly"
            ( P.clt2mcode Ast.DeRef _1 )
-# 29634 "parser_cocci_menhir.ml"
+# 41484 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29649,16 +41499,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 97 "parser_cocci_menhir.mly"
+# 101 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29655 "parser_cocci_menhir.ml"
+# 41505 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1296 "parser_cocci_menhir.mly"
+# 1377 "parser_cocci_menhir.mly"
            ( P.clt2mcode Ast.UnPlus _1 )
-# 29662 "parser_cocci_menhir.ml"
+# 41512 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29677,16 +41527,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 97 "parser_cocci_menhir.mly"
+# 101 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29683 "parser_cocci_menhir.ml"
+# 41533 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1297 "parser_cocci_menhir.mly"
+# 1378 "parser_cocci_menhir.mly"
            ( P.clt2mcode Ast.UnMinus _1 )
-# 29690 "parser_cocci_menhir.ml"
+# 41540 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29705,16 +41555,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
         let _1 : (
-# 98 "parser_cocci_menhir.mly"
+# 102 "parser_cocci_menhir.mly"
        (Data.clt)
-# 29711 "parser_cocci_menhir.ml"
+# 41561 "parser_cocci_menhir.ml"
         ) = Obj.magic _1 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__1_ in
         let _v : 'tv_unary_op = 
-# 1298 "parser_cocci_menhir.mly"
+# 1379 "parser_cocci_menhir.mly"
            ( P.clt2mcode Ast.Tilde _1 )
-# 29718 "parser_cocci_menhir.ml"
+# 41568 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29742,9 +41592,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_when_start = 
-# 1718 "parser_cocci_menhir.mly"
+# 1972 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.DOTS((Ast0.wrap(Ast0.Exp(_1)))::_2)) )
-# 29748 "parser_cocci_menhir.ml"
+# 41598 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29772,9 +41622,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__2_ in
         let _v : 'tv_when_start = 
-# 1720 "parser_cocci_menhir.mly"
+# 1974 "parser_cocci_menhir.mly"
     ( Ast0.wrap(Ast0.DOTS(_1@_2)) )
-# 29778 "parser_cocci_menhir.ml"
+# 41628 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29792,13 +41642,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
           MenhirLib.EngineTypes.endp = _endpos_w_;
           MenhirLib.EngineTypes.next = _menhir_stack;
           } = _menhir_stack in
-        let w : 'tv_whens_when_start_rule_elem_statement_ = Obj.magic w in
+        let w : 'tv_whens_when_start_rule_elem_statement_any_strict_ = Obj.magic w in
         let _startpos = _startpos_w_ in
         let _endpos = _endpos_w_ in
         let _v : 'tv_whenppdecs = 
-# 894 "parser_cocci_menhir.mly"
+# 977 "parser_cocci_menhir.mly"
     ( w )
-# 29802 "parser_cocci_menhir.ml"
+# 41652 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29831,10 +41681,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let w : 'tv_when_start = Obj.magic w in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
-        let _v : 'tv_whens_when_start_rule_elem_statement_ = 
-# 1786 "parser_cocci_menhir.mly"
+        let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = 
+# 2019 "parser_cocci_menhir.mly"
                                          ( [Ast0.WhenNot w] )
-# 29838 "parser_cocci_menhir.ml"
+# 41688 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29867,10 +41717,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let w : 'tv_rule_elem_statement = Obj.magic w in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
-        let _v : 'tv_whens_when_start_rule_elem_statement_ = 
-# 1787 "parser_cocci_menhir.mly"
+        let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = 
+# 2020 "parser_cocci_menhir.mly"
                                              ( [Ast0.WhenAlways w] )
-# 29874 "parser_cocci_menhir.ml"
+# 41724 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29899,10 +41749,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let _2 : 'tv_comma_list_any_strict_ = Obj.magic _2 in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__3_ in
-        let _v : 'tv_whens_when_start_rule_elem_statement_ = 
-# 1789 "parser_cocci_menhir.mly"
+        let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = 
+# 2022 "parser_cocci_menhir.mly"
       ( List.map (function x -> Ast0.WhenModifier(x)) _2 )
-# 29906 "parser_cocci_menhir.ml"
+# 41756 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29935,10 +41785,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let e : 'tv_eexpr = Obj.magic e in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
-        let _v : 'tv_whens_when_start_rule_elem_statement_ = 
-# 1790 "parser_cocci_menhir.mly"
+        let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = 
+# 2023 "parser_cocci_menhir.mly"
                                         ( [Ast0.WhenNotTrue e] )
-# 29942 "parser_cocci_menhir.ml"
+# 41792 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29971,10 +41821,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
         let e : 'tv_eexpr = Obj.magic e in
         let _startpos = _startpos__1_ in
         let _endpos = _endpos__4_ in
-        let _v : 'tv_whens_when_start_rule_elem_statement_ = 
-# 1791 "parser_cocci_menhir.mly"
+        let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = 
+# 2024 "parser_cocci_menhir.mly"
                                          ( [Ast0.WhenNotFalse e] )
-# 29978 "parser_cocci_menhir.ml"
+# 41828 "parser_cocci_menhir.ml"
          in
         _menhir_env.MenhirLib.EngineTypes.stack <- {
           MenhirLib.EngineTypes.state = _menhir_s;
@@ -29995,106 +41845,106 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct
 
 let rec script_meta_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1531 lexer lexbuf) : (
-# 158 "parser_cocci_menhir.mly"
-       (string * (string * string))
-# 30002 "parser_cocci_menhir.ml"
+    (Obj.magic (MenhirInterpreter.entry 1929 lexer lexbuf) : (
+# 164 "parser_cocci_menhir.mly"
+       ((string option (*string*) * string option (*ast*)) * (Ast_cocci.meta_name * Ast_cocci.metavar) option)
+# 41852 "parser_cocci_menhir.ml"
     ))
 
 and rule_name =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1467 lexer lexbuf) : (
-# 152 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1854 lexer lexbuf) : (
+# 158 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
-# 30010 "parser_cocci_menhir.ml"
+# 41860 "parser_cocci_menhir.ml"
     ))
 
 and reinit =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1465 lexer lexbuf) : (
-# 130 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1852 lexer lexbuf) : (
+# 136 "parser_cocci_menhir.mly"
       (unit)
-# 30018 "parser_cocci_menhir.ml"
+# 41868 "parser_cocci_menhir.ml"
     ))
 
 and plus_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1429 lexer lexbuf) : (
-# 139 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1816 lexer lexbuf) : (
+# 145 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 30026 "parser_cocci_menhir.ml"
+# 41876 "parser_cocci_menhir.ml"
     ))
 
 and plus_exp_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1420 lexer lexbuf) : (
-# 142 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1808 lexer lexbuf) : (
+# 148 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 30034 "parser_cocci_menhir.ml"
+# 41884 "parser_cocci_menhir.ml"
     ))
 
 and never_used =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1414 lexer lexbuf) : (
-# 167 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1802 lexer lexbuf) : (
+# 173 "parser_cocci_menhir.mly"
       (unit)
-# 30042 "parser_cocci_menhir.ml"
+# 41892 "parser_cocci_menhir.ml"
     ))
 
 and minus_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1328 lexer lexbuf) : (
-# 133 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1718 lexer lexbuf) : (
+# 139 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 30050 "parser_cocci_menhir.ml"
+# 41900 "parser_cocci_menhir.ml"
     ))
 
 and minus_exp_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1304 lexer lexbuf) : (
-# 136 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1706 lexer lexbuf) : (
+# 142 "parser_cocci_menhir.mly"
       (Ast0_cocci.rule)
-# 30058 "parser_cocci_menhir.ml"
+# 41908 "parser_cocci_menhir.ml"
     ))
 
 and meta_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1301 lexer lexbuf) : (
-# 156 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1703 lexer lexbuf) : (
+# 162 "parser_cocci_menhir.mly"
       ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
-# 30066 "parser_cocci_menhir.ml"
+# 41916 "parser_cocci_menhir.ml"
     ))
 
 and iso_rule_name =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1297 lexer lexbuf) : (
-# 148 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1699 lexer lexbuf) : (
+# 154 "parser_cocci_menhir.mly"
       (Ast_cocci.rulename)
-# 30074 "parser_cocci_menhir.ml"
+# 41924 "parser_cocci_menhir.ml"
     ))
 
 and iso_meta_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 1104 lexer lexbuf) : (
-# 164 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 1432 lexer lexbuf) : (
+# 170 "parser_cocci_menhir.mly"
       ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list)
-# 30082 "parser_cocci_menhir.ml"
+# 41932 "parser_cocci_menhir.ml"
     ))
 
 and iso_main =
   fun lexer lexbuf ->
-    (Obj.magic (MenhirInterpreter.entry 10 lexer lexbuf) : (
-# 161 "parser_cocci_menhir.mly"
+    (Obj.magic (MenhirInterpreter.entry 18 lexer lexbuf) : (
+# 167 "parser_cocci_menhir.mly"
       (Ast0_cocci.anything list list)
-# 30090 "parser_cocci_menhir.ml"
+# 41940 "parser_cocci_menhir.ml"
     ))
 
 and include_main =
   fun lexer lexbuf ->
     (Obj.magic (MenhirInterpreter.entry 0 lexer lexbuf) : (
-# 145 "parser_cocci_menhir.mly"
-      ((string,string) Common.either list)
-# 30098 "parser_cocci_menhir.ml"
+# 151 "parser_cocci_menhir.mly"
+      (Data.incl_iso list)
+# 41948 "parser_cocci_menhir.ml"
     ))