dlog:
   40|    619|void dlog(int level, int flevel, char const *fmt, ...) {}
LLVMFuzzerTestOneInput:
   48|    619|int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   49|    619|    char filename[] = "/tmp/fuzz-config-XXXXXX";
   50|    619|    int fd = mkstemp(filename);
   51|    619|    if (fd < 0) {
  ------------------
  |  Branch (51:9): [True: 0, False: 619]
  ------------------
   52|      0|        return 0;
   53|      0|    }
   54|    619|    write(fd, data, size);
   55|    619|    close(fd);
   56|       |
   57|    619|    struct Interface *ifaces = readin_config(filename);
   58|       |    
   59|    619|    if (ifaces) {
  ------------------
  |  Branch (59:9): [True: 0, False: 619]
  ------------------
   60|      0|        free_ifaces(ifaces);
   61|      0|    }
   62|       |    
   63|    619|    unlink(filename);
   64|    619|    return 0;
   65|    619|}

yyparse:
 1448|    619|{
 1449|    619|    yy_state_fast_t yystate = 0;
 1450|       |    /* Number of tokens to shift before error messages enabled.  */
 1451|    619|    int yyerrstatus = 0;
 1452|       |
 1453|       |    /* Refer to the stacks through separate pointers, to allow yyoverflow
 1454|       |       to reallocate them elsewhere.  */
 1455|       |
 1456|       |    /* Their size.  */
 1457|    619|    YYPTRDIFF_T yystacksize = YYINITDEPTH;
  ------------------
  |  |  580|    619|#  define YYPTRDIFF_T __PTRDIFF_TYPE__
  ------------------
                  YYPTRDIFF_T yystacksize = YYINITDEPTH;
  ------------------
  |  | 1393|    619|# define YYINITDEPTH 200
  ------------------
 1458|       |
 1459|       |    /* The state stack: array, bottom, top.  */
 1460|    619|    yy_state_t yyssa[YYINITDEPTH];
 1461|    619|    yy_state_t *yyss = yyssa;
 1462|    619|    yy_state_t *yyssp = yyss;
 1463|       |
 1464|       |    /* The semantic value stack: array, bottom, top.  */
 1465|    619|    YYSTYPE yyvsa[YYINITDEPTH];
 1466|    619|    YYSTYPE *yyvs = yyvsa;
 1467|    619|    YYSTYPE *yyvsp = yyvs;
 1468|       |
 1469|    619|  int yyn;
 1470|       |  /* The return value of yyparse.  */
 1471|    619|  int yyresult;
 1472|       |  /* Lookahead symbol kind.  */
 1473|    619|  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
 1474|       |  /* The variables used to return semantic value and location from the
 1475|       |     action routines.  */
 1476|    619|  YYSTYPE yyval;
 1477|       |
 1478|       |
 1479|       |
 1480|    619|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 1481|       |
 1482|       |  /* The number of symbols on the RHS of the reduced rule.
 1483|       |     Keep to zero when no symbol should be popped.  */
 1484|    619|  int yylen = 0;
 1485|       |
 1486|    619|  YYDPRINTF ((stderr, "Starting parse\n"));
  ------------------
  |  | 1384|    619|# define YYDPRINTF(Args) ((void) 0)
  ------------------
 1487|       |
 1488|    619|  yychar = YYEMPTY; /* Cause a token to be read.  */
  ------------------
  |  |  226|    619|#define YYEMPTY -2
  ------------------
 1489|       |
 1490|    619|  goto yysetstate;
 1491|       |
 1492|       |
 1493|       |/*------------------------------------------------------------.
 1494|       || yynewstate -- push a new state, which is found in yystate.  |
 1495|       |`------------------------------------------------------------*/
 1496|      0|yynewstate:
 1497|       |  /* In all cases, when you get here, the value and location stacks
 1498|       |     have just been pushed.  So pushing a state here evens the stacks.  */
 1499|      0|  yyssp++;
 1500|       |
 1501|       |
 1502|       |/*--------------------------------------------------------------------.
 1503|       || yysetstate -- set current state (the top of the stack) to yystate.  |
 1504|       |`--------------------------------------------------------------------*/
 1505|    619|yysetstate:
 1506|    619|  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
  ------------------
  |  | 1384|    619|# define YYDPRINTF(Args) ((void) 0)
  ------------------
 1507|    619|  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
  ------------------
  |  |  696|    619|#define YY_ASSERT(E) ((void) (0 && (E)))
  |  |  ------------------
  |  |  |  Branch (696:31): [Folded, False: 619]
  |  |  |  Branch (696:37): [True: 0, False: 0]
  |  |  |  Branch (696:37): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1508|    619|  YY_IGNORE_USELESS_CAST_BEGIN
 1509|    619|  *yyssp = YY_CAST (yy_state_t, yystate);
  ------------------
  |  |  112|    619|#   define YY_CAST(Type, Val) ((Type) (Val))
  ------------------
 1510|    619|  YY_IGNORE_USELESS_CAST_END
 1511|    619|  YY_STACK_PRINT (yyss, yyssp);
 1512|       |
 1513|    619|  if (yyss + yystacksize - 1 <= yyssp)
  ------------------
  |  Branch (1513:7): [True: 0, False: 619]
  ------------------
 1514|       |#if !defined yyoverflow && !defined YYSTACK_RELOCATE
 1515|       |    YYNOMEM;
 1516|       |#else
 1517|      0|    {
 1518|       |      /* Get the current used size of the three stacks, in elements.  */
 1519|      0|      YYPTRDIFF_T yysize = yyssp - yyss + 1;
  ------------------
  |  |  580|      0|#  define YYPTRDIFF_T __PTRDIFF_TYPE__
  ------------------
 1520|       |
 1521|       |# if defined yyoverflow
 1522|       |      {
 1523|       |        /* Give user a chance to reallocate the stack.  Use copies of
 1524|       |           these so that the &'s don't force the real ones into
 1525|       |           memory.  */
 1526|       |        yy_state_t *yyss1 = yyss;
 1527|       |        YYSTYPE *yyvs1 = yyvs;
 1528|       |
 1529|       |        /* Each stack pointer address is followed by the size of the
 1530|       |           data in use in that stack, in bytes.  This used to be a
 1531|       |           conditional around just the two extra args, but that might
 1532|       |           be undefined if yyoverflow is a macro.  */
 1533|       |        yyoverflow (YY_("memory exhausted"),
 1534|       |                    &yyss1, yysize * YYSIZEOF (*yyssp),
 1535|       |                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
 1536|       |                    &yystacksize);
 1537|       |        yyss = yyss1;
 1538|       |        yyvs = yyvs1;
 1539|       |      }
 1540|       |# else /* defined YYSTACK_RELOCATE */
 1541|       |      /* Extend the stack our own way.  */
 1542|      0|      if (YYMAXDEPTH <= yystacksize)
  ------------------
  |  | 1404|      0|# define YYMAXDEPTH 10000
  ------------------
  |  Branch (1542:11): [True: 0, False: 0]
  ------------------
 1543|      0|        YYNOMEM;
  ------------------
  |  | 1237|      0|#define YYNOMEM         goto yyexhaustedlab
  ------------------
 1544|      0|      yystacksize *= 2;
 1545|      0|      if (YYMAXDEPTH < yystacksize)
  ------------------
  |  | 1404|      0|# define YYMAXDEPTH 10000
  ------------------
  |  Branch (1545:11): [True: 0, False: 0]
  ------------------
 1546|      0|        yystacksize = YYMAXDEPTH;
  ------------------
  |  | 1404|      0|# define YYMAXDEPTH 10000
  ------------------
 1547|       |
 1548|      0|      {
 1549|      0|        yy_state_t *yyss1 = yyss;
 1550|      0|        union yyalloc *yyptr =
 1551|      0|          YY_CAST (union yyalloc *,
  ------------------
  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  ------------------
 1552|      0|                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
 1553|      0|        if (! yyptr)
  ------------------
  |  Branch (1553:13): [True: 0, False: 0]
  ------------------
 1554|      0|          YYNOMEM;
  ------------------
  |  | 1237|      0|#define YYNOMEM         goto yyexhaustedlab
  ------------------
 1555|      0|        YYSTACK_RELOCATE (yyss_alloc, yyss);
  ------------------
  |  |  793|      0|    do                                                                  \
  |  |  794|      0|      {                                                                 \
  |  |  795|      0|        YYPTRDIFF_T yynewbytes;                                         \
  |  |  ------------------
  |  |  |  |  580|      0|#  define YYPTRDIFF_T __PTRDIFF_TYPE__
  |  |  ------------------
  |  |  796|      0|        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
  |  |  ------------------
  |  |  |  |  811|      0|      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  797|      0|        Stack = &yyptr->Stack_alloc;                                    \
  |  |  798|      0|        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
  |  |  ------------------
  |  |  |  |  613|      0|#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                       yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
  |  |  ------------------
  |  |  |  |  777|      0|# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  613|      0|#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  799|      0|        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
  |  |  ------------------
  |  |  |  |  613|      0|#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  800|      0|      }                                                                 \
  |  |  801|      0|    while (0)
  |  |  ------------------
  |  |  |  Branch (801:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1556|      0|        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
  ------------------
  |  |  793|      0|    do                                                                  \
  |  |  794|      0|      {                                                                 \
  |  |  795|      0|        YYPTRDIFF_T yynewbytes;                                         \
  |  |  ------------------
  |  |  |  |  580|      0|#  define YYPTRDIFF_T __PTRDIFF_TYPE__
  |  |  ------------------
  |  |  796|      0|        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
  |  |  ------------------
  |  |  |  |  811|      0|      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  797|      0|        Stack = &yyptr->Stack_alloc;                                    \
  |  |  798|      0|        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
  |  |  ------------------
  |  |  |  |  613|      0|#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                       yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
  |  |  ------------------
  |  |  |  |  777|      0|# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  613|      0|#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  799|      0|        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
  |  |  ------------------
  |  |  |  |  613|      0|#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  800|      0|      }                                                                 \
  |  |  801|      0|    while (0)
  |  |  ------------------
  |  |  |  Branch (801:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1557|      0|#  undef YYSTACK_RELOCATE
 1558|      0|        if (yyss1 != yyssa)
  ------------------
  |  Branch (1558:13): [True: 0, False: 0]
  ------------------
 1559|      0|          YYSTACK_FREE (yyss1);
  ------------------
  |  |  738|      0|#  define YYSTACK_FREE YYFREE
  |  |  ------------------
  |  |  |  |  757|      0|#   define YYFREE free
  |  |  ------------------
  ------------------
 1560|      0|      }
 1561|      0|# endif
 1562|       |
 1563|      0|      yyssp = yyss + yysize - 1;
 1564|      0|      yyvsp = yyvs + yysize - 1;
 1565|       |
 1566|      0|      YY_IGNORE_USELESS_CAST_BEGIN
 1567|      0|      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
  ------------------
  |  | 1384|      0|# define YYDPRINTF(Args) ((void) 0)
  ------------------
 1568|      0|                  YY_CAST (long, yystacksize)));
 1569|      0|      YY_IGNORE_USELESS_CAST_END
 1570|       |
 1571|      0|      if (yyss + yystacksize - 1 <= yyssp)
  ------------------
  |  Branch (1571:11): [True: 0, False: 0]
  ------------------
 1572|      0|        YYABORT;
  ------------------
  |  | 1235|      0|#define YYABORT         goto yyabortlab
  ------------------
 1573|      0|    }
 1574|    619|#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 1575|       |
 1576|       |
 1577|    619|  if (yystate == YYFINAL)
  ------------------
  |  |  826|    619|#define YYFINAL  7
  ------------------
  |  Branch (1577:7): [True: 0, False: 619]
  ------------------
 1578|      0|    YYACCEPT;
  ------------------
  |  | 1234|      0|#define YYACCEPT        goto yyacceptlab
  ------------------
 1579|       |
 1580|    619|  goto yybackup;
 1581|       |
 1582|       |
 1583|       |/*-----------.
 1584|       || yybackup.  |
 1585|       |`-----------*/
 1586|    619|yybackup:
 1587|       |  /* Do appropriate processing given the current state.  Read a
 1588|       |     lookahead token if we need one and don't already have one.  */
 1589|       |
 1590|       |  /* First try to decide what to do without reference to lookahead token.  */
 1591|    619|  yyn = yypact[yystate];
 1592|    619|  if (yypact_value_is_default (yyn))
  ------------------
  |  |  973|    619|  ((Yyn) == YYPACT_NINF)
  |  |  ------------------
  |  |  |  |  970|    619|#define YYPACT_NINF (-86)
  |  |  ------------------
  |  |  |  Branch (973:3): [True: 0, False: 619]
  |  |  ------------------
  ------------------
 1593|      0|    goto yydefault;
 1594|       |
 1595|       |  /* Not known => get a lookahead token if don't already have one.  */
 1596|       |
 1597|       |  /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
 1598|    619|  if (yychar == YYEMPTY)
  ------------------
  |  |  226|    619|#define YYEMPTY -2
  ------------------
  |  Branch (1598:7): [True: 619, False: 0]
  ------------------
 1599|    619|    {
 1600|    619|      YYDPRINTF ((stderr, "Reading a token\n"));
  ------------------
  |  | 1384|    619|# define YYDPRINTF(Args) ((void) 0)
  ------------------
 1601|    619|      yychar = yylex ();
 1602|    619|    }
 1603|       |
 1604|    619|  if (yychar <= YYEOF)
  ------------------
  |  |  227|    619|#define YYEOF 0
  ------------------
  |  Branch (1604:7): [True: 54, False: 565]
  ------------------
 1605|     54|    {
 1606|     54|      yychar = YYEOF;
  ------------------
  |  |  227|     54|#define YYEOF 0
  ------------------
 1607|     54|      yytoken = YYSYMBOL_YYEOF;
 1608|     54|      YYDPRINTF ((stderr, "Now at end of input.\n"));
  ------------------
  |  | 1384|     54|# define YYDPRINTF(Args) ((void) 0)
  ------------------
 1609|     54|    }
 1610|    565|  else if (yychar == YYerror)
  ------------------
  |  |  228|    565|#define YYerror 256
  ------------------
  |  Branch (1610:12): [True: 0, False: 565]
  ------------------
 1611|      0|    {
 1612|       |      /* The scanner already issued an error message, process directly
 1613|       |         to error recovery.  But do not keep the error token as
 1614|       |         lookahead, it is too special and may lead us to an endless
 1615|       |         loop in error recovery. */
 1616|      0|      yychar = YYUNDEF;
  ------------------
  |  |  229|      0|#define YYUNDEF 257
  ------------------
 1617|      0|      yytoken = YYSYMBOL_YYerror;
 1618|      0|      goto yyerrlab1;
 1619|      0|    }
 1620|    565|  else
 1621|    565|    {
 1622|    565|      yytoken = YYTRANSLATE (yychar);
  ------------------
  |  |  846|    565|  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
  |  |  ------------------
  |  |  |  |  840|    565|#define YYMAXUTOK   330
  |  |  ------------------
  |  |  |  Branch (846:4): [True: 565, False: 0]
  |  |  |  Branch (846:18): [True: 565, False: 0]
  |  |  ------------------
  |  |  847|    565|   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
  |  |  ------------------
  |  |  |  |  112|    565|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  ------------------
  |  |  848|    565|   : YYSYMBOL_YYUNDEF)
  ------------------
 1623|    565|      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
 1624|    565|    }
 1625|       |
 1626|       |  /* If the proper action on seeing token YYTOKEN is to reduce or to
 1627|       |     detect an error, take that action.  */
 1628|    619|  yyn += yytoken;
 1629|    619|  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
  ------------------
  |  |  828|    619|#define YYLAST   292
  ------------------
  |  Branch (1629:7): [True: 0, False: 619]
  |  Branch (1629:18): [True: 0, False: 619]
  |  Branch (1629:34): [True: 619, False: 0]
  ------------------
 1630|    619|    goto yydefault;
 1631|      0|  yyn = yytable[yyn];
 1632|      0|  if (yyn <= 0)
  ------------------
  |  Branch (1632:7): [True: 0, False: 0]
  ------------------
 1633|      0|    {
 1634|      0|      if (yytable_value_is_error (yyn))
  ------------------
  |  |  978|      0|  0
  |  |  ------------------
  |  |  |  Branch (978:3): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1635|      0|        goto yyerrlab;
 1636|      0|      yyn = -yyn;
 1637|      0|      goto yyreduce;
 1638|      0|    }
 1639|       |
 1640|       |  /* Count tokens shifted since error; after three, turn off error
 1641|       |     status.  */
 1642|      0|  if (yyerrstatus)
  ------------------
  |  Branch (1642:7): [True: 0, False: 0]
  ------------------
 1643|      0|    yyerrstatus--;
 1644|       |
 1645|       |  /* Shift the lookahead token.  */
 1646|      0|  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 1647|      0|  yystate = yyn;
 1648|      0|  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 1649|      0|  *++yyvsp = yylval;
 1650|      0|  YY_IGNORE_MAYBE_UNINITIALIZED_END
 1651|       |
 1652|       |  /* Discard the shifted token.  */
 1653|      0|  yychar = YYEMPTY;
  ------------------
  |  |  226|      0|#define YYEMPTY -2
  ------------------
 1654|      0|  goto yynewstate;
 1655|       |
 1656|       |
 1657|       |/*-----------------------------------------------------------.
 1658|       || yydefault -- do the default action for the current state.  |
 1659|       |`-----------------------------------------------------------*/
 1660|    619|yydefault:
 1661|    619|  yyn = yydefact[yystate];
 1662|    619|  if (yyn == 0)
  ------------------
  |  Branch (1662:7): [True: 619, False: 0]
  ------------------
 1663|    619|    goto yyerrlab;
 1664|      0|  goto yyreduce;
 1665|       |
 1666|       |
 1667|       |/*-----------------------------.
 1668|       || yyreduce -- do a reduction.  |
 1669|       |`-----------------------------*/
 1670|      0|yyreduce:
 1671|       |  /* yyn is the number of a rule to reduce with.  */
 1672|      0|  yylen = yyr2[yyn];
 1673|       |
 1674|       |  /* If YYLEN is nonzero, implement the default value of the action:
 1675|       |     '$$ = $1'.
 1676|       |
 1677|       |     Otherwise, the following line sets YYVAL to garbage.
 1678|       |     This behavior is undocumented and Bison
 1679|       |     users should not rely upon it.  Assigning to YYVAL
 1680|       |     unconditionally makes the parser a bit smaller, and it avoids a
 1681|       |     GCC warning that YYVAL may be used uninitialized.  */
 1682|      0|  yyval = yyvsp[1-yylen];
 1683|       |
 1684|       |
 1685|      0|  YY_REDUCE_PRINT (yyn);
 1686|      0|  switch (yyn)
 1687|      0|    {
 1688|      0|  case 4: /* ifacedef: ifacehead '{' ifaceparams '}' ';'  */
  ------------------
  |  Branch (1688:3): [True: 0, False: 0]
  ------------------
 1689|      0|#line 193 "gram.y"
 1690|      0|                {
 1691|      0|			dlog(LOG_DEBUG, 4, "%s interface definition ok", iface->props.name);
 1692|       |
 1693|      0|			iface->next = IfaceList;
 1694|      0|			IfaceList = iface;
 1695|       |
 1696|      0|			iface = NULL;
 1697|      0|		}
 1698|      0|#line 1699 "gram.c"
 1699|      0|    break;
 1700|       |
 1701|      0|  case 5: /* ifacehead: T_INTERFACE name  */
  ------------------
  |  Branch (1701:3): [True: 0, False: 0]
  ------------------
 1702|      0|#line 203 "gram.y"
 1703|      0|                {
 1704|      0|			iface = IfaceList;
 1705|       |
 1706|      0|			while (iface)
  ------------------
  |  Branch (1706:11): [True: 0, False: 0]
  ------------------
 1707|      0|			{
 1708|      0|				if (!strcmp((yyvsp[0].str), iface->props.name))
  ------------------
  |  Branch (1708:9): [True: 0, False: 0]
  ------------------
 1709|      0|				{
 1710|      0|					flog(LOG_ERR, "duplicate interface "
 1711|      0|						"definition for %s", (yyvsp[0].str));
 1712|      0|					ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1713|      0|				}
 1714|      0|				iface = iface->next;
 1715|      0|			}
 1716|       |
 1717|      0|			iface = malloc(sizeof(struct Interface));
 1718|       |
 1719|      0|			if (iface == NULL) {
  ------------------
  |  Branch (1719:8): [True: 0, False: 0]
  ------------------
 1720|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 1721|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1722|      0|			}
 1723|       |
 1724|      0|			iface_init_defaults(iface);
 1725|      0|			memset(&iface->props.name, 0, sizeof(iface->props.name));
 1726|      0|			strlcpy(iface->props.name, (yyvsp[0].str), sizeof(iface->props.name));
 1727|      0|			iface->lineno = num_lines;
 1728|      0|		}
 1729|      0|#line 1730 "gram.c"
 1730|      0|    break;
 1731|       |
 1732|      0|  case 6: /* name: STRING  */
  ------------------
  |  Branch (1732:3): [True: 0, False: 0]
  ------------------
 1733|      0|#line 232 "gram.y"
 1734|      0|                {
 1735|       |			/* check vality */
 1736|      0|			(yyval.str) = (yyvsp[0].str);
 1737|      0|		}
 1738|      0|#line 1739 "gram.c"
 1739|      0|    break;
 1740|       |
 1741|      0|  case 10: /* ifaceparam: prefixdef  */
  ------------------
  |  Branch (1741:3): [True: 0, False: 0]
  ------------------
 1742|      0|#line 243 "gram.y"
 1743|      0|                                { ADD_TO_LL(struct AdvPrefix, AdvPrefixList, (yyvsp[0].pinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1744|      0|#line 1745 "gram.c"
 1745|      0|    break;
 1746|       |
 1747|      0|  case 11: /* ifaceparam: clientslist  */
  ------------------
  |  Branch (1747:3): [True: 0, False: 0]
  ------------------
 1748|      0|#line 244 "gram.y"
 1749|      0|                                { ADD_TO_LL(struct Clients, ClientList, (yyvsp[0].ainfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1750|      0|#line 1751 "gram.c"
 1751|      0|    break;
 1752|       |
 1753|      0|  case 12: /* ifaceparam: routedef  */
  ------------------
  |  Branch (1753:3): [True: 0, False: 0]
  ------------------
 1754|      0|#line 245 "gram.y"
 1755|      0|                                { ADD_TO_LL(struct AdvRoute, AdvRouteList, (yyvsp[0].rinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1756|      0|#line 1757 "gram.c"
 1757|      0|    break;
 1758|       |
 1759|      0|  case 13: /* ifaceparam: rdnssdef  */
  ------------------
  |  Branch (1759:3): [True: 0, False: 0]
  ------------------
 1760|      0|#line 246 "gram.y"
 1761|      0|                                { ADD_TO_LL(struct AdvRDNSS, AdvRDNSSList, (yyvsp[0].rdnssinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1762|      0|#line 1763 "gram.c"
 1763|      0|    break;
 1764|       |
 1765|      0|  case 14: /* ifaceparam: dnssldef  */
  ------------------
  |  Branch (1765:3): [True: 0, False: 0]
  ------------------
 1766|      0|#line 247 "gram.y"
 1767|      0|                                { ADD_TO_LL(struct AdvDNSSL, AdvDNSSLList, (yyvsp[0].dnsslinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1768|      0|#line 1769 "gram.c"
 1769|      0|    break;
 1770|       |
 1771|      0|  case 15: /* ifaceparam: lowpancodef  */
  ------------------
  |  Branch (1771:3): [True: 0, False: 0]
  ------------------
 1772|      0|#line 248 "gram.y"
 1773|      0|                                { ADD_TO_LL(struct AdvLowpanCo, AdvLowpanCoList, (yyvsp[0].lowpancoinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1774|      0|#line 1775 "gram.c"
 1775|      0|    break;
 1776|       |
 1777|      0|  case 16: /* ifaceparam: abrodef  */
  ------------------
  |  Branch (1777:3): [True: 0, False: 0]
  ------------------
 1778|      0|#line 249 "gram.y"
 1779|      0|                                { ADD_TO_LL(struct AdvAbro, AdvAbroList, (yyvsp[0].abroinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1780|      0|#line 1781 "gram.c"
 1781|      0|    break;
 1782|       |
 1783|      0|  case 17: /* ifaceparam: rasrcaddresslist  */
  ------------------
  |  Branch (1783:3): [True: 0, False: 0]
  ------------------
 1784|      0|#line 250 "gram.y"
 1785|      0|                                   { ADD_TO_LL(struct AdvRASrcAddress, AdvRASrcAddressList, (yyvsp[0].rasrcaddressinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1786|      0|#line 1787 "gram.c"
 1787|      0|    break;
 1788|       |
 1789|      0|  case 18: /* ifaceparam: nat64prefixdef  */
  ------------------
  |  Branch (1789:3): [True: 0, False: 0]
  ------------------
 1790|      0|#line 251 "gram.y"
 1791|      0|                                 { ADD_TO_LL(struct NAT64Prefix, NAT64PrefixList, (yyvsp[0].nat64pinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1792|      0|#line 1793 "gram.c"
 1793|      0|    break;
 1794|       |
 1795|      0|  case 19: /* ifaceparam: ignoreprefixlist  */
  ------------------
  |  Branch (1795:3): [True: 0, False: 0]
  ------------------
 1796|      0|#line 252 "gram.y"
 1797|      0|                                   { ADD_TO_LL(struct AutogenIgnorePrefix, IgnorePrefixList, (yyvsp[0].igpinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1798|      0|#line 1799 "gram.c"
 1799|      0|    break;
 1800|       |
 1801|      0|  case 20: /* ifaceval: T_MinRtrAdvInterval NUMBER ';'  */
  ------------------
  |  Branch (1801:3): [True: 0, False: 0]
  ------------------
 1802|      0|#line 256 "gram.y"
 1803|      0|                {
 1804|      0|			iface->MinRtrAdvInterval = (yyvsp[-1].num);
 1805|      0|		}
 1806|      0|#line 1807 "gram.c"
 1807|      0|    break;
 1808|       |
 1809|      0|  case 21: /* ifaceval: T_MaxRtrAdvInterval NUMBER ';'  */
  ------------------
  |  Branch (1809:3): [True: 0, False: 0]
  ------------------
 1810|      0|#line 260 "gram.y"
 1811|      0|                {
 1812|      0|			iface->MaxRtrAdvInterval = (yyvsp[-1].num);
 1813|      0|		}
 1814|      0|#line 1815 "gram.c"
 1815|      0|    break;
 1816|       |
 1817|      0|  case 22: /* ifaceval: T_MinDelayBetweenRAs NUMBER ';'  */
  ------------------
  |  Branch (1817:3): [True: 0, False: 0]
  ------------------
 1818|      0|#line 264 "gram.y"
 1819|      0|                {
 1820|      0|			iface->MinDelayBetweenRAs = (yyvsp[-1].num);
 1821|      0|		}
 1822|      0|#line 1823 "gram.c"
 1823|      0|    break;
 1824|       |
 1825|      0|  case 23: /* ifaceval: T_MinRtrAdvInterval DECIMAL ';'  */
  ------------------
  |  Branch (1825:3): [True: 0, False: 0]
  ------------------
 1826|      0|#line 268 "gram.y"
 1827|      0|                {
 1828|      0|			iface->MinRtrAdvInterval = (yyvsp[-1].dec);
 1829|      0|		}
 1830|      0|#line 1831 "gram.c"
 1831|      0|    break;
 1832|       |
 1833|      0|  case 24: /* ifaceval: T_MaxRtrAdvInterval DECIMAL ';'  */
  ------------------
  |  Branch (1833:3): [True: 0, False: 0]
  ------------------
 1834|      0|#line 272 "gram.y"
 1835|      0|                {
 1836|      0|			iface->MaxRtrAdvInterval = (yyvsp[-1].dec);
 1837|      0|		}
 1838|      0|#line 1839 "gram.c"
 1839|      0|    break;
 1840|       |
 1841|      0|  case 25: /* ifaceval: T_MinDelayBetweenRAs DECIMAL ';'  */
  ------------------
  |  Branch (1841:3): [True: 0, False: 0]
  ------------------
 1842|      0|#line 276 "gram.y"
 1843|      0|                {
 1844|      0|			iface->MinDelayBetweenRAs = (yyvsp[-1].dec);
 1845|      0|		}
 1846|      0|#line 1847 "gram.c"
 1847|      0|    break;
 1848|       |
 1849|      0|  case 26: /* ifaceval: T_IgnoreIfMissing SWITCH ';'  */
  ------------------
  |  Branch (1849:3): [True: 0, False: 0]
  ------------------
 1850|      0|#line 280 "gram.y"
 1851|      0|                {
 1852|      0|			iface->IgnoreIfMissing = (yyvsp[-1].num);
 1853|      0|		}
 1854|      0|#line 1855 "gram.c"
 1855|      0|    break;
 1856|       |
 1857|      0|  case 27: /* ifaceval: T_AdvSendAdvert SWITCH ';'  */
  ------------------
  |  Branch (1857:3): [True: 0, False: 0]
  ------------------
 1858|      0|#line 284 "gram.y"
 1859|      0|                {
 1860|      0|			iface->AdvSendAdvert = (yyvsp[-1].num);
 1861|      0|		}
 1862|      0|#line 1863 "gram.c"
 1863|      0|    break;
 1864|       |
 1865|      0|  case 28: /* ifaceval: T_AdvManagedFlag SWITCH ';'  */
  ------------------
  |  Branch (1865:3): [True: 0, False: 0]
  ------------------
 1866|      0|#line 288 "gram.y"
 1867|      0|                {
 1868|      0|			iface->ra_header_info.AdvManagedFlag = (yyvsp[-1].num);
 1869|      0|		}
 1870|      0|#line 1871 "gram.c"
 1871|      0|    break;
 1872|       |
 1873|      0|  case 29: /* ifaceval: T_AdvOtherConfigFlag SWITCH ';'  */
  ------------------
  |  Branch (1873:3): [True: 0, False: 0]
  ------------------
 1874|      0|#line 292 "gram.y"
 1875|      0|                {
 1876|      0|			iface->ra_header_info.AdvOtherConfigFlag = (yyvsp[-1].num);
 1877|      0|		}
 1878|      0|#line 1879 "gram.c"
 1879|      0|    break;
 1880|       |
 1881|      0|  case 30: /* ifaceval: T_AdvLinkMTU NUMBER ';'  */
  ------------------
  |  Branch (1881:3): [True: 0, False: 0]
  ------------------
 1882|      0|#line 296 "gram.y"
 1883|      0|                {
 1884|      0|			iface->AdvLinkMTU = (yyvsp[-1].num);
 1885|      0|		}
 1886|      0|#line 1887 "gram.c"
 1887|      0|    break;
 1888|       |
 1889|      0|  case 31: /* ifaceval: T_AdvRAMTU NUMBER ';'  */
  ------------------
  |  Branch (1889:3): [True: 0, False: 0]
  ------------------
 1890|      0|#line 300 "gram.y"
 1891|      0|                {
 1892|      0|			iface->AdvRAMTU = (yyvsp[-1].num);
 1893|      0|			iface->AdvRAMTU = MAX(MIN_AdvLinkMTU, iface->AdvRAMTU);
  ------------------
  |  Branch (1893:22): [True: 0, False: 0]
  ------------------
 1894|      0|			iface->AdvRAMTU = MIN(MAX_AdvLinkMTU, iface->AdvRAMTU);
  ------------------
  |  Branch (1894:22): [True: 0, False: 0]
  ------------------
 1895|      0|		}
 1896|      0|#line 1897 "gram.c"
 1897|      0|    break;
 1898|       |
 1899|      0|  case 32: /* ifaceval: T_AdvReachableTime NUMBER ';'  */
  ------------------
  |  Branch (1899:3): [True: 0, False: 0]
  ------------------
 1900|      0|#line 306 "gram.y"
 1901|      0|                {
 1902|      0|			iface->ra_header_info.AdvReachableTime = (yyvsp[-1].num);
 1903|      0|		}
 1904|      0|#line 1905 "gram.c"
 1905|      0|    break;
 1906|       |
 1907|      0|  case 33: /* ifaceval: T_AdvRetransTimer NUMBER ';'  */
  ------------------
  |  Branch (1907:3): [True: 0, False: 0]
  ------------------
 1908|      0|#line 310 "gram.y"
 1909|      0|                {
 1910|      0|			iface->ra_header_info.AdvRetransTimer = (yyvsp[-1].num);
 1911|      0|		}
 1912|      0|#line 1913 "gram.c"
 1913|      0|    break;
 1914|       |
 1915|      0|  case 34: /* ifaceval: T_AdvDefaultLifetime NUMBER ';'  */
  ------------------
  |  Branch (1915:3): [True: 0, False: 0]
  ------------------
 1916|      0|#line 314 "gram.y"
 1917|      0|                {
 1918|      0|			iface->ra_header_info.AdvDefaultLifetime = (yyvsp[-1].num);
 1919|      0|		}
 1920|      0|#line 1921 "gram.c"
 1921|      0|    break;
 1922|       |
 1923|      0|  case 35: /* ifaceval: T_AdvDefaultPreference SIGNEDNUMBER ';'  */
  ------------------
  |  Branch (1923:3): [True: 0, False: 0]
  ------------------
 1924|      0|#line 318 "gram.y"
 1925|      0|                {
 1926|      0|			iface->ra_header_info.AdvDefaultPreference = (yyvsp[-1].snum);
 1927|      0|		}
 1928|      0|#line 1929 "gram.c"
 1929|      0|    break;
 1930|       |
 1931|      0|  case 36: /* ifaceval: T_AdvCurHopLimit NUMBER ';'  */
  ------------------
  |  Branch (1931:3): [True: 0, False: 0]
  ------------------
 1932|      0|#line 322 "gram.y"
 1933|      0|                {
 1934|      0|			iface->ra_header_info.AdvCurHopLimit = (yyvsp[-1].num);
 1935|      0|		}
 1936|      0|#line 1937 "gram.c"
 1937|      0|    break;
 1938|       |
 1939|      0|  case 37: /* ifaceval: T_RemoveAdvOnExit SWITCH ';'  */
  ------------------
  |  Branch (1939:3): [True: 0, False: 0]
  ------------------
 1940|      0|#line 326 "gram.y"
 1941|      0|                {
 1942|      0|			iface->RemoveAdvOnExit = (yyvsp[-1].num);
 1943|      0|		}
 1944|      0|#line 1945 "gram.c"
 1945|      0|    break;
 1946|       |
 1947|      0|  case 38: /* ifaceval: T_AdvSourceLLAddress SWITCH ';'  */
  ------------------
  |  Branch (1947:3): [True: 0, False: 0]
  ------------------
 1948|      0|#line 330 "gram.y"
 1949|      0|                {
 1950|      0|			iface->AdvSourceLLAddress = (yyvsp[-1].num);
 1951|      0|		}
 1952|      0|#line 1953 "gram.c"
 1953|      0|    break;
 1954|       |
 1955|      0|  case 39: /* ifaceval: T_AdvIntervalOpt SWITCH ';'  */
  ------------------
  |  Branch (1955:3): [True: 0, False: 0]
  ------------------
 1956|      0|#line 334 "gram.y"
 1957|      0|                {
 1958|      0|			iface->mipv6.AdvIntervalOpt = (yyvsp[-1].num);
 1959|      0|		}
 1960|      0|#line 1961 "gram.c"
 1961|      0|    break;
 1962|       |
 1963|      0|  case 40: /* ifaceval: T_AdvHomeAgentInfo SWITCH ';'  */
  ------------------
  |  Branch (1963:3): [True: 0, False: 0]
  ------------------
 1964|      0|#line 338 "gram.y"
 1965|      0|                {
 1966|      0|			iface->mipv6.AdvHomeAgentInfo = (yyvsp[-1].num);
 1967|      0|		}
 1968|      0|#line 1969 "gram.c"
 1969|      0|    break;
 1970|       |
 1971|      0|  case 41: /* ifaceval: T_AdvHomeAgentFlag SWITCH ';'  */
  ------------------
  |  Branch (1971:3): [True: 0, False: 0]
  ------------------
 1972|      0|#line 342 "gram.y"
 1973|      0|                {
 1974|      0|			iface->ra_header_info.AdvHomeAgentFlag = (yyvsp[-1].num);
 1975|      0|		}
 1976|      0|#line 1977 "gram.c"
 1977|      0|    break;
 1978|       |
 1979|      0|  case 42: /* ifaceval: T_HomeAgentPreference NUMBER ';'  */
  ------------------
  |  Branch (1979:3): [True: 0, False: 0]
  ------------------
 1980|      0|#line 346 "gram.y"
 1981|      0|                {
 1982|      0|			iface->mipv6.HomeAgentPreference = (yyvsp[-1].num);
 1983|      0|		}
 1984|      0|#line 1985 "gram.c"
 1985|      0|    break;
 1986|       |
 1987|      0|  case 43: /* ifaceval: T_HomeAgentLifetime NUMBER ';'  */
  ------------------
  |  Branch (1987:3): [True: 0, False: 0]
  ------------------
 1988|      0|#line 350 "gram.y"
 1989|      0|                {
 1990|      0|			iface->mipv6.HomeAgentLifetime = (yyvsp[-1].num);
 1991|      0|		}
 1992|      0|#line 1993 "gram.c"
 1993|      0|    break;
 1994|       |
 1995|      0|  case 44: /* ifaceval: T_UnicastOnly SWITCH ';'  */
  ------------------
  |  Branch (1995:3): [True: 0, False: 0]
  ------------------
 1996|      0|#line 354 "gram.y"
 1997|      0|                {
 1998|      0|			iface->UnicastOnly = (yyvsp[-1].num);
 1999|      0|		}
 2000|      0|#line 2001 "gram.c"
 2001|      0|    break;
 2002|       |
 2003|      0|  case 45: /* ifaceval: T_UnrestrictedUnicast SWITCH ';'  */
  ------------------
  |  Branch (2003:3): [True: 0, False: 0]
  ------------------
 2004|      0|#line 358 "gram.y"
 2005|      0|                {
 2006|      0|			iface->UnrestrictedUnicast = (yyvsp[-1].num);
 2007|      0|		}
 2008|      0|#line 2009 "gram.c"
 2009|      0|    break;
 2010|       |
 2011|      0|  case 46: /* ifaceval: T_AdvRASolicitedUnicast SWITCH ';'  */
  ------------------
  |  Branch (2011:3): [True: 0, False: 0]
  ------------------
 2012|      0|#line 362 "gram.y"
 2013|      0|                {
 2014|      0|			iface->AdvRASolicitedUnicast = (yyvsp[-1].num);
 2015|      0|		}
 2016|      0|#line 2017 "gram.c"
 2017|      0|    break;
 2018|       |
 2019|      0|  case 47: /* ifaceval: T_AdvCaptivePortalAPI STRING ';'  */
  ------------------
  |  Branch (2019:3): [True: 0, False: 0]
  ------------------
 2020|      0|#line 366 "gram.y"
 2021|      0|                {
 2022|      0|			const char *source = (yyvsp[-1].str);
 2023|      0|			size_t len = strlen(source);
 2024|       |
 2025|      0|			if (iface->AdvCaptivePortalAPI) {
  ------------------
  |  Branch (2025:8): [True: 0, False: 0]
  ------------------
 2026|      0|				flog(LOG_WARNING, "warning: AdvCaptivePortalAPI specified twice for interface "
 2027|      0|					"%s in %s, line %d", iface->props.name, filename, num_lines);
 2028|       |
 2029|      0|				free(iface->AdvCaptivePortalAPI);
 2030|      0|				iface->AdvCaptivePortalAPI = NULL;
 2031|      0|			}
 2032|       |
 2033|       |			/* trim double-quotes from start and end of string */
 2034|      0|			if ((len > 0) && (source[0] == '"')) {
  ------------------
  |  Branch (2034:8): [True: 0, False: 0]
  |  Branch (2034:21): [True: 0, False: 0]
  ------------------
 2035|      0|				source++;
 2036|      0|				len--;
 2037|      0|			}
 2038|      0|			if ((len > 0) && (source[len-1] == '"')) {
  ------------------
  |  Branch (2038:8): [True: 0, False: 0]
  |  Branch (2038:21): [True: 0, False: 0]
  ------------------
 2039|      0|				len--;
 2040|      0|			}
 2041|       |
 2042|      0|			if (len <= 0) {
  ------------------
  |  Branch (2042:8): [True: 0, False: 0]
  ------------------
 2043|      0|				flog(LOG_ERR, "AdvCaptivePortalAPI empty URL specified for interface %s.", iface->props.name);
 2044|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2045|      0|			}
 2046|       |
 2047|      0|			iface->AdvCaptivePortalAPI = strndup(source, len);
 2048|       |
 2049|      0|			if (!iface->AdvCaptivePortalAPI) {
  ------------------
  |  Branch (2049:8): [True: 0, False: 0]
  ------------------
 2050|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2051|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2052|      0|			}
 2053|      0|		}
 2054|      0|#line 2055 "gram.c"
 2055|      0|    break;
 2056|       |
 2057|      0|  case 48: /* ifaceval: T_AdvMobRtrSupportFlag SWITCH ';'  */
  ------------------
  |  Branch (2057:3): [True: 0, False: 0]
  ------------------
 2058|      0|#line 400 "gram.y"
 2059|      0|                {
 2060|      0|			iface->mipv6.AdvMobRtrSupportFlag = (yyvsp[-1].num);
 2061|      0|		}
 2062|      0|#line 2063 "gram.c"
 2063|      0|    break;
 2064|       |
 2065|      0|  case 49: /* clientslist: T_CLIENTS '{' v6addrlist_clients '}' ';'  */
  ------------------
  |  Branch (2065:3): [True: 0, False: 0]
  ------------------
 2066|      0|#line 406 "gram.y"
 2067|      0|                {
 2068|      0|			(yyval.ainfo) = (yyvsp[-2].ainfo);
 2069|      0|		}
 2070|      0|#line 2071 "gram.c"
 2071|      0|    break;
 2072|       |
 2073|      0|  case 50: /* v6addrlist_clients: IPV6ADDR ';'  */
  ------------------
  |  Branch (2073:3): [True: 0, False: 0]
  ------------------
 2074|      0|#line 412 "gram.y"
 2075|      0|                {
 2076|      0|			struct Clients *new = calloc(1, sizeof(struct Clients));
 2077|      0|			if (new == NULL) {
  ------------------
  |  Branch (2077:8): [True: 0, False: 0]
  ------------------
 2078|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2079|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2080|      0|			}
 2081|       |
 2082|      0|			memcpy(&(new->Address), (yyvsp[-1].addr), sizeof(struct in6_addr));
 2083|      0|			new->ignored = 0;
 2084|      0|			(yyval.ainfo) = new;
 2085|      0|		}
 2086|      0|#line 2087 "gram.c"
 2087|      0|    break;
 2088|       |
 2089|      0|  case 51: /* v6addrlist_clients: NOT_IPV6ADDR ';'  */
  ------------------
  |  Branch (2089:3): [True: 0, False: 0]
  ------------------
 2090|      0|#line 424 "gram.y"
 2091|      0|                {
 2092|      0|			struct Clients *new = calloc(1, sizeof(struct Clients));
 2093|      0|			if (new == NULL) {
  ------------------
  |  Branch (2093:8): [True: 0, False: 0]
  ------------------
 2094|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2095|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2096|      0|			}
 2097|       |
 2098|      0|			memcpy(&(new->Address), (yyvsp[-1].addr), sizeof(struct in6_addr));
 2099|      0|			new->ignored = 1;
 2100|      0|			(yyval.ainfo) = new;
 2101|      0|		}
 2102|      0|#line 2103 "gram.c"
 2103|      0|    break;
 2104|       |
 2105|      0|  case 52: /* v6addrlist_clients: v6addrlist_clients IPV6ADDR ';'  */
  ------------------
  |  Branch (2105:3): [True: 0, False: 0]
  ------------------
 2106|      0|#line 436 "gram.y"
 2107|      0|                {
 2108|      0|			struct Clients *new = calloc(1, sizeof(struct Clients));
 2109|      0|			if (new == NULL) {
  ------------------
  |  Branch (2109:8): [True: 0, False: 0]
  ------------------
 2110|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2111|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2112|      0|			}
 2113|       |
 2114|      0|			memcpy(&(new->Address), (yyvsp[-1].addr), sizeof(struct in6_addr));
 2115|      0|			new->ignored = 0;
 2116|      0|			new->next = (yyvsp[-2].ainfo);
 2117|      0|			(yyval.ainfo) = new;
 2118|      0|		}
 2119|      0|#line 2120 "gram.c"
 2120|      0|    break;
 2121|       |
 2122|      0|  case 53: /* v6addrlist_clients: v6addrlist_clients NOT_IPV6ADDR ';'  */
  ------------------
  |  Branch (2122:3): [True: 0, False: 0]
  ------------------
 2123|      0|#line 449 "gram.y"
 2124|      0|                {
 2125|      0|			struct Clients *new = calloc(1, sizeof(struct Clients));
 2126|      0|			if (new == NULL) {
  ------------------
  |  Branch (2126:8): [True: 0, False: 0]
  ------------------
 2127|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2128|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2129|      0|			}
 2130|       |
 2131|      0|			memcpy(&(new->Address), (yyvsp[-1].addr), sizeof(struct in6_addr));
 2132|      0|			new->ignored = 1;
 2133|      0|			new->next = (yyvsp[-2].ainfo);
 2134|      0|			(yyval.ainfo) = new;
 2135|      0|		}
 2136|      0|#line 2137 "gram.c"
 2137|      0|    break;
 2138|       |
 2139|      0|  case 54: /* rasrcaddresslist: T_RASRCADDRESS '{' v6addrlist_rasrcaddress '}' ';'  */
  ------------------
  |  Branch (2139:3): [True: 0, False: 0]
  ------------------
 2140|      0|#line 464 "gram.y"
 2141|      0|                {
 2142|      0|			(yyval.rasrcaddressinfo) = (yyvsp[-2].rasrcaddressinfo);
 2143|      0|		}
 2144|      0|#line 2145 "gram.c"
 2145|      0|    break;
 2146|       |
 2147|      0|  case 55: /* v6addrlist_rasrcaddress: IPV6ADDR ';'  */
  ------------------
  |  Branch (2147:3): [True: 0, False: 0]
  ------------------
 2148|      0|#line 470 "gram.y"
 2149|      0|                {
 2150|      0|			struct AdvRASrcAddress *new = calloc(1, sizeof(struct AdvRASrcAddress));
 2151|      0|			if (new == NULL) {
  ------------------
  |  Branch (2151:8): [True: 0, False: 0]
  ------------------
 2152|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2153|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2154|      0|			}
 2155|       |
 2156|      0|			memcpy(&(new->address), (yyvsp[-1].addr), sizeof(struct in6_addr));
 2157|      0|			(yyval.rasrcaddressinfo) = new;
 2158|      0|		}
 2159|      0|#line 2160 "gram.c"
 2160|      0|    break;
 2161|       |
 2162|      0|  case 56: /* v6addrlist_rasrcaddress: v6addrlist_rasrcaddress IPV6ADDR ';'  */
  ------------------
  |  Branch (2162:3): [True: 0, False: 0]
  ------------------
 2163|      0|#line 481 "gram.y"
 2164|      0|                {
 2165|      0|			struct AdvRASrcAddress *new = calloc(1, sizeof(struct AdvRASrcAddress));
 2166|      0|			if (new == NULL) {
  ------------------
  |  Branch (2166:8): [True: 0, False: 0]
  ------------------
 2167|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2168|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2169|      0|			}
 2170|       |
 2171|      0|			memcpy(&(new->address), (yyvsp[-1].addr), sizeof(struct in6_addr));
 2172|      0|			new->next = (yyvsp[-2].rasrcaddressinfo);
 2173|      0|			(yyval.rasrcaddressinfo) = new;
 2174|      0|		}
 2175|      0|#line 2176 "gram.c"
 2176|      0|    break;
 2177|       |
 2178|      0|  case 57: /* nat64prefixdef: nat64prefixhead optional_nat64prefixplist ';'  */
  ------------------
  |  Branch (2178:3): [True: 0, False: 0]
  ------------------
 2179|      0|#line 495 "gram.y"
 2180|      0|                {
 2181|      0|			if (nat64prefix) {
  ------------------
  |  Branch (2181:8): [True: 0, False: 0]
  ------------------
 2182|       |
 2183|      0|				if (nat64prefix->AdvValidLifetime > DFLT_NAT64MaxValidLifetime)
  ------------------
  |  |   68|      0|#define DFLT_NAT64MaxValidLifetime 65528 /* seconds */
  ------------------
  |  Branch (2183:9): [True: 0, False: 0]
  ------------------
 2184|      0|				{
 2185|      0|					flog(LOG_ERR, "AdvValidLifetime must be "
 2186|      0|						"smaller or equal to %d in %s, line %d",
 2187|      0|						DFLT_NAT64MaxValidLifetime, filename, num_lines);
  ------------------
  |  |   68|      0|#define DFLT_NAT64MaxValidLifetime 65528 /* seconds */
  ------------------
 2188|      0|					ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2189|      0|				}
 2190|      0|				nat64prefix->curr_validlft = nat64prefix->AdvValidLifetime;
 2191|      0|			}
 2192|      0|			(yyval.nat64pinfo) = nat64prefix;
 2193|      0|			nat64prefix = NULL;
 2194|      0|		}
 2195|      0|#line 2196 "gram.c"
 2196|      0|    break;
 2197|       |
 2198|      0|  case 58: /* nat64prefixhead: T_NAT64PREFIX IPV6ADDR '/' NUMBER  */
  ------------------
  |  Branch (2198:3): [True: 0, False: 0]
  ------------------
 2199|      0|#line 513 "gram.y"
 2200|      0|                {
 2201|      0|			struct in6_addr zeroaddr;
 2202|      0|			memset(&zeroaddr, 0, sizeof(zeroaddr));
 2203|       |
 2204|      0|			if (!memcmp((yyvsp[-2].addr), &zeroaddr, sizeof(struct in6_addr))) {
  ------------------
  |  Branch (2204:8): [True: 0, False: 0]
  ------------------
 2205|      0|				flog(LOG_ERR, "invalid all-zeros nat64prefix in %s, line %d", filename, num_lines);
 2206|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2207|      0|			}
 2208|       |
 2209|      0|			nat64prefix = malloc(sizeof(struct NAT64Prefix));
 2210|       |
 2211|      0|			if (nat64prefix == NULL) {
  ------------------
  |  Branch (2211:8): [True: 0, False: 0]
  ------------------
 2212|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2213|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2214|      0|			}
 2215|       |
 2216|      0|			nat64prefix_init_defaults(nat64prefix, iface);
 2217|       |
 2218|      0|			if ((yyvsp[0].num) > MAX_PrefixLen)
  ------------------
  |  |  157|      0|#define MAX_PrefixLen 128
  ------------------
  |  Branch (2218:8): [True: 0, False: 0]
  ------------------
 2219|      0|			{
 2220|      0|				flog(LOG_ERR, "invalid prefix length in %s, line %d", filename, num_lines);
 2221|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2222|      0|			}
 2223|       |
 2224|       |			/* RFC8781, section 4: only prefix lengths of 96, 64, 56, 48, 40, and 32 bits are valid */
 2225|      0|			switch ((yyvsp[0].num)) {
 2226|      0|			case 32:
  ------------------
  |  Branch (2226:4): [True: 0, False: 0]
  ------------------
 2227|      0|			case 40:
  ------------------
  |  Branch (2227:4): [True: 0, False: 0]
  ------------------
 2228|      0|			case 48:
  ------------------
  |  Branch (2228:4): [True: 0, False: 0]
  ------------------
 2229|      0|			case 56:
  ------------------
  |  Branch (2229:4): [True: 0, False: 0]
  ------------------
 2230|      0|			case 64:
  ------------------
  |  Branch (2230:4): [True: 0, False: 0]
  ------------------
 2231|      0|			case 96:
  ------------------
  |  Branch (2231:4): [True: 0, False: 0]
  ------------------
 2232|      0|				break;
 2233|      0|			default:
  ------------------
  |  Branch (2233:4): [True: 0, False: 0]
  ------------------
 2234|      0|				flog(LOG_ERR, "only /96, /64, /56, /48, /40 and /32 are allowed for "
 2235|      0|						"nat64prefix in %s:%d", filename, num_lines);
 2236|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2237|      0|			}
 2238|      0|			nat64prefix->PrefixLen = (yyvsp[0].num);
 2239|       |
 2240|      0|			memcpy(&nat64prefix->Prefix, (yyvsp[-2].addr), sizeof(struct in6_addr));
 2241|      0|		}
 2242|      0|#line 2243 "gram.c"
 2243|      0|    break;
 2244|       |
 2245|      0|  case 64: /* nat64prefixparms: T_AdvValidLifetime NUMBER ';'  */
  ------------------
  |  Branch (2245:3): [True: 0, False: 0]
  ------------------
 2246|      0|#line 567 "gram.y"
 2247|      0|                {
 2248|      0|			if ((yyvsp[-1].num) > DFLT_NAT64MaxValidLifetime)
  ------------------
  |  |   68|      0|#define DFLT_NAT64MaxValidLifetime 65528 /* seconds */
  ------------------
  |  Branch (2248:8): [True: 0, False: 0]
  ------------------
 2249|      0|			{
 2250|      0|				flog(LOG_ERR, "maximum for NAT64 AdvValidLifetime is %d (in %s, line %d)",
 2251|      0|					DFLT_NAT64MaxValidLifetime, filename, num_lines);
  ------------------
  |  |   68|      0|#define DFLT_NAT64MaxValidLifetime 65528 /* seconds */
  ------------------
 2252|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2253|      0|			}
 2254|      0|			if (nat64prefix) {
  ------------------
  |  Branch (2254:8): [True: 0, False: 0]
  ------------------
 2255|      0|				nat64prefix->AdvValidLifetime = (yyvsp[-1].num);
 2256|      0|			}
 2257|      0|		}
 2258|      0|#line 2259 "gram.c"
 2259|      0|    break;
 2260|       |
 2261|      0|  case 65: /* ignoreprefixlist: T_AUTOIGNOREPREFIX '{' ignoreprefixes '}' ';'  */
  ------------------
  |  Branch (2261:3): [True: 0, False: 0]
  ------------------
 2262|      0|#line 581 "gram.y"
 2263|      0|                {
 2264|      0|			(yyval.igpinfo) = (yyvsp[-2].igpinfo);
 2265|      0|		}
 2266|      0|#line 2267 "gram.c"
 2267|      0|    break;
 2268|       |
 2269|      0|  case 66: /* ignoreprefixes: IPV6ADDR '/' NUMBER ';'  */
  ------------------
  |  Branch (2269:3): [True: 0, False: 0]
  ------------------
 2270|      0|#line 587 "gram.y"
 2271|      0|                {
 2272|      0|			struct AutogenIgnorePrefix *new = calloc(1, sizeof(struct AutogenIgnorePrefix));
 2273|      0|			if (new == NULL) {
  ------------------
  |  Branch (2273:8): [True: 0, False: 0]
  ------------------
 2274|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2275|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2276|      0|			}
 2277|       |
 2278|      0|			memcpy(&(new->Prefix), (yyvsp[-3].addr), sizeof(struct in6_addr));
 2279|       |
 2280|       |			// Create subnet mask from CIDR notation
 2281|      0|			int fullOctets = (yyvsp[-1].num) / 8;
 2282|      0|			for (int i = 0; i < fullOctets; ++i) {
  ------------------
  |  Branch (2282:20): [True: 0, False: 0]
  ------------------
 2283|      0|				new->Mask.s6_addr[i] = 0xff;
 2284|      0|			}
 2285|       |
 2286|      0|			if (fullOctets != 16) {
  ------------------
  |  Branch (2286:8): [True: 0, False: 0]
  ------------------
 2287|      0|				new->Mask.s6_addr[fullOctets] = ~(1 << (8 - (yyvsp[-1].num) % 8)) + 1;
 2288|      0|			}
 2289|       |
 2290|      0|			(yyval.igpinfo) = new;
 2291|      0|		}
 2292|      0|#line 2293 "gram.c"
 2293|      0|    break;
 2294|       |
 2295|      0|  case 67: /* ignoreprefixes: ignoreprefixes IPV6ADDR '/' NUMBER ';'  */
  ------------------
  |  Branch (2295:3): [True: 0, False: 0]
  ------------------
 2296|      0|#line 609 "gram.y"
 2297|      0|                {
 2298|      0|			struct AutogenIgnorePrefix *new = calloc(1, sizeof(struct AutogenIgnorePrefix));
 2299|      0|			if (new == NULL) {
  ------------------
  |  Branch (2299:8): [True: 0, False: 0]
  ------------------
 2300|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2301|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2302|      0|			}
 2303|       |
 2304|      0|			memcpy(&(new->Prefix), (yyvsp[-3].addr), sizeof(struct in6_addr));
 2305|       |
 2306|       |			// Create subnet mask from CIDR notation
 2307|      0|			int fullOctets = (yyvsp[-1].num) / 8;
 2308|      0|			for (int i = 0; i < fullOctets; ++i) {
  ------------------
  |  Branch (2308:20): [True: 0, False: 0]
  ------------------
 2309|      0|				new->Mask.s6_addr[i] = 0xff;
 2310|      0|			}
 2311|       |
 2312|      0|			if (fullOctets != 16) {
  ------------------
  |  Branch (2312:8): [True: 0, False: 0]
  ------------------
 2313|      0|				new->Mask.s6_addr[fullOctets] = ~(1 << (8 - (yyvsp[-1].num) % 8)) + 1;
 2314|      0|			}
 2315|       |
 2316|      0|			new->next = (yyvsp[-4].igpinfo);
 2317|      0|			(yyval.igpinfo) = new;
 2318|      0|		}
 2319|      0|#line 2320 "gram.c"
 2320|      0|    break;
 2321|       |
 2322|      0|  case 68: /* prefixdef: prefixhead optional_prefixplist ';'  */
  ------------------
  |  Branch (2322:3): [True: 0, False: 0]
  ------------------
 2323|      0|#line 634 "gram.y"
 2324|      0|                {
 2325|      0|			if (prefix) {
  ------------------
  |  Branch (2325:8): [True: 0, False: 0]
  ------------------
 2326|       |
 2327|      0|				if (prefix->AdvPreferredLifetime > prefix->AdvValidLifetime)
  ------------------
  |  Branch (2327:9): [True: 0, False: 0]
  ------------------
 2328|      0|				{
 2329|      0|					flog(LOG_ERR, "AdvValidLifetime must be "
 2330|      0|						"greater than or equal to AdvPreferredLifetime in %s, line %d",
 2331|      0|						filename, num_lines);
 2332|      0|					ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2333|      0|				}
 2334|       |
 2335|      0|				if ( prefix->if6[0] )
  ------------------
  |  Branch (2335:10): [True: 0, False: 0]
  ------------------
 2336|      0|				{
 2337|      0|					if (prefix->PrefixLen != 64) {
  ------------------
  |  Branch (2337:10): [True: 0, False: 0]
  ------------------
 2338|      0|						flog(LOG_ERR, "only /64 is allowed with Base6Interface.  %s:%d", filename, num_lines);
 2339|      0|						ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2340|      0|					}
 2341|      0|				}
 2342|      0|			}
 2343|      0|			(yyval.pinfo) = prefix;
 2344|      0|			prefix = NULL;
 2345|      0|		}
 2346|      0|#line 2347 "gram.c"
 2347|      0|    break;
 2348|       |
 2349|      0|  case 69: /* prefixhead: T_PREFIX IPV6ADDR '/' NUMBER  */
  ------------------
  |  Branch (2349:3): [True: 0, False: 0]
  ------------------
 2350|      0|#line 659 "gram.y"
 2351|      0|                {
 2352|      0|			struct in6_addr zeroaddr;
 2353|      0|			memset(&zeroaddr, 0, sizeof(zeroaddr));
 2354|       |
 2355|       |#ifndef HAVE_IFADDRS_H	// all-zeros prefix is a way to tell us to get the prefix from the interface config
 2356|       |			if (!memcmp((yyvsp[-2].addr), &zeroaddr, sizeof(struct in6_addr))) {
 2357|       |				flog(LOG_WARNING, "invalid all-zeros prefix in %s, line %d", filename, num_lines);
 2358|       |			}
 2359|       |#endif
 2360|      0|			prefix = malloc(sizeof(struct AdvPrefix));
 2361|       |
 2362|      0|			if (prefix == NULL) {
  ------------------
  |  Branch (2362:8): [True: 0, False: 0]
  ------------------
 2363|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2364|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2365|      0|			}
 2366|       |
 2367|      0|			prefix_init_defaults(prefix);
 2368|       |
 2369|      0|			if ((yyvsp[0].num) > MAX_PrefixLen)
  ------------------
  |  |  157|      0|#define MAX_PrefixLen 128
  ------------------
  |  Branch (2369:8): [True: 0, False: 0]
  ------------------
 2370|      0|			{
 2371|      0|				flog(LOG_ERR, "invalid prefix length in %s, line %d", filename, num_lines);
 2372|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2373|      0|			}
 2374|       |
 2375|      0|			prefix->PrefixLen = (yyvsp[0].num);
 2376|       |
 2377|      0|			memcpy(&prefix->Prefix, (yyvsp[-2].addr), sizeof(struct in6_addr));
 2378|      0|		}
 2379|      0|#line 2380 "gram.c"
 2380|      0|    break;
 2381|       |
 2382|      0|  case 75: /* prefixparms: T_AdvOnLink SWITCH ';'  */
  ------------------
  |  Branch (2382:3): [True: 0, False: 0]
  ------------------
 2383|      0|#line 699 "gram.y"
 2384|      0|                {
 2385|      0|			if (prefix) {
  ------------------
  |  Branch (2385:8): [True: 0, False: 0]
  ------------------
 2386|      0|				prefix->AdvOnLinkFlag = (yyvsp[-1].num);
 2387|      0|			}
 2388|      0|		}
 2389|      0|#line 2390 "gram.c"
 2390|      0|    break;
 2391|       |
 2392|      0|  case 76: /* prefixparms: T_AdvAutonomous SWITCH ';'  */
  ------------------
  |  Branch (2392:3): [True: 0, False: 0]
  ------------------
 2393|      0|#line 705 "gram.y"
 2394|      0|                {
 2395|      0|			if (prefix) {
  ------------------
  |  Branch (2395:8): [True: 0, False: 0]
  ------------------
 2396|      0|				prefix->AdvAutonomousFlag = (yyvsp[-1].num);
 2397|      0|			}
 2398|      0|		}
 2399|      0|#line 2400 "gram.c"
 2400|      0|    break;
 2401|       |
 2402|      0|  case 77: /* prefixparms: T_AdvRouterAddr SWITCH ';'  */
  ------------------
  |  Branch (2402:3): [True: 0, False: 0]
  ------------------
 2403|      0|#line 711 "gram.y"
 2404|      0|                {
 2405|      0|			if (prefix) {
  ------------------
  |  Branch (2405:8): [True: 0, False: 0]
  ------------------
 2406|      0|				prefix->AdvRouterAddr = (yyvsp[-1].num);
 2407|      0|			}
 2408|      0|		}
 2409|      0|#line 2410 "gram.c"
 2410|      0|    break;
 2411|       |
 2412|      0|  case 78: /* prefixparms: T_AdvDHCPv6PDPreferred SWITCH ';'  */
  ------------------
  |  Branch (2412:3): [True: 0, False: 0]
  ------------------
 2413|      0|#line 717 "gram.y"
 2414|      0|                {
 2415|      0|			if (prefix) {
  ------------------
  |  Branch (2415:8): [True: 0, False: 0]
  ------------------
 2416|      0|				prefix->AdvDHCPv6PDPreferredFlag = (yyvsp[-1].num);
 2417|      0|			}
 2418|      0|		}
 2419|      0|#line 2420 "gram.c"
 2420|      0|    break;
 2421|       |
 2422|      0|  case 79: /* prefixparms: T_AdvValidLifetime number_or_infinity ';'  */
  ------------------
  |  Branch (2422:3): [True: 0, False: 0]
  ------------------
 2423|      0|#line 723 "gram.y"
 2424|      0|                {
 2425|      0|			if (prefix) {
  ------------------
  |  Branch (2425:8): [True: 0, False: 0]
  ------------------
 2426|      0|				prefix->AdvValidLifetime = (yyvsp[-1].num);
 2427|      0|				prefix->curr_validlft = (yyvsp[-1].num);
 2428|      0|			}
 2429|      0|		}
 2430|      0|#line 2431 "gram.c"
 2431|      0|    break;
 2432|       |
 2433|      0|  case 80: /* prefixparms: T_AdvPreferredLifetime number_or_infinity ';'  */
  ------------------
  |  Branch (2433:3): [True: 0, False: 0]
  ------------------
 2434|      0|#line 730 "gram.y"
 2435|      0|                {
 2436|      0|			if (prefix) {
  ------------------
  |  Branch (2436:8): [True: 0, False: 0]
  ------------------
 2437|      0|				prefix->AdvPreferredLifetime = (yyvsp[-1].num);
 2438|      0|				prefix->curr_preferredlft = (yyvsp[-1].num);
 2439|      0|			}
 2440|      0|		}
 2441|      0|#line 2442 "gram.c"
 2442|      0|    break;
 2443|       |
 2444|      0|  case 81: /* prefixparms: T_DeprecatePrefix SWITCH ';'  */
  ------------------
  |  Branch (2444:3): [True: 0, False: 0]
  ------------------
 2445|      0|#line 737 "gram.y"
 2446|      0|                {
 2447|      0|			if (prefix) {
  ------------------
  |  Branch (2447:8): [True: 0, False: 0]
  ------------------
 2448|      0|				prefix->DeprecatePrefixFlag = (yyvsp[-1].num);
 2449|      0|			}
 2450|      0|		}
 2451|      0|#line 2452 "gram.c"
 2452|      0|    break;
 2453|       |
 2454|      0|  case 82: /* prefixparms: T_DecrementLifetimes SWITCH ';'  */
  ------------------
  |  Branch (2454:3): [True: 0, False: 0]
  ------------------
 2455|      0|#line 743 "gram.y"
 2456|      0|                {
 2457|      0|			if (prefix) {
  ------------------
  |  Branch (2457:8): [True: 0, False: 0]
  ------------------
 2458|      0|				prefix->DecrementLifetimesFlag = (yyvsp[-1].num);
 2459|      0|			}
 2460|      0|		}
 2461|      0|#line 2462 "gram.c"
 2462|      0|    break;
 2463|       |
 2464|      0|  case 83: /* prefixparms: T_Base6Interface name ';'  */
  ------------------
  |  Branch (2464:3): [True: 0, False: 0]
  ------------------
 2465|      0|#line 749 "gram.y"
 2466|      0|                {
 2467|       |#ifndef HAVE_IFADDRS_H
 2468|       |			flog(LOG_ERR, "Base6Interface not supported in %s, line %d", filename, num_lines);
 2469|       |			ABORT;
 2470|       |#else
 2471|      0|			if (prefix) {
  ------------------
  |  Branch (2471:8): [True: 0, False: 0]
  ------------------
 2472|      0|				dlog(LOG_DEBUG, 4, "using prefixes on interface %s for prefixes on interface %s", (yyvsp[-1].str), iface->props.name);
 2473|      0|				memset(&prefix->if6, 0, sizeof(prefix->if6));
 2474|      0|				strlcpy(prefix->if6, (yyvsp[-1].str), sizeof(prefix->if6));
 2475|      0|			}
 2476|      0|#endif
 2477|      0|		}
 2478|      0|#line 2479 "gram.c"
 2479|      0|    break;
 2480|       |
 2481|      0|  case 84: /* prefixparms: T_Base6to4Interface name ';'  */
  ------------------
  |  Branch (2481:3): [True: 0, False: 0]
  ------------------
 2482|      0|#line 763 "gram.y"
 2483|      0|                {
 2484|       |#ifndef HAVE_IFADDRS_H
 2485|       |			flog(LOG_ERR, "Base6to4Interface not supported in %s, line %d", filename, num_lines);
 2486|       |			ABORT;
 2487|       |#else
 2488|      0|			if (prefix) {
  ------------------
  |  Branch (2488:8): [True: 0, False: 0]
  ------------------
 2489|      0|				dlog(LOG_DEBUG, 4, "using interface %s for 6to4 prefixes on interface %s", (yyvsp[-1].str), iface->props.name);
 2490|      0|				memset(&prefix->if6to4, 0, sizeof(prefix->if6to4));
 2491|      0|				strlcpy(prefix->if6to4, (yyvsp[-1].str), sizeof(prefix->if6to4));
 2492|      0|			}
 2493|      0|#endif
 2494|      0|		}
 2495|      0|#line 2496 "gram.c"
 2496|      0|    break;
 2497|       |
 2498|      0|  case 85: /* routedef: routehead '{' optional_routeplist '}' ';'  */
  ------------------
  |  Branch (2498:3): [True: 0, False: 0]
  ------------------
 2499|      0|#line 778 "gram.y"
 2500|      0|                {
 2501|      0|			(yyval.rinfo) = route;
 2502|      0|			route = NULL;
 2503|      0|		}
 2504|      0|#line 2505 "gram.c"
 2505|      0|    break;
 2506|       |
 2507|      0|  case 86: /* routehead: T_ROUTE IPV6ADDR '/' NUMBER  */
  ------------------
  |  Branch (2507:3): [True: 0, False: 0]
  ------------------
 2508|      0|#line 786 "gram.y"
 2509|      0|                {
 2510|      0|			route = malloc(sizeof(struct AdvRoute));
 2511|       |
 2512|      0|			if (route == NULL) {
  ------------------
  |  Branch (2512:8): [True: 0, False: 0]
  ------------------
 2513|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2514|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2515|      0|			}
 2516|       |
 2517|      0|			route_init_defaults(route, iface);
 2518|       |
 2519|      0|			if ((yyvsp[0].num) > MAX_PrefixLen)
  ------------------
  |  |  157|      0|#define MAX_PrefixLen 128
  ------------------
  |  Branch (2519:8): [True: 0, False: 0]
  ------------------
 2520|      0|			{
 2521|      0|				flog(LOG_ERR, "invalid route prefix length in %s, line %d", filename, num_lines);
 2522|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2523|      0|			}
 2524|       |
 2525|      0|			route->PrefixLen = (yyvsp[0].num);
 2526|       |
 2527|      0|			memcpy(&route->Prefix, (yyvsp[-2].addr), sizeof(struct in6_addr));
 2528|      0|		}
 2529|      0|#line 2530 "gram.c"
 2530|      0|    break;
 2531|       |
 2532|      0|  case 91: /* routeparms: T_AdvRoutePreference SIGNEDNUMBER ';'  */
  ------------------
  |  Branch (2532:3): [True: 0, False: 0]
  ------------------
 2533|      0|#line 819 "gram.y"
 2534|      0|                {
 2535|      0|			route->AdvRoutePreference = (yyvsp[-1].snum);
 2536|      0|		}
 2537|      0|#line 2538 "gram.c"
 2538|      0|    break;
 2539|       |
 2540|      0|  case 92: /* routeparms: T_AdvRouteLifetime number_or_infinity ';'  */
  ------------------
  |  Branch (2540:3): [True: 0, False: 0]
  ------------------
 2541|      0|#line 823 "gram.y"
 2542|      0|                {
 2543|      0|			route->AdvRouteLifetime = (yyvsp[-1].num);
 2544|      0|		}
 2545|      0|#line 2546 "gram.c"
 2546|      0|    break;
 2547|       |
 2548|      0|  case 93: /* routeparms: T_RemoveRoute SWITCH ';'  */
  ------------------
  |  Branch (2548:3): [True: 0, False: 0]
  ------------------
 2549|      0|#line 827 "gram.y"
 2550|      0|                {
 2551|      0|			route->RemoveRouteFlag = (yyvsp[-1].num);
 2552|      0|		}
 2553|      0|#line 2554 "gram.c"
 2554|      0|    break;
 2555|       |
 2556|      0|  case 94: /* rdnssdef: rdnsshead '{' optional_rdnssplist '}' ';'  */
  ------------------
  |  Branch (2556:3): [True: 0, False: 0]
  ------------------
 2557|      0|#line 833 "gram.y"
 2558|      0|                {
 2559|      0|			(yyval.rdnssinfo) = rdnss;
 2560|      0|			rdnss = NULL;
 2561|      0|		}
 2562|      0|#line 2563 "gram.c"
 2563|      0|    break;
 2564|       |
 2565|      0|  case 97: /* rdnssaddr: IPV6ADDR  */
  ------------------
  |  Branch (2565:3): [True: 0, False: 0]
  ------------------
 2566|      0|#line 844 "gram.y"
 2567|      0|                {
 2568|      0|			if (!rdnss) {
  ------------------
  |  Branch (2568:8): [True: 0, False: 0]
  ------------------
 2569|       |				/* first IP found */
 2570|      0|				rdnss = malloc(sizeof(struct AdvRDNSS));
 2571|       |
 2572|      0|				if (rdnss == NULL) {
  ------------------
  |  Branch (2572:9): [True: 0, False: 0]
  ------------------
 2573|      0|					flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2574|      0|					ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2575|      0|				}
 2576|       |
 2577|      0|				rdnss_init_defaults(rdnss, iface);
 2578|      0|			}
 2579|       |
 2580|      0|			rdnss->AdvRDNSSNumber++;
 2581|      0|			if (rdnss->AdvRDNSSNumber > 127) {
  ------------------
  |  Branch (2581:8): [True: 0, False: 0]
  ------------------
 2582|      0|				flog(LOG_CRIT, "Too many RDNSS servers specified - upper limit is 127 based on RDNSSI length field being uint8, RFC8106, section 5.1");
 2583|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2584|      0|			}
 2585|      0|			rdnss->AdvRDNSSAddr =
 2586|      0|				realloc(rdnss->AdvRDNSSAddr,
 2587|      0|					rdnss->AdvRDNSSNumber * sizeof(struct in6_addr));
 2588|      0|			if (rdnss->AdvRDNSSAddr == NULL) {
  ------------------
  |  Branch (2588:8): [True: 0, False: 0]
  ------------------
 2589|      0|				flog(LOG_CRIT, "realloc failed: %s", strerror(errno));
 2590|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2591|      0|			}
 2592|      0|			memcpy(&rdnss->AdvRDNSSAddr[rdnss->AdvRDNSSNumber - 1], (yyvsp[0].addr), sizeof(struct in6_addr));
 2593|      0|		}
 2594|      0|#line 2595 "gram.c"
 2595|      0|    break;
 2596|       |
 2597|      0|  case 98: /* rdnsshead: T_RDNSS rdnssaddrs  */
  ------------------
  |  Branch (2597:3): [True: 0, False: 0]
  ------------------
 2598|      0|#line 874 "gram.y"
 2599|      0|                {
 2600|      0|			if (!rdnss) {
  ------------------
  |  Branch (2600:8): [True: 0, False: 0]
  ------------------
 2601|      0|				flog(LOG_CRIT, "no address specified in RDNSS section");
 2602|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2603|      0|			}
 2604|      0|		}
 2605|      0|#line 2606 "gram.c"
 2606|      0|    break;
 2607|       |
 2608|      0|  case 103: /* rdnssparms: T_AdvRDNSSPreference NUMBER ';'  */
  ------------------
  |  Branch (2608:3): [True: 0, False: 0]
  ------------------
 2609|      0|#line 892 "gram.y"
 2610|      0|                {
 2611|      0|			flog(LOG_WARNING, "ignoring deprecated RDNSS preference");
 2612|      0|		}
 2613|      0|#line 2614 "gram.c"
 2614|      0|    break;
 2615|       |
 2616|      0|  case 104: /* rdnssparms: T_AdvRDNSSOpenFlag SWITCH ';'  */
  ------------------
  |  Branch (2616:3): [True: 0, False: 0]
  ------------------
 2617|      0|#line 896 "gram.y"
 2618|      0|                {
 2619|      0|			flog(LOG_WARNING, "ignoring deprecated RDNSS open flag");
 2620|      0|		}
 2621|      0|#line 2622 "gram.c"
 2622|      0|    break;
 2623|       |
 2624|      0|  case 105: /* rdnssparms: T_AdvRDNSSLifetime number_or_infinity ';'  */
  ------------------
  |  Branch (2624:3): [True: 0, False: 0]
  ------------------
 2625|      0|#line 900 "gram.y"
 2626|      0|                {
 2627|      0|			rdnss->AdvRDNSSLifetime = (yyvsp[-1].num);
 2628|      0|		}
 2629|      0|#line 2630 "gram.c"
 2630|      0|    break;
 2631|       |
 2632|      0|  case 106: /* rdnssparms: T_FlushRDNSS SWITCH ';'  */
  ------------------
  |  Branch (2632:3): [True: 0, False: 0]
  ------------------
 2633|      0|#line 904 "gram.y"
 2634|      0|                {
 2635|      0|			rdnss->FlushRDNSSFlag = (yyvsp[-1].num);
 2636|      0|		}
 2637|      0|#line 2638 "gram.c"
 2638|      0|    break;
 2639|       |
 2640|      0|  case 107: /* dnssldef: dnsslhead '{' optional_dnsslplist '}' ';'  */
  ------------------
  |  Branch (2640:3): [True: 0, False: 0]
  ------------------
 2641|      0|#line 910 "gram.y"
 2642|      0|                {
 2643|      0|			(yyval.dnsslinfo) = dnssl;
 2644|      0|			dnssl = NULL;
 2645|      0|		}
 2646|      0|#line 2647 "gram.c"
 2647|      0|    break;
 2648|       |
 2649|      0|  case 110: /* dnsslsuffix: STRING  */
  ------------------
  |  Branch (2649:3): [True: 0, False: 0]
  ------------------
 2650|      0|#line 921 "gram.y"
 2651|      0|                {
 2652|      0|			char *ch;
 2653|      0|			for (ch = (yyvsp[0].str);*ch != '\0';ch++) {
  ------------------
  |  Branch (2653:29): [True: 0, False: 0]
  ------------------
 2654|      0|				if (*ch >= 'A' && *ch <= 'Z')
  ------------------
  |  Branch (2654:9): [True: 0, False: 0]
  |  Branch (2654:23): [True: 0, False: 0]
  ------------------
 2655|      0|					continue;
 2656|      0|				if (*ch >= 'a' && *ch <= 'z')
  ------------------
  |  Branch (2656:9): [True: 0, False: 0]
  |  Branch (2656:23): [True: 0, False: 0]
  ------------------
 2657|      0|					continue;
 2658|      0|				if (*ch >= '0' && *ch <= '9')
  ------------------
  |  Branch (2658:9): [True: 0, False: 0]
  |  Branch (2658:23): [True: 0, False: 0]
  ------------------
 2659|      0|					continue;
 2660|      0|				if (*ch == '-' || *ch == '.')
  ------------------
  |  Branch (2660:9): [True: 0, False: 0]
  |  Branch (2660:23): [True: 0, False: 0]
  ------------------
 2661|      0|					continue;
 2662|       |
 2663|      0|				flog(LOG_CRIT, "invalid domain suffix specified");
 2664|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2665|      0|			}
 2666|       |
 2667|      0|			if (!dnssl) {
  ------------------
  |  Branch (2667:8): [True: 0, False: 0]
  ------------------
 2668|       |				/* first domain found */
 2669|      0|				dnssl = malloc(sizeof(struct AdvDNSSL));
 2670|       |
 2671|      0|				if (dnssl == NULL) {
  ------------------
  |  Branch (2671:9): [True: 0, False: 0]
  ------------------
 2672|      0|					flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2673|      0|					ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2674|      0|				}
 2675|       |
 2676|      0|				dnssl_init_defaults(dnssl, iface);
 2677|      0|			}
 2678|       |
 2679|      0|			dnssl->AdvDNSSLNumber++;
 2680|      0|			dnssl->AdvDNSSLSuffixes =
 2681|      0|				realloc(dnssl->AdvDNSSLSuffixes,
 2682|      0|					dnssl->AdvDNSSLNumber * sizeof(char*));
 2683|      0|			if (dnssl->AdvDNSSLSuffixes == NULL) {
  ------------------
  |  Branch (2683:8): [True: 0, False: 0]
  ------------------
 2684|      0|				flog(LOG_CRIT, "realloc failed: %s", strerror(errno));
 2685|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2686|      0|			}
 2687|       |
 2688|      0|			dnssl->AdvDNSSLSuffixes[dnssl->AdvDNSSLNumber - 1] = strdup((yyvsp[0].str));
 2689|      0|		}
 2690|      0|#line 2691 "gram.c"
 2691|      0|    break;
 2692|       |
 2693|      0|  case 111: /* dnsslhead: T_DNSSL dnsslsuffixes  */
  ------------------
  |  Branch (2693:3): [True: 0, False: 0]
  ------------------
 2694|      0|#line 963 "gram.y"
 2695|      0|                {
 2696|      0|			if (!dnssl) {
  ------------------
  |  Branch (2696:8): [True: 0, False: 0]
  ------------------
 2697|      0|				flog(LOG_CRIT, "no domain specified in DNSSL section");
 2698|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2699|      0|			}
 2700|      0|		}
 2701|      0|#line 2702 "gram.c"
 2702|      0|    break;
 2703|       |
 2704|      0|  case 116: /* dnsslparms: T_AdvDNSSLLifetime number_or_infinity ';'  */
  ------------------
  |  Branch (2704:3): [True: 0, False: 0]
  ------------------
 2705|      0|#line 981 "gram.y"
 2706|      0|                {
 2707|      0|			dnssl->AdvDNSSLLifetime = (yyvsp[-1].num);
 2708|       |
 2709|      0|		}
 2710|      0|#line 2711 "gram.c"
 2711|      0|    break;
 2712|       |
 2713|      0|  case 117: /* dnsslparms: T_FlushDNSSL SWITCH ';'  */
  ------------------
  |  Branch (2713:3): [True: 0, False: 0]
  ------------------
 2714|      0|#line 986 "gram.y"
 2715|      0|                {
 2716|      0|			dnssl->FlushDNSSLFlag = (yyvsp[-1].num);
 2717|      0|		}
 2718|      0|#line 2719 "gram.c"
 2719|      0|    break;
 2720|       |
 2721|      0|  case 118: /* lowpancodef: lowpancohead '{' optional_lowpancoplist '}' ';'  */
  ------------------
  |  Branch (2721:3): [True: 0, False: 0]
  ------------------
 2722|      0|#line 992 "gram.y"
 2723|      0|                {
 2724|      0|			(yyval.lowpancoinfo) = lowpanco;
 2725|      0|			lowpanco = NULL;
 2726|      0|		}
 2727|      0|#line 2728 "gram.c"
 2728|      0|    break;
 2729|       |
 2730|      0|  case 119: /* lowpancohead: T_LOWPANCO  */
  ------------------
  |  Branch (2730:3): [True: 0, False: 0]
  ------------------
 2731|      0|#line 999 "gram.y"
 2732|      0|                {
 2733|      0|			lowpanco = malloc(sizeof(struct AdvLowpanCo));
 2734|       |
 2735|      0|			if (lowpanco == NULL) {
  ------------------
  |  Branch (2735:8): [True: 0, False: 0]
  ------------------
 2736|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2737|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2738|      0|			}
 2739|       |
 2740|      0|			memset(lowpanco, 0, sizeof(struct AdvLowpanCo));
 2741|      0|		}
 2742|      0|#line 2743 "gram.c"
 2743|      0|    break;
 2744|       |
 2745|      0|  case 124: /* lowpancoparms: T_AdvContextLength NUMBER ';'  */
  ------------------
  |  Branch (2745:3): [True: 0, False: 0]
  ------------------
 2746|      0|#line 1020 "gram.y"
 2747|      0|                {
 2748|      0|			lowpanco->ContextLength = (yyvsp[-1].num);
 2749|      0|		}
 2750|      0|#line 2751 "gram.c"
 2751|      0|    break;
 2752|       |
 2753|      0|  case 125: /* lowpancoparms: T_AdvContextCompressionFlag SWITCH ';'  */
  ------------------
  |  Branch (2753:3): [True: 0, False: 0]
  ------------------
 2754|      0|#line 1024 "gram.y"
 2755|      0|                {
 2756|      0|			lowpanco->ContextCompressionFlag = (yyvsp[-1].num);
 2757|      0|		}
 2758|      0|#line 2759 "gram.c"
 2759|      0|    break;
 2760|       |
 2761|      0|  case 126: /* lowpancoparms: T_AdvContextID NUMBER ';'  */
  ------------------
  |  Branch (2761:3): [True: 0, False: 0]
  ------------------
 2762|      0|#line 1028 "gram.y"
 2763|      0|                {
 2764|      0|			lowpanco->AdvContextID = (yyvsp[-1].num);
 2765|      0|		}
 2766|      0|#line 2767 "gram.c"
 2767|      0|    break;
 2768|       |
 2769|      0|  case 127: /* lowpancoparms: T_AdvLifeTime NUMBER ';'  */
  ------------------
  |  Branch (2769:3): [True: 0, False: 0]
  ------------------
 2770|      0|#line 1032 "gram.y"
 2771|      0|                {
 2772|      0|			lowpanco->AdvLifeTime = (yyvsp[-1].num);
 2773|      0|		}
 2774|      0|#line 2775 "gram.c"
 2775|      0|    break;
 2776|       |
 2777|      0|  case 128: /* abrodef: abrohead '{' optional_abroplist '}' ';'  */
  ------------------
  |  Branch (2777:3): [True: 0, False: 0]
  ------------------
 2778|      0|#line 1038 "gram.y"
 2779|      0|                {
 2780|      0|			(yyval.abroinfo) = abro;
 2781|      0|			abro = NULL;
 2782|      0|		}
 2783|      0|#line 2784 "gram.c"
 2784|      0|    break;
 2785|       |
 2786|      0|  case 131: /* abrohead_new: T_ABRO IPV6ADDR  */
  ------------------
  |  Branch (2786:3): [True: 0, False: 0]
  ------------------
 2787|      0|#line 1047 "gram.y"
 2788|      0|                {
 2789|      0|			abro = malloc(sizeof(struct AdvAbro));
 2790|       |
 2791|      0|			if (abro == NULL) {
  ------------------
  |  Branch (2791:8): [True: 0, False: 0]
  ------------------
 2792|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2793|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2794|      0|			}
 2795|       |
 2796|      0|			memset(abro, 0, sizeof(struct AdvAbro));
 2797|      0|			memcpy(&abro->LBRaddress, (yyvsp[0].addr), sizeof(struct in6_addr));
 2798|      0|		}
 2799|      0|#line 2800 "gram.c"
 2800|      0|    break;
 2801|       |
 2802|      0|  case 132: /* abrohead_dep: T_ABRO IPV6ADDR '/' NUMBER  */
  ------------------
  |  Branch (2802:3): [True: 0, False: 0]
  ------------------
 2803|      0|#line 1061 "gram.y"
 2804|      0|                {
 2805|      0|			flog(LOG_WARNING
 2806|      0|				, "%s:%d abro prefix length deprecated, remove trailing '/%d'"
 2807|      0|				, filename
 2808|      0|				, num_lines
 2809|      0|				, (yyvsp[0].num)
 2810|      0|			);
 2811|      0|			abro = malloc(sizeof(struct AdvAbro));
 2812|       |
 2813|      0|			if (abro == NULL) {
  ------------------
  |  Branch (2813:8): [True: 0, False: 0]
  ------------------
 2814|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2815|      0|				ABORT;
  ------------------
  |  |  501|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1235|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (501:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2816|      0|			}
 2817|       |
 2818|      0|			memset(abro, 0, sizeof(struct AdvAbro));
 2819|      0|			memcpy(&abro->LBRaddress, (yyvsp[-2].addr), sizeof(struct in6_addr));
 2820|      0|		}
 2821|      0|#line 2822 "gram.c"
 2822|      0|    break;
 2823|       |
 2824|      0|  case 137: /* abroparms: T_AdvVersionLow NUMBER ';'  */
  ------------------
  |  Branch (2824:3): [True: 0, False: 0]
  ------------------
 2825|      0|#line 1089 "gram.y"
 2826|      0|                {
 2827|      0|			abro->Version[1] = (yyvsp[-1].num);
 2828|      0|		}
 2829|      0|#line 2830 "gram.c"
 2830|      0|    break;
 2831|       |
 2832|      0|  case 138: /* abroparms: T_AdvVersionHigh NUMBER ';'  */
  ------------------
  |  Branch (2832:3): [True: 0, False: 0]
  ------------------
 2833|      0|#line 1093 "gram.y"
 2834|      0|                {
 2835|      0|			abro->Version[0] = (yyvsp[-1].num);
 2836|      0|		}
 2837|      0|#line 2838 "gram.c"
 2838|      0|    break;
 2839|       |
 2840|      0|  case 139: /* abroparms: T_AdvValidLifetime NUMBER ';'  */
  ------------------
  |  Branch (2840:3): [True: 0, False: 0]
  ------------------
 2841|      0|#line 1097 "gram.y"
 2842|      0|                {
 2843|      0|			abro->ValidLifeTime = (yyvsp[-1].num);
 2844|      0|		}
 2845|      0|#line 2846 "gram.c"
 2846|      0|    break;
 2847|       |
 2848|      0|  case 140: /* number_or_infinity: NUMBER  */
  ------------------
  |  Branch (2848:3): [True: 0, False: 0]
  ------------------
 2849|      0|#line 1103 "gram.y"
 2850|      0|                        {
 2851|      0|				(yyval.num) = (yyvsp[0].num);
 2852|      0|			}
 2853|      0|#line 2854 "gram.c"
 2854|      0|    break;
 2855|       |
 2856|      0|  case 141: /* number_or_infinity: INFINITY  */
  ------------------
  |  Branch (2856:3): [True: 0, False: 0]
  ------------------
 2857|      0|#line 1107 "gram.y"
 2858|      0|                        {
 2859|      0|				(yyval.num) = (uint32_t)~0;
 2860|      0|			}
 2861|      0|#line 2862 "gram.c"
 2862|      0|    break;
 2863|       |
 2864|       |
 2865|      0|#line 2866 "gram.c"
 2866|       |
 2867|      0|      default: break;
  ------------------
  |  Branch (2867:7): [True: 0, False: 0]
  ------------------
 2868|      0|    }
 2869|       |  /* User semantic actions sometimes alter yychar, and that requires
 2870|       |     that yytoken be updated with the new translation.  We take the
 2871|       |     approach of translating immediately before every use of yytoken.
 2872|       |     One alternative is translating here after every semantic action,
 2873|       |     but that translation would be missed if the semantic action invokes
 2874|       |     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
 2875|       |     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
 2876|       |     incorrect destructor might then be invoked immediately.  In the
 2877|       |     case of YYERROR or YYBACKUP, subsequent parser actions might lead
 2878|       |     to an incorrect destructor call or verbose syntax error message
 2879|       |     before the lookahead is translated.  */
 2880|      0|  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
 2881|       |
 2882|      0|  YYPOPSTACK (yylen);
  ------------------
  |  | 1480|      0|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 2883|      0|  yylen = 0;
 2884|       |
 2885|      0|  *++yyvsp = yyval;
 2886|       |
 2887|       |  /* Now 'shift' the result of the reduction.  Determine what state
 2888|       |     that goes to, based on the state we popped back to and the rule
 2889|       |     number reduced by.  */
 2890|      0|  {
 2891|      0|    const int yylhs = yyr1[yyn] - YYNTOKENS;
  ------------------
  |  |  831|      0|#define YYNTOKENS  80
  ------------------
 2892|      0|    const int yyi = yypgoto[yylhs] + *yyssp;
 2893|      0|    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
  ------------------
  |  |  828|      0|#define YYLAST   292
  ------------------
  |  Branch (2893:16): [True: 0, False: 0]
  |  Branch (2893:28): [True: 0, False: 0]
  |  Branch (2893:45): [True: 0, False: 0]
  ------------------
 2894|      0|               ? yytable[yyi]
 2895|      0|               : yydefgoto[yylhs]);
 2896|      0|  }
 2897|       |
 2898|      0|  goto yynewstate;
 2899|       |
 2900|       |
 2901|       |/*--------------------------------------.
 2902|       || yyerrlab -- here on detecting error.  |
 2903|       |`--------------------------------------*/
 2904|    619|yyerrlab:
 2905|       |  /* Make sure we have latest lookahead translation.  See comments at
 2906|       |     user semantic actions for why this is necessary.  */
 2907|    619|  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
  ------------------
  |  |  226|    619|#define YYEMPTY -2
  ------------------
                yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
  ------------------
  |  |  846|  1.23k|  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
  |  |  ------------------
  |  |  |  |  840|    619|#define YYMAXUTOK   330
  |  |  ------------------
  |  |  |  Branch (846:4): [True: 619, False: 0]
  |  |  |  Branch (846:18): [True: 619, False: 0]
  |  |  ------------------
  |  |  847|  1.23k|   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
  |  |  ------------------
  |  |  |  |  112|    619|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  ------------------
  |  |  848|  1.23k|   : YYSYMBOL_YYUNDEF)
  ------------------
  |  Branch (2907:13): [True: 0, False: 619]
  ------------------
 2908|       |  /* If not already recovering from an error, report this error.  */
 2909|    619|  if (!yyerrstatus)
  ------------------
  |  Branch (2909:7): [True: 619, False: 0]
  ------------------
 2910|    619|    {
 2911|    619|      ++yynerrs;
 2912|    619|      yyerror (YY_("syntax error"));
  ------------------
  |  |  630|    619|#  define YY_(Msgid) Msgid
  ------------------
 2913|    619|    }
 2914|       |
 2915|    619|  if (yyerrstatus == 3)
  ------------------
  |  Branch (2915:7): [True: 0, False: 619]
  ------------------
 2916|      0|    {
 2917|       |      /* If just tried and failed to reuse lookahead token after an
 2918|       |         error, discard it.  */
 2919|       |
 2920|      0|      if (yychar <= YYEOF)
  ------------------
  |  |  227|      0|#define YYEOF 0
  ------------------
  |  Branch (2920:11): [True: 0, False: 0]
  ------------------
 2921|      0|        {
 2922|       |          /* Return failure if at end of input.  */
 2923|      0|          if (yychar == YYEOF)
  ------------------
  |  |  227|      0|#define YYEOF 0
  ------------------
  |  Branch (2923:15): [True: 0, False: 0]
  ------------------
 2924|      0|            YYABORT;
  ------------------
  |  | 1235|      0|#define YYABORT         goto yyabortlab
  ------------------
 2925|      0|        }
 2926|      0|      else
 2927|      0|        {
 2928|      0|          yydestruct ("Error: discarding",
 2929|      0|                      yytoken, &yylval);
 2930|      0|          yychar = YYEMPTY;
  ------------------
  |  |  226|      0|#define YYEMPTY -2
  ------------------
 2931|      0|        }
 2932|      0|    }
 2933|       |
 2934|       |  /* Else will try to reuse lookahead token after shifting the error
 2935|       |     token.  */
 2936|    619|  goto yyerrlab1;
 2937|       |
 2938|       |
 2939|       |/*---------------------------------------------------.
 2940|       || yyerrorlab -- error raised explicitly by YYERROR.  |
 2941|       |`---------------------------------------------------*/
 2942|    619|yyerrorlab:
 2943|       |  /* Pacify compilers when the user code never invokes YYERROR and the
 2944|       |     label yyerrorlab therefore never appears in user code.  */
 2945|      0|  if (0)
  ------------------
  |  Branch (2945:7): [Folded, False: 0]
  ------------------
 2946|      0|    YYERROR;
  ------------------
  |  | 1236|      0|#define YYERROR         goto yyerrorlab
  ------------------
 2947|      0|  ++yynerrs;
 2948|       |
 2949|       |  /* Do not reclaim the symbols of the rule whose action triggered
 2950|       |     this YYERROR.  */
 2951|      0|  YYPOPSTACK (yylen);
  ------------------
  |  | 1480|      0|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 2952|      0|  yylen = 0;
 2953|      0|  YY_STACK_PRINT (yyss, yyssp);
 2954|      0|  yystate = *yyssp;
 2955|      0|  goto yyerrlab1;
 2956|       |
 2957|       |
 2958|       |/*-------------------------------------------------------------.
 2959|       || yyerrlab1 -- common code for both syntax error and YYERROR.  |
 2960|       |`-------------------------------------------------------------*/
 2961|    619|yyerrlab1:
 2962|    619|  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 2963|       |
 2964|       |  /* Pop stack until we find a state that shifts the error token.  */
 2965|    619|  for (;;)
 2966|    619|    {
 2967|    619|      yyn = yypact[yystate];
 2968|    619|      if (!yypact_value_is_default (yyn))
  ------------------
  |  |  973|    619|  ((Yyn) == YYPACT_NINF)
  |  |  ------------------
  |  |  |  |  970|    619|#define YYPACT_NINF (-86)
  |  |  ------------------
  ------------------
  |  Branch (2968:11): [True: 619, False: 0]
  ------------------
 2969|    619|        {
 2970|    619|          yyn += YYSYMBOL_YYerror;
 2971|    619|          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
  ------------------
  |  |  828|  1.23k|#define YYLAST   292
  ------------------
  |  Branch (2971:15): [True: 619, False: 0]
  |  Branch (2971:27): [True: 619, False: 0]
  |  Branch (2971:44): [True: 0, False: 619]
  ------------------
 2972|      0|            {
 2973|      0|              yyn = yytable[yyn];
 2974|      0|              if (0 < yyn)
  ------------------
  |  Branch (2974:19): [True: 0, False: 0]
  ------------------
 2975|      0|                break;
 2976|      0|            }
 2977|    619|        }
 2978|       |
 2979|       |      /* Pop the current state because it cannot handle the error token.  */
 2980|    619|      if (yyssp == yyss)
  ------------------
  |  Branch (2980:11): [True: 619, False: 0]
  ------------------
 2981|    619|        YYABORT;
  ------------------
  |  | 1235|    619|#define YYABORT         goto yyabortlab
  ------------------
 2982|       |
 2983|       |
 2984|      0|      yydestruct ("Error: popping",
 2985|      0|                  YY_ACCESSING_SYMBOL (yystate), yyvsp);
  ------------------
  |  |  913|      0|#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
  |  |  ------------------
  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  ------------------
  ------------------
 2986|      0|      YYPOPSTACK (1);
  ------------------
  |  | 1480|      0|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 2987|      0|      yystate = *yyssp;
 2988|      0|      YY_STACK_PRINT (yyss, yyssp);
 2989|      0|    }
 2990|       |
 2991|      0|  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 2992|      0|  *++yyvsp = yylval;
 2993|      0|  YY_IGNORE_MAYBE_UNINITIALIZED_END
 2994|       |
 2995|       |
 2996|       |  /* Shift the error token.  */
 2997|      0|  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
 2998|       |
 2999|      0|  yystate = yyn;
 3000|      0|  goto yynewstate;
 3001|       |
 3002|       |
 3003|       |/*-------------------------------------.
 3004|       || yyacceptlab -- YYACCEPT comes here.  |
 3005|       |`-------------------------------------*/
 3006|      0|yyacceptlab:
 3007|      0|  yyresult = 0;
 3008|      0|  goto yyreturnlab;
 3009|       |
 3010|       |
 3011|       |/*-----------------------------------.
 3012|       || yyabortlab -- YYABORT comes here.  |
 3013|       |`-----------------------------------*/
 3014|    619|yyabortlab:
 3015|    619|  yyresult = 1;
 3016|    619|  goto yyreturnlab;
 3017|       |
 3018|       |
 3019|       |/*-----------------------------------------------------------.
 3020|       || yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
 3021|       |`-----------------------------------------------------------*/
 3022|      0|yyexhaustedlab:
 3023|      0|  yyerror (YY_("memory exhausted"));
  ------------------
  |  |  630|      0|#  define YY_(Msgid) Msgid
  ------------------
 3024|      0|  yyresult = 2;
 3025|      0|  goto yyreturnlab;
 3026|       |
 3027|       |
 3028|       |/*----------------------------------------------------------.
 3029|       || yyreturnlab -- parsing is finished, clean up and return.  |
 3030|       |`----------------------------------------------------------*/
 3031|    619|yyreturnlab:
 3032|    619|  if (yychar != YYEMPTY)
  ------------------
  |  |  226|    619|#define YYEMPTY -2
  ------------------
  |  Branch (3032:7): [True: 619, False: 0]
  ------------------
 3033|    619|    {
 3034|       |      /* Make sure we have latest lookahead translation.  See comments at
 3035|       |         user semantic actions for why this is necessary.  */
 3036|    619|      yytoken = YYTRANSLATE (yychar);
  ------------------
  |  |  846|    619|  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
  |  |  ------------------
  |  |  |  |  840|    619|#define YYMAXUTOK   330
  |  |  ------------------
  |  |  |  Branch (846:4): [True: 619, False: 0]
  |  |  |  Branch (846:18): [True: 619, False: 0]
  |  |  ------------------
  |  |  847|    619|   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
  |  |  ------------------
  |  |  |  |  112|    619|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  ------------------
  |  |  848|    619|   : YYSYMBOL_YYUNDEF)
  ------------------
 3037|    619|      yydestruct ("Cleanup: discarding lookahead",
 3038|    619|                  yytoken, &yylval);
 3039|    619|    }
 3040|       |  /* Do not reclaim the symbols of the rule whose action triggered
 3041|       |     this YYABORT or YYACCEPT.  */
 3042|    619|  YYPOPSTACK (yylen);
  ------------------
  |  | 1480|    619|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 3043|    619|  YY_STACK_PRINT (yyss, yyssp);
 3044|    619|  while (yyssp != yyss)
  ------------------
  |  Branch (3044:10): [True: 0, False: 619]
  ------------------
 3045|      0|    {
 3046|      0|      yydestruct ("Cleanup: popping",
 3047|      0|                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
  ------------------
  |  |  913|      0|#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
  |  |  ------------------
  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  ------------------
  ------------------
 3048|      0|      YYPOPSTACK (1);
  ------------------
  |  | 1480|      0|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 3049|      0|    }
 3050|    619|#ifndef yyoverflow
 3051|    619|  if (yyss != yyssa)
  ------------------
  |  Branch (3051:7): [True: 0, False: 619]
  ------------------
 3052|      0|    YYSTACK_FREE (yyss);
  ------------------
  |  |  738|      0|#  define YYSTACK_FREE YYFREE
  |  |  ------------------
  |  |  |  |  757|      0|#   define YYFREE free
  |  |  ------------------
  ------------------
 3053|    619|#endif
 3054|       |
 3055|    619|  return yyresult;
 3056|    619|}
readin_config:
 3105|    619|{
 3106|    619|	IfaceList = 0;
 3107|    619|	FILE * in = fopen(path, "r");
 3108|    619|	if (in) {
  ------------------
  |  Branch (3108:6): [True: 619, False: 0]
  ------------------
 3109|    619|		filename = path;
 3110|    619|		num_lines = 1;
 3111|    619|		iface = 0;
 3112|       |
 3113|    619|		yyset_in(in);
 3114|    619|		if (yyparse() != 0) {
  ------------------
  |  Branch (3114:7): [True: 619, False: 0]
  ------------------
 3115|    619|			free_ifaces(iface);
 3116|    619|			iface = 0;
 3117|    619|			IfaceList = 0;
 3118|    619|		} else {
 3119|      0|			dlog(LOG_DEBUG, 1, "config file, %s, syntax ok", path);
 3120|      0|		}
 3121|    619|		yylex_destroy();
 3122|    619|		fclose(in);
 3123|    619|	}
 3124|       |
 3125|    619|	return IfaceList;
 3126|    619|}
gram.c:yydestruct:
 1419|    619|{
 1420|    619|  YY_USE (yyvaluep);
  ------------------
  |  |  653|    619|# define YY_USE(E) ((void) (E))
  ------------------
 1421|    619|  if (!yymsg)
  ------------------
  |  Branch (1421:7): [True: 0, False: 619]
  ------------------
 1422|      0|    yymsg = "Deleting";
 1423|    619|  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
 1424|       |
 1425|    619|  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 1426|    619|  YY_USE (yykind);
  ------------------
  |  |  653|    619|# define YY_USE(E) ((void) (E))
  ------------------
 1427|    619|  YY_IGNORE_MAYBE_UNINITIALIZED_END
 1428|    619|}
gram.c:yyerror:
 3129|    619|{
 3130|       |	fprintf(stderr, "%s:%d error: %s\n",
 3131|    619|		filename,
 3132|    619|		num_lines,
 3133|    619|		msg);
 3134|    619|}

free_ifaces:
  467|    619|{
  468|    619|	dlog(LOG_DEBUG, 3, "Freeing Interfaces");
  469|       |
  470|    619|	free_iface_list(ifaces);
  471|    619|}
interface.c:free_iface_list:
  398|    619|{
  399|    619|	while (iface) {
  ------------------
  |  Branch (399:9): [True: 0, False: 619]
  ------------------
  400|      0|		struct Interface *next_iface = iface->next;
  401|       |
  402|      0|		dlog(LOG_DEBUG, 4, "freeing interface %s", iface->props.name);
  403|       |
  404|      0|		struct AdvPrefix *prefix = iface->AdvPrefixList;
  405|      0|		while (prefix) {
  ------------------
  |  Branch (405:10): [True: 0, False: 0]
  ------------------
  406|      0|			struct AdvPrefix *next_prefix = prefix->next;
  407|       |
  408|      0|			free(prefix);
  409|      0|			prefix = next_prefix;
  410|      0|		}
  411|       |
  412|      0|		struct AdvRoute *route = iface->AdvRouteList;
  413|      0|		while (route) {
  ------------------
  |  Branch (413:10): [True: 0, False: 0]
  ------------------
  414|      0|			struct AdvRoute *next_route = route->next;
  415|       |
  416|      0|			free(route);
  417|      0|			route = next_route;
  418|      0|		}
  419|       |
  420|      0|		struct AdvRDNSS *rdnss = iface->AdvRDNSSList;
  421|      0|		while (rdnss) {
  ------------------
  |  Branch (421:10): [True: 0, False: 0]
  ------------------
  422|      0|			struct AdvRDNSS *next_rdnss = rdnss->next;
  423|       |
  424|      0|			free(rdnss->AdvRDNSSAddr);
  425|      0|			free(rdnss);
  426|      0|			rdnss = next_rdnss;
  427|      0|		}
  428|       |
  429|      0|		struct AdvDNSSL *dnssl = iface->AdvDNSSLList;
  430|      0|		while (dnssl) {
  ------------------
  |  Branch (430:10): [True: 0, False: 0]
  ------------------
  431|      0|			struct AdvDNSSL *next_dnssl = dnssl->next;
  432|       |
  433|      0|			for (int i = 0; i < dnssl->AdvDNSSLNumber; i++)
  ------------------
  |  Branch (433:20): [True: 0, False: 0]
  ------------------
  434|      0|				free(dnssl->AdvDNSSLSuffixes[i]);
  435|      0|			free(dnssl->AdvDNSSLSuffixes);
  436|      0|			free(dnssl);
  437|       |
  438|      0|			dnssl = next_dnssl;
  439|      0|		}
  440|       |
  441|      0|		struct AutogenIgnorePrefix *ignore_prefixes = iface->IgnorePrefixList;
  442|      0|		while (ignore_prefixes) {
  ------------------
  |  Branch (442:10): [True: 0, False: 0]
  ------------------
  443|      0|			struct AutogenIgnorePrefix *next_ignore_prefix = ignore_prefixes->next;
  444|       |
  445|      0|			free(ignore_prefixes);
  446|      0|			ignore_prefixes = next_ignore_prefix;
  447|      0|		}
  448|       |
  449|      0|		struct Clients *clients = iface->ClientList;
  450|      0|		while (clients) {
  ------------------
  |  Branch (450:10): [True: 0, False: 0]
  ------------------
  451|      0|			struct Clients *next_client = clients->next;
  452|       |
  453|      0|			free(clients);
  454|      0|			clients = next_client;
  455|      0|		}
  456|       |
  457|      0|		free(iface->props.if_addrs);
  458|       |
  459|      0|		free(iface->AdvCaptivePortalAPI);
  460|       |
  461|      0|		free(iface);
  462|      0|		iface = next_iface;
  463|      0|	}
  464|    619|}

yylex:
 1712|    619|{
 1713|    619|	yy_state_type yy_current_state;
 1714|    619|	char *yy_cp, *yy_bp;
 1715|    619|	int yy_act;
 1716|       |    
 1717|    619|	if ( !(yy_init) )
  ------------------
  |  Branch (1717:7): [True: 619, False: 0]
  ------------------
 1718|    619|		{
 1719|    619|		(yy_init) = 1;
 1720|       |
 1721|       |#ifdef YY_USER_INIT
 1722|       |		YY_USER_INIT;
 1723|       |#endif
 1724|       |
 1725|    619|		if ( ! (yy_start) )
  ------------------
  |  Branch (1725:8): [True: 619, False: 0]
  ------------------
 1726|    619|			(yy_start) = 1;	/* first start state */
 1727|       |
 1728|    619|		if ( ! yyin )
  ------------------
  |  Branch (1728:8): [True: 0, False: 619]
  ------------------
 1729|      0|			yyin = stdin;
 1730|       |
 1731|    619|		if ( ! yyout )
  ------------------
  |  Branch (1731:8): [True: 619, False: 0]
  ------------------
 1732|    619|			yyout = stdout;
 1733|       |
 1734|    619|		if ( ! YY_CURRENT_BUFFER ) {
  ------------------
  |  |  278|    619|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 0, False: 619]
  |  |  ------------------
  |  |  279|    619|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|    619|                          : NULL)
  ------------------
  |  Branch (1734:8): [True: 619, False: 0]
  ------------------
 1735|    619|			yyensure_buffer_stack ();
 1736|    619|			YY_CURRENT_BUFFER_LVALUE =
  ------------------
  |  |  284|    619|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 1737|    619|				yy_create_buffer( yyin, YY_BUF_SIZE );
  ------------------
  |  |  139|    619|#define YY_BUF_SIZE 16384
  ------------------
 1738|    619|		}
 1739|       |
 1740|    619|		yy_load_buffer_state(  );
 1741|    619|		}
 1742|       |
 1743|    619|	{
 1744|    619|#line 40 "scanner.l"
 1745|       |
 1746|       |
 1747|    619|#line 1748 "scanner.c"
 1748|       |
 1749|  2.97M|	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
  ------------------
  |  Branch (1749:23): [True: 2.97M, Folded]
  ------------------
 1750|  2.97M|		{
 1751|  2.97M|		yy_cp = (yy_c_buf_p);
 1752|       |
 1753|       |		/* Support of yytext. */
 1754|  2.97M|		*yy_cp = (yy_hold_char);
 1755|       |
 1756|       |		/* yy_bp points to the position in yy_ch_buf of the start of
 1757|       |		 * the current run.
 1758|       |		 */
 1759|  2.97M|		yy_bp = yy_cp;
 1760|       |
 1761|  2.97M|		yy_current_state = (yy_start);
 1762|  3.04M|yy_match:
 1763|  3.04M|		do
 1764|  16.3M|			{
 1765|  16.3M|			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
  ------------------
  |  |  111|  16.3M|#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
  ------------------
 1766|  16.3M|			if ( yy_accept[yy_current_state] )
  ------------------
  |  Branch (1766:9): [True: 1.97M, False: 14.3M]
  ------------------
 1767|  1.97M|				{
 1768|  1.97M|				(yy_last_accepting_state) = yy_current_state;
 1769|  1.97M|				(yy_last_accepting_cpos) = yy_cp;
 1770|  1.97M|				}
 1771|  28.0M|			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  ------------------
  |  Branch (1771:12): [True: 11.7M, False: 16.3M]
  ------------------
 1772|  11.7M|				{
 1773|  11.7M|				yy_current_state = (int) yy_def[yy_current_state];
 1774|  11.7M|				if ( yy_current_state >= 912 )
  ------------------
  |  Branch (1774:10): [True: 11.6M, False: 102k]
  ------------------
 1775|  11.6M|					yy_c = yy_meta[yy_c];
 1776|  11.7M|				}
 1777|  16.3M|			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 1778|  16.3M|			++yy_cp;
 1779|  16.3M|			}
 1780|  16.3M|		while ( yy_base[yy_current_state] != 3247 );
  ------------------
  |  Branch (1780:11): [True: 13.2M, False: 3.04M]
  ------------------
 1781|       |
 1782|  3.04M|yy_find_action:
 1783|  3.04M|		yy_act = yy_accept[yy_current_state];
 1784|  3.04M|		if ( yy_act == 0 )
  ------------------
  |  Branch (1784:8): [True: 73.2k, False: 2.97M]
  ------------------
 1785|  73.2k|			{ /* have to back up */
 1786|  73.2k|			yy_cp = (yy_last_accepting_cpos);
 1787|  73.2k|			yy_current_state = (yy_last_accepting_state);
 1788|  73.2k|			yy_act = yy_accept[yy_current_state];
 1789|  73.2k|			}
 1790|       |
 1791|  3.04M|		YY_DO_BEFORE_ACTION;
  ------------------
  |  |  371|  3.04M|	(yytext_ptr) = yy_bp; \
  |  |  ------------------
  |  |  |  |  360|  3.04M|#define yytext_ptr yytext
  |  |  ------------------
  |  |  372|  3.04M|	yyleng = (int) (yy_cp - yy_bp); \
  |  |  373|  3.04M|	(yy_hold_char) = *yy_cp; \
  |  |  374|  3.04M|	*yy_cp = '\0'; \
  |  |  375|  3.04M|	(yy_c_buf_p) = yy_cp;
  ------------------
 1792|       |
 1793|  3.04M|		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
  ------------------
  |  |  377|  6.09M|#define YY_END_OF_BUFFER 83
  ------------------
  |  Branch (1793:8): [True: 2.97M, False: 70.2k]
  |  Branch (1793:38): [True: 2.95M, False: 17.5k]
  ------------------
 1794|  2.95M|			{
 1795|  2.95M|			int yyl;
 1796|  6.98M|			for ( yyl = 0; yyl < yyleng; ++yyl )
  ------------------
  |  Branch (1796:19): [True: 4.02M, False: 2.95M]
  ------------------
 1797|  4.02M|				if ( yytext[yyl] == '\n' )
  ------------------
  |  Branch (1797:10): [True: 2.95M, False: 1.06M]
  ------------------
 1798|       |					
 1799|  2.95M|    yylineno++;
 1800|  2.95M|;
 1801|  2.95M|			}
 1802|       |
 1803|  3.04M|do_action:	/* This label is used only to access EOF actions. */
 1804|       |
 1805|  3.04M|		switch ( yy_act )
 1806|  3.04M|	{ /* beginning of action switch */
 1807|      0|			case 0: /* must back up */
  ------------------
  |  Branch (1807:4): [True: 0, False: 3.04M]
  ------------------
 1808|       |			/* undo the effects of YY_DO_BEFORE_ACTION */
 1809|      0|			*yy_cp = (yy_hold_char);
 1810|      0|			yy_cp = (yy_last_accepting_cpos);
 1811|      0|			yy_current_state = (yy_last_accepting_state);
 1812|      0|			goto yy_find_action;
 1813|       |
 1814|  14.3k|case 1:
  ------------------
  |  Branch (1814:1): [True: 14.3k, False: 3.03M]
  ------------------
 1815|  14.3k|*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
 1816|  14.3k|(yy_c_buf_p) = yy_cp -= 1;
 1817|  14.3k|YY_DO_BEFORE_ACTION; /* set up yytext again */
  ------------------
  |  |  371|  14.3k|	(yytext_ptr) = yy_bp; \
  |  |  ------------------
  |  |  |  |  360|  14.3k|#define yytext_ptr yytext
  |  |  ------------------
  |  |  372|  14.3k|	yyleng = (int) (yy_cp - yy_bp); \
  |  |  373|  14.3k|	(yy_hold_char) = *yy_cp; \
  |  |  374|  14.3k|	*yy_cp = '\0'; \
  |  |  375|  14.3k|	(yy_c_buf_p) = yy_cp;
  ------------------
 1818|  14.3k|YY_RULE_SETUP
 1819|  14.3k|#line 42 "scanner.l"
 1820|  14.3k|{/* ignore comments */}
 1821|  14.3k|	YY_BREAK
  ------------------
  |  | 1703|  14.3k|#define YY_BREAK /*LINTED*/break;
  ------------------
 1822|  2.95M|case 2:
  ------------------
  |  Branch (1822:1): [True: 2.95M, False: 88.0k]
  ------------------
 1823|       |/* rule 2 can match eol */
 1824|  2.95M|YY_RULE_SETUP
 1825|  2.95M|#line 43 "scanner.l"
 1826|  2.95M|{num_lines++;}
 1827|  2.95M|	YY_BREAK
  ------------------
  |  | 1703|  2.95M|#define YY_BREAK /*LINTED*/break;
  ------------------
 1828|  2.94k|case 3:
  ------------------
  |  Branch (1828:1): [True: 2.94k, False: 3.04M]
  ------------------
 1829|  2.94k|YY_RULE_SETUP
 1830|  2.94k|#line 44 "scanner.l"
 1831|  2.94k|{}
 1832|  2.94k|	YY_BREAK
  ------------------
  |  | 1703|  2.94k|#define YY_BREAK /*LINTED*/break;
  ------------------
 1833|      0|case 4:
  ------------------
  |  Branch (1833:1): [True: 0, False: 3.04M]
  ------------------
 1834|      0|YY_RULE_SETUP
 1835|      0|#line 46 "scanner.l"
 1836|      0|{ return T_INTERFACE; }
  ------------------
  |  |  138|      0|#define T_INTERFACE 258
  ------------------
 1837|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1838|      2|case 5:
  ------------------
  |  Branch (1838:1): [True: 2, False: 3.04M]
  ------------------
 1839|      2|YY_RULE_SETUP
 1840|      2|#line 47 "scanner.l"
 1841|      2|{ return T_PREFIX; }
  ------------------
  |  |  139|      2|#define T_PREFIX 259
  ------------------
 1842|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1843|      0|case 6:
  ------------------
  |  Branch (1843:1): [True: 0, False: 3.04M]
  ------------------
 1844|      0|YY_RULE_SETUP
 1845|      0|#line 48 "scanner.l"
 1846|      0|{ return T_ROUTE; }
  ------------------
  |  |  140|      0|#define T_ROUTE 260
  ------------------
 1847|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1848|      1|case 7:
  ------------------
  |  Branch (1848:1): [True: 1, False: 3.04M]
  ------------------
 1849|      1|YY_RULE_SETUP
 1850|      1|#line 49 "scanner.l"
 1851|      1|{ return T_RDNSS; }
  ------------------
  |  |  141|      1|#define T_RDNSS 261
  ------------------
 1852|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1853|      2|case 8:
  ------------------
  |  Branch (1853:1): [True: 2, False: 3.04M]
  ------------------
 1854|      2|YY_RULE_SETUP
 1855|      2|#line 50 "scanner.l"
 1856|      2|{ return T_DNSSL; }
  ------------------
  |  |  142|      2|#define T_DNSSL 262
  ------------------
 1857|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1858|      0|case 9:
  ------------------
  |  Branch (1858:1): [True: 0, False: 3.04M]
  ------------------
 1859|      0|YY_RULE_SETUP
 1860|      0|#line 51 "scanner.l"
 1861|      0|{ return T_CLIENTS; }
  ------------------
  |  |  143|      0|#define T_CLIENTS 263
  ------------------
 1862|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1863|      0|case 10:
  ------------------
  |  Branch (1863:1): [True: 0, False: 3.04M]
  ------------------
 1864|      0|YY_RULE_SETUP
 1865|      0|#line 52 "scanner.l"
 1866|      0|{ return T_LOWPANCO; }
  ------------------
  |  |  144|      0|#define T_LOWPANCO 264
  ------------------
 1867|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1868|      1|case 11:
  ------------------
  |  Branch (1868:1): [True: 1, False: 3.04M]
  ------------------
 1869|      1|YY_RULE_SETUP
 1870|      1|#line 53 "scanner.l"
 1871|      1|{ return T_ABRO; }
  ------------------
  |  |  145|      1|#define T_ABRO 265
  ------------------
 1872|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1873|      0|case 12:
  ------------------
  |  Branch (1873:1): [True: 0, False: 3.04M]
  ------------------
 1874|      0|YY_RULE_SETUP
 1875|      0|#line 54 "scanner.l"
 1876|      0|{ return T_NAT64PREFIX; }
  ------------------
  |  |  147|      0|#define T_NAT64PREFIX 267
  ------------------
 1877|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1878|      0|case 13:
  ------------------
  |  Branch (1878:1): [True: 0, False: 3.04M]
  ------------------
 1879|      0|YY_RULE_SETUP
 1880|      0|#line 55 "scanner.l"
 1881|      0|{ return T_AUTOIGNOREPREFIX; }
  ------------------
  |  |  148|      0|#define T_AUTOIGNOREPREFIX 268
  ------------------
 1882|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1883|      0|case 14:
  ------------------
  |  Branch (1883:1): [True: 0, False: 3.04M]
  ------------------
 1884|      0|YY_RULE_SETUP
 1885|      0|#line 57 "scanner.l"
 1886|      0|{ return T_RASRCADDRESS; }
  ------------------
  |  |  146|      0|#define T_RASRCADDRESS 266
  ------------------
 1887|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1888|      0|case 15:
  ------------------
  |  Branch (1888:1): [True: 0, False: 3.04M]
  ------------------
 1889|      0|YY_RULE_SETUP
 1890|      0|#line 59 "scanner.l"
 1891|      0|{ return T_IgnoreIfMissing; }
  ------------------
  |  |  157|      0|#define T_IgnoreIfMissing 277
  ------------------
 1892|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1893|      0|case 16:
  ------------------
  |  Branch (1893:1): [True: 0, False: 3.04M]
  ------------------
 1894|      0|YY_RULE_SETUP
 1895|      0|#line 60 "scanner.l"
 1896|      0|{ return T_AdvSendAdvert; }
  ------------------
  |  |  158|      0|#define T_AdvSendAdvert 278
  ------------------
 1897|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1898|      0|case 17:
  ------------------
  |  Branch (1898:1): [True: 0, False: 3.04M]
  ------------------
 1899|      0|YY_RULE_SETUP
 1900|      0|#line 61 "scanner.l"
 1901|      0|{ return T_MaxRtrAdvInterval; }
  ------------------
  |  |  159|      0|#define T_MaxRtrAdvInterval 279
  ------------------
 1902|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1903|      0|case 18:
  ------------------
  |  Branch (1903:1): [True: 0, False: 3.04M]
  ------------------
 1904|      0|YY_RULE_SETUP
 1905|      0|#line 62 "scanner.l"
 1906|      0|{ return T_MinRtrAdvInterval; }
  ------------------
  |  |  160|      0|#define T_MinRtrAdvInterval 280
  ------------------
 1907|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1908|      0|case 19:
  ------------------
  |  Branch (1908:1): [True: 0, False: 3.04M]
  ------------------
 1909|      0|YY_RULE_SETUP
 1910|      0|#line 63 "scanner.l"
 1911|      0|{ return T_AdvManagedFlag; }
  ------------------
  |  |  162|      0|#define T_AdvManagedFlag 282
  ------------------
 1912|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1913|      0|case 20:
  ------------------
  |  Branch (1913:1): [True: 0, False: 3.04M]
  ------------------
 1914|      0|YY_RULE_SETUP
 1915|      0|#line 64 "scanner.l"
 1916|      0|{ return T_AdvOtherConfigFlag; }
  ------------------
  |  |  163|      0|#define T_AdvOtherConfigFlag 283
  ------------------
 1917|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1918|      0|case 21:
  ------------------
  |  Branch (1918:1): [True: 0, False: 3.04M]
  ------------------
 1919|      0|YY_RULE_SETUP
 1920|      0|#line 65 "scanner.l"
 1921|      0|{ return T_AdvLinkMTU; }
  ------------------
  |  |  164|      0|#define T_AdvLinkMTU 284
  ------------------
 1922|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1923|      0|case 22:
  ------------------
  |  Branch (1923:1): [True: 0, False: 3.04M]
  ------------------
 1924|      0|YY_RULE_SETUP
 1925|      0|#line 66 "scanner.l"
 1926|      0|{ return T_AdvRAMTU; }
  ------------------
  |  |  165|      0|#define T_AdvRAMTU 285
  ------------------
 1927|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1928|      0|case 23:
  ------------------
  |  Branch (1928:1): [True: 0, False: 3.04M]
  ------------------
 1929|      0|YY_RULE_SETUP
 1930|      0|#line 67 "scanner.l"
 1931|      0|{ return T_AdvReachableTime; }
  ------------------
  |  |  166|      0|#define T_AdvReachableTime 286
  ------------------
 1932|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1933|      0|case 24:
  ------------------
  |  Branch (1933:1): [True: 0, False: 3.04M]
  ------------------
 1934|      0|YY_RULE_SETUP
 1935|      0|#line 68 "scanner.l"
 1936|      0|{ return T_AdvRetransTimer; }
  ------------------
  |  |  167|      0|#define T_AdvRetransTimer 287
  ------------------
 1937|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1938|      0|case 25:
  ------------------
  |  Branch (1938:1): [True: 0, False: 3.04M]
  ------------------
 1939|      0|YY_RULE_SETUP
 1940|      0|#line 69 "scanner.l"
 1941|      0|{ return T_AdvCurHopLimit; }
  ------------------
  |  |  168|      0|#define T_AdvCurHopLimit 288
  ------------------
 1942|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1943|      0|case 26:
  ------------------
  |  Branch (1943:1): [True: 0, False: 3.04M]
  ------------------
 1944|      0|YY_RULE_SETUP
 1945|      0|#line 70 "scanner.l"
 1946|      0|{ return T_AdvDefaultLifetime; }
  ------------------
  |  |  169|      0|#define T_AdvDefaultLifetime 289
  ------------------
 1947|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1948|      0|case 27:
  ------------------
  |  Branch (1948:1): [True: 0, False: 3.04M]
  ------------------
 1949|      0|YY_RULE_SETUP
 1950|      0|#line 71 "scanner.l"
 1951|      0|{ return T_AdvDefaultPreference; }
  ------------------
  |  |  170|      0|#define T_AdvDefaultPreference 290
  ------------------
 1952|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1953|      0|case 28:
  ------------------
  |  Branch (1953:1): [True: 0, False: 3.04M]
  ------------------
 1954|      0|YY_RULE_SETUP
 1955|      0|#line 72 "scanner.l"
 1956|      0|{ return T_AdvSourceLLAddress; }
  ------------------
  |  |  171|      0|#define T_AdvSourceLLAddress 291
  ------------------
 1957|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1958|      0|case 29:
  ------------------
  |  Branch (1958:1): [True: 0, False: 3.04M]
  ------------------
 1959|      0|YY_RULE_SETUP
 1960|      0|#line 73 "scanner.l"
 1961|      0|{ return T_RemoveAdvOnExit; }
  ------------------
  |  |  172|      0|#define T_RemoveAdvOnExit 292
  ------------------
 1962|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1963|      0|case 30:
  ------------------
  |  Branch (1963:1): [True: 0, False: 3.04M]
  ------------------
 1964|      0|YY_RULE_SETUP
 1965|      0|#line 75 "scanner.l"
 1966|      0|{ return T_AdvOnLink; }
  ------------------
  |  |  173|      0|#define T_AdvOnLink 293
  ------------------
 1967|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1968|      0|case 31:
  ------------------
  |  Branch (1968:1): [True: 0, False: 3.04M]
  ------------------
 1969|      0|YY_RULE_SETUP
 1970|      0|#line 76 "scanner.l"
 1971|      0|{ return T_AdvAutonomous; }
  ------------------
  |  |  174|      0|#define T_AdvAutonomous 294
  ------------------
 1972|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1973|      0|case 32:
  ------------------
  |  Branch (1973:1): [True: 0, False: 3.04M]
  ------------------
 1974|      0|YY_RULE_SETUP
 1975|      0|#line 77 "scanner.l"
 1976|      0|{ return T_AdvDHCPv6PDPreferred; }
  ------------------
  |  |  175|      0|#define T_AdvDHCPv6PDPreferred 295
  ------------------
 1977|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1978|      0|case 33:
  ------------------
  |  Branch (1978:1): [True: 0, False: 3.04M]
  ------------------
 1979|      0|YY_RULE_SETUP
 1980|      0|#line 78 "scanner.l"
 1981|      0|{ return T_AdvValidLifetime; }
  ------------------
  |  |  176|      0|#define T_AdvValidLifetime 296
  ------------------
 1982|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1983|      0|case 34:
  ------------------
  |  Branch (1983:1): [True: 0, False: 3.04M]
  ------------------
 1984|      0|YY_RULE_SETUP
 1985|      0|#line 79 "scanner.l"
 1986|      0|{ return T_AdvPreferredLifetime; }
  ------------------
  |  |  177|      0|#define T_AdvPreferredLifetime 297
  ------------------
 1987|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1988|      0|case 35:
  ------------------
  |  Branch (1988:1): [True: 0, False: 3.04M]
  ------------------
 1989|      0|YY_RULE_SETUP
 1990|      0|#line 80 "scanner.l"
 1991|      0|{ return T_DeprecatePrefix; }
  ------------------
  |  |  178|      0|#define T_DeprecatePrefix 298
  ------------------
 1992|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1993|      0|case 36:
  ------------------
  |  Branch (1993:1): [True: 0, False: 3.04M]
  ------------------
 1994|      0|YY_RULE_SETUP
 1995|      0|#line 81 "scanner.l"
 1996|      0|{ return T_DecrementLifetimes; }
  ------------------
  |  |  179|      0|#define T_DecrementLifetimes 299
  ------------------
 1997|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1998|      0|case 37:
  ------------------
  |  Branch (1998:1): [True: 0, False: 3.04M]
  ------------------
 1999|      0|YY_RULE_SETUP
 2000|      0|#line 83 "scanner.l"
 2001|      0|{ return T_AdvRouterAddr; }
  ------------------
  |  |  180|      0|#define T_AdvRouterAddr 300
  ------------------
 2002|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2003|      0|case 38:
  ------------------
  |  Branch (2003:1): [True: 0, False: 3.04M]
  ------------------
 2004|      0|YY_RULE_SETUP
 2005|      0|#line 84 "scanner.l"
 2006|      0|{ return T_AdvHomeAgentFlag; }
  ------------------
  |  |  181|      0|#define T_AdvHomeAgentFlag 301
  ------------------
 2007|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2008|      0|case 39:
  ------------------
  |  Branch (2008:1): [True: 0, False: 3.04M]
  ------------------
 2009|      0|YY_RULE_SETUP
 2010|      0|#line 85 "scanner.l"
 2011|      0|{ return T_AdvIntervalOpt; }
  ------------------
  |  |  182|      0|#define T_AdvIntervalOpt 302
  ------------------
 2012|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2013|      0|case 40:
  ------------------
  |  Branch (2013:1): [True: 0, False: 3.04M]
  ------------------
 2014|      0|YY_RULE_SETUP
 2015|      0|#line 86 "scanner.l"
 2016|      0|{ return T_AdvHomeAgentInfo; }
  ------------------
  |  |  183|      0|#define T_AdvHomeAgentInfo 303
  ------------------
 2017|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2018|      0|case 41:
  ------------------
  |  Branch (2018:1): [True: 0, False: 3.04M]
  ------------------
 2019|      0|YY_RULE_SETUP
 2020|      0|#line 87 "scanner.l"
 2021|      0|{ return T_UnicastOnly; }
  ------------------
  |  |  186|      0|#define T_UnicastOnly 306
  ------------------
 2022|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2023|      0|case 42:
  ------------------
  |  Branch (2023:1): [True: 0, False: 3.04M]
  ------------------
 2024|      0|YY_RULE_SETUP
 2025|      0|#line 88 "scanner.l"
 2026|      0|{ return T_UnrestrictedUnicast; }
  ------------------
  |  |  187|      0|#define T_UnrestrictedUnicast 307
  ------------------
 2027|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2028|      0|case 43:
  ------------------
  |  Branch (2028:1): [True: 0, False: 3.04M]
  ------------------
 2029|      0|YY_RULE_SETUP
 2030|      0|#line 89 "scanner.l"
 2031|      0|{ return T_AdvRASolicitedUnicast; }
  ------------------
  |  |  188|      0|#define T_AdvRASolicitedUnicast 308
  ------------------
 2032|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2033|      0|case 44:
  ------------------
  |  Branch (2033:1): [True: 0, False: 3.04M]
  ------------------
 2034|      0|YY_RULE_SETUP
 2035|      0|#line 90 "scanner.l"
 2036|      0|{ return T_AdvCaptivePortalAPI; }
  ------------------
  |  |  189|      0|#define T_AdvCaptivePortalAPI 309
  ------------------
 2037|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2038|      0|case 45:
  ------------------
  |  Branch (2038:1): [True: 0, False: 3.04M]
  ------------------
 2039|      0|YY_RULE_SETUP
 2040|      0|#line 92 "scanner.l"
 2041|      0|{ return T_Base6Interface; }
  ------------------
  |  |  184|      0|#define T_Base6Interface 304
  ------------------
 2042|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2043|      0|case 46:
  ------------------
  |  Branch (2043:1): [True: 0, False: 3.04M]
  ------------------
 2044|      0|YY_RULE_SETUP
 2045|      0|#line 93 "scanner.l"
 2046|      0|{ return T_Base6to4Interface; }
  ------------------
  |  |  185|      0|#define T_Base6to4Interface 305
  ------------------
 2047|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2048|      0|case 47:
  ------------------
  |  Branch (2048:1): [True: 0, False: 3.04M]
  ------------------
 2049|      0|YY_RULE_SETUP
 2050|      0|#line 95 "scanner.l"
 2051|      0|{ return T_HomeAgentPreference; }
  ------------------
  |  |  190|      0|#define T_HomeAgentPreference 310
  ------------------
 2052|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2053|      0|case 48:
  ------------------
  |  Branch (2053:1): [True: 0, False: 3.04M]
  ------------------
 2054|      0|YY_RULE_SETUP
 2055|      0|#line 96 "scanner.l"
 2056|      0|{ return T_HomeAgentLifetime; }
  ------------------
  |  |  191|      0|#define T_HomeAgentLifetime 311
  ------------------
 2057|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2058|      0|case 49:
  ------------------
  |  Branch (2058:1): [True: 0, False: 3.04M]
  ------------------
 2059|      0|YY_RULE_SETUP
 2060|      0|#line 98 "scanner.l"
 2061|      0|{ return T_AdvRoutePreference; }
  ------------------
  |  |  192|      0|#define T_AdvRoutePreference 312
  ------------------
 2062|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2063|      0|case 50:
  ------------------
  |  Branch (2063:1): [True: 0, False: 3.04M]
  ------------------
 2064|      0|YY_RULE_SETUP
 2065|      0|#line 99 "scanner.l"
 2066|      0|{ return T_AdvRouteLifetime; }
  ------------------
  |  |  193|      0|#define T_AdvRouteLifetime 313
  ------------------
 2067|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2068|      0|case 51:
  ------------------
  |  Branch (2068:1): [True: 0, False: 3.04M]
  ------------------
 2069|      0|YY_RULE_SETUP
 2070|      0|#line 100 "scanner.l"
 2071|      0|{ return T_RemoveRoute; }
  ------------------
  |  |  194|      0|#define T_RemoveRoute 314
  ------------------
 2072|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2073|      0|case 52:
  ------------------
  |  Branch (2073:1): [True: 0, False: 3.04M]
  ------------------
 2074|      0|YY_RULE_SETUP
 2075|      0|#line 102 "scanner.l"
 2076|      0|{ return T_AdvRDNSSPreference; }
  ------------------
  |  |  195|      0|#define T_AdvRDNSSPreference 315
  ------------------
 2077|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2078|      0|case 53:
  ------------------
  |  Branch (2078:1): [True: 0, False: 3.04M]
  ------------------
 2079|      0|YY_RULE_SETUP
 2080|      0|#line 103 "scanner.l"
 2081|      0|{ return T_AdvRDNSSOpenFlag; }
  ------------------
  |  |  196|      0|#define T_AdvRDNSSOpenFlag 316
  ------------------
 2082|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2083|      0|case 54:
  ------------------
  |  Branch (2083:1): [True: 0, False: 3.04M]
  ------------------
 2084|      0|YY_RULE_SETUP
 2085|      0|#line 104 "scanner.l"
 2086|      0|{ return T_AdvRDNSSLifetime; }
  ------------------
  |  |  197|      0|#define T_AdvRDNSSLifetime 317
  ------------------
 2087|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2088|      0|case 55:
  ------------------
  |  Branch (2088:1): [True: 0, False: 3.04M]
  ------------------
 2089|      0|YY_RULE_SETUP
 2090|      0|#line 105 "scanner.l"
 2091|      0|{ return T_FlushRDNSS; }
  ------------------
  |  |  198|      0|#define T_FlushRDNSS 318
  ------------------
 2092|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2093|      0|case 56:
  ------------------
  |  Branch (2093:1): [True: 0, False: 3.04M]
  ------------------
 2094|      0|YY_RULE_SETUP
 2095|      0|#line 107 "scanner.l"
 2096|      0|{ return T_AdvDNSSLLifetime; }
  ------------------
  |  |  199|      0|#define T_AdvDNSSLLifetime 319
  ------------------
 2097|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2098|      0|case 57:
  ------------------
  |  Branch (2098:1): [True: 0, False: 3.04M]
  ------------------
 2099|      0|YY_RULE_SETUP
 2100|      0|#line 108 "scanner.l"
 2101|      0|{ return T_FlushDNSSL; }
  ------------------
  |  |  200|      0|#define T_FlushDNSSL 320
  ------------------
 2102|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2103|      0|case 58:
  ------------------
  |  Branch (2103:1): [True: 0, False: 3.04M]
  ------------------
 2104|      0|YY_RULE_SETUP
 2105|      0|#line 110 "scanner.l"
 2106|      0|{ return T_MinDelayBetweenRAs; }
  ------------------
  |  |  161|      0|#define T_MinDelayBetweenRAs 281
  ------------------
 2107|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2108|      0|case 59:
  ------------------
  |  Branch (2108:1): [True: 0, False: 3.04M]
  ------------------
 2109|      0|YY_RULE_SETUP
 2110|      0|#line 112 "scanner.l"
 2111|      0|{ return T_AdvMobRtrSupportFlag; }
  ------------------
  |  |  201|      0|#define T_AdvMobRtrSupportFlag 321
  ------------------
 2112|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2113|      0|case 60:
  ------------------
  |  Branch (2113:1): [True: 0, False: 3.04M]
  ------------------
 2114|      0|YY_RULE_SETUP
 2115|      0|#line 114 "scanner.l"
 2116|      0|{ return T_AdvContextLength; }
  ------------------
  |  |  202|      0|#define T_AdvContextLength 322
  ------------------
 2117|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2118|      0|case 61:
  ------------------
  |  Branch (2118:1): [True: 0, False: 3.04M]
  ------------------
 2119|      0|YY_RULE_SETUP
 2120|      0|#line 115 "scanner.l"
 2121|      0|{ return T_AdvContextCompressionFlag; }
  ------------------
  |  |  203|      0|#define T_AdvContextCompressionFlag 323
  ------------------
 2122|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2123|      0|case 62:
  ------------------
  |  Branch (2123:1): [True: 0, False: 3.04M]
  ------------------
 2124|      0|YY_RULE_SETUP
 2125|      0|#line 116 "scanner.l"
 2126|      0|{ return T_AdvContextID; }
  ------------------
  |  |  204|      0|#define T_AdvContextID 324
  ------------------
 2127|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2128|      0|case 63:
  ------------------
  |  Branch (2128:1): [True: 0, False: 3.04M]
  ------------------
 2129|      0|YY_RULE_SETUP
 2130|      0|#line 117 "scanner.l"
 2131|      0|{ return T_AdvLifeTime; }
  ------------------
  |  |  205|      0|#define T_AdvLifeTime 325
  ------------------
 2132|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2133|      0|case 64:
  ------------------
  |  Branch (2133:1): [True: 0, False: 3.04M]
  ------------------
 2134|      0|YY_RULE_SETUP
 2135|      0|#line 118 "scanner.l"
 2136|      0|{ return T_AdvContextPrefix; }
  ------------------
  |  |  206|      0|#define T_AdvContextPrefix 326
  ------------------
 2137|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2138|      0|case 65:
  ------------------
  |  Branch (2138:1): [True: 0, False: 3.04M]
  ------------------
 2139|      0|YY_RULE_SETUP
 2140|      0|#line 120 "scanner.l"
 2141|      0|{ return T_AdvVersionLow; }
  ------------------
  |  |  207|      0|#define T_AdvVersionLow 327
  ------------------
 2142|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2143|      0|case 66:
  ------------------
  |  Branch (2143:1): [True: 0, False: 3.04M]
  ------------------
 2144|      0|YY_RULE_SETUP
 2145|      0|#line 121 "scanner.l"
 2146|      0|{ return T_AdvVersionHigh; }
  ------------------
  |  |  208|      0|#define T_AdvVersionHigh 328
  ------------------
 2147|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2148|      0|case 67:
  ------------------
  |  Branch (2148:1): [True: 0, False: 3.04M]
  ------------------
 2149|      0|YY_RULE_SETUP
 2150|      0|#line 122 "scanner.l"
 2151|      0|{ return T_Adv6LBRaddress; }
  ------------------
  |  |  209|      0|#define T_Adv6LBRaddress 329
  ------------------
 2152|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2153|      3|case 68:
  ------------------
  |  Branch (2153:1): [True: 3, False: 3.04M]
  ------------------
 2154|      3|YY_RULE_SETUP
 2155|      3|#line 124 "scanner.l"
 2156|      3|{
 2157|      3|			static struct in6_addr addr;
 2158|      3|			if (inet_pton(AF_INET6, yytext, &addr) < 1) {
  ------------------
  |  Branch (2158:8): [True: 2, False: 1]
  ------------------
 2159|      2|				return T_BAD_TOKEN;
  ------------------
  |  |  210|      2|#define T_BAD_TOKEN 330
  ------------------
 2160|      2|			}
 2161|       |
 2162|      1|			yylval.addr = &addr;
 2163|      1|			return IPV6ADDR;
  ------------------
  |  |  154|      1|#define IPV6ADDR 274
  ------------------
 2164|      3|		}
 2165|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2166|      5|case 69:
  ------------------
  |  Branch (2166:1): [True: 5, False: 3.04M]
  ------------------
 2167|      5|YY_RULE_SETUP
 2168|      5|#line 134 "scanner.l"
 2169|      5|{
 2170|      5|			static struct in6_addr addr;
 2171|      5|			if (inet_pton(AF_INET6, &yytext[1], &addr) < 1) {
  ------------------
  |  Branch (2171:8): [True: 1, False: 4]
  ------------------
 2172|      1|				return T_BAD_TOKEN;
  ------------------
  |  |  210|      1|#define T_BAD_TOKEN 330
  ------------------
 2173|      1|			}
 2174|       |
 2175|      4|			yylval.addr = &addr;
 2176|      4|			return NOT_IPV6ADDR;
  ------------------
  |  |  155|      4|#define NOT_IPV6ADDR 275
  ------------------
 2177|      5|		}
 2178|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2179|    134|case 70:
  ------------------
  |  Branch (2179:1): [True: 134, False: 3.04M]
  ------------------
 2180|    134|YY_RULE_SETUP
 2181|    134|#line 144 "scanner.l"
 2182|    134|{
 2183|    134|			unsigned long lnum;
 2184|    134|			char *endp;
 2185|    134|			lnum = strtoul(yytext, &endp, 10);
 2186|    134|			if (*yytext == '\0' || *endp != '\0')
  ------------------
  |  Branch (2186:8): [True: 0, False: 134]
  |  Branch (2186:27): [True: 0, False: 134]
  ------------------
 2187|      0|				return T_BAD_TOKEN;
  ------------------
  |  |  210|      0|#define T_BAD_TOKEN 330
  ------------------
 2188|    134|			if (lnum > 0xFFFFFFFFUL)
  ------------------
  |  Branch (2188:8): [True: 67, False: 67]
  ------------------
 2189|     67|				return T_BAD_TOKEN;	/* XXX */
  ------------------
  |  |  210|     67|#define T_BAD_TOKEN 330
  ------------------
 2190|     67|			yylval.num = lnum;
 2191|     67|			return NUMBER;
  ------------------
  |  |  150|     67|#define NUMBER 270
  ------------------
 2192|    134|		}
 2193|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2194|      3|case 71:
  ------------------
  |  Branch (2194:1): [True: 3, False: 3.04M]
  ------------------
 2195|      3|YY_RULE_SETUP
 2196|      3|#line 156 "scanner.l"
 2197|      3|{ yylval.snum = atoi(yytext); return SIGNEDNUMBER; }
  ------------------
  |  |  151|      3|#define SIGNEDNUMBER 271
  ------------------
 2198|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2199|      3|case 72:
  ------------------
  |  Branch (2199:1): [True: 3, False: 3.04M]
  ------------------
 2200|      3|YY_RULE_SETUP
 2201|      3|#line 158 "scanner.l"
 2202|      3|{ yylval.dec = atof(yytext); return DECIMAL; }
  ------------------
  |  |  152|      3|#define DECIMAL 272
  ------------------
 2203|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2204|      1|case 73:
  ------------------
  |  Branch (2204:1): [True: 1, False: 3.04M]
  ------------------
 2205|      1|YY_RULE_SETUP
 2206|      1|#line 160 "scanner.l"
 2207|      1|{ return INFINITY; }
  ------------------
  |  |  156|      1|#define INFINITY 276
  ------------------
 2208|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2209|      2|case 74:
  ------------------
  |  Branch (2209:1): [True: 2, False: 3.04M]
  ------------------
 2210|      2|YY_RULE_SETUP
 2211|      2|#line 162 "scanner.l"
 2212|      2|{ yylval.num = 1; return SWITCH; }
  ------------------
  |  |  153|      2|#define SWITCH 273
  ------------------
 2213|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2214|      1|case 75:
  ------------------
  |  Branch (2214:1): [True: 1, False: 3.04M]
  ------------------
 2215|      1|YY_RULE_SETUP
 2216|      1|#line 164 "scanner.l"
 2217|      1|{ yylval.num = 0; return SWITCH; }
  ------------------
  |  |  153|      1|#define SWITCH 273
  ------------------
 2218|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2219|      1|case 76:
  ------------------
  |  Branch (2219:1): [True: 1, False: 3.04M]
  ------------------
 2220|      1|YY_RULE_SETUP
 2221|      1|#line 166 "scanner.l"
 2222|      1|{ yylval.snum = -1; return SIGNEDNUMBER; }
  ------------------
  |  |  151|      1|#define SIGNEDNUMBER 271
  ------------------
 2223|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2224|      0|case 77:
  ------------------
  |  Branch (2224:1): [True: 0, False: 3.04M]
  ------------------
 2225|      0|YY_RULE_SETUP
 2226|      0|#line 168 "scanner.l"
 2227|      0|{ yylval.snum = 0; return SIGNEDNUMBER; }
  ------------------
  |  |  151|      0|#define SIGNEDNUMBER 271
  ------------------
 2228|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2229|      2|case 78:
  ------------------
  |  Branch (2229:1): [True: 2, False: 3.04M]
  ------------------
 2230|      2|YY_RULE_SETUP
 2231|      2|#line 170 "scanner.l"
 2232|      2|{ yylval.snum = 1; return SIGNEDNUMBER; }
  ------------------
  |  |  151|      2|#define SIGNEDNUMBER 271
  ------------------
 2233|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2234|    297|case 79:
  ------------------
  |  Branch (2234:1): [True: 297, False: 3.04M]
  ------------------
 2235|       |/* rule 79 can match eol */
 2236|    297|YY_RULE_SETUP
 2237|    297|#line 172 "scanner.l"
 2238|    297|{
 2239|    297|			static char string[256];
 2240|       |
 2241|    297|			strncpy(string, yytext, sizeof(string));
 2242|    297|			string[sizeof(string)-1] = '\0';
 2243|    297|			yylval.str = string;
 2244|    297|			return STRING;
  ------------------
  |  |  149|    297|#define STRING 269
  ------------------
 2245|    134|		}
 2246|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2247|      3|case 80:
  ------------------
  |  Branch (2247:1): [True: 3, False: 3.04M]
  ------------------
 2248|      3|YY_RULE_SETUP
 2249|      3|#line 181 "scanner.l"
 2250|      3|{ return *yytext; }
 2251|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2252|    104|case 81:
  ------------------
  |  Branch (2252:1): [True: 104, False: 3.04M]
  ------------------
 2253|    104|YY_RULE_SETUP
 2254|    104|#line 183 "scanner.l"
 2255|    104|{ return T_BAD_TOKEN; }
  ------------------
  |  |  210|    104|#define T_BAD_TOKEN 330
  ------------------
 2256|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2257|      0|case 82:
  ------------------
  |  Branch (2257:1): [True: 0, False: 3.04M]
  ------------------
 2258|      0|YY_RULE_SETUP
 2259|      0|#line 184 "scanner.l"
 2260|      0|ECHO;
  ------------------
  |  | 1624|      0|#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
  |  |  ------------------
  |  |  |  Branch (1624:23): [True: 0, False: 0]
  |  |  |  Branch (1624:80): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2261|      0|	YY_BREAK
  ------------------
  |  | 1703|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2262|      0|#line 2263 "scanner.c"
 2263|     54|case YY_STATE_EOF(INITIAL):
  ------------------
  |  |  125|     54|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  377|     54|#define YY_END_OF_BUFFER 83
  |  |  ------------------
  ------------------
  |  Branch (2263:1): [True: 54, False: 3.04M]
  ------------------
 2264|     54|	yyterminate();
  ------------------
  |  | 1668|     54|#define yyterminate() return YY_NULL
  |  |  ------------------
  |  |  |  |  106|     54|#define YY_NULL 0
  |  |  ------------------
  ------------------
 2265|       |
 2266|  70.2k|	case YY_END_OF_BUFFER:
  ------------------
  |  |  377|  70.2k|#define YY_END_OF_BUFFER 83
  ------------------
  |  Branch (2266:2): [True: 70.2k, False: 2.97M]
  ------------------
 2267|  70.2k|		{
 2268|       |		/* Amount of text matched not including the EOB char. */
 2269|  70.2k|		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
  ------------------
  |  |  360|  70.2k|#define yytext_ptr yytext
  ------------------
 2270|       |
 2271|       |		/* Undo the effects of YY_DO_BEFORE_ACTION. */
 2272|  70.2k|		*yy_cp = (yy_hold_char);
 2273|  70.2k|		YY_RESTORE_YY_MORE_OFFSET
 2274|       |
 2275|  70.2k|		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
  ------------------
  |  |  284|  70.2k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
              		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
  ------------------
  |  |  250|  70.2k|#define YY_BUFFER_NEW 0
  ------------------
  |  Branch (2275:8): [True: 619, False: 69.5k]
  ------------------
 2276|    619|			{
 2277|       |			/* We're scanning a new file or input source.  It's
 2278|       |			 * possible that this happened because the user
 2279|       |			 * just pointed yyin at a new source and called
 2280|       |			 * yylex().  If so, then we have to assure
 2281|       |			 * consistency between YY_CURRENT_BUFFER and our
 2282|       |			 * globals.  Here is the right place to do so, because
 2283|       |			 * this is the first action (other than possibly a
 2284|       |			 * back-up) that will match for the new input source.
 2285|       |			 */
 2286|    619|			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  ------------------
  |  |  284|    619|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2287|    619|			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
  ------------------
  |  |  284|    619|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2288|    619|			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
  ------------------
  |  |  284|    619|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
              			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
  ------------------
  |  |  251|    619|#define YY_BUFFER_NORMAL 1
  ------------------
 2289|    619|			}
 2290|       |
 2291|       |		/* Note that here we test for yy_c_buf_p "<=" to the position
 2292|       |		 * of the first EOB in the buffer, since yy_c_buf_p will
 2293|       |		 * already have been incremented past the NUL character
 2294|       |		 * (since all states make transitions on EOB to the
 2295|       |		 * end-of-buffer state).  Contrast this with the test
 2296|       |		 * in input().
 2297|       |		 */
 2298|  70.2k|		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
  ------------------
  |  |  284|  70.2k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
  |  Branch (2298:8): [True: 66.8k, False: 3.32k]
  ------------------
 2299|  66.8k|			{ /* This was really a NUL. */
 2300|  66.8k|			yy_state_type yy_next_state;
 2301|       |
 2302|  66.8k|			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
  ------------------
  |  |  360|  66.8k|#define yytext_ptr yytext
  ------------------
 2303|       |
 2304|  66.8k|			yy_current_state = yy_get_previous_state(  );
 2305|       |
 2306|       |			/* Okay, we're now positioned to make the NUL
 2307|       |			 * transition.  We couldn't have
 2308|       |			 * yy_get_previous_state() go ahead and do it
 2309|       |			 * for us because it doesn't know how to deal
 2310|       |			 * with the possibility of jamming (and we don't
 2311|       |			 * want to build jamming into it because then it
 2312|       |			 * will run more slowly).
 2313|       |			 */
 2314|       |
 2315|  66.8k|			yy_next_state = yy_try_NUL_trans( yy_current_state );
 2316|       |
 2317|  66.8k|			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  |  360|  66.8k|#define yytext_ptr yytext
  ------------------
              			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  | 1501|  66.8k|#define YY_MORE_ADJ 0
  ------------------
 2318|       |
 2319|  66.8k|			if ( yy_next_state )
  ------------------
  |  Branch (2319:9): [True: 66.7k, False: 89]
  ------------------
 2320|  66.7k|				{
 2321|       |				/* Consume the NUL. */
 2322|  66.7k|				yy_cp = ++(yy_c_buf_p);
 2323|  66.7k|				yy_current_state = yy_next_state;
 2324|  66.7k|				goto yy_match;
 2325|  66.7k|				}
 2326|       |
 2327|     89|			else
 2328|     89|				{
 2329|     89|				yy_cp = (yy_c_buf_p);
 2330|     89|				goto yy_find_action;
 2331|     89|				}
 2332|  66.8k|			}
 2333|       |
 2334|  3.32k|		else switch ( yy_get_next_buffer(  ) )
  ------------------
  |  Branch (2334:17): [True: 3.32k, False: 0]
  ------------------
 2335|  3.32k|			{
 2336|     54|			case EOB_ACT_END_OF_FILE:
  ------------------
  |  |  162|     54|#define EOB_ACT_END_OF_FILE 1
  ------------------
  |  Branch (2336:4): [True: 54, False: 3.26k]
  ------------------
 2337|     54|				{
 2338|     54|				(yy_did_buffer_switch_on_eof) = 0;
 2339|       |
 2340|     54|				if ( yywrap(  ) )
  ------------------
  |  |  345|     54|#define yywrap() (/*CONSTCOND*/1)
  |  |  ------------------
  |  |  |  Branch (345:18): [True: 54, Folded]
  |  |  ------------------
  ------------------
 2341|     54|					{
 2342|       |					/* Note: because we've taken care in
 2343|       |					 * yy_get_next_buffer() to have set up
 2344|       |					 * yytext, we can now set up
 2345|       |					 * yy_c_buf_p so that if some total
 2346|       |					 * hoser (like flex itself) wants to
 2347|       |					 * call the scanner after we return the
 2348|       |					 * YY_NULL, it'll still work - another
 2349|       |					 * YY_NULL will get returned.
 2350|       |					 */
 2351|     54|					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  |  360|     54|#define yytext_ptr yytext
  ------------------
              					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  | 1501|     54|#define YY_MORE_ADJ 0
  ------------------
 2352|       |
 2353|     54|					yy_act = YY_STATE_EOF(YY_START);
  ------------------
  |  |  125|     54|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  377|     54|#define YY_END_OF_BUFFER 83
  |  |  ------------------
  ------------------
 2354|     54|					goto do_action;
 2355|     54|					}
 2356|       |
 2357|      0|				else
 2358|      0|					{
 2359|      0|					if ( ! (yy_did_buffer_switch_on_eof) )
  ------------------
  |  Branch (2359:11): [True: 0, False: 0]
  ------------------
 2360|      0|						YY_NEW_FILE;
  ------------------
  |  |  127|      0|#define YY_NEW_FILE yyrestart( yyin  )
  ------------------
 2361|      0|					}
 2362|      0|				break;
 2363|     54|				}
 2364|       |
 2365|  2.77k|			case EOB_ACT_CONTINUE_SCAN:
  ------------------
  |  |  161|  2.77k|#define EOB_ACT_CONTINUE_SCAN 0
  ------------------
  |  Branch (2365:4): [True: 2.77k, False: 542]
  ------------------
 2366|  2.77k|				(yy_c_buf_p) =
 2367|  2.77k|					(yytext_ptr) + yy_amount_of_matched_text;
  ------------------
  |  |  360|  2.77k|#define yytext_ptr yytext
  ------------------
 2368|       |
 2369|  2.77k|				yy_current_state = yy_get_previous_state(  );
 2370|       |
 2371|  2.77k|				yy_cp = (yy_c_buf_p);
 2372|  2.77k|				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  |  360|  2.77k|#define yytext_ptr yytext
  ------------------
              				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  | 1501|  2.77k|#define YY_MORE_ADJ 0
  ------------------
 2373|  2.77k|				goto yy_match;
 2374|       |
 2375|    488|			case EOB_ACT_LAST_MATCH:
  ------------------
  |  |  163|    488|#define EOB_ACT_LAST_MATCH 2
  ------------------
  |  Branch (2375:4): [True: 488, False: 2.83k]
  ------------------
 2376|    488|				(yy_c_buf_p) =
 2377|    488|				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
  ------------------
  |  |  284|    488|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2378|       |
 2379|    488|				yy_current_state = yy_get_previous_state(  );
 2380|       |
 2381|    488|				yy_cp = (yy_c_buf_p);
 2382|    488|				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  |  360|    488|#define yytext_ptr yytext
  ------------------
              				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  | 1501|    488|#define YY_MORE_ADJ 0
  ------------------
 2383|    488|				goto yy_find_action;
 2384|  3.32k|			}
 2385|      0|		break;
 2386|  70.2k|		}
 2387|       |
 2388|      0|	default:
  ------------------
  |  Branch (2388:2): [True: 0, False: 3.04M]
  ------------------
 2389|      0|		YY_FATAL_ERROR(
  ------------------
  |  | 1678|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2390|  3.04M|			"fatal flex scanner internal error--no action found" );
 2391|  3.04M|	} /* end of action switch */
 2392|  3.04M|		} /* end of scanning one token */
 2393|    619|	} /* end of user's declarations */
 2394|    619|} /* end of yylex */
yyrestart:
 2685|     54|{
 2686|       |    
 2687|     54|	if ( ! YY_CURRENT_BUFFER ){
  ------------------
  |  |  278|     54|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 54, False: 0]
  |  |  ------------------
  |  |  279|     54|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|     54|                          : NULL)
  ------------------
  |  Branch (2687:7): [True: 0, False: 54]
  ------------------
 2688|      0|        yyensure_buffer_stack ();
 2689|      0|		YY_CURRENT_BUFFER_LVALUE =
  ------------------
  |  |  284|      0|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2690|      0|            yy_create_buffer( yyin, YY_BUF_SIZE );
  ------------------
  |  |  139|      0|#define YY_BUF_SIZE 16384
  ------------------
 2691|      0|	}
 2692|       |
 2693|       |	yy_init_buffer( YY_CURRENT_BUFFER, input_file );
  ------------------
  |  |  278|     54|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 54, False: 0]
  |  |  ------------------
  |  |  279|     54|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|     54|                          : NULL)
  ------------------
 2694|     54|	yy_load_buffer_state(  );
 2695|     54|}
yy_create_buffer:
 2747|    619|{
 2748|    619|	YY_BUFFER_STATE b;
 2749|       |    
 2750|    619|	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
 2751|    619|	if ( ! b )
  ------------------
  |  Branch (2751:7): [True: 0, False: 619]
  ------------------
 2752|      0|		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  ------------------
  |  | 1678|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2753|       |
 2754|    619|	b->yy_buf_size = size;
 2755|       |
 2756|       |	/* yy_ch_buf has to be 2 characters longer than the size given because
 2757|       |	 * we need to put in 2 end-of-buffer characters.
 2758|       |	 */
 2759|    619|	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
 2760|    619|	if ( ! b->yy_ch_buf )
  ------------------
  |  Branch (2760:7): [True: 0, False: 619]
  ------------------
 2761|      0|		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  ------------------
  |  | 1678|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2762|       |
 2763|    619|	b->yy_is_our_buffer = 1;
 2764|       |
 2765|    619|	yy_init_buffer( b, file );
 2766|       |
 2767|    619|	return b;
 2768|    619|}
yy_delete_buffer:
 2775|    619|{
 2776|       |    
 2777|    619|	if ( ! b )
  ------------------
  |  Branch (2777:7): [True: 0, False: 619]
  ------------------
 2778|      0|		return;
 2779|       |
 2780|    619|	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
  ------------------
  |  |  278|    619|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 619, False: 0]
  |  |  ------------------
  |  |  279|    619|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|    619|                          : NULL)
  ------------------
  |  Branch (2780:7): [True: 619, False: 0]
  ------------------
 2781|    619|		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
  ------------------
  |  |  284|    619|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2782|       |
 2783|    619|	if ( b->yy_is_our_buffer )
  ------------------
  |  Branch (2783:7): [True: 619, False: 0]
  ------------------
 2784|    619|		yyfree( (void *) b->yy_ch_buf  );
 2785|       |
 2786|    619|	yyfree( (void *) b  );
 2787|    619|}
yy_flush_buffer:
 2822|    673|{
 2823|    673|    	if ( ! b )
  ------------------
  |  Branch (2823:11): [True: 0, False: 673]
  ------------------
 2824|      0|		return;
 2825|       |
 2826|    673|	b->yy_n_chars = 0;
 2827|       |
 2828|       |	/* We always need two end-of-buffer characters.  The first causes
 2829|       |	 * a transition to the end-of-buffer state.  The second causes
 2830|       |	 * a jam in that state.
 2831|       |	 */
 2832|    673|	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  128|    673|#define YY_END_OF_BUFFER_CHAR 0
  ------------------
 2833|    673|	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  128|    673|#define YY_END_OF_BUFFER_CHAR 0
  ------------------
 2834|       |
 2835|    673|	b->yy_buf_pos = &b->yy_ch_buf[0];
 2836|       |
 2837|    673|	b->yy_at_bol = 1;
 2838|    673|	b->yy_buffer_status = YY_BUFFER_NEW;
  ------------------
  |  |  250|    673|#define YY_BUFFER_NEW 0
  ------------------
 2839|       |
 2840|    673|	if ( b == YY_CURRENT_BUFFER )
  ------------------
  |  |  278|    673|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 673, False: 0]
  |  |  ------------------
  |  |  279|    673|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|    673|                          : NULL)
  ------------------
  |  Branch (2840:7): [True: 54, False: 619]
  ------------------
 2841|     54|		yy_load_buffer_state(  );
 2842|    673|}
yypop_buffer_state:
 2881|    619|{
 2882|    619|    	if (!YY_CURRENT_BUFFER)
  ------------------
  |  |  278|    619|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 619, False: 0]
  |  |  ------------------
  |  |  279|    619|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|    619|                          : NULL)
  ------------------
  |  Branch (2882:10): [True: 619, False: 0]
  ------------------
 2883|    619|		return;
 2884|       |
 2885|      0|	yy_delete_buffer(YY_CURRENT_BUFFER );
  ------------------
  |  |  278|      0|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 0, False: 0]
  |  |  ------------------
  |  |  279|      0|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|      0|                          : NULL)
  ------------------
 2886|      0|	YY_CURRENT_BUFFER_LVALUE = NULL;
  ------------------
  |  |  284|      0|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2887|      0|	if ((yy_buffer_stack_top) > 0)
  ------------------
  |  Branch (2887:6): [True: 0, False: 0]
  ------------------
 2888|      0|		--(yy_buffer_stack_top);
 2889|       |
 2890|      0|	if (YY_CURRENT_BUFFER) {
  ------------------
  |  |  278|      0|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:27): [True: 0, False: 0]
  |  |  |  Branch (278:29): [True: 0, False: 0]
  |  |  ------------------
  |  |  279|      0|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|      0|                          : NULL)
  ------------------
 2891|      0|		yy_load_buffer_state(  );
 2892|      0|		(yy_did_buffer_switch_on_eof) = 1;
 2893|      0|	}
 2894|      0|}
yyset_in:
 3116|    619|{
 3117|    619|        yyin = _in_str ;
 3118|    619|}
yylex_destroy:
 3168|    619|{
 3169|       |    
 3170|       |    /* Pop the buffer stack, destroying each element. */
 3171|  1.23k|	while(YY_CURRENT_BUFFER){
  ------------------
  |  |  278|  1.23k|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:27): [True: 619, False: 619]
  |  |  |  Branch (278:29): [True: 1.23k, False: 0]
  |  |  ------------------
  |  |  279|  1.23k|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|  1.23k|                          : NULL)
  ------------------
 3172|    619|		yy_delete_buffer( YY_CURRENT_BUFFER  );
  ------------------
  |  |  278|    619|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 619, False: 0]
  |  |  ------------------
  |  |  279|    619|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|    619|                          : NULL)
  ------------------
 3173|    619|		YY_CURRENT_BUFFER_LVALUE = NULL;
  ------------------
  |  |  284|    619|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 3174|    619|		yypop_buffer_state();
 3175|    619|	}
 3176|       |
 3177|       |	/* Destroy the stack itself. */
 3178|    619|	yyfree((yy_buffer_stack) );
 3179|    619|	(yy_buffer_stack) = NULL;
 3180|       |
 3181|       |    /* Reset the globals. This is important in a non-reentrant scanner so the next time
 3182|       |     * yylex() is called, initialization will occur. */
 3183|    619|    yy_init_globals( );
 3184|       |
 3185|    619|    return 0;
 3186|    619|}
yyalloc:
 3214|  1.85k|{
 3215|  1.85k|			return malloc(size);
 3216|  1.85k|}
yyrealloc:
 3219|    141|{
 3220|       |		
 3221|       |	/* The cast to (char *) in the following accommodates both
 3222|       |	 * implementations that use char* generic pointers, and those
 3223|       |	 * that use void* generic pointers.  It works with the latter
 3224|       |	 * because both ANSI C and C++ allow castless assignment from
 3225|       |	 * any pointer type to void*, and deal with argument conversions
 3226|       |	 * as though doing an assignment.
 3227|       |	 */
 3228|    141|	return realloc(ptr, size);
 3229|    141|}
yyfree:
 3232|  1.85k|{
 3233|  1.85k|			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
 3234|  1.85k|}
scanner.c:yy_get_next_buffer:
 2404|  3.32k|{
 2405|  3.32k|    	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
  ------------------
  |  |  284|  3.32k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2406|  3.32k|	char *source = (yytext_ptr);
  ------------------
  |  |  360|  3.32k|#define yytext_ptr yytext
  ------------------
 2407|  3.32k|	int number_to_move, i;
 2408|  3.32k|	int ret_val;
 2409|       |
 2410|  3.32k|	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
  ------------------
  |  |  284|  3.32k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
  |  Branch (2410:7): [True: 0, False: 3.32k]
  ------------------
 2411|      0|		YY_FATAL_ERROR(
  ------------------
  |  | 1678|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2412|  3.32k|		"fatal flex scanner internal error--end of buffer missed" );
 2413|       |
 2414|  3.32k|	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
  ------------------
  |  |  284|  3.32k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
  |  Branch (2414:7): [True: 0, False: 3.32k]
  ------------------
 2415|      0|		{ /* Don't try to fill the buffer, so this is an EOF. */
 2416|      0|		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
  ------------------
  |  |  360|      0|#define yytext_ptr yytext
  ------------------
              		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
  ------------------
  |  | 1501|      0|#define YY_MORE_ADJ 0
  ------------------
  |  Branch (2416:8): [True: 0, False: 0]
  ------------------
 2417|      0|			{
 2418|       |			/* We matched a single character, the EOB, so
 2419|       |			 * treat this as a final EOF.
 2420|       |			 */
 2421|      0|			return EOB_ACT_END_OF_FILE;
  ------------------
  |  |  162|      0|#define EOB_ACT_END_OF_FILE 1
  ------------------
 2422|      0|			}
 2423|       |
 2424|      0|		else
 2425|      0|			{
 2426|       |			/* We matched some text prior to the EOB, first
 2427|       |			 * process it.
 2428|       |			 */
 2429|      0|			return EOB_ACT_LAST_MATCH;
  ------------------
  |  |  163|      0|#define EOB_ACT_LAST_MATCH 2
  ------------------
 2430|      0|			}
 2431|      0|		}
 2432|       |
 2433|       |	/* Try to read more data. */
 2434|       |
 2435|       |	/* First move last chars to start of buffer. */
 2436|  3.32k|	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
  ------------------
  |  |  360|  3.32k|#define yytext_ptr yytext
  ------------------
 2437|       |
 2438|   238M|	for ( i = 0; i < number_to_move; ++i )
  ------------------
  |  Branch (2438:15): [True: 238M, False: 3.32k]
  ------------------
 2439|   238M|		*(dest++) = *(source++);
 2440|       |
 2441|  3.32k|	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  ------------------
  |  |  284|  3.32k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
              	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  ------------------
  |  |  262|  3.32k|#define YY_BUFFER_EOF_PENDING 2
  ------------------
  |  Branch (2441:7): [True: 17, False: 3.30k]
  ------------------
 2442|       |		/* don't do the read, it's not guaranteed to return an EOF,
 2443|       |		 * just force an EOF
 2444|       |		 */
 2445|     17|		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
  ------------------
  |  |  284|     17|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2446|       |
 2447|  3.30k|	else
 2448|  3.30k|		{
 2449|  3.30k|			int num_to_read =
 2450|  3.30k|			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
  ------------------
  |  |  284|  3.30k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2451|       |
 2452|  3.44k|		while ( num_to_read <= 0 )
  ------------------
  |  Branch (2452:11): [True: 141, False: 3.30k]
  ------------------
 2453|    141|			{ /* Not enough room in the buffer - grow it. */
 2454|       |
 2455|       |			/* just a shorter name for the current buffer */
 2456|    141|			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
  ------------------
  |  |  284|    141|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2457|       |
 2458|    141|			int yy_c_buf_p_offset =
 2459|    141|				(int) ((yy_c_buf_p) - b->yy_ch_buf);
 2460|       |
 2461|    141|			if ( b->yy_is_our_buffer )
  ------------------
  |  Branch (2461:9): [True: 141, False: 0]
  ------------------
 2462|    141|				{
 2463|    141|				int new_size = b->yy_buf_size * 2;
 2464|       |
 2465|    141|				if ( new_size <= 0 )
  ------------------
  |  Branch (2465:10): [True: 0, False: 141]
  ------------------
 2466|      0|					b->yy_buf_size += b->yy_buf_size / 8;
 2467|    141|				else
 2468|    141|					b->yy_buf_size *= 2;
 2469|       |
 2470|    141|				b->yy_ch_buf = (char *)
 2471|       |					/* Include room in for 2 EOB chars. */
 2472|    141|					yyrealloc( (void *) b->yy_ch_buf,
 2473|    141|							 (yy_size_t) (b->yy_buf_size + 2)  );
 2474|    141|				}
 2475|      0|			else
 2476|       |				/* Can't grow it, we don't own it. */
 2477|      0|				b->yy_ch_buf = NULL;
 2478|       |
 2479|    141|			if ( ! b->yy_ch_buf )
  ------------------
  |  Branch (2479:9): [True: 0, False: 141]
  ------------------
 2480|      0|				YY_FATAL_ERROR(
  ------------------
  |  | 1678|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2481|    141|				"fatal error - scanner input buffer overflow" );
 2482|       |
 2483|    141|			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
 2484|       |
 2485|    141|			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
  ------------------
  |  |  284|    141|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2486|    141|						number_to_move - 1;
 2487|       |
 2488|    141|			}
 2489|       |
 2490|  3.30k|		if ( num_to_read > YY_READ_BUF_SIZE )
  ------------------
  |  | 1615|  3.30k|#define YY_READ_BUF_SIZE 8192
  ------------------
  |  Branch (2490:8): [True: 2.87k, False: 433]
  ------------------
 2491|  2.87k|			num_to_read = YY_READ_BUF_SIZE;
  ------------------
  |  | 1615|  2.87k|#define YY_READ_BUF_SIZE 8192
  ------------------
 2492|       |
 2493|       |		/* Read in more data. */
 2494|  3.30k|		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
  ------------------
  |  | 1632|  3.30k|	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
  |  |  ------------------
  |  |  |  |  284|  3.30k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  |  |  ------------------
  |  |  |  Branch (1632:7): [True: 0, False: 3.30k]
  |  |  ------------------
  |  | 1633|  3.30k|		{ \
  |  | 1634|      0|		int c = '*'; \
  |  | 1635|      0|		int n; \
  |  | 1636|      0|		for ( n = 0; n < max_size && \
  |  |  ------------------
  |  |  |  Branch (1636:16): [True: 0, False: 0]
  |  |  ------------------
  |  | 1637|      0|			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
  |  |  ------------------
  |  |  |  Branch (1637:9): [True: 0, False: 0]
  |  |  |  Branch (1637:38): [True: 0, False: 0]
  |  |  ------------------
  |  | 1638|      0|			buf[n] = (char) c; \
  |  | 1639|      0|		if ( c == '\n' ) \
  |  |  ------------------
  |  |  |  Branch (1639:8): [True: 0, False: 0]
  |  |  ------------------
  |  | 1640|      0|			buf[n++] = (char) c; \
  |  | 1641|      0|		if ( c == EOF && ferror( yyin ) ) \
  |  |  ------------------
  |  |  |  Branch (1641:8): [True: 0, False: 0]
  |  |  |  Branch (1641:20): [True: 0, False: 0]
  |  |  ------------------
  |  | 1642|      0|			YY_FATAL_ERROR( "input in flex scanner failed" ); \
  |  |  ------------------
  |  |  |  | 1678|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  |  |  ------------------
  |  | 1643|      0|		result = n; \
  |  | 1644|      0|		} \
  |  | 1645|  3.30k|	else \
  |  | 1646|  3.30k|		{ \
  |  | 1647|  3.30k|		errno=0; \
  |  | 1648|  3.30k|		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
  |  |  ------------------
  |  |  |  Branch (1648:11): [True: 525, False: 2.77k]
  |  |  |  Branch (1648:78): [True: 0, False: 525]
  |  |  ------------------
  |  | 1649|  3.30k|			{ \
  |  | 1650|      0|			if( errno != EINTR) \
  |  |  ------------------
  |  |  |  Branch (1650:8): [True: 0, False: 0]
  |  |  ------------------
  |  | 1651|      0|				{ \
  |  | 1652|      0|				YY_FATAL_ERROR( "input in flex scanner failed" ); \
  |  |  ------------------
  |  |  |  | 1678|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  |  |  ------------------
  |  | 1653|      0|				break; \
  |  | 1654|      0|				} \
  |  | 1655|      0|			errno=0; \
  |  | 1656|      0|			clearerr(yyin); \
  |  | 1657|      0|			} \
  |  | 1658|  3.30k|		}\
  ------------------
 2495|  3.30k|			(yy_n_chars), num_to_read );
 2496|       |
 2497|  3.30k|		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  ------------------
  |  |  284|  3.30k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2498|  3.30k|		}
 2499|       |
 2500|  3.32k|	if ( (yy_n_chars) == 0 )
  ------------------
  |  Branch (2500:7): [True: 542, False: 2.77k]
  ------------------
 2501|    542|		{
 2502|    542|		if ( number_to_move == YY_MORE_ADJ )
  ------------------
  |  | 1501|    542|#define YY_MORE_ADJ 0
  ------------------
  |  Branch (2502:8): [True: 54, False: 488]
  ------------------
 2503|     54|			{
 2504|     54|			ret_val = EOB_ACT_END_OF_FILE;
  ------------------
  |  |  162|     54|#define EOB_ACT_END_OF_FILE 1
  ------------------
 2505|     54|			yyrestart( yyin  );
 2506|     54|			}
 2507|       |
 2508|    488|		else
 2509|    488|			{
 2510|    488|			ret_val = EOB_ACT_LAST_MATCH;
  ------------------
  |  |  163|    488|#define EOB_ACT_LAST_MATCH 2
  ------------------
 2511|    488|			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
  ------------------
  |  |  284|    488|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2512|    488|				YY_BUFFER_EOF_PENDING;
  ------------------
  |  |  262|    488|#define YY_BUFFER_EOF_PENDING 2
  ------------------
 2513|    488|			}
 2514|    542|		}
 2515|       |
 2516|  2.77k|	else
 2517|  2.77k|		ret_val = EOB_ACT_CONTINUE_SCAN;
  ------------------
  |  |  161|  2.77k|#define EOB_ACT_CONTINUE_SCAN 0
  ------------------
 2518|       |
 2519|  3.32k|	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
  ------------------
  |  |  284|  3.32k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
  |  Branch (2519:6): [True: 0, False: 3.32k]
  ------------------
 2520|       |		/* Extend the array by 50%, plus the number we really need. */
 2521|      0|		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
 2522|      0|		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
  ------------------
  |  |  284|      0|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2523|      0|			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
  ------------------
  |  |  284|      0|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2524|      0|		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
  ------------------
  |  |  284|      0|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
  |  Branch (2524:8): [True: 0, False: 0]
  ------------------
 2525|      0|			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
  ------------------
  |  | 1678|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2526|       |		/* "- 2" to take care of EOB's */
 2527|      0|		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
  ------------------
  |  |  284|      0|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2528|      0|	}
 2529|       |
 2530|  3.32k|	(yy_n_chars) += number_to_move;
 2531|  3.32k|	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  284|  3.32k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
              	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  128|  3.32k|#define YY_END_OF_BUFFER_CHAR 0
  ------------------
 2532|  3.32k|	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  284|  3.32k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
              	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  128|  3.32k|#define YY_END_OF_BUFFER_CHAR 0
  ------------------
 2533|       |
 2534|  3.32k|	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
  ------------------
  |  |  360|  3.32k|#define yytext_ptr yytext
  ------------------
              	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
  ------------------
  |  |  284|  3.32k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2535|       |
 2536|  3.32k|	return ret_val;
 2537|  3.32k|}
scanner.c:yy_get_previous_state:
 2542|  70.1k|{
 2543|  70.1k|	yy_state_type yy_current_state;
 2544|  70.1k|	char *yy_cp;
 2545|       |    
 2546|  70.1k|	yy_current_state = (yy_start);
 2547|       |
 2548|  1.11G|	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
  ------------------
  |  |  360|  70.1k|#define yytext_ptr yytext
  ------------------
              	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
  ------------------
  |  | 1501|  70.1k|#define YY_MORE_ADJ 0
  ------------------
  |  Branch (2548:44): [True: 1.11G, False: 70.1k]
  ------------------
 2549|  1.11G|		{
 2550|  1.11G|		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  ------------------
  |  |  111|  1.10G|#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
  ------------------
  |  Branch (2550:19): [True: 1.10G, False: 7.55M]
  ------------------
 2551|  1.11G|		if ( yy_accept[yy_current_state] )
  ------------------
  |  Branch (2551:8): [True: 47.5M, False: 1.06G]
  ------------------
 2552|  47.5M|			{
 2553|  47.5M|			(yy_last_accepting_state) = yy_current_state;
 2554|  47.5M|			(yy_last_accepting_cpos) = yy_cp;
 2555|  47.5M|			}
 2556|  2.13G|		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  ------------------
  |  Branch (2556:11): [True: 1.02G, False: 1.11G]
  ------------------
 2557|  1.02G|			{
 2558|  1.02G|			yy_current_state = (int) yy_def[yy_current_state];
 2559|  1.02G|			if ( yy_current_state >= 912 )
  ------------------
  |  Branch (2559:9): [True: 1.02G, False: 6.13k]
  ------------------
 2560|  1.02G|				yy_c = yy_meta[yy_c];
 2561|  1.02G|			}
 2562|  1.11G|		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 2563|  1.11G|		}
 2564|       |
 2565|  70.1k|	return yy_current_state;
 2566|  70.1k|}
scanner.c:yy_try_NUL_trans:
 2574|  66.8k|{
 2575|  66.8k|	int yy_is_jam;
 2576|  66.8k|    	char *yy_cp = (yy_c_buf_p);
 2577|       |
 2578|  66.8k|	YY_CHAR yy_c = 1;
 2579|  66.8k|	if ( yy_accept[yy_current_state] )
  ------------------
  |  Branch (2579:7): [True: 11.1k, False: 55.7k]
  ------------------
 2580|  11.1k|		{
 2581|  11.1k|		(yy_last_accepting_state) = yy_current_state;
 2582|  11.1k|		(yy_last_accepting_cpos) = yy_cp;
 2583|  11.1k|		}
 2584|   122k|	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  ------------------
  |  Branch (2584:10): [True: 55.9k, False: 66.8k]
  ------------------
 2585|  55.9k|		{
 2586|  55.9k|		yy_current_state = (int) yy_def[yy_current_state];
 2587|  55.9k|		if ( yy_current_state >= 912 )
  ------------------
  |  Branch (2587:8): [True: 55.7k, False: 175]
  ------------------
 2588|  55.7k|			yy_c = yy_meta[yy_c];
 2589|  55.9k|		}
 2590|  66.8k|	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 2591|  66.8k|	yy_is_jam = (yy_current_state == 911);
 2592|       |
 2593|  66.8k|		return yy_is_jam ? 0 : yy_current_state;
  ------------------
  |  Branch (2593:10): [True: 89, False: 66.7k]
  ------------------
 2594|  66.8k|}
scanner.c:yy_load_buffer_state:
 2733|    727|{
 2734|    727|    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  ------------------
  |  |  284|    727|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2735|    727|	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
  ------------------
  |  |  360|    727|#define yytext_ptr yytext
  ------------------
              	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
  ------------------
  |  |  284|    727|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2736|    727|	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
  ------------------
  |  |  284|    727|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2737|    727|	(yy_hold_char) = *(yy_c_buf_p);
 2738|    727|}
scanner.c:yy_init_buffer:
 2795|    673|{
 2796|    673|	int oerrno = errno;
 2797|       |    
 2798|    673|	yy_flush_buffer( b );
 2799|       |
 2800|    673|	b->yy_input_file = file;
 2801|    673|	b->yy_fill_buffer = 1;
 2802|       |
 2803|       |    /* If b is the current buffer, then yy_init_buffer was _probably_
 2804|       |     * called from yyrestart() or through yy_get_next_buffer.
 2805|       |     * In that case, we don't want to reset the lineno or column.
 2806|       |     */
 2807|    673|    if (b != YY_CURRENT_BUFFER){
  ------------------
  |  |  278|    673|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 673, False: 0]
  |  |  ------------------
  |  |  279|    673|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|    673|                          : NULL)
  ------------------
  |  Branch (2807:9): [True: 619, False: 54]
  ------------------
 2808|    619|        b->yy_bs_lineno = 1;
 2809|    619|        b->yy_bs_column = 0;
 2810|    619|    }
 2811|       |
 2812|    673|        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
  ------------------
  |  Branch (2812:32): [True: 673, False: 0]
  ------------------
 2813|       |    
 2814|       |	errno = oerrno;
 2815|    673|}
scanner.c:yyensure_buffer_stack:
 2900|    619|{
 2901|    619|	yy_size_t num_to_alloc;
 2902|       |    
 2903|    619|	if (!(yy_buffer_stack)) {
  ------------------
  |  Branch (2903:6): [True: 619, False: 0]
  ------------------
 2904|       |
 2905|       |		/* First allocation is just for 2 elements, since we don't know if this
 2906|       |		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
 2907|       |		 * immediate realloc on the next call.
 2908|       |         */
 2909|    619|      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
 2910|    619|		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
 2911|    619|								(num_to_alloc * sizeof(struct yy_buffer_state*)
 2912|    619|								);
 2913|    619|		if ( ! (yy_buffer_stack) )
  ------------------
  |  Branch (2913:8): [True: 0, False: 619]
  ------------------
 2914|      0|			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
  ------------------
  |  | 1678|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2915|       |
 2916|    619|		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
 2917|       |
 2918|    619|		(yy_buffer_stack_max) = num_to_alloc;
 2919|    619|		(yy_buffer_stack_top) = 0;
 2920|    619|		return;
 2921|    619|	}
 2922|       |
 2923|      0|	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
  ------------------
  |  Branch (2923:6): [True: 0, False: 0]
  ------------------
 2924|       |
 2925|       |		/* Increase the buffer to prepare for a possible push. */
 2926|      0|		yy_size_t grow_size = 8 /* arbitrary grow size */;
 2927|       |
 2928|      0|		num_to_alloc = (yy_buffer_stack_max) + grow_size;
 2929|      0|		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
 2930|      0|								((yy_buffer_stack),
 2931|      0|								num_to_alloc * sizeof(struct yy_buffer_state*)
 2932|      0|								);
 2933|      0|		if ( ! (yy_buffer_stack) )
  ------------------
  |  Branch (2933:8): [True: 0, False: 0]
  ------------------
 2934|      0|			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
  ------------------
  |  | 1678|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2935|       |
 2936|       |		/* zero only the new slots.*/
 2937|      0|		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
 2938|      0|		(yy_buffer_stack_max) = num_to_alloc;
 2939|      0|	}
 2940|      0|}
scanner.c:yy_init_globals:
 3136|    619|{
 3137|       |        /* Initialization is the same as for the non-reentrant scanner.
 3138|       |     * This function is called from yylex_destroy(), so don't allocate here.
 3139|       |     */
 3140|       |
 3141|       |    /* We do not touch yylineno unless the option is enabled. */
 3142|    619|    yylineno =  1;
 3143|       |    
 3144|    619|    (yy_buffer_stack) = NULL;
 3145|    619|    (yy_buffer_stack_top) = 0;
 3146|    619|    (yy_buffer_stack_max) = 0;
 3147|    619|    (yy_c_buf_p) = NULL;
 3148|    619|    (yy_init) = 0;
 3149|    619|    (yy_start) = 0;
 3150|       |
 3151|       |/* Defined in main.c */
 3152|       |#ifdef YY_STDINIT
 3153|       |    yyin = stdin;
 3154|       |    yyout = stdout;
 3155|       |#else
 3156|    619|    yyin = NULL;
 3157|    619|    yyout = NULL;
 3158|    619|#endif
 3159|       |
 3160|       |    /* For future reference: Set errno on error, since we are called by
 3161|       |     * yylex_init()
 3162|       |     */
 3163|    619|    return 0;
 3164|    619|}

