]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#480,!263] regen flex/bison
authorFrancis Dupont <fdupont@isc.org>
Wed, 6 Mar 2019 11:45:07 +0000 (11:45 +0000)
committerFrancis Dupont <fdupont@isc.org>
Fri, 15 Mar 2019 23:23:05 +0000 (00:23 +0100)
src/bin/dhcp6/dhcp6_lexer.cc
src/bin/dhcp6/dhcp6_parser.cc
src/bin/dhcp6/dhcp6_parser.h

index af5241898e9126fa47bf76dfb555679a3bed2365..db0d49b9bd87ec4bedff4bfd7773a9794738e0b9 100644 (file)
@@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg  );
 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
        (yy_c_buf_p) = yy_cp;
 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
-#define YY_NUM_RULES 179
-#define YY_END_OF_BUFFER 180
+#define YY_NUM_RULES 180
+#define YY_END_OF_BUFFER 181
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -700,21 +700,21 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[1453] =
+static const flex_int16_t yy_accept[1464] =
     {   0,
-      172,  172,    0,    0,    0,    0,    0,    0,    0,    0,
-      180,  178,   10,   11,  178,    1,  172,  169,  172,  172,
-      178,  171,  170,  178,  178,  178,  178,  178,  165,  166,
-      178,  178,  178,  167,  168,    5,    5,    5,  178,  178,
-      178,   10,   11,    0,    0,  161,    0,    0,    0,    0,
+      173,  173,    0,    0,    0,    0,    0,    0,    0,    0,
+      181,  179,   10,   11,  179,    1,  173,  170,  173,  173,
+      179,  172,  171,  179,  179,  179,  179,  179,  166,  167,
+      179,  179,  179,  168,  169,    5,    5,    5,  179,  179,
+      179,   10,   11,    0,    0,  162,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    1,  172,
-      172,    0,  171,  172,    3,    2,    6,    0,  172,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    1,  173,
+      173,    0,  172,  173,    3,    2,    6,    0,  173,    0,
         0,    0,    0,    0,    0,    4,    0,    0,    9,    0,
 
-      162,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  164,    0,    0,    0,
+      163,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  165,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -722,146 +722,147 @@ static const flex_int16_t yy_accept[1453] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    2,    0,    0,
         0,    0,    0,    0,    0,    8,    0,    0,    0,    0,
-      139,    0,    0,  140,    0,    0,    0,    0,    0,    0,
+      140,    0,    0,  141,    0,    0,    0,    0,    0,    0,
 
-        0,    0,  163,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  164,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   94,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   95,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      177,  175,    0,  174,  173,    0,    0,    0,    0,    0,
+      178,  176,    0,  175,  174,    0,    0,    0,    0,    0,
 
-        0,    0,  138,    0,    0,   28,    0,   27,    0,    0,
-      101,    0,    0,    0,    0,    0,    0,    0,    0,   53,
+        0,    0,  139,    0,    0,   28,    0,   27,    0,    0,
+      102,    0,    0,    0,    0,    0,    0,    0,    0,   54,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   98,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   99,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-      176,  173,    0,    0,    0,    0,    0,    0,    0,    0,
-       29,    0,    0,   31,    0,    0,    0,    0,    0,  102,
-        0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
-        0,    0,    0,  123,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   56,    0,    0,    0,    0,
+      177,  174,    0,    0,    0,    0,    0,    0,    0,    0,
+       29,    0,    0,   31,    0,    0,    0,    0,    0,  103,
+        0,    0,    0,    0,    0,    0,   80,    0,    0,    0,
+        0,    0,    0,    0,  124,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   57,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   78,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   88,
-        0,   57,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   79,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       89,    0,   58,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  118,
-      143,   49,    0,   54,    0,    0,    0,    0,    0,    0,
-      158,   37,    0,   34,    0,   33,    0,    0,    0,  131,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      119,  144,   50,    0,   55,    0,    0,    0,    0,    0,
+        0,  159,   37,    0,   34,    0,   33,    0,    0,    0,
+      132,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      110,    0,    0,    0,    0,    0,    0,    0,    0,  142,
+        0,    0,  111,    0,    0,    0,    0,    0,    0,    0,
+        0,  143,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   52,    0,    0,
+       32,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       82,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,  133,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  128,    0,    0,    0,    0,
+        0,    0,    7,   35,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   51,    0,    0,   32,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   81,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-
-      132,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  127,    0,    0,    0,    0,    0,    0,
-        7,   35,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  101,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  113,    0,    0,    0,    0,    0,    0,
+      110,    0,    0,    0,    0,    0,    0,    0,    0,   84,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      100,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      112,    0,    0,    0,    0,    0,    0,  109,    0,    0,
-        0,    0,    0,    0,    0,    0,   83,    0,    0,    0,
+        0,    0,   92,    0,    0,    0,    0,    0,    0,    0,
+        0,  107,    0,    0,    0,    0,   91,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   91,
-        0,    0,    0,    0,    0,    0,    0,    0,  106,    0,
-        0,    0,    0,   90,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  127,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  126,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  136,  107,
-        0,    0,    0,    0,  111,   50,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   58,    0,    0,    0,
+        0,    0,  137,  108,    0,    0,    0,    0,  112,   51,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       59,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,   74,    0,    0,    0,    0,
-        0,    0,  159,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   97,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      125,    0,    0,    0,    0,    0,    0,   61,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   75,
+        0,    0,    0,    0,    0,    0,  160,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   55,   82,    0,    0,    0,  122,
-        0,    0,    0,   48,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   98,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  126,    0,    0,    0,    0,
+        0,    0,   62,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   56,
+       83,    0,    0,    0,  123,    0,    0,    0,   49,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  114,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  115,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  157,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   92,    0,    0,    0,    0,    0,    0,    0,    0,
+      158,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   93,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   40,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   16,
-        0,  137,   14,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  128,  113,    0,    0,    0,    0,    0,
+        0,    0,    0,   41,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   16,    0,  138,   14,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  129,
 
+        0,  114,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  125,  142,
+        0,   40,    0,  134,    0,    0,    0,    0,    0,    0,
+        0,    0,   20,    0,    0,    0,   77,    0,    0,    0,
+        0,  136,   53,    0,   85,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  124,  141,    0,   39,    0,  133,    0,    0,    0,
-        0,    0,    0,    0,    0,   20,    0,    0,    0,   76,
-        0,    0,    0,    0,  135,   52,    0,   84,    0,    0,
+       74,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   81,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  131,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   73,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   80,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  130,    0,    0,
+
+        0,    0,  104,    0,    0,    0,    0,    0,   78,  100,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  103,    0,    0,    0,    0,    0,
-
-       77,   99,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   70,    0,    0,    0,    0,    0,    0,
-       17,   15,    0,  155,  154,    0,   65,    0,    0,    0,
-        0,    0,   30,  117,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  152,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   93,    0,  121,   42,    0,
-       59,    0,    0,    0,    0,   19,    0,    0,    0,    0,
-        0,    0,   95,   71,    0,    0,  129,    0,    0,    0,
-        0,    0,  120,    0,    0,    0,    0,   89,    0,  160,
-        0,    0,    0,    0,    0,    0,    0,    0,   87,    0,
-
-        0,  144,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   71,    0,    0,    0,    0,    0,    0,   17,   15,
+        0,  156,  155,    0,   66,    0,    0,    0,    0,    0,
+       30,  118,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  153,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   94,    0,  122,   43,    0,   60,
+        0,    0,    0,    0,   19,    0,    0,    0,    0,    0,
+        0,   96,   72,    0,    0,  130,    0,    0,    0,    0,
+        0,  121,    0,    0,    0,    0,   90,    0,  161,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,   88,    0,
+        0,  145,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       41,    0,   64,    0,    0,    0,  115,   46,    0,    0,
-       66,  153,    0,    0,   12,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   44,    0,    0,   43,   18,    0,
-        0,    0,    0,  108,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   69,    0,    0,
-       60,    0,    0,   85,    0,    0,    0,    0,    0,  134,
-        0,    0,    0,   45,    0,    0,    0,    0,    0,    0,
-
-        0,    0,    0,    0,    0,    0,    0,   63,    0,    0,
-       75,    0,   36,   47,    0,    0,    0,    0,    0,   24,
-        0,    0,    0,    0,    0,    0,  150,    0,  119,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   96,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   25,   38,
-        0,    0,    0,    0,    0,   13,    0,    0,    0,    0,
-        0,    0,    0,  156,    0,    0,    0,    0,    0,    0,
-      149,    0,    0,   21,   68,    0,    0,    0,    0,    0,
-        0,    0,   86,    0,    0,  148,    0,    0,   67,    0,
-        0,   62,    0,   23,    0,    0,    0,    0,    0,    0,
+       42,    0,   65,    0,    0,    0,  116,   47,    0,    0,
+       67,  154,   38,    0,    0,   12,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   45,    0,    0,   44,   18,
+        0,    0,    0,    0,  109,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   70,    0,
+        0,   61,    0,    0,   86,    0,    0,    0,    0,    0,
+
+      135,    0,    0,    0,   46,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   64,    0,
+        0,   76,    0,   36,   48,    0,    0,    0,    0,    0,
+       24,    0,    0,    0,    0,    0,    0,  151,    0,  120,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   97,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   25,
+       39,    0,    0,    0,    0,    0,   13,    0,    0,    0,
+        0,    0,    0,    0,  157,    0,    0,    0,    0,    0,
+        0,  150,    0,    0,   21,   69,    0,    0,    0,    0,
+        0,    0,    0,   87,    0,    0,  149,    0,    0,   68,
 
+        0,    0,   63,    0,   23,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   22,    0,  104,  116,    0,    0,    0,    0,    0,
-        0,  146,  151,   72,    0,    0,    0,    0,  145,    0,
-        0,   26,    0,    0,    0,    0,    0,  105,    0,    0,
-      147,    0
+        0,    0,   22,    0,  105,  117,    0,    0,    0,    0,
+        0,    0,  147,  152,   73,    0,    0,    0,    0,  146,
+        0,    0,   26,    0,    0,    0,    0,    0,  106,    0,
+        0,  148,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -908,344 +909,346 @@ static const YY_CHAR yy_meta[72] =
         3
     } ;
 
-static const flex_int16_t yy_base[1465] =
+static const flex_int16_t yy_base[1476] =
     {   0,
         0,   70,   19,   29,   41,   49,   52,   58,   87,   95,
-     1817, 1818,   32, 1813,  141,    0,  201, 1818,  206,   88,
-       11,  213, 1818, 1795,  114,   25,    2,    6, 1818, 1818,
-       73,   11,   17, 1818, 1818, 1818,  104, 1801, 1756,    0,
-     1793,  107, 1808,  217,  241, 1818,  185, 1752, 1758, 1778,
+     1829, 1830,   32, 1825,  141,    0,  201, 1830,  206,   88,
+       11,  213, 1830, 1807,  114,   25,    2,    6, 1830, 1830,
+       73,   11,   17, 1830, 1830, 1830,  104, 1813, 1768,    0,
+     1805,  107, 1820,  217,  241, 1830,  185, 1764, 1770, 1790,
        93,   58,  190,   91,  211,  200,   14,  267,  213,  175,
-      269,   64,  231,  184,  187,   75, 1759,  274,  215,  290,
-      278,  297, 1742,  207,  302,  316,  316, 1761,    0,  355,
-      360,  372,  377,  380, 1818,    0, 1818,  295,  383,  227,
-      296,  283,  327,  361,  293, 1818, 1758, 1797, 1818,  237,
-
-     1818,  394,  363, 1745, 1755, 1794,  375,  321,  403, 1749,
-      369,  378,  376,  382,  388, 1792,    0,  445,  407, 1736,
-     1744,  364, 1740, 1729, 1730,  372, 1746, 1729, 1738,  387,
-      308,  378, 1732, 1730,  391, 1719, 1775,  416, 1722, 1773,
-     1715, 1738, 1735, 1735, 1729,  214, 1722, 1715, 1720, 1714,
-      382, 1725, 1718, 1709, 1708, 1722,  362, 1758, 1707,  414,
-     1719, 1722, 1706,  441, 1707,  417, 1719, 1716, 1717, 1715,
-      422, 1697, 1702, 1698, 1690, 1707, 1699,    0,  422,  450,
-      440,  446,  454,  470, 1698, 1818,    0,  476, 1689, 1692,
-     1818,  465,  447, 1818, 1744, 1699,  477, 1742,  481, 1741,
-
-      477, 1740, 1818,  521, 1739,  489, 1700, 1695, 1694, 1685,
-      465, 1734, 1728, 1694, 1673, 1681, 1687, 1675, 1689, 1685,
-     1686, 1686, 1681, 1673, 1675, 1659, 1663, 1676, 1678, 1675,
-     1667, 1657, 1660, 1674, 1818, 1660, 1668, 1671, 1652, 1651,
-     1701, 1650, 1660, 1698,  510, 1659, 1647, 1658, 1694,  490,
-     1698, 1635, 1650,    9, 1640, 1656, 1637, 1639, 1635, 1641,
-     1632, 1631, 1644, 1637, 1639, 1643, 1642, 1636,   80, 1643,
-     1638, 1630, 1620, 1635, 1630, 1634, 1615, 1631, 1617, 1623,
-     1630, 1618,  230, 1611, 1625, 1624, 1627, 1609, 1617,  491,
-     1818, 1818,  492, 1818, 1818, 1604,    0,  376, 1606,  508,
-
-      501, 1660, 1818, 1613,  480, 1818, 1658, 1818, 1652,  562,
-     1818,  480, 1594, 1604, 1654, 1611, 1606, 1609,  304, 1818,
-     1607, 1649, 1604, 1601, 1602,  303, 1606, 1644, 1594, 1589,
-     1586, 1582, 1584, 1633, 1592, 1581, 1597, 1629, 1577,  568,
-     1590, 1590, 1573, 1574, 1587, 1574, 1584, 1579, 1586, 1581,
-     1566,  451, 1575, 1578, 1573, 1569, 1617,  501,  497, 1818,
-     1611, 1563, 1562, 1555, 1557, 1561, 1550, 1557, 1562,  550,
-     1607, 1562,  503, 1559, 1563, 1561, 1550, 1550, 1562,  496,
-     1537, 1538, 1559,  511, 1541, 1538, 1552, 1551, 1537, 1549,
-     1548, 1547, 1546,  507, 1587, 1586, 1585, 1529,  583, 1542,
-
-     1818, 1818, 1541,    0,  518, 1529, 1580, 1579, 1537, 1577,
-     1818, 1525, 1575, 1818,  541,  617,  520, 1574, 1516, 1818,
-     1521, 1527, 1530, 1529, 1516, 1515, 1818, 1517, 1514, 1526,
-      543, 1511, 1513, 1818, 1519, 1504, 1506, 1517, 1515, 1510,
-      585, 1517, 1505, 1498, 1547, 1818, 1496, 1512, 1544, 1548,
-     1506, 1500, 1502, 1503, 1505, 1537, 1490, 1485, 1484, 1486,
-     1479, 1494, 1472, 1479, 1484, 1532, 1818, 1479, 1475, 1529,
-     1482, 1476, 1483, 1468, 1478, 1481, 1470, 1469, 1464, 1818,
-     1519, 1818, 1463, 1462, 1455, 1472, 1509, 1456, 1461, 1470,
-     1464, 1458, 1467,  586, 1502, 1466, 1449, 1449, 1444, 1440,
-
-     1446, 1445, 1453, 1457, 1440, 1496, 1438, 1452, 1441, 1818,
-     1818, 1818, 1441, 1818, 1451, 1485, 1447,    0, 1488, 1438,
-     1818, 1818, 1435, 1818, 1441, 1818,  562,  562,  593, 1818,
-     1479, 1426, 1477, 1424, 1423, 1430, 1423, 1435, 1434, 1418,
-     1433, 1415, 1462, 1429, 1465, 1411, 1413, 1425, 1425, 1424,
-     1818, 1409, 1406, 1462, 1419, 1411, 1417, 1408, 1416, 1818,
-     1401, 1412, 1416, 1398, 1412,  555, 1394, 1388, 1393, 1390,
-     1405, 1406, 1403, 1444, 1401, 1818, 1387, 1389, 1818, 1397,
-     1434, 1433,  575, 1396, 1379, 1380, 1385, 1376, 1818, 1390,
-     1376,  608, 1368, 1389, 1386, 1378, 1421, 1375, 1382, 1418,
-
-     1818, 1366, 1364, 1378, 1362, 1376, 1379, 1411, 1410, 1409,
-     1356, 1407, 1406, 1818,  599, 1368, 1368, 1366, 1355, 1357,
-     1818, 1818, 1400, 1348, 1403,  581,  588, 1346, 1361, 1400,
-      575, 1394, 1393, 1392, 1346, 1336, 1389, 1351, 1341, 1349,
-     1385, 1348, 1330, 1338, 1340, 1344, 1379, 1383, 1340, 1339,
-     1818, 1340, 1333, 1322, 1335, 1338, 1333, 1328, 1333, 1330,
-     1329, 1325, 1331, 1326, 1367, 1366, 1310, 1306,  569, 1363,
-     1818, 1362, 1311, 1303, 1354, 1317, 1304, 1818, 1304, 1313,
-     1312, 1312, 1296, 1351, 1294, 1307, 1818, 1299, 1291, 1300,
-     1293, 1304, 1281, 1285, 1336, 1300, 1282, 1280, 1291, 1331,
-
-     1330, 1329, 1276, 1292,  576,  594, 1269, 1279,  588, 1818,
-     1329, 1275, 1285, 1285, 1274, 1278, 1285, 1322, 1818, 1316,
-      592, 1278, 1270, 1818, 1266, 1279, 1259, 1262, 1258, 1275,
-       11,   65,   79,  184,  220,  300,  426,  389,  419,  469,
-      551,  562, 1818,  583,  587,  582,  602,  600,  644,  586,
-      590,  610,  611,  598,  661,  620,  606,  609, 1818, 1818,
-      625,  624,  629,  617, 1818, 1818,  631,  618,  616,  634,
-      621,  621,  670,  622,  678,  679, 1818,  626,  640,  640,
-      683,  633,  635,  629,  687,  642,  632,  633,  629,  639,
-      643,  654,  638,  656,  651,  653,  646,  648,  660,  650,
-
-      665,  704,  663,  668,  645, 1818,  670,  660,  705,  654,
-      669,  670, 1818,  689,  697,  666,  680,  668,  663,  675,
-      670,  671,  667,  676,  671,  722,  728,  687,  678, 1818,
-      690,  675,  691,  681,  693,  687,  732,  700,  685,  686,
-     1818,  703,  706,  689,  691,  747,  692, 1818,  709,  712,
-      692,  711,  749,  709,  705,  700,  718,  717,  703,  718,
-      710,  706,  724,  709, 1818, 1818,  717,  762,  717, 1818,
-      725,  720,  771, 1818,  722,  727,  769,  723,  724,  736,
-      730,  734,  732,  730,  741,  784,  730,  786,  787,  733,
-      745, 1818,  733,  741,  739,  744,  756,  740,  754,  755,
-
-      756,  772,  777,  759,  746,  747,  767,  756,  761,  768,
-      809,  810,  759,  763, 1818,  808,  759,  777,  774,  812,
-      763,  781,  782,  768,  776,  785,  765,  780,  787,  829,
-      830, 1818,  785,  832,  833,  786,  796,  798,  782,  783,
-      790,  799,  842,  791,  790,  807,  846,  798,  802,  800,
-      798,  851,  852,  804,  854,  850,  810, 1818,  815,  808,
-      799,  818,  812,  807,  817,  814,  819,  815,  827, 1818,
-      811, 1818, 1818,  812,  870,  811,  830,  831,  828,  814,
-      835,  817,  822,  829,  862,  853,  883,  828,  830,  847,
-      845,  837,  841, 1818, 1818,  851,  849,  852,  836,  837,
-
-      895,  850,  855,  842,  853,  845,  851,  847,  865,  867,
-      868, 1818, 1818,  866, 1818,  868, 1818,  853,  855,  874,
-      864,  914,  869,  911,  877, 1818,  869,  861,  920, 1818,
-      921,  870,  877,  919, 1818, 1818,  879, 1818,  870,  870,
-      873,  887,  892,  875,  886,  933,  892,  893,  894,  932,
-      890,  939,  940, 1818,  889,  942,  943,  885,  945,  906,
-      890,  902,  892,  922,  951, 1818,  952,  901,  916,  903,
-      899,  915,  920,  908,  908,  961,  920, 1818,  922,  921,
-      923,  916,  925,  926,  923,  913,  916,  916,  973,  922,
-      975,  976,  921,  979, 1818,  917,  932,  925,  983,  938,
-
-     1818, 1818,  934,  944,  929,  947,  933,  992,  993,  940,
-      950,  997,  956, 1818,  948,  948,  950,  952, 1003,  948,
-     1818, 1818,  950, 1818, 1818,  964, 1818,  958, 1008,  959,
-     1010,  992, 1818, 1818,  956,  964,  958,  957,  960,  960,
-      961, 1019,  969, 1818,  965, 1022,  977,  968,  983,  983,
-      986,  986,  983, 1025,  989, 1818,  981, 1818, 1818,  991,
-     1818,  993,  994,  991, 1033, 1818,  984,  984,  990,  989,
-     1001, 1001, 1818, 1818, 1040,  989, 1818, 1006,  991,  991,
-      993,  999, 1818, 1052, 1005, 1054, 1017, 1818, 1014, 1818,
-     1033, 1058, 1059, 1018, 1004, 1062, 1063, 1018, 1818, 1008,
-
-     1066, 1818, 1006, 1063, 1028, 1024, 1066, 1016, 1021, 1019,
-     1076, 1034, 1078, 1079, 1042, 1031, 1025, 1041, 1085, 1029,
-     1046, 1031, 1046, 1030, 1086, 1087, 1088, 1037, 1090, 1055,
-     1818, 1041, 1818, 1052, 1099, 1071, 1818, 1818, 1045, 1102,
-     1818, 1818, 1051, 1049, 1818, 1105, 1053, 1102, 1047, 1052,
-     1111, 1061, 1071, 1072, 1818, 1115, 1070, 1818, 1818, 1061,
-     1076, 1064, 1079, 1818, 1116, 1084, 1077, 1078, 1087, 1069,
-     1075, 1078, 1130, 1091, 1091, 1134, 1085, 1818, 1136, 1137,
-     1818, 1087, 1087, 1818, 1091, 1086, 1085, 1143, 1098, 1818,
-     1140, 1093, 1090, 1818, 1104, 1107, 1150, 1105, 1152, 1095,
-
-     1097, 1105, 1095, 1111, 1112, 1106, 1122, 1818, 1112, 1162,
-     1818, 1158, 1818, 1818, 1159, 1116, 1124, 1115, 1122, 1818,
-     1119, 1124, 1122, 1172, 1173, 1118, 1818, 1133, 1818, 1123,
-     1135, 1136, 1179, 1123, 1131, 1125, 1133, 1146, 1818, 1145,
-     1133, 1187, 1137, 1149, 1140, 1149, 1151, 1155, 1818, 1818,
-     1194, 1139, 1155, 1197, 1198, 1818, 1194, 1158, 1155, 1160,
-     1147, 1142, 1163, 1818, 1206, 1165, 1166, 1209, 1168, 1171,
-     1818, 1212, 1175, 1818, 1818, 1157, 1215, 1164, 1217, 1162,
-     1179, 1165, 1818, 1165, 1167, 1818, 1172, 1182, 1818, 1168,
-     1180, 1818, 1176, 1818, 1186, 1180, 1184, 1175, 1227, 1176,
-
-     1184, 1193, 1186, 1181, 1182, 1197, 1188, 1195, 1182, 1197,
-     1202, 1245, 1204, 1247, 1248, 1193, 1209, 1200, 1214, 1210,
-     1203, 1818, 1255, 1818, 1818, 1256, 1257, 1214, 1213, 1214,
-     1204, 1818, 1818, 1818, 1262, 1206, 1222, 1265, 1818, 1261,
-     1212, 1818, 1211, 1213, 1224, 1271, 1222, 1818, 1231, 1274,
-     1818, 1818, 1280, 1285, 1290, 1295, 1300, 1305, 1310, 1313,
-     1287, 1292, 1294, 1307
+      269,   64,  231,  184,  187,   75, 1771,  274,  215,  290,
+      278,  297, 1754,  207,  302,  316,  316, 1773,    0,  355,
+      360,  372,  377,  380, 1830,    0, 1830,  295,  383,  227,
+      296,  283,  327,  361,  293, 1830, 1770, 1809, 1830,  237,
+
+     1830,  394,  363, 1757, 1767, 1806,  375,  321,  403, 1761,
+      369,  378,  376,  382,  388, 1804,    0,  445,  407, 1748,
+     1756,  364, 1752, 1741, 1742,  372, 1758, 1741, 1750,  387,
+      308,  378, 1744, 1742,  391, 1731, 1787,  416, 1734, 1785,
+     1727, 1750, 1747, 1747, 1741,  214, 1734, 1727, 1732, 1726,
+      382, 1737, 1730, 1721, 1720, 1734,  362, 1770, 1719,  414,
+     1731, 1734, 1718,  441, 1719,  417, 1731, 1728, 1729, 1727,
+      422, 1709, 1714, 1710, 1702, 1719, 1711,    0,  422,  450,
+      440,  446,  454,  470, 1710, 1830,    0,  476, 1701, 1704,
+     1830,  465,  447, 1830, 1756, 1711,  477, 1754,  481, 1753,
+
+      477, 1752, 1830,  521, 1751,  489, 1712, 1707, 1706, 1697,
+      465, 1746, 1740, 1706, 1685, 1693, 1699, 1687, 1701, 1697,
+     1698, 1698, 1693, 1685, 1687, 1671, 1675, 1688, 1690, 1687,
+     1679, 1669, 1672, 1686, 1830, 1672, 1680, 1683, 1664, 1663,
+     1713, 1662, 1672, 1710,  510, 1671, 1659, 1670, 1706,  490,
+     1710, 1647, 1662,    9, 1652, 1668, 1649, 1651, 1647, 1653,
+     1644, 1643, 1656, 1649, 1651, 1655, 1654, 1648,   80, 1655,
+     1650, 1642, 1632, 1647, 1642, 1646, 1627, 1643, 1629, 1635,
+     1642, 1630,  230, 1623, 1637, 1636, 1639, 1621, 1629,  491,
+     1830, 1830,  492, 1830, 1830, 1616,    0,  376, 1618,  508,
+
+      501, 1672, 1830, 1625,  480, 1830, 1670, 1830, 1664,  562,
+     1830,  480, 1606, 1616, 1666, 1623, 1618, 1621,  304, 1830,
+     1619,  544, 1617, 1614, 1615,  303, 1619, 1657, 1607, 1602,
+     1599, 1595, 1597, 1646, 1605, 1594, 1610, 1642, 1590,  568,
+     1603, 1603, 1586, 1587, 1600, 1587, 1597, 1592, 1599, 1594,
+     1579,  451, 1588, 1591, 1586, 1582, 1630,  502,  497, 1830,
+     1624, 1576, 1575, 1568, 1570, 1574, 1563, 1570, 1575,  550,
+     1620, 1575,  505, 1572, 1576, 1574, 1563, 1563, 1575,  502,
+     1550, 1551, 1572,  512, 1554, 1551, 1565, 1564, 1550, 1562,
+     1561, 1560, 1559,  535, 1600, 1599, 1598, 1542,  584, 1555,
+
+     1830, 1830, 1554,    0,  518, 1542, 1593, 1592, 1550, 1590,
+     1830, 1538, 1588, 1830,  541,  617,  520, 1587, 1529, 1830,
+     1534, 1540, 1543, 1542, 1529, 1528, 1830, 1538, 1529, 1526,
+     1538,  534, 1523, 1525, 1830, 1531, 1516, 1518, 1529, 1527,
+     1522,  585, 1529, 1517, 1510, 1559, 1830, 1508, 1524, 1556,
+     1560, 1518, 1512, 1514, 1515, 1517, 1549, 1502, 1497, 1496,
+     1498, 1491, 1506, 1484, 1491, 1496, 1544, 1830, 1491, 1487,
+     1541, 1494, 1488, 1495, 1480, 1490, 1493, 1482, 1481, 1476,
+     1830, 1531, 1830, 1475, 1474, 1467, 1484, 1521, 1468, 1473,
+     1482, 1476, 1470, 1479,  591, 1514, 1478, 1461, 1461, 1456,
+
+     1452, 1458, 1457, 1465, 1469, 1452, 1508, 1450, 1464, 1453,
+     1830, 1830, 1830, 1453, 1830, 1463, 1497, 1459,    0, 1500,
+     1450, 1830, 1830, 1447, 1830, 1453, 1830,  562,  566,  607,
+     1830, 1491, 1438, 1489, 1436, 1435, 1442, 1435, 1443, 1446,
+     1445, 1429, 1444, 1426, 1473, 1440, 1476, 1422, 1424, 1436,
+     1436, 1435, 1830, 1420, 1417, 1473, 1430, 1422, 1428, 1419,
+     1427, 1830, 1412, 1423, 1427, 1409, 1423,  557, 1405, 1399,
+     1404, 1401, 1416, 1417, 1414, 1455, 1412, 1830, 1398, 1400,
+     1830, 1408, 1445, 1444,  608, 1407, 1390, 1391, 1396, 1387,
+     1830, 1401, 1387,  610, 1379, 1400, 1397, 1389, 1432, 1386,
+
+     1393, 1429, 1830, 1377, 1375, 1389, 1373, 1387, 1390, 1422,
+     1421, 1420, 1367, 1418, 1417, 1830,  599, 1379, 1379, 1377,
+     1366, 1368, 1830, 1830, 1411, 1359, 1414,  566,  597, 1357,
+     1372, 1411,  577, 1405, 1404, 1403, 1357, 1351, 1346, 1399,
+     1361, 1351, 1359, 1395, 1358, 1340, 1348, 1350, 1354, 1389,
+     1393, 1350, 1349, 1830, 1350, 1343, 1332, 1345, 1348, 1343,
+     1338, 1343, 1340, 1339, 1335, 1341, 1336, 1377, 1376, 1320,
+     1316,  579, 1373, 1830, 1372, 1321, 1313, 1364, 1327, 1314,
+     1830, 1314, 1323, 1322, 1322, 1306, 1361, 1304, 1317, 1830,
+     1309, 1301, 1310, 1303, 1314, 1291, 1295, 1346, 1310, 1292,
+
+     1290, 1301, 1341, 1340, 1339, 1286, 1302,  567,  594, 1279,
+     1289,  587, 1830, 1339, 1285, 1295, 1295, 1284, 1288, 1295,
+     1332, 1830, 1326,  594, 1288, 1280, 1830, 1276, 1289, 1269,
+     1272,   62,   82,  198,  236,  300,  385,  386,  399,  472,
+      556,  558,  591,  574,  636,  593, 1830,  603,  605,  599,
+      610,  611,  661,  597,  606,  621,  622,  609,  667,  626,
+      612,  615, 1830, 1830,  631,  630,  635,  623, 1830, 1830,
+      637,  624,  622,  640,  627,  627,  676,  628,  684,  685,
+     1830,  632,  646,  646,  689,  639,  641,  635,  693,  648,
+      638,  639,  635,  645,  649,  660,  644,  662,  657,  659,
+
+      652,  654,  666,  656,  671,  710,  669,  674,  651, 1830,
+      676,  666,  711,  660,  675,  676, 1830,  695,  703,  672,
+      686,  674,  669,  681,  676,  677,  673,  691,  683,  678,
+      729,  735,  694,  685, 1830,  697,  682,  698,  688,  700,
+      694,  739,  708,  692,  694, 1830,  710,  713,  696,  698,
+      754,  699, 1830,  716,  719,  699,  718,  756,  716,  712,
+      707,  725,  724,  710,  725,  717,  713,  731,  716, 1830,
+     1830,  724,  769,  724, 1830,  732,  727,  778, 1830,  729,
+      734,  776,  730,  731,  743,  737,  741,  739,  737,  748,
+      791,  737,  793,  794,  740,  752, 1830,  740,  748,  746,
+
+      751,  763,  747,  761,  762,  763,  779,  784,  766,  753,
+      754,  774,  763,  768,  775,  816,  760,  818,  767,  771,
+     1830,  816,  767,  785,  782,  820,  771,  789,  790,  776,
+      784,  793,  773,  788,  797,  837,  838, 1830,  793,  840,
+      841,  794,  804,  806,  790,  791,  798,  807,  850,  799,
+      798,  815,  854,  806,  810,  808,  806,  859,  860,  812,
+      862,  858,  818, 1830,  823,  816,  807,  826,  820,  815,
+      825,  822,  827,  823,  835, 1830,  819, 1830, 1830,  820,
+      878,  819,  838,  839,  836,  822,  843,  825,  830,  837,
+      870,  861,  891,  836,  838,  855,  853,  845,  849, 1830,
+
+      846, 1830,  860,  858,  861,  845,  846,  904,  859,  864,
+      851,  862,  854,  860,  856,  875,  876,  877, 1830, 1830,
+      875, 1830,  877, 1830,  863,  864,  883,  873,  923,  878,
+      920,  886, 1830,  878,  870,  929, 1830,  930,  879,  886,
+      928, 1830, 1830,  888, 1830,  879,  879,  882,  896,  901,
+      884,  895,  942,  901,  902,  903,  941,  899,  948,  949,
+     1830,  898,  951,  952,  894,  954,  915,  899,  911,  901,
+      931,  960, 1830,  961,  910,  925,  912,  908,  924,  912,
+      930,  918,  918,  971,  930, 1830,  932,  931,  933,  926,
+      935,  936,  933,  923,  926,  926,  983,  932,  985,  986,
+
+      932,  989, 1830,  927,  942,  935,  993,  948, 1830, 1830,
+      944,  954,  940,  957,  943, 1002, 1004,  950,  960, 1007,
+      966, 1830,  958,  958,  960,  962, 1013,  958, 1830, 1830,
+      960, 1830, 1830,  974, 1830,  968, 1018,  969, 1020, 1002,
+     1830, 1830,  966,  974,  968,  967,  970,  970,  966,  972,
+     1030,  980, 1830,  976, 1033,  988,  979,  994,  994,  997,
+      997,  994, 1036, 1000, 1830,  992, 1830, 1830, 1003, 1830,
+     1004, 1005, 1002, 1044, 1830,  995,  995, 1001, 1000, 1012,
+     1012, 1830, 1830, 1051, 1000, 1830, 1017, 1002, 1002, 1004,
+     1010, 1830, 1063, 1016, 1065, 1028, 1830, 1025, 1830, 1044,
+
+     1069, 1070, 1029, 1015, 1073, 1074, 1075, 1030, 1830, 1020,
+     1078, 1830, 1018, 1075, 1040, 1036, 1078, 1028, 1033, 1031,
+     1088, 1046, 1090, 1091, 1054, 1043, 1037, 1054, 1097, 1041,
+     1058, 1043, 1058, 1042, 1098, 1099, 1100, 1049, 1102, 1067,
+     1830, 1053, 1830, 1064, 1111, 1083, 1830, 1830, 1057, 1114,
+     1830, 1830, 1830, 1063, 1061, 1830, 1117, 1065, 1114, 1059,
+     1064, 1123, 1073, 1083, 1084, 1830, 1127, 1082, 1830, 1830,
+     1073, 1088, 1076, 1091, 1830, 1128, 1096, 1089, 1090, 1099,
+     1081, 1087, 1090, 1142, 1103, 1103, 1146, 1097, 1830, 1148,
+     1149, 1830, 1099, 1099, 1830, 1103, 1098, 1097, 1155, 1110,
+
+     1830, 1152, 1105, 1102, 1830, 1116, 1119, 1162, 1117, 1164,
+     1107, 1109, 1117, 1107, 1123, 1124, 1118, 1134, 1830, 1124,
+     1174, 1830, 1170, 1830, 1830, 1171, 1128, 1136, 1127, 1134,
+     1830, 1131, 1136, 1134, 1184, 1185, 1130, 1830, 1145, 1830,
+     1135, 1147, 1148, 1191, 1135, 1143, 1137, 1145, 1158, 1830,
+     1157, 1145, 1199, 1149, 1161, 1152, 1161, 1163, 1167, 1830,
+     1830, 1206, 1151, 1167, 1209, 1210, 1830, 1206, 1170, 1167,
+     1172, 1159, 1154, 1175, 1830, 1218, 1177, 1178, 1221, 1180,
+     1183, 1830, 1224, 1187, 1830, 1830, 1169, 1227, 1176, 1229,
+     1174, 1191, 1177, 1830, 1177, 1179, 1830, 1184, 1194, 1830,
+
+     1180, 1192, 1830, 1188, 1830, 1198, 1192, 1196, 1187, 1239,
+     1188, 1196, 1205, 1198, 1193, 1194, 1209, 1200, 1207, 1194,
+     1209, 1214, 1257, 1216, 1259, 1260, 1205, 1221, 1212, 1226,
+     1222, 1215, 1830, 1267, 1830, 1830, 1268, 1269, 1226, 1225,
+     1226, 1216, 1830, 1830, 1830, 1274, 1218, 1234, 1277, 1830,
+     1273, 1224, 1830, 1223, 1225, 1236, 1283, 1234, 1830, 1243,
+     1286, 1830, 1830, 1292, 1297, 1302, 1307, 1312, 1317, 1322,
+     1325, 1299, 1304, 1306, 1319
     } ;
 
-static const flex_int16_t yy_def[1465] =
+static const flex_int16_t yy_def[1476] =
     {   0,
-     1453, 1453, 1454, 1454, 1453, 1453, 1453, 1453, 1453, 1453,
-     1452, 1452, 1452, 1452, 1452, 1455, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1456,
-     1452, 1452, 1452, 1457,   15, 1452,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1458,   45,   45,
+     1464, 1464, 1465, 1465, 1464, 1464, 1464, 1464, 1464, 1464,
+     1463, 1463, 1463, 1463, 1463, 1466, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1467,
+     1463, 1463, 1463, 1468,   15, 1463,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1469,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1455, 1452,
-     1452, 1452, 1452, 1452, 1452, 1459, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1456, 1452, 1457,
+       45,   45,   45,   45,   45,   45,   45,   45, 1466, 1463,
+     1463, 1463, 1463, 1463, 1463, 1470, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1467, 1463, 1468,
 
-     1452, 1452,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1460,   45, 1458,   45,   45,
+     1463, 1463,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1471,   45, 1469,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1459, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1461,   45,   45,   45,
-     1452,   45,   45, 1452,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1470, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1472,   45,   45,   45,
+     1463,   45,   45, 1463,   45,   45,   45,   45,   45,   45,
 
-       45, 1460, 1452, 1458,   45,   45,   45,   45,   45,   45,
+       45, 1471, 1463, 1469,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1452,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1463,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1462,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1473,   45,   45,   45,
 
-       45,   45, 1452,   45,   45, 1452,   45, 1452,   45, 1458,
-     1452,   45,   45,   45,   45,   45,   45,   45,   45, 1452,
+       45,   45, 1463,   45,   45, 1463,   45, 1463,   45, 1469,
+     1463,   45,   45,   45,   45,   45,   45,   45,   45, 1463,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1452,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1463,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-     1452, 1452, 1452, 1463,   45,   45,   45,   45,   45,   45,
-     1452,   45,   45, 1452,   45, 1458,   45,   45,   45, 1452,
-       45,   45,   45,   45,   45,   45, 1452,   45,   45,   45,
-       45,   45,   45, 1452,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1452,   45,   45,   45,   45,
+     1463, 1463, 1463, 1474,   45,   45,   45,   45,   45,   45,
+     1463,   45,   45, 1463,   45, 1469,   45,   45,   45, 1463,
+       45,   45,   45,   45,   45,   45, 1463,   45,   45,   45,
+       45,   45,   45,   45, 1463,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1463,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1463,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1452,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1452,
-       45, 1452,   45,   45,   45,   45,   45,   45,   45,   45,
+     1463,   45, 1463,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1452,
-     1452, 1452,   45, 1452,   45,   45, 1452, 1464,   45,   45,
-     1452, 1452,   45, 1452,   45, 1452,   45,   45,   45, 1452,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1463, 1463, 1463,   45, 1463,   45,   45, 1463, 1475,   45,
+       45, 1463, 1463,   45, 1463,   45, 1463,   45,   45,   45,
+     1463,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1452,   45,   45,   45,   45,   45,   45,   45,   45, 1452,
+       45,   45, 1463,   45,   45,   45,   45,   45,   45,   45,
+       45, 1463,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1463,   45,   45,
+     1463,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1463,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+
+       45,   45, 1463,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1463,   45,   45,   45,   45,
+       45,   45, 1463, 1463,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1452,   45,   45, 1452,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1452,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-
-     1452,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1452,   45,   45,   45,   45,   45,   45,
-     1452, 1452,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1463,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1463,   45,   45,   45,   45,   45,   45,
+     1463,   45,   45,   45,   45,   45,   45,   45,   45, 1463,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1452,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1452,   45,   45,   45,   45,   45,   45, 1452,   45,   45,
-       45,   45,   45,   45,   45,   45, 1452,   45,   45,   45,
+       45,   45, 1463,   45,   45,   45,   45,   45,   45,   45,
+       45, 1463,   45,   45,   45,   45, 1463,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1452,
-       45,   45,   45,   45,   45,   45,   45,   45, 1452,   45,
-       45,   45,   45, 1452,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1463,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1452,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1452, 1452,
-       45,   45,   45,   45, 1452, 1452,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1452,   45,   45,   45,
+       45,   45, 1463, 1463,   45,   45,   45,   45, 1463, 1463,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1463,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45, 1452,   45,   45,   45,   45,
-       45,   45, 1452,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1452,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1452,   45,   45,   45,   45,   45,   45, 1452,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1463,
+       45,   45,   45,   45,   45,   45, 1463,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1452, 1452,   45,   45,   45, 1452,
-       45,   45,   45, 1452,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1463,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1463,   45,   45,   45,   45,
+       45,   45, 1463,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1463,
+     1463,   45,   45,   45, 1463,   45,   45,   45, 1463,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1452,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1463,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1452,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1452,   45,   45,   45,   45,   45,   45,   45,   45,
+     1463,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1463,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1452,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1452,
-       45, 1452, 1452,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1452, 1452,   45,   45,   45,   45,   45,
+       45,   45,   45, 1463,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1463,   45, 1463, 1463,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1463,
 
+       45, 1463,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1463, 1463,
+       45, 1463,   45, 1463,   45,   45,   45,   45,   45,   45,
+       45,   45, 1463,   45,   45,   45, 1463,   45,   45,   45,
+       45, 1463, 1463,   45, 1463,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1452, 1452,   45, 1452,   45, 1452,   45,   45,   45,
-       45,   45,   45,   45,   45, 1452,   45,   45,   45, 1452,
-       45,   45,   45,   45, 1452, 1452,   45, 1452,   45,   45,
+     1463,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1463,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1463,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1452,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1452,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1452,   45,   45,
+
+       45,   45, 1463,   45,   45,   45,   45,   45, 1463, 1463,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1452,   45,   45,   45,   45,   45,
-
-     1452, 1452,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1452,   45,   45,   45,   45,   45,   45,
-     1452, 1452,   45, 1452, 1452,   45, 1452,   45,   45,   45,
-       45,   45, 1452, 1452,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1452,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1452,   45, 1452, 1452,   45,
-     1452,   45,   45,   45,   45, 1452,   45,   45,   45,   45,
-       45,   45, 1452, 1452,   45,   45, 1452,   45,   45,   45,
-       45,   45, 1452,   45,   45,   45,   45, 1452,   45, 1452,
-       45,   45,   45,   45,   45,   45,   45,   45, 1452,   45,
-
-       45, 1452,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1463,   45,   45,   45,   45,   45,   45, 1463, 1463,
+       45, 1463, 1463,   45, 1463,   45,   45,   45,   45,   45,
+     1463, 1463,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1463,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1463,   45, 1463, 1463,   45, 1463,
+       45,   45,   45,   45, 1463,   45,   45,   45,   45,   45,
+       45, 1463, 1463,   45,   45, 1463,   45,   45,   45,   45,
+       45, 1463,   45,   45,   45,   45, 1463,   45, 1463,   45,
+
+       45,   45,   45,   45,   45,   45,   45,   45, 1463,   45,
+       45, 1463,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1452,   45, 1452,   45,   45,   45, 1452, 1452,   45,   45,
-     1452, 1452,   45,   45, 1452,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1452,   45,   45, 1452, 1452,   45,
-       45,   45,   45, 1452,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1452,   45,   45,
-     1452,   45,   45, 1452,   45,   45,   45,   45,   45, 1452,
-       45,   45,   45, 1452,   45,   45,   45,   45,   45,   45,
-
-       45,   45,   45,   45,   45,   45,   45, 1452,   45,   45,
-     1452,   45, 1452, 1452,   45,   45,   45,   45,   45, 1452,
-       45,   45,   45,   45,   45,   45, 1452,   45, 1452,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1452,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1452, 1452,
-       45,   45,   45,   45,   45, 1452,   45,   45,   45,   45,
-       45,   45,   45, 1452,   45,   45,   45,   45,   45,   45,
-     1452,   45,   45, 1452, 1452,   45,   45,   45,   45,   45,
-       45,   45, 1452,   45,   45, 1452,   45,   45, 1452,   45,
-       45, 1452,   45, 1452,   45,   45,   45,   45,   45,   45,
-
+     1463,   45, 1463,   45,   45,   45, 1463, 1463,   45,   45,
+     1463, 1463, 1463,   45,   45, 1463,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1463,   45,   45, 1463, 1463,
+       45,   45,   45,   45, 1463,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1463,   45,
+       45, 1463,   45,   45, 1463,   45,   45,   45,   45,   45,
+
+     1463,   45,   45,   45, 1463,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1463,   45,
+       45, 1463,   45, 1463, 1463,   45,   45,   45,   45,   45,
+     1463,   45,   45,   45,   45,   45,   45, 1463,   45, 1463,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1463,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1463,
+     1463,   45,   45,   45,   45,   45, 1463,   45,   45,   45,
+       45,   45,   45,   45, 1463,   45,   45,   45,   45,   45,
+       45, 1463,   45,   45, 1463, 1463,   45,   45,   45,   45,
+       45,   45,   45, 1463,   45,   45, 1463,   45,   45, 1463,
+
+       45,   45, 1463,   45, 1463,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1452,   45, 1452, 1452,   45,   45,   45,   45,   45,
-       45, 1452, 1452, 1452,   45,   45,   45,   45, 1452,   45,
-       45, 1452,   45,   45,   45,   45,   45, 1452,   45,   45,
-     1452,    0, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452
+       45,   45, 1463,   45, 1463, 1463,   45,   45,   45,   45,
+       45,   45, 1463, 1463, 1463,   45,   45,   45,   45, 1463,
+       45,   45, 1463,   45,   45,   45,   45,   45, 1463,   45,
+       45, 1463,    0, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463
     } ;
 
-static const flex_int16_t yy_nxt[1890] =
+static const flex_int16_t yy_nxt[1902] =
     {   0,
-     1452,   13,   14,   13, 1452,   15,   16, 1452,   17,   18,
+     1463,   13,   14,   13, 1463,   15,   16, 1463,   17,   18,
        19,   20,   21,   22,   22,   22,   23,   24,   85,  363,
-       37,   14,   37,   86,   25,   26,   38, 1452, 1452,   27,
+       37,   14,   37,   86,   25,   26,   38, 1463, 1463,   27,
        37,   14,   37,   42,   28,   42,   38,   91,   92,   29,
       115,   30,   13,   14,   13,   90,   91,   25,   31,   92,
-       13,   14,   13,   13,   14,   13,   32,   40,  824,   13,
+       13,   14,   13,   13,   14,   13,   32,   40, 1463,   13,
        14,   13,   33,   40,  115,   91,   92,  364,   90,   34,
        35,   13,   14,   13,   94,   15,   16,   95,   17,   18,
        19,   20,   21,   22,   22,   22,   23,   24,   13,   14,
@@ -1253,7 +1256,7 @@ static const flex_int16_t yy_nxt[1890] =
 
        39,   84,   84,   84,   28,   42,   41,   42,   42,   29,
        42,   30,   82,  107,   41,  111,   93,   25,   31,  108,
-      130,  138,   88,  825,   88,  826,   32,   89,   89,   89,
+      130,  138,   88,  826,   88,  827,   32,   89,   89,   89,
       131,  139,   33,  140,  379,   82,  107,  380,  111,   34,
        35,   44,   44,   44,   45,   45,   46,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
@@ -1266,19 +1269,19 @@ static const flex_int16_t yy_nxt[1890] =
        45,   45,   80,  103,   81,   81,   81,   80,  109,   83,
        83,   83,  101,  114,   80,   82,   83,   83,   83,  121,
        82,  133,  122,  112,  123,  306,  124,   82,  134,  103,
-      394,  103,  101,  113,  135,  827,  114,  110,   82,  136,
+      394,  103,  101,  113,  135,  828,  114,  110,   82,  136,
       163,  107,  137,   82,  164,  179,  112,  102,  146,  244,
        82,   45,  147,   45,   45,   45,   45,  119,   45,   45,
        45,  113,  117,  120,  107,   45,   45,  102,   45,   45,
-      245,  179,  148,  828,   45,  132,   45,   45,   45,   45,
+      245,  179,  148,  829,   45,  132,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   89,   89,
-       89,   45,  125,  431,  111,   45,  126,  432,  181,  127,
+       89,   45,  125,  432,  111,   45,  126,  433,  181,  127,
       128,  142,  143,   45,  180,  144,  152,   45,  181,   45,
       118,  145,  129,  149,  153,  150,  154,  151,  112,  114,
       157,  155,  156,  158,  159,  165,  181,  424,  113,  166,
-      180,  193,  167,  224,  160,  179,  184,  161,  829,  168,
+      180,  193,  167,  224,  160,  179,  184,  161,  830,  168,
       169,  171,  114,  172,  425,  170,  225,  173,   84,   84,
        84,   80,  175,   81,   81,   81,  113,  176,  193,   82,
        88,  182,   88,  174,   82,   89,   89,   89,   80,  180,
@@ -1287,176 +1290,179 @@ static const flex_int16_t yy_nxt[1890] =
       188,   82,   82,  192,   82,  197,  100,   82,  194,  198,
       209,  199,  201,  200,  405,  183,  215,  216,  197,  210,
       211,  235,  256,  257,   82,  226,  217,   82,  188,  192,
-      221,  830,  222,  197,  100,  201,  198,  195,  100,  199,
-      200,  227,  100,  405,  188,  230,  250,  831,  231,  223,
+      221,  831,  222,  197,  100,  201,  198,  195,  100,  199,
+      200,  227,  100,  405,  188,  230,  250,  832,  231,  223,
       100,  266,  232,  198,  100,  290,  100,  187,  204,  204,
-      204,  205,  832,  236,  292,  204,  204,  204,  204,  204,
+      204,  205,  833,  236,  292,  204,  204,  204,  204,  204,
       204,  260,  206,  276,  261,  262,  302,  277,  291,  290,
       283,  278,  291,  290,  267,  268,  269,  292,  204,  204,
       204,  204,  204,  204,  292,  270,  298,  271,  301,  272,
 
       273,  305,  274,  302,  291,  307,  309,  293,  294,  298,
-      461,  462,  413,  317,  305,  401,  401,  295,  405,  298,
+      462,  463,  413,  317,  305,  401,  401,  295,  405,  298,
       352,  318,  407,  408,  305,  410,  301,  319,  307,  413,
-      833,  409,  312,  309,  310,  310,  310,  359,  401,  402,
-      413,  310,  310,  310,  310,  310,  310,  417,  410,  468,
-      484,  519,  492,  519,  485,  480,  493,  470,  497,  469,
-      508,  834,  498,  509,  310,  310,  310,  310,  310,  310,
-      527,  353,  528,  446,  354,  416,  416,  416,  447,  519,
-      678,  529,  416,  416,  416,  416,  416,  416,  514,  541,
-      551,  601,  626,  515,  627,  552,  602,  527,  622,  528,
-
-      662,  663,  542,  628,  710,  416,  416,  416,  416,  416,
-      416,  481,  721,  687,  711,  720,  835,  679,  688,  626,
-      725,  726,  627,  763,  448,  815,  764,  797,  836,  449,
-       45,   45,   45,  837,  798,  721,  838,   45,   45,   45,
-       45,   45,   45,  720,  804,  799,  839,  840,  843,  841,
-      805,  844,  800,  815,  842,  689,  801,  845,  846,  847,
-       45,   45,   45,   45,   45,   45,  848,  849,  850,  851,
-      852,  853,  854,  855,  856,  857,  858,  859,  861,  862,
-      863,  860,  864,  865,  866,  867,  868,  869,  870,  871,
-      872,  873,  874,  875,  876,  877,  878,  879,  880,  881,
-
-      882,  883,  884,  885,  886,  887,  888,  890,  891,  892,
-      893,  894,  895,  896,  897,  898,  899,  900,  889,  901,
-      902,  903,  904,  905,  906,  907,  908,  909,  910,  911,
-      912,  913,  914,  915,  916,  917,  918,  919,  920,  921,
-      922,  923,  924,  925,  903,  926,  927,  902,  928,  929,
-      930,  931,  932,  935,  936,  937,  938,  933,  939,  940,
-      941,  942,  943,  944,  945,  946,  947,  948,  949,  950,
-      952,  953,  954,  955,  956,  957,  958,  959,  960,  961,
-      951,  962,  963,  964,  965,  966,  967,  968,  969,  970,
-      971,  972,  973,  974,  975,  976,  977,  978,  979,  980,
-
-      981,  982,  983,  984,  985,  987,  986,  988,  934,  989,
-      990,  991,  992,  993,  994,  995,  996,  997,  998,  999,
-     1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
-     1010, 1011,  985,  986, 1012, 1013, 1014, 1015, 1017, 1019,
-     1020, 1021, 1016, 1022, 1023, 1024, 1025, 1026, 1027, 1028,
-     1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038,
-     1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048,
-     1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058,
-     1018, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067,
-     1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077,
-
-     1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1064,
-     1087, 1088, 1089, 1090, 1091, 1065, 1092, 1093, 1094, 1095,
-     1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105,
-     1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115,
-     1116, 1117, 1118, 1120, 1121, 1122, 1123, 1124, 1125, 1126,
-     1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1136, 1137,
-     1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147,
-     1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157,
-     1158, 1159, 1160, 1132, 1161, 1162, 1163, 1165, 1166, 1167,
-     1168, 1169, 1170, 1119, 1164, 1171, 1172, 1173, 1174, 1135,
-
-     1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184,
-     1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194,
-     1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204,
-     1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1191,
-     1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223,
-     1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233,
-     1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
-     1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253,
-     1254, 1255, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1236,
-     1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273,
-
-     1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283,
-     1284, 1286, 1287, 1288, 1289, 1285, 1290, 1291, 1292, 1293,
-     1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303,
-     1304, 1305, 1306, 1279, 1307, 1308, 1309, 1256, 1310, 1311,
-     1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321,
-     1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
-     1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341,
-     1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351,
-     1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361,
-     1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371,
-
-     1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381,
-     1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391,
-     1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401,
-     1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411,
-     1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421,
-     1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431,
-     1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441,
-     1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,
-       12,   12,   12,   12,   12,   36,   36,   36,   36,   36,
-       79,  297,   79,   79,   79,   98,  404,   98,  518,   98,
-
-      100,  100,  100,  100,  100,  116,  116,  116,  116,  116,
-      178,  100,  178,  178,  178,  202,  202,  202,  823,  822,
-      821,  820,  819,  818,  817,  816,  814,  813,  812,  811,
-      810,  809,  808,  807,  806,  803,  802,  796,  795,  794,
-      793,  792,  791,  790,  789,  788,  787,  786,  785,  784,
-      783,  782,  781,  780,  779,  778,  777,  776,  775,  774,
-      773,  772,  771,  770,  769,  768,  767,  766,  765,  762,
-      761,  760,  759,  758,  757,  756,  755,  754,  753,  752,
-      751,  750,  749,  748,  747,  746,  745,  744,  743,  742,
-      741,  740,  739,  738,  737,  736,  735,  734,  733,  732,
-
-      731,  730,  729,  728,  727,  724,  723,  722,  719,  718,
-      717,  716,  715,  714,  713,  712,  709,  708,  707,  706,
-      705,  704,  703,  702,  701,  700,  699,  698,  697,  696,
-      695,  694,  693,  692,  691,  690,  686,  685,  684,  683,
-      682,  681,  680,  677,  676,  675,  674,  673,  672,  671,
-      670,  669,  668,  667,  666,  665,  664,  661,  660,  659,
-      658,  657,  656,  655,  654,  653,  652,  651,  650,  649,
-      648,  647,  646,  645,  644,  643,  642,  641,  640,  639,
-      638,  637,  636,  635,  634,  633,  632,  631,  630,  629,
-      625,  624,  623,  622,  621,  620,  619,  618,  617,  616,
-
-      615,  614,  613,  612,  611,  610,  609,  608,  607,  606,
-      605,  604,  603,  600,  599,  598,  597,  596,  595,  594,
-      593,  592,  591,  590,  589,  588,  587,  586,  585,  584,
-      583,  582,  581,  580,  579,  578,  577,  576,  575,  574,
-      573,  572,  571,  570,  569,  568,  567,  566,  565,  564,
-      563,  562,  561,  560,  559,  558,  557,  556,  555,  554,
-      553,  550,  549,  548,  547,  546,  545,  544,  543,  540,
-      539,  538,  537,  536,  535,  534,  533,  532,  531,  530,
-      526,  525,  524,  523,  522,  521,  520,  517,  516,  513,
-      512,  511,  510,  507,  506,  505,  504,  503,  502,  501,
-
-      500,  499,  496,  495,  494,  491,  490,  489,  488,  487,
-      486,  483,  482,  479,  478,  477,  476,  475,  474,  473,
-      472,  471,  467,  466,  465,  464,  463,  460,  459,  458,
-      457,  456,  455,  454,  453,  452,  451,  450,  445,  444,
-      443,  442,  441,  440,  439,  438,  437,  436,  435,  434,
-      433,  430,  429,  428,  427,  426,  423,  422,  421,  420,
-      419,  418,  415,  414,  412,  411,  406,  403,  400,  399,
-      398,  397,  396,  395,  393,  392,  391,  390,  389,  388,
-      387,  386,  385,  384,  383,  382,  381,  378,  377,  376,
-      375,  374,  373,  372,  371,  370,  369,  368,  367,  366,
-
-      365,  362,  361,  360,  358,  357,  356,  355,  351,  350,
-      349,  348,  347,  346,  345,  344,  343,  342,  341,  340,
-      339,  338,  337,  336,  335,  334,  333,  332,  331,  330,
-      329,  328,  327,  326,  325,  324,  323,  322,  321,  320,
-      316,  315,  314,  313,  311,  203,  308,  306,  304,  303,
-      300,  299,  296,  289,  288,  287,  286,  285,  284,  282,
-      281,  280,  279,  275,  265,  264,  263,  259,  258,  255,
-      254,  253,  252,  251,  249,  248,  247,  246,  243,  242,
-      241,  240,  239,  238,  237,  234,  233,  229,  228,  220,
-      219,  218,  214,  213,  212,  208,  207,  203,  196,  191,
-
-      190,  189,  186,  185,  177,  162,  141,  106,  105,  104,
-       43,   99,   97,   96,   87,   43, 1452,   11, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452
+      834,  409,  312,  309,  310,  310,  310,  359,  401,  402,
+      413,  310,  310,  310,  310,  310,  310,  417,  410,  427,
+      469,  520,  485,  520,  428,  481,  486,  471,  493,  498,
+      470,  835,  494,  499,  310,  310,  310,  310,  310,  310,
+      528,  353,  529,  447,  354,  416,  416,  416,  448,  520,
+      543,  530,  416,  416,  416,  416,  416,  416,  509,  515,
+      553,  510,  628,  544,  516,  554,  603,  528,  629,  529,
+
+      723,  604,  665,  666,  713,  416,  416,  416,  416,  416,
+      416,  482,  624,  681,  714,  690,  836,  630,  801,  628,
+      691,  724,  728,  729,  449,  802,  629,  819,  723,  450,
+       45,   45,   45,  767,  837,  838,  768,   45,   45,   45,
+       45,   45,   45,  808,  724,  803,  839,  840,  841,  809,
+      682,  842,  804,  843,  844,  819,  805,  692,  845,  848,
+       45,   45,   45,   45,   45,   45,  846,  849,  850,  851,
+      852,  847,  853,  854,  855,  856,  857,  858,  859,  860,
+      861,  862,  863,  864,  866,  867,  868,  865,  869,  870,
+      871,  872,  873,  874,  875,  876,  877,  878,  879,  880,
+
+      881,  882,  883,  884,  885,  886,  887,  888,  889,  890,
+      891,  892,  893,  895,  896,  897,  898,  899,  900,  901,
+      902,  903,  904,  905,  894,  906,  907,  908,  909,  910,
+      911,  912,  913,  914,  915,  916,  917,  918,  919,  920,
+      921,  922,  923,  924,  925,  926,  927,  928,  929,  930,
+      908,  931,  932,  907,  933,  934,  935,  936,  937,  938,
+      941,  942,  943,  944,  939,  945,  946,  947,  948,  949,
+      950,  951,  952,  953,  954,  955,  956,  958,  959,  960,
+      961,  962,  963,  964,  965,  966,  967,  957,  968,  969,
+      970,  971,  972,  973,  974,  975,  976,  977,  978,  979,
+
+      980,  981,  982,  983,  984,  985,  986,  987,  988,  989,
+      990,  991,  993,  992,  994,  940,  995,  996,  997,  998,
+      999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
+     1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,  991,
+      992, 1018, 1019, 1020, 1021, 1022, 1024, 1026, 1027, 1028,
+     1023, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037,
+     1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
+     1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057,
+     1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1025, 1066,
+     1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076,
+
+     1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
+     1087, 1088, 1089, 1090, 1091, 1092, 1093, 1071, 1094, 1095,
+     1096, 1097, 1098, 1072, 1099, 1100, 1101, 1102, 1103, 1104,
+     1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114,
+     1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124,
+     1125, 1126, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135,
+     1136, 1137, 1138, 1139, 1140, 1141, 1142, 1144, 1145, 1146,
+     1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156,
+     1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166,
+     1167, 1168, 1140, 1169, 1170, 1171, 1172, 1174, 1175, 1176,
+
+     1177, 1178, 1127, 1179, 1173, 1180, 1181, 1182, 1143, 1183,
+     1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193,
+     1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203,
+     1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213,
+     1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1200,
+     1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232,
+     1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
+     1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252,
+     1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262,
+     1263, 1264, 1265, 1266, 1268, 1269, 1270, 1271, 1272, 1273,
+
+     1246, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282,
+     1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
+     1293, 1294, 1295, 1297, 1298, 1299, 1300, 1296, 1301, 1302,
+     1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312,
+     1313, 1314, 1315, 1316, 1317, 1290, 1318, 1319, 1320, 1267,
+     1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330,
+     1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340,
+     1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350,
+     1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360,
+     1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370,
+
+     1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380,
+     1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390,
+     1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400,
+     1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410,
+     1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420,
+     1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430,
+     1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440,
+     1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450,
+     1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460,
+     1461, 1462,   12,   12,   12,   12,   12,   36,   36,   36,
+
+       36,   36,   79,  297,   79,   79,   79,   98,  404,   98,
+      519,   98,  100,  100,  100,  100,  100,  116,  116,  116,
+      116,  116,  178,  100,  178,  178,  178,  202,  202,  202,
+      825,  824,  823,  822,  821,  820,  818,  817,  816,  815,
+      814,  813,  812,  811,  810,  807,  806,  800,  799,  798,
+      797,  796,  795,  794,  793,  792,  791,  790,  789,  788,
+      787,  786,  785,  784,  783,  782,  781,  780,  779,  778,
+      777,  776,  775,  774,  773,  772,  771,  770,  769,  766,
+      765,  764,  763,  762,  761,  760,  759,  758,  757,  756,
+      755,  754,  753,  752,  751,  750,  749,  748,  747,  746,
+
+      745,  744,  743,  742,  741,  740,  739,  738,  737,  736,
+      735,  734,  733,  732,  731,  730,  727,  726,  725,  722,
+      721,  720,  719,  718,  717,  716,  715,  712,  711,  710,
+      709,  708,  707,  706,  705,  704,  703,  702,  701,  700,
+      699,  698,  697,  696,  695,  694,  693,  689,  688,  687,
+      686,  685,  684,  683,  680,  679,  678,  677,  676,  675,
+      674,  673,  672,  671,  670,  669,  668,  667,  664,  663,
+      662,  661,  660,  659,  658,  657,  656,  655,  654,  653,
+      652,  651,  650,  649,  648,  647,  646,  645,  644,  643,
+      642,  641,  640,  639,  638,  637,  636,  635,  634,  633,
+
+      632,  631,  627,  626,  625,  624,  623,  622,  621,  620,
+      619,  618,  617,  616,  615,  614,  613,  612,  611,  610,
+      609,  608,  607,  606,  605,  602,  601,  600,  599,  598,
+      597,  596,  595,  594,  593,  592,  591,  590,  589,  588,
+      587,  586,  585,  584,  583,  582,  581,  580,  579,  578,
+      577,  576,  575,  574,  573,  572,  571,  570,  569,  568,
+      567,  566,  565,  564,  563,  562,  561,  560,  559,  558,
+      557,  556,  555,  552,  551,  550,  549,  548,  547,  546,
+      545,  542,  541,  540,  539,  538,  537,  536,  535,  534,
+      533,  532,  531,  527,  526,  525,  524,  523,  522,  521,
+
+      518,  517,  514,  513,  512,  511,  508,  507,  506,  505,
+      504,  503,  502,  501,  500,  497,  496,  495,  492,  491,
+      490,  489,  488,  487,  484,  483,  480,  479,  478,  477,
+      476,  475,  474,  473,  472,  468,  467,  466,  465,  464,
+      461,  460,  459,  458,  457,  456,  455,  454,  453,  452,
+      451,  446,  445,  444,  443,  442,  441,  440,  439,  438,
+      437,  436,  435,  434,  431,  430,  429,  426,  423,  422,
+      421,  420,  419,  418,  415,  414,  412,  411,  406,  403,
+      400,  399,  398,  397,  396,  395,  393,  392,  391,  390,
+      389,  388,  387,  386,  385,  384,  383,  382,  381,  378,
+
+      377,  376,  375,  374,  373,  372,  371,  370,  369,  368,
+      367,  366,  365,  362,  361,  360,  358,  357,  356,  355,
+      351,  350,  349,  348,  347,  346,  345,  344,  343,  342,
+      341,  340,  339,  338,  337,  336,  335,  334,  333,  332,
+      331,  330,  329,  328,  327,  326,  325,  324,  323,  322,
+      321,  320,  316,  315,  314,  313,  311,  203,  308,  306,
+      304,  303,  300,  299,  296,  289,  288,  287,  286,  285,
+      284,  282,  281,  280,  279,  275,  265,  264,  263,  259,
+      258,  255,  254,  253,  252,  251,  249,  248,  247,  246,
+      243,  242,  241,  240,  239,  238,  237,  234,  233,  229,
+
+      228,  220,  219,  218,  214,  213,  212,  208,  207,  203,
+      196,  191,  190,  189,  186,  185,  177,  162,  141,  106,
+      105,  104,   43,   99,   97,   96,   87,   43, 1463,   11,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+
+     1463
     } ;
 
-static const flex_int16_t yy_chk[1890] =
+static const flex_int16_t yy_chk[1902] =
     {   0,
         0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,   21,  254,
         3,    3,    3,   21,    1,    1,    3,    0,    0,    1,
         4,    4,    4,   13,    1,   13,    4,   27,   28,    1,
        57,    1,    5,    5,    5,   26,   32,    1,    1,   33,
-        6,    6,    6,    7,    7,    7,    1,    7,  731,    8,
+        6,    6,    6,    7,    7,    7,    1,    7,    0,    8,
         8,    8,    1,    8,   57,   27,   28,  254,   26,    1,
         1,    2,    2,    2,   32,    2,    2,   33,    2,    2,
         2,    2,    2,    2,    2,    2,    2,    2,    9,    9,
@@ -1510,154 +1516,157 @@ static const flex_int16_t yy_chk[1890] =
       352,  352,  305,  211,  250,  290,  293,  184,  312,  188,
       245,  211,  300,  300,  197,  301,  192,  211,  199,  359,
       740,  300,  206,  201,  204,  204,  204,  250,  290,  293,
-      305,  204,  204,  204,  204,  204,  204,  312,  301,  358,
-      373,  405,  380,  417,  373,  370,  380,  359,  384,  358,
-      394,  741,  384,  394,  204,  204,  204,  204,  204,  204,
+      305,  204,  204,  204,  204,  204,  204,  312,  301,  322,
+      358,  405,  373,  417,  322,  370,  373,  359,  380,  384,
+      358,  741,  380,  384,  204,  204,  204,  204,  204,  204,
       415,  245,  415,  340,  245,  310,  310,  310,  340,  405,
-      583,  417,  310,  310,  310,  310,  310,  310,  399,  431,
-      441,  494,  527,  399,  528,  441,  494,  415,  529,  415,
-
-      566,  566,  431,  529,  615,  310,  310,  310,  310,  310,
-      310,  370,  627,  592,  615,  626,  742,  583,  592,  527,
-      631,  631,  528,  669,  340,  721,  669,  705,  744,  340,
-      416,  416,  416,  745,  705,  627,  746,  416,  416,  416,
-      416,  416,  416,  626,  709,  706,  747,  748,  750,  749,
-      709,  751,  706,  721,  749,  592,  706,  752,  753,  754,
-      416,  416,  416,  416,  416,  416,  755,  756,  757,  758,
-      761,  762,  763,  764,  767,  768,  769,  770,  771,  772,
-      773,  770,  774,  775,  776,  778,  779,  780,  781,  782,
-      783,  784,  785,  786,  787,  788,  789,  790,  791,  792,
-
-      793,  794,  795,  796,  797,  798,  799,  800,  801,  802,
-      803,  804,  805,  807,  808,  809,  810,  811,  799,  812,
-      814,  815,  816,  817,  818,  819,  820,  821,  822,  823,
-      824,  825,  826,  827,  828,  829,  831,  832,  833,  834,
-      835,  836,  837,  838,  815,  839,  840,  814,  842,  843,
-      844,  845,  846,  847,  849,  850,  851,  846,  852,  853,
-      854,  855,  856,  857,  858,  859,  860,  861,  862,  863,
-      864,  867,  868,  869,  871,  872,  873,  875,  876,  877,
-      863,  878,  879,  880,  881,  882,  883,  884,  885,  886,
-      887,  888,  889,  890,  891,  893,  894,  895,  896,  897,
-
-      898,  899,  900,  901,  902,  904,  903,  905,  846,  906,
-      907,  908,  909,  910,  911,  912,  913,  914,  916,  917,
-      918,  919,  920,  921,  922,  923,  924,  925,  926,  927,
-      928,  929,  902,  903,  930,  931,  933,  934,  935,  936,
-      937,  938,  934,  939,  940,  941,  942,  943,  944,  945,
-      946,  947,  948,  949,  950,  951,  952,  953,  954,  955,
-      956,  957,  959,  960,  961,  962,  963,  964,  965,  966,
-      967,  968,  969,  971,  974,  975,  976,  977,  978,  979,
-      935,  980,  981,  982,  983,  984,  985,  986,  987,  988,
-      989,  990,  991,  992,  993,  996,  997,  998,  999, 1000,
-
-     1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,  985,
-     1010, 1011, 1014, 1016, 1018,  986, 1019, 1020, 1021, 1022,
-     1023, 1024, 1025, 1027, 1028, 1029, 1031, 1032, 1033, 1034,
-     1037, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
-     1048, 1049, 1050, 1051, 1052, 1053, 1055, 1056, 1057, 1058,
-     1059, 1060, 1061, 1062, 1063, 1064, 1065, 1067, 1068, 1069,
-     1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1079, 1080,
-     1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090,
-     1091, 1092, 1093, 1064, 1094, 1096, 1097, 1098, 1099, 1100,
-     1103, 1104, 1105, 1050, 1097, 1106, 1107, 1108, 1109, 1067,
-
-     1110, 1111, 1112, 1113, 1115, 1116, 1117, 1118, 1119, 1120,
-     1123, 1126, 1128, 1129, 1130, 1131, 1132, 1135, 1136, 1137,
-     1138, 1139, 1140, 1141, 1142, 1143, 1145, 1146, 1147, 1148,
-     1149, 1150, 1151, 1152, 1153, 1154, 1155, 1157, 1160, 1132,
-     1162, 1163, 1164, 1165, 1167, 1168, 1169, 1170, 1171, 1172,
-     1175, 1176, 1178, 1179, 1180, 1181, 1182, 1184, 1185, 1186,
-     1187, 1189, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198,
-     1200, 1201, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210,
-     1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1191,
-     1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228,
-
-     1229, 1230, 1232, 1234, 1235, 1236, 1239, 1240, 1243, 1244,
-     1246, 1247, 1248, 1249, 1250, 1246, 1251, 1252, 1253, 1254,
-     1256, 1257, 1260, 1261, 1262, 1263, 1265, 1266, 1267, 1268,
-     1269, 1270, 1271, 1236, 1272, 1273, 1274, 1211, 1275, 1276,
-     1277, 1279, 1280, 1282, 1283, 1285, 1286, 1287, 1288, 1289,
-     1291, 1292, 1293, 1295, 1296, 1297, 1298, 1299, 1300, 1301,
-     1302, 1303, 1304, 1305, 1306, 1307, 1309, 1310, 1312, 1315,
-     1316, 1317, 1318, 1319, 1321, 1322, 1323, 1324, 1325, 1326,
-     1328, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
-     1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1351,
-
-     1352, 1353, 1354, 1355, 1357, 1358, 1359, 1360, 1361, 1362,
-     1363, 1365, 1366, 1367, 1368, 1369, 1370, 1372, 1373, 1376,
-     1377, 1378, 1379, 1380, 1381, 1382, 1384, 1385, 1387, 1388,
-     1390, 1391, 1393, 1395, 1396, 1397, 1398, 1399, 1400, 1401,
-     1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411,
-     1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421,
-     1423, 1426, 1427, 1428, 1429, 1430, 1431, 1435, 1436, 1437,
-     1438, 1440, 1441, 1443, 1444, 1445, 1446, 1447, 1449, 1450,
-     1453, 1453, 1453, 1453, 1453, 1454, 1454, 1454, 1454, 1454,
-     1455, 1461, 1455, 1455, 1455, 1456, 1462, 1456, 1463, 1456,
-
-     1457, 1457, 1457, 1457, 1457, 1458, 1458, 1458, 1458, 1458,
-     1459, 1464, 1459, 1459, 1459, 1460, 1460, 1460,  730,  729,
-      728,  727,  726,  725,  723,  722,  720,  718,  717,  716,
-      715,  714,  713,  712,  711,  708,  707,  704,  703,  702,
-      701,  700,  699,  698,  697,  696,  695,  694,  693,  692,
-      691,  690,  689,  688,  686,  685,  684,  683,  682,  681,
-      680,  679,  677,  676,  675,  674,  673,  672,  670,  668,
-      667,  666,  665,  664,  663,  662,  661,  660,  659,  658,
-      657,  656,  655,  654,  653,  652,  650,  649,  648,  647,
-      646,  645,  644,  643,  642,  641,  640,  639,  638,  637,
-
-      636,  635,  634,  633,  632,  630,  629,  628,  625,  624,
-      623,  620,  619,  618,  617,  616,  613,  612,  611,  610,
-      609,  608,  607,  606,  605,  604,  603,  602,  600,  599,
-      598,  597,  596,  595,  594,  593,  591,  590,  588,  587,
-      586,  585,  584,  582,  581,  580,  578,  577,  575,  574,
-      573,  572,  571,  570,  569,  568,  567,  565,  564,  563,
-      562,  561,  559,  558,  557,  556,  555,  554,  553,  552,
-      550,  549,  548,  547,  546,  545,  544,  543,  542,  541,
-      540,  539,  538,  537,  536,  535,  534,  533,  532,  531,
-      525,  523,  520,  519,  517,  516,  515,  513,  509,  508,
-
-      507,  506,  505,  504,  503,  502,  501,  500,  499,  498,
-      497,  496,  495,  493,  492,  491,  490,  489,  488,  487,
-      486,  485,  484,  483,  481,  479,  478,  477,  476,  475,
-      474,  473,  472,  471,  470,  469,  468,  466,  465,  464,
-      463,  462,  461,  460,  459,  458,  457,  456,  455,  454,
-      453,  452,  451,  450,  449,  448,  447,  445,  444,  443,
-      442,  440,  439,  438,  437,  436,  435,  433,  432,  430,
-      429,  428,  426,  425,  424,  423,  422,  421,  419,  418,
-      413,  412,  410,  409,  408,  407,  406,  403,  400,  398,
-      397,  396,  395,  393,  392,  391,  390,  389,  388,  387,
-
-      386,  385,  383,  382,  381,  379,  378,  377,  376,  375,
-      374,  372,  371,  369,  368,  367,  366,  365,  364,  363,
-      362,  361,  357,  356,  355,  354,  353,  351,  350,  349,
-      348,  347,  346,  345,  344,  343,  342,  341,  339,  338,
-      337,  336,  335,  334,  333,  332,  331,  330,  329,  328,
-      327,  325,  324,  323,  322,  321,  318,  317,  316,  315,
-      314,  313,  309,  307,  304,  302,  299,  296,  289,  288,
-      287,  286,  285,  284,  282,  281,  280,  279,  278,  277,
-      276,  275,  274,  273,  272,  271,  270,  268,  267,  266,
-      265,  264,  263,  262,  261,  260,  259,  258,  257,  256,
-
-      255,  253,  252,  251,  249,  248,  247,  246,  244,  243,
-      242,  241,  240,  239,  238,  237,  236,  234,  233,  232,
-      231,  230,  229,  228,  227,  226,  225,  224,  223,  222,
-      221,  220,  219,  218,  217,  216,  215,  214,  213,  212,
-      210,  209,  208,  207,  205,  202,  200,  198,  196,  195,
-      190,  189,  185,  177,  176,  175,  174,  173,  172,  170,
-      169,  168,  167,  165,  163,  162,  161,  159,  158,  156,
-      155,  154,  153,  152,  150,  149,  148,  147,  145,  144,
-      143,  142,  141,  140,  139,  137,  136,  134,  133,  129,
-      128,  127,  125,  124,  123,  121,  120,  116,  110,  106,
-
-      105,  104,   98,   97,   78,   73,   67,   50,   49,   48,
-       43,   41,   39,   38,   24,   14,   11, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
-     1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452
+      432,  417,  310,  310,  310,  310,  310,  310,  394,  399,
+      442,  394,  528,  432,  399,  442,  495,  415,  529,  415,
+
+      628,  495,  568,  568,  617,  310,  310,  310,  310,  310,
+      310,  370,  530,  585,  617,  594,  742,  530,  708,  528,
+      594,  629,  633,  633,  340,  708,  529,  724,  628,  340,
+      416,  416,  416,  672,  743,  744,  672,  416,  416,  416,
+      416,  416,  416,  712,  629,  709,  745,  746,  748,  712,
+      585,  749,  709,  750,  751,  724,  709,  594,  752,  754,
+      416,  416,  416,  416,  416,  416,  753,  755,  756,  757,
+      758,  753,  759,  760,  761,  762,  765,  766,  767,  768,
+      771,  772,  773,  774,  775,  776,  777,  774,  778,  779,
+      780,  782,  783,  784,  785,  786,  787,  788,  789,  790,
+
+      791,  792,  793,  794,  795,  796,  797,  798,  799,  800,
+      801,  802,  803,  804,  805,  806,  807,  808,  809,  811,
+      812,  813,  814,  815,  803,  816,  818,  819,  820,  821,
+      822,  823,  824,  825,  826,  827,  828,  829,  830,  831,
+      832,  833,  834,  836,  837,  838,  839,  840,  841,  842,
+      819,  843,  844,  818,  845,  847,  848,  849,  850,  851,
+      852,  854,  855,  856,  851,  857,  858,  859,  860,  861,
+      862,  863,  864,  865,  866,  867,  868,  869,  872,  873,
+      874,  876,  877,  878,  880,  881,  882,  868,  883,  884,
+      885,  886,  887,  888,  889,  890,  891,  892,  893,  894,
+
+      895,  896,  898,  899,  900,  901,  902,  903,  904,  905,
+      906,  907,  909,  908,  910,  851,  911,  912,  913,  914,
+      915,  916,  917,  918,  919,  920,  922,  923,  924,  925,
+      926,  927,  928,  929,  930,  931,  932,  933,  934,  907,
+      908,  935,  936,  937,  939,  940,  941,  942,  943,  944,
+      940,  945,  946,  947,  948,  949,  950,  951,  952,  953,
+      954,  955,  956,  957,  958,  959,  960,  961,  962,  963,
+      965,  966,  967,  968,  969,  970,  971,  972,  973,  974,
+      975,  977,  980,  981,  982,  983,  984,  985,  941,  986,
+      987,  988,  989,  990,  991,  992,  993,  994,  995,  996,
+
+      997,  998,  999, 1001, 1003, 1004, 1005, 1006, 1007, 1008,
+     1009, 1010, 1011, 1012, 1013, 1014, 1015,  991, 1016, 1017,
+     1018, 1021, 1023,  992, 1025, 1026, 1027, 1028, 1029, 1030,
+     1031, 1032, 1034, 1035, 1036, 1038, 1039, 1040, 1041, 1044,
+     1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055,
+     1056, 1057, 1058, 1059, 1060, 1062, 1063, 1064, 1065, 1066,
+     1067, 1068, 1069, 1070, 1071, 1072, 1074, 1075, 1076, 1077,
+     1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1087, 1088,
+     1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098,
+     1099, 1100, 1071, 1101, 1102, 1104, 1105, 1106, 1107, 1108,
+
+     1111, 1112, 1057, 1113, 1105, 1114, 1115, 1116, 1074, 1117,
+     1118, 1119, 1120, 1121, 1123, 1124, 1125, 1126, 1127, 1128,
+     1131, 1134, 1136, 1137, 1138, 1139, 1140, 1143, 1144, 1145,
+     1146, 1147, 1148, 1149, 1150, 1151, 1152, 1154, 1155, 1156,
+     1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1166, 1140,
+     1169, 1171, 1172, 1173, 1174, 1176, 1177, 1178, 1179, 1180,
+     1181, 1184, 1185, 1187, 1188, 1189, 1190, 1191, 1193, 1194,
+     1195, 1196, 1198, 1200, 1201, 1202, 1203, 1204, 1205, 1206,
+     1207, 1208, 1210, 1211, 1213, 1214, 1215, 1216, 1217, 1218,
+     1219, 1220, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227,
+
+     1200, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236,
+     1237, 1238, 1239, 1240, 1242, 1244, 1245, 1246, 1249, 1250,
+     1254, 1255, 1257, 1258, 1259, 1260, 1261, 1257, 1262, 1263,
+     1264, 1265, 1267, 1268, 1271, 1272, 1273, 1274, 1276, 1277,
+     1278, 1279, 1280, 1281, 1282, 1246, 1283, 1284, 1285, 1221,
+     1286, 1287, 1288, 1290, 1291, 1293, 1294, 1296, 1297, 1298,
+     1299, 1300, 1302, 1303, 1304, 1306, 1307, 1308, 1309, 1310,
+     1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1320, 1321,
+     1323, 1326, 1327, 1328, 1329, 1330, 1332, 1333, 1334, 1335,
+     1336, 1337, 1339, 1341, 1342, 1343, 1344, 1345, 1346, 1347,
+
+     1348, 1349, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358,
+     1359, 1362, 1363, 1364, 1365, 1366, 1368, 1369, 1370, 1371,
+     1372, 1373, 1374, 1376, 1377, 1378, 1379, 1380, 1381, 1383,
+     1384, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1395, 1396,
+     1398, 1399, 1401, 1402, 1404, 1406, 1407, 1408, 1409, 1410,
+     1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420,
+     1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430,
+     1431, 1432, 1434, 1437, 1438, 1439, 1440, 1441, 1442, 1446,
+     1447, 1448, 1449, 1451, 1452, 1454, 1455, 1456, 1457, 1458,
+     1460, 1461, 1464, 1464, 1464, 1464, 1464, 1465, 1465, 1465,
+
+     1465, 1465, 1466, 1472, 1466, 1466, 1466, 1467, 1473, 1467,
+     1474, 1467, 1468, 1468, 1468, 1468, 1468, 1469, 1469, 1469,
+     1469, 1469, 1470, 1475, 1470, 1470, 1470, 1471, 1471, 1471,
+      731,  730,  729,  728,  726,  725,  723,  721,  720,  719,
+      718,  717,  716,  715,  714,  711,  710,  707,  706,  705,
+      704,  703,  702,  701,  700,  699,  698,  697,  696,  695,
+      694,  693,  692,  691,  689,  688,  687,  686,  685,  684,
+      683,  682,  680,  679,  678,  677,  676,  675,  673,  671,
+      670,  669,  668,  667,  666,  665,  664,  663,  662,  661,
+      660,  659,  658,  657,  656,  655,  653,  652,  651,  650,
+
+      649,  648,  647,  646,  645,  644,  643,  642,  641,  640,
+      639,  638,  637,  636,  635,  634,  632,  631,  630,  627,
+      626,  625,  622,  621,  620,  619,  618,  615,  614,  613,
+      612,  611,  610,  609,  608,  607,  606,  605,  604,  602,
+      601,  600,  599,  598,  597,  596,  595,  593,  592,  590,
+      589,  588,  587,  586,  584,  583,  582,  580,  579,  577,
+      576,  575,  574,  573,  572,  571,  570,  569,  567,  566,
+      565,  564,  563,  561,  560,  559,  558,  557,  556,  555,
+      554,  552,  551,  550,  549,  548,  547,  546,  545,  544,
+      543,  542,  541,  540,  539,  538,  537,  536,  535,  534,
+
+      533,  532,  526,  524,  521,  520,  518,  517,  516,  514,
+      510,  509,  508,  507,  506,  505,  504,  503,  502,  501,
+      500,  499,  498,  497,  496,  494,  493,  492,  491,  490,
+      489,  488,  487,  486,  485,  484,  482,  480,  479,  478,
+      477,  476,  475,  474,  473,  472,  471,  470,  469,  467,
+      466,  465,  464,  463,  462,  461,  460,  459,  458,  457,
+      456,  455,  454,  453,  452,  451,  450,  449,  448,  446,
+      445,  444,  443,  441,  440,  439,  438,  437,  436,  434,
+      433,  431,  430,  429,  428,  426,  425,  424,  423,  422,
+      421,  419,  418,  413,  412,  410,  409,  408,  407,  406,
+
+      403,  400,  398,  397,  396,  395,  393,  392,  391,  390,
+      389,  388,  387,  386,  385,  383,  382,  381,  379,  378,
+      377,  376,  375,  374,  372,  371,  369,  368,  367,  366,
+      365,  364,  363,  362,  361,  357,  356,  355,  354,  353,
+      351,  350,  349,  348,  347,  346,  345,  344,  343,  342,
+      341,  339,  338,  337,  336,  335,  334,  333,  332,  331,
+      330,  329,  328,  327,  325,  324,  323,  321,  318,  317,
+      316,  315,  314,  313,  309,  307,  304,  302,  299,  296,
+      289,  288,  287,  286,  285,  284,  282,  281,  280,  279,
+      278,  277,  276,  275,  274,  273,  272,  271,  270,  268,
+
+      267,  266,  265,  264,  263,  262,  261,  260,  259,  258,
+      257,  256,  255,  253,  252,  251,  249,  248,  247,  246,
+      244,  243,  242,  241,  240,  239,  238,  237,  236,  234,
+      233,  232,  231,  230,  229,  228,  227,  226,  225,  224,
+      223,  222,  221,  220,  219,  218,  217,  216,  215,  214,
+      213,  212,  210,  209,  208,  207,  205,  202,  200,  198,
+      196,  195,  190,  189,  185,  177,  176,  175,  174,  173,
+      172,  170,  169,  168,  167,  165,  163,  162,  161,  159,
+      158,  156,  155,  154,  153,  152,  150,  149,  148,  147,
+      145,  144,  143,  142,  141,  140,  139,  137,  136,  134,
+
+      133,  129,  128,  127,  125,  124,  123,  121,  120,  116,
+      110,  106,  105,  104,   98,   97,   78,   73,   67,   50,
+       49,   48,   43,   41,   39,   38,   24,   14,   11, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+     1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+
+     1463
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1666,27 +1675,27 @@ static char *yy_last_accepting_cpos;
 extern int yy_flex_debug;
 int yy_flex_debug = 1;
 
-static const flex_int16_t yy_rule_linenum[179] =
+static const flex_int16_t yy_rule_linenum[180] =
     {   0,
       149,  151,  153,  158,  159,  164,  165,  166,  178,  181,
       186,  193,  202,  211,  220,  229,  238,  247,  256,  265,
       274,  283,  292,  301,  310,  319,  328,  338,  348,  358,
       368,  378,  387,  397,  407,  417,  427,  436,  445,  454,
-      463,  472,  481,  490,  499,  508,  517,  527,  536,  549,
-      558,  567,  576,  585,  596,  607,  618,  629,  641,  652,
-      663,  674,  685,  696,  707,  718,  729,  740,  751,  762,
-      773,  784,  793,  802,  812,  821,  830,  845,  861,  870,
-      879,  888,  897,  906,  915,  924,  933,  942,  951,  973,
-      995, 1004, 1014, 1024, 1033, 1043, 1054, 1063, 1072, 1081,
-
-     1090, 1099, 1109, 1118, 1127, 1136, 1145, 1154, 1163, 1172,
-     1181, 1190, 1200, 1209, 1218, 1228, 1240, 1253, 1262, 1271,
-     1281, 1291, 1300, 1311, 1321, 1330, 1340, 1350, 1359, 1368,
-     1377, 1386, 1396, 1405, 1415, 1424, 1433, 1442, 1451, 1460,
+      463,  472,  481,  490,  499,  508,  517,  526,  536,  545,
+      558,  567,  576,  585,  594,  605,  616,  627,  638,  650,
+      661,  672,  683,  694,  705,  716,  727,  738,  749,  760,
+      771,  782,  793,  802,  811,  821,  830,  839,  854,  870,
+      879,  888,  897,  906,  915,  924,  933,  942,  951,  960,
+      982, 1004, 1013, 1023, 1033, 1042, 1052, 1063, 1072, 1081,
+
+     1090, 1099, 1108, 1118, 1127, 1136, 1145, 1154, 1163, 1172,
+     1181, 1190, 1199, 1209, 1218, 1227, 1237, 1249, 1262, 1271,
+     1280, 1290, 1300, 1309, 1320, 1330, 1339, 1349, 1359, 1368,
+     1377, 1386, 1395, 1405, 1414, 1424, 1433, 1442, 1451, 1460,
      1469, 1478, 1487, 1496, 1505, 1514, 1523, 1532, 1541, 1550,
      1559, 1568, 1577, 1586, 1595, 1604, 1613, 1622, 1631, 1640,
-     1650, 1749, 1754, 1759, 1764, 1765, 1766, 1767, 1768, 1769,
-     1771, 1789, 1802, 1807, 1811, 1813, 1815, 1817
+     1649, 1659, 1758, 1763, 1768, 1773, 1774, 1775, 1776, 1777,
+     1778, 1780, 1798, 1811, 1816, 1820, 1822, 1824, 1826
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1698,7 +1707,7 @@ static const flex_int16_t yy_rule_linenum[179] =
 #define YY_RESTORE_YY_MORE_OFFSET
 char *yytext;
 #line 1 "dhcp6_lexer.ll"
-/* Copyright (C) 2016-2018 Internet Systems Consortium, Inc. ("ISC")
+/* Copyright (C) 2016-2019 Internet Systems Consortium, Inc. ("ISC")
 
    This Source Code Form is subject to the terms of the Mozilla Public
    License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -1739,7 +1748,7 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
-#line 1742 "dhcp6_lexer.cc"
+#line 1751 "dhcp6_lexer.cc"
 /* noyywrap disables automatic rewinding for the next file to parse. Since we
    always parse only a single string, there's no need to do any wraps. And
    using yywrap requires linking with -lfl, which provides the default yywrap
@@ -1765,8 +1774,8 @@ using namespace isc::dhcp;
    by moving it ahead by yyleng bytes. yyleng specifies the length of the
    currently matched token. */
 #define YY_USER_ACTION  driver.loc_.columns(yyleng);
-#line 1768 "dhcp6_lexer.cc"
-#line 1769 "dhcp6_lexer.cc"
+#line 1777 "dhcp6_lexer.cc"
+#line 1778 "dhcp6_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -2098,7 +2107,7 @@ YY_DECL
     }
 
 
-#line 2101 "dhcp6_lexer.cc"
+#line 2110 "dhcp6_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2127,13 +2136,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 1453 )
+                               if ( yy_current_state >= 1464 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 1452 );
+               while ( yy_current_state != 1463 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -2152,13 +2161,13 @@ do_action:      /* This label is used only to access EOF actions. */
                        {
                        if ( yy_act == 0 )
                                fprintf( stderr, "--scanner backing up\n" );
-                       else if ( yy_act < 179 )
+                       else if ( yy_act < 180 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
                                         (long)yy_rule_linenum[yy_act], yytext );
-                       else if ( yy_act == 179 )
+                       else if ( yy_act == 180 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
                                         yytext );
-                       else if ( yy_act == 180 )
+                       else if ( yy_act == 181 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
                                fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -2589,15 +2598,27 @@ YY_RULE_SETUP
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
-        return  isc::dhcp::Dhcp6Parser::make_INTERFACES_CONFIG(driver.loc_);
+        return  isc::dhcp::Dhcp6Parser::make_DATA_DIRECTORY(driver.loc_);
     default:
-        return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
+        return isc::dhcp::Dhcp6Parser::make_STRING("data-directory", driver.loc_);
     }
 }
        YY_BREAK
 case 39:
 YY_RULE_SETUP
 #line 445 "dhcp6_lexer.ll"
+{
+    switch(driver.ctx_) {
+    case isc::dhcp::Parser6Context::DHCP6:
+        return  isc::dhcp::Dhcp6Parser::make_INTERFACES_CONFIG(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
+    }
+}
+       YY_BREAK
+case 40:
+YY_RULE_SETUP
+#line 454 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::INTERFACES_CONFIG:
@@ -2607,9 +2628,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 40:
+case 41:
 YY_RULE_SETUP
-#line 454 "dhcp6_lexer.ll"
+#line 463 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::INTERFACES_CONFIG:
@@ -2619,9 +2640,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 41:
+case 42:
 YY_RULE_SETUP
-#line 463 "dhcp6_lexer.ll"
+#line 472 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2631,9 +2652,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 42:
+case 43:
 YY_RULE_SETUP
-#line 472 "dhcp6_lexer.ll"
+#line 481 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SANITY_CHECKS:
@@ -2643,9 +2664,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 43:
+case 44:
 YY_RULE_SETUP
-#line 481 "dhcp6_lexer.ll"
+#line 490 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2655,9 +2676,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 44:
+case 45:
 YY_RULE_SETUP
-#line 490 "dhcp6_lexer.ll"
+#line 499 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2667,9 +2688,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 45:
+case 46:
 YY_RULE_SETUP
-#line 499 "dhcp6_lexer.ll"
+#line 508 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2679,9 +2700,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 46:
+case 47:
 YY_RULE_SETUP
-#line 508 "dhcp6_lexer.ll"
+#line 517 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2691,9 +2712,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 47:
+case 48:
 YY_RULE_SETUP
-#line 517 "dhcp6_lexer.ll"
+#line 526 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG_CONTROL:
@@ -2703,9 +2724,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 48:
+case 49:
 YY_RULE_SETUP
-#line 527 "dhcp6_lexer.ll"
+#line 536 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOSTS_DATABASE:
@@ -2715,9 +2736,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 49:
+case 50:
 YY_RULE_SETUP
-#line 536 "dhcp6_lexer.ll"
+#line 545 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2731,9 +2752,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 50:
+case 51:
 YY_RULE_SETUP
-#line 549 "dhcp6_lexer.ll"
+#line 558 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -2743,9 +2764,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 51:
+case 52:
 YY_RULE_SETUP
-#line 558 "dhcp6_lexer.ll"
+#line 567 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -2755,9 +2776,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 52:
+case 53:
 YY_RULE_SETUP
-#line 567 "dhcp6_lexer.ll"
+#line 576 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -2767,9 +2788,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 53:
+case 54:
 YY_RULE_SETUP
-#line 576 "dhcp6_lexer.ll"
+#line 585 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -2779,9 +2800,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 54:
+case 55:
 YY_RULE_SETUP
-#line 585 "dhcp6_lexer.ll"
+#line 594 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2793,9 +2814,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 55:
+case 56:
 YY_RULE_SETUP
-#line 596 "dhcp6_lexer.ll"
+#line 605 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2807,9 +2828,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 56:
+case 57:
 YY_RULE_SETUP
-#line 607 "dhcp6_lexer.ll"
+#line 616 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2821,9 +2842,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 57:
+case 58:
 YY_RULE_SETUP
-#line 618 "dhcp6_lexer.ll"
+#line 627 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2835,9 +2856,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 58:
+case 59:
 YY_RULE_SETUP
-#line 629 "dhcp6_lexer.ll"
+#line 638 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2850,9 +2871,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 59:
+case 60:
 YY_RULE_SETUP
-#line 641 "dhcp6_lexer.ll"
+#line 650 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2864,9 +2885,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 60:
+case 61:
 YY_RULE_SETUP
-#line 652 "dhcp6_lexer.ll"
+#line 661 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2878,9 +2899,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 61:
+case 62:
 YY_RULE_SETUP
-#line 663 "dhcp6_lexer.ll"
+#line 672 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2892,9 +2913,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 62:
+case 63:
 YY_RULE_SETUP
-#line 674 "dhcp6_lexer.ll"
+#line 683 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2906,9 +2927,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 63:
+case 64:
 YY_RULE_SETUP
-#line 685 "dhcp6_lexer.ll"
+#line 694 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2920,9 +2941,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 64:
+case 65:
 YY_RULE_SETUP
-#line 696 "dhcp6_lexer.ll"
+#line 705 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2934,9 +2955,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 65:
+case 66:
 YY_RULE_SETUP
-#line 707 "dhcp6_lexer.ll"
+#line 716 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2948,9 +2969,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 66:
+case 67:
 YY_RULE_SETUP
-#line 718 "dhcp6_lexer.ll"
+#line 727 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2962,9 +2983,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 67:
+case 68:
 YY_RULE_SETUP
-#line 729 "dhcp6_lexer.ll"
+#line 738 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2976,9 +2997,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 68:
+case 69:
 YY_RULE_SETUP
-#line 740 "dhcp6_lexer.ll"
+#line 749 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2990,9 +3011,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 69:
+case 70:
 YY_RULE_SETUP
-#line 751 "dhcp6_lexer.ll"
+#line 760 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3004,9 +3025,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 70:
+case 71:
 YY_RULE_SETUP
-#line 762 "dhcp6_lexer.ll"
+#line 771 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3018,9 +3039,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 71:
+case 72:
 YY_RULE_SETUP
-#line 773 "dhcp6_lexer.ll"
+#line 782 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3032,9 +3053,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 72:
+case 73:
 YY_RULE_SETUP
-#line 784 "dhcp6_lexer.ll"
+#line 793 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3044,9 +3065,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 73:
+case 74:
 YY_RULE_SETUP
-#line 793 "dhcp6_lexer.ll"
+#line 802 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3056,9 +3077,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 74:
+case 75:
 YY_RULE_SETUP
-#line 802 "dhcp6_lexer.ll"
+#line 811 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3069,9 +3090,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 75:
+case 76:
 YY_RULE_SETUP
-#line 812 "dhcp6_lexer.ll"
+#line 821 "dhcp6_lexer.ll"
 {
     switch (driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3081,9 +3102,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 76:
+case 77:
 YY_RULE_SETUP
-#line 821 "dhcp6_lexer.ll"
+#line 830 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3093,9 +3114,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 77:
+case 78:
 YY_RULE_SETUP
-#line 830 "dhcp6_lexer.ll"
+#line 839 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3111,9 +3132,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 78:
+case 79:
 YY_RULE_SETUP
-#line 845 "dhcp6_lexer.ll"
+#line 854 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3130,9 +3151,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 79:
+case 80:
 YY_RULE_SETUP
-#line 861 "dhcp6_lexer.ll"
+#line 870 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3142,9 +3163,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 80:
+case 81:
 YY_RULE_SETUP
-#line 870 "dhcp6_lexer.ll"
+#line 879 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3154,9 +3175,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 81:
+case 82:
 YY_RULE_SETUP
-#line 879 "dhcp6_lexer.ll"
+#line 888 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3166,9 +3187,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 82:
+case 83:
 YY_RULE_SETUP
-#line 888 "dhcp6_lexer.ll"
+#line 897 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3178,9 +3199,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 83:
+case 84:
 YY_RULE_SETUP
-#line 897 "dhcp6_lexer.ll"
+#line 906 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3190,9 +3211,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 84:
+case 85:
 YY_RULE_SETUP
-#line 906 "dhcp6_lexer.ll"
+#line 915 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3202,9 +3223,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 85:
+case 86:
 YY_RULE_SETUP
-#line 915 "dhcp6_lexer.ll"
+#line 924 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3214,9 +3235,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 86:
+case 87:
 YY_RULE_SETUP
-#line 924 "dhcp6_lexer.ll"
+#line 933 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3226,9 +3247,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 87:
+case 88:
 YY_RULE_SETUP
-#line 933 "dhcp6_lexer.ll"
+#line 942 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3238,9 +3259,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 88:
+case 89:
 YY_RULE_SETUP
-#line 942 "dhcp6_lexer.ll"
+#line 951 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::POOLS:
@@ -3250,9 +3271,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 89:
+case 90:
 YY_RULE_SETUP
-#line 951 "dhcp6_lexer.ll"
+#line 960 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3275,9 +3296,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 90:
+case 91:
 YY_RULE_SETUP
-#line 973 "dhcp6_lexer.ll"
+#line 982 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3300,9 +3321,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 91:
+case 92:
 YY_RULE_SETUP
-#line 995 "dhcp6_lexer.ll"
+#line 1004 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3312,9 +3333,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 92:
+case 93:
 YY_RULE_SETUP
-#line 1004 "dhcp6_lexer.ll"
+#line 1013 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3325,9 +3346,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 93:
+case 94:
 YY_RULE_SETUP
-#line 1014 "dhcp6_lexer.ll"
+#line 1023 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3338,9 +3359,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 94:
+case 95:
 YY_RULE_SETUP
-#line 1024 "dhcp6_lexer.ll"
+#line 1033 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3350,9 +3371,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 95:
+case 96:
 YY_RULE_SETUP
-#line 1033 "dhcp6_lexer.ll"
+#line 1042 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3363,9 +3384,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 96:
+case 97:
 YY_RULE_SETUP
-#line 1043 "dhcp6_lexer.ll"
+#line 1052 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3377,9 +3398,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 97:
+case 98:
 YY_RULE_SETUP
-#line 1054 "dhcp6_lexer.ll"
+#line 1063 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3389,9 +3410,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 98:
+case 99:
 YY_RULE_SETUP
-#line 1063 "dhcp6_lexer.ll"
+#line 1072 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3401,9 +3422,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 99:
+case 100:
 YY_RULE_SETUP
-#line 1072 "dhcp6_lexer.ll"
+#line 1081 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3413,9 +3434,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 100:
+case 101:
 YY_RULE_SETUP
-#line 1081 "dhcp6_lexer.ll"
+#line 1090 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3425,9 +3446,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 101:
+case 102:
 YY_RULE_SETUP
-#line 1090 "dhcp6_lexer.ll"
+#line 1099 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3437,9 +3458,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 102:
+case 103:
 YY_RULE_SETUP
-#line 1099 "dhcp6_lexer.ll"
+#line 1108 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3450,9 +3471,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 103:
+case 104:
 YY_RULE_SETUP
-#line 1109 "dhcp6_lexer.ll"
+#line 1118 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3462,9 +3483,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 104:
+case 105:
 YY_RULE_SETUP
-#line 1118 "dhcp6_lexer.ll"
+#line 1127 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3474,9 +3495,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 105:
+case 106:
 YY_RULE_SETUP
-#line 1127 "dhcp6_lexer.ll"
+#line 1136 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3486,9 +3507,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 106:
+case 107:
 YY_RULE_SETUP
-#line 1136 "dhcp6_lexer.ll"
+#line 1145 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3498,9 +3519,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 107:
+case 108:
 YY_RULE_SETUP
-#line 1145 "dhcp6_lexer.ll"
+#line 1154 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGING:
@@ -3510,9 +3531,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 108:
+case 109:
 YY_RULE_SETUP
-#line 1154 "dhcp6_lexer.ll"
+#line 1163 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3522,9 +3543,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 109:
+case 110:
 YY_RULE_SETUP
-#line 1163 "dhcp6_lexer.ll"
+#line 1172 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3534,9 +3555,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 110:
+case 111:
 YY_RULE_SETUP
-#line 1172 "dhcp6_lexer.ll"
+#line 1181 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3546,9 +3567,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 111:
+case 112:
 YY_RULE_SETUP
-#line 1181 "dhcp6_lexer.ll"
+#line 1190 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3558,9 +3579,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 112:
+case 113:
 YY_RULE_SETUP
-#line 1190 "dhcp6_lexer.ll"
+#line 1199 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3570,9 +3591,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 113:
+case 114:
 YY_RULE_SETUP
-#line 1200 "dhcp6_lexer.ll"
+#line 1209 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3582,9 +3603,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 114:
+case 115:
 YY_RULE_SETUP
-#line 1209 "dhcp6_lexer.ll"
+#line 1218 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3594,9 +3615,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 115:
+case 116:
 YY_RULE_SETUP
-#line 1218 "dhcp6_lexer.ll"
+#line 1227 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3607,9 +3628,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 116:
+case 117:
 YY_RULE_SETUP
-#line 1228 "dhcp6_lexer.ll"
+#line 1237 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3622,9 +3643,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 117:
+case 118:
 YY_RULE_SETUP
-#line 1240 "dhcp6_lexer.ll"
+#line 1249 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3638,9 +3659,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 118:
+case 119:
 YY_RULE_SETUP
-#line 1253 "dhcp6_lexer.ll"
+#line 1262 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -3650,9 +3671,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 119:
+case 120:
 YY_RULE_SETUP
-#line 1262 "dhcp6_lexer.ll"
+#line 1271 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -3662,9 +3683,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 120:
+case 121:
 YY_RULE_SETUP
-#line 1271 "dhcp6_lexer.ll"
+#line 1280 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3675,9 +3696,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 121:
+case 122:
 YY_RULE_SETUP
-#line 1281 "dhcp6_lexer.ll"
+#line 1290 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3688,9 +3709,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 122:
+case 123:
 YY_RULE_SETUP
-#line 1291 "dhcp6_lexer.ll"
+#line 1300 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3700,9 +3721,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 123:
+case 124:
 YY_RULE_SETUP
-#line 1300 "dhcp6_lexer.ll"
+#line 1309 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::MAC_SOURCES:
@@ -3714,9 +3735,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 1311 "dhcp6_lexer.ll"
+#line 1320 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3727,9 +3748,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 125:
+case 126:
 YY_RULE_SETUP
-#line 1321 "dhcp6_lexer.ll"
+#line 1330 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3739,9 +3760,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 1330 "dhcp6_lexer.ll"
+#line 1339 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3752,9 +3773,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 1340 "dhcp6_lexer.ll"
+#line 1349 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3765,9 +3786,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 1350 "dhcp6_lexer.ll"
+#line 1359 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3777,9 +3798,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 129:
+case 130:
 YY_RULE_SETUP
-#line 1359 "dhcp6_lexer.ll"
+#line 1368 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3789,9 +3810,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 1368 "dhcp6_lexer.ll"
+#line 1377 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3801,9 +3822,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 1377 "dhcp6_lexer.ll"
+#line 1386 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3813,9 +3834,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 132:
+case 133:
 YY_RULE_SETUP
-#line 1386 "dhcp6_lexer.ll"
+#line 1395 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3826,9 +3847,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 133:
+case 134:
 YY_RULE_SETUP
-#line 1396 "dhcp6_lexer.ll"
+#line 1405 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RELAY:
@@ -3838,9 +3859,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 134:
+case 135:
 YY_RULE_SETUP
-#line 1405 "dhcp6_lexer.ll"
+#line 1414 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3850,9 +3871,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 135:
+case 136:
 YY_RULE_SETUP
-#line 1415 "dhcp6_lexer.ll"
+#line 1424 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -3862,9 +3883,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 136:
+case 137:
 YY_RULE_SETUP
-#line 1424 "dhcp6_lexer.ll"
+#line 1433 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -3874,9 +3895,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 137:
+case 138:
 YY_RULE_SETUP
-#line 1433 "dhcp6_lexer.ll"
+#line 1442 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3886,9 +3907,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 1442 "dhcp6_lexer.ll"
+#line 1451 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3898,9 +3919,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 1451 "dhcp6_lexer.ll"
+#line 1460 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3910,9 +3931,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 1460 "dhcp6_lexer.ll"
+#line 1469 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3922,9 +3943,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 141:
+case 142:
 YY_RULE_SETUP
-#line 1469 "dhcp6_lexer.ll"
+#line 1478 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3934,9 +3955,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 142:
+case 143:
 YY_RULE_SETUP
-#line 1478 "dhcp6_lexer.ll"
+#line 1487 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3946,9 +3967,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 143:
+case 144:
 YY_RULE_SETUP
-#line 1487 "dhcp6_lexer.ll"
+#line 1496 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3958,9 +3979,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 144:
+case 145:
 YY_RULE_SETUP
-#line 1496 "dhcp6_lexer.ll"
+#line 1505 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3970,9 +3991,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 145:
+case 146:
 YY_RULE_SETUP
-#line 1505 "dhcp6_lexer.ll"
+#line 1514 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3982,9 +4003,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 146:
+case 147:
 YY_RULE_SETUP
-#line 1514 "dhcp6_lexer.ll"
+#line 1523 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3994,9 +4015,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 147:
+case 148:
 YY_RULE_SETUP
-#line 1523 "dhcp6_lexer.ll"
+#line 1532 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4006,9 +4027,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 148:
+case 149:
 YY_RULE_SETUP
-#line 1532 "dhcp6_lexer.ll"
+#line 1541 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4018,9 +4039,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 149:
+case 150:
 YY_RULE_SETUP
-#line 1541 "dhcp6_lexer.ll"
+#line 1550 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4030,9 +4051,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 150:
+case 151:
 YY_RULE_SETUP
-#line 1550 "dhcp6_lexer.ll"
+#line 1559 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4042,9 +4063,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 151:
+case 152:
 YY_RULE_SETUP
-#line 1559 "dhcp6_lexer.ll"
+#line 1568 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4054,9 +4075,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 152:
+case 153:
 YY_RULE_SETUP
-#line 1568 "dhcp6_lexer.ll"
+#line 1577 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4066,9 +4087,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 153:
+case 154:
 YY_RULE_SETUP
-#line 1577 "dhcp6_lexer.ll"
+#line 1586 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4078,9 +4099,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 154:
+case 155:
 YY_RULE_SETUP
-#line 1586 "dhcp6_lexer.ll"
+#line 1595 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -4090,9 +4111,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 155:
+case 156:
 YY_RULE_SETUP
-#line 1595 "dhcp6_lexer.ll"
+#line 1604 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -4102,9 +4123,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 156:
+case 157:
 YY_RULE_SETUP
-#line 1604 "dhcp6_lexer.ll"
+#line 1613 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4114,9 +4135,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 157:
+case 158:
 YY_RULE_SETUP
-#line 1613 "dhcp6_lexer.ll"
+#line 1622 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4126,9 +4147,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 158:
+case 159:
 YY_RULE_SETUP
-#line 1622 "dhcp6_lexer.ll"
+#line 1631 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -4138,9 +4159,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 159:
+case 160:
 YY_RULE_SETUP
-#line 1631 "dhcp6_lexer.ll"
+#line 1640 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -4150,9 +4171,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 160:
+case 161:
 YY_RULE_SETUP
-#line 1640 "dhcp6_lexer.ll"
+#line 1649 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -4162,9 +4183,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 161:
+case 162:
 YY_RULE_SETUP
-#line 1650 "dhcp6_lexer.ll"
+#line 1659 "dhcp6_lexer.ll"
 {
     /* A string has been matched. It contains the actual string and single quotes.
        We need to get those quotes out of the way and just use its content, e.g.
@@ -4264,65 +4285,65 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
 }
        YY_BREAK
-case 162:
-/* rule 162 can match eol */
+case 163:
+/* rule 163 can match eol */
 YY_RULE_SETUP
-#line 1749 "dhcp6_lexer.ll"
+#line 1758 "dhcp6_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
 }
        YY_BREAK
-case 163:
-/* rule 163 can match eol */
+case 164:
+/* rule 164 can match eol */
 YY_RULE_SETUP
-#line 1754 "dhcp6_lexer.ll"
+#line 1763 "dhcp6_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
 }
        YY_BREAK
-case 164:
+case 165:
 YY_RULE_SETUP
-#line 1759 "dhcp6_lexer.ll"
+#line 1768 "dhcp6_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
 }
        YY_BREAK
-case 165:
+case 166:
 YY_RULE_SETUP
-#line 1764 "dhcp6_lexer.ll"
+#line 1773 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 166:
+case 167:
 YY_RULE_SETUP
-#line 1765 "dhcp6_lexer.ll"
+#line 1774 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 167:
+case 168:
 YY_RULE_SETUP
-#line 1766 "dhcp6_lexer.ll"
+#line 1775 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 168:
+case 169:
 YY_RULE_SETUP
-#line 1767 "dhcp6_lexer.ll"
+#line 1776 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 169:
+case 170:
 YY_RULE_SETUP
-#line 1768 "dhcp6_lexer.ll"
+#line 1777 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
        YY_BREAK
-case 170:
+case 171:
 YY_RULE_SETUP
-#line 1769 "dhcp6_lexer.ll"
+#line 1778 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
        YY_BREAK
-case 171:
+case 172:
 YY_RULE_SETUP
-#line 1771 "dhcp6_lexer.ll"
+#line 1780 "dhcp6_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -4341,9 +4362,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
 }
        YY_BREAK
-case 172:
+case 173:
 YY_RULE_SETUP
-#line 1789 "dhcp6_lexer.ll"
+#line 1798 "dhcp6_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -4357,43 +4378,43 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
 }
        YY_BREAK
-case 173:
+case 174:
 YY_RULE_SETUP
-#line 1802 "dhcp6_lexer.ll"
+#line 1811 "dhcp6_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
 }
        YY_BREAK
-case 174:
+case 175:
 YY_RULE_SETUP
-#line 1807 "dhcp6_lexer.ll"
+#line 1816 "dhcp6_lexer.ll"
 {
    return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
-case 175:
+case 176:
 YY_RULE_SETUP
-#line 1811 "dhcp6_lexer.ll"
+#line 1820 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
-case 176:
+case 177:
 YY_RULE_SETUP
-#line 1813 "dhcp6_lexer.ll"
+#line 1822 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
-case 177:
+case 178:
 YY_RULE_SETUP
-#line 1815 "dhcp6_lexer.ll"
+#line 1824 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
-case 178:
+case 179:
 YY_RULE_SETUP
-#line 1817 "dhcp6_lexer.ll"
+#line 1826 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 1819 "dhcp6_lexer.ll"
+#line 1828 "dhcp6_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
@@ -4417,12 +4438,12 @@ case YY_STATE_EOF(INITIAL):
     BEGIN(DIR_EXIT);
 }
        YY_BREAK
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 1842 "dhcp6_lexer.ll"
+#line 1851 "dhcp6_lexer.ll"
 ECHO;
        YY_BREAK
-#line 4425 "dhcp6_lexer.cc"
+#line 4446 "dhcp6_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -4741,7 +4762,7 @@ static int yy_get_next_buffer (void)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 1453 )
+                       if ( yy_current_state >= 1464 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -4774,11 +4795,11 @@ static int yy_get_next_buffer (void)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 1453 )
+               if ( yy_current_state >= 1464 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 1452);
+       yy_is_jam = (yy_current_state == 1463);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -5527,7 +5548,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 1842 "dhcp6_lexer.ll"
+#line 1851 "dhcp6_lexer.ll"
 
 
 using namespace isc::dhcp;
index 902ceb1a2621e4c44f06d1fa80f38d1cf42e3b86..9aa6899473cd178167a02e25c7ae0a5a25be5130 100644 (file)
@@ -250,29 +250,29 @@ namespace isc { namespace dhcp {
   {
     switch (that.type_get ())
     {
-      case 191: // value
-      case 195: // map_value
-      case 247: // db_type
-      case 336: // hr_mode
-      case 472: // duid_type
-      case 507: // ncr_protocol_value
-      case 514: // replace_client_name_value
+      case 192: // value
+      case 196: // map_value
+      case 250: // db_type
+      case 339: // hr_mode
+      case 475: // duid_type
+      case 510: // ncr_protocol_value
+      case 517: // replace_client_name_value
         value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value));
         break;
 
@@ -291,29 +291,29 @@ namespace isc { namespace dhcp {
   {
     switch (that.type_get ())
     {
-      case 191: // value
-      case 195: // map_value
-      case 247: // db_type
-      case 336: // hr_mode
-      case 472: // duid_type
-      case 507: // ncr_protocol_value
-      case 514: // replace_client_name_value
+      case 192: // value
+      case 196: // map_value
+      case 250: // db_type
+      case 339: // hr_mode
+      case 475: // duid_type
+      case 510: // ncr_protocol_value
+      case 517: // replace_client_name_value
         value.move< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.move< bool > (YY_MOVE (that.value));
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.move< double > (YY_MOVE (that.value));
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.move< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.move< std::string > (YY_MOVE (that.value));
         break;
 
@@ -332,29 +332,29 @@ namespace isc { namespace dhcp {
     state = that.state;
     switch (that.type_get ())
     {
-      case 191: // value
-      case 195: // map_value
-      case 247: // db_type
-      case 336: // hr_mode
-      case 472: // duid_type
-      case 507: // ncr_protocol_value
-      case 514: // replace_client_name_value
+      case 192: // value
+      case 196: // map_value
+      case 250: // db_type
+      case 339: // hr_mode
+      case 475: // duid_type
+      case 510: // ncr_protocol_value
+      case 517: // replace_client_name_value
         value.move< ElementPtr > (that.value);
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.move< bool > (that.value);
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.move< double > (that.value);
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.move< int64_t > (that.value);
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.move< std::string > (that.value);
         break;
 
@@ -397,68 +397,68 @@ namespace isc { namespace dhcp {
         << yysym.location << ": ";
     switch (yytype)
     {
-      case 170: // "constant string"
-#line 248 "dhcp6_parser.yy" // lalr1.cc:676
+      case 171: // "constant string"
+#line 249 "dhcp6_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < std::string > (); }
 #line 404 "dhcp6_parser.cc" // lalr1.cc:676
         break;
 
-      case 171: // "integer"
-#line 248 "dhcp6_parser.yy" // lalr1.cc:676
+      case 172: // "integer"
+#line 249 "dhcp6_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < int64_t > (); }
 #line 410 "dhcp6_parser.cc" // lalr1.cc:676
         break;
 
-      case 172: // "floating point"
-#line 248 "dhcp6_parser.yy" // lalr1.cc:676
+      case 173: // "floating point"
+#line 249 "dhcp6_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < double > (); }
 #line 416 "dhcp6_parser.cc" // lalr1.cc:676
         break;
 
-      case 173: // "boolean"
-#line 248 "dhcp6_parser.yy" // lalr1.cc:676
+      case 174: // "boolean"
+#line 249 "dhcp6_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < bool > (); }
 #line 422 "dhcp6_parser.cc" // lalr1.cc:676
         break;
 
-      case 191: // value
-#line 248 "dhcp6_parser.yy" // lalr1.cc:676
+      case 192: // value
+#line 249 "dhcp6_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 428 "dhcp6_parser.cc" // lalr1.cc:676
         break;
 
-      case 195: // map_value
-#line 248 "dhcp6_parser.yy" // lalr1.cc:676
+      case 196: // map_value
+#line 249 "dhcp6_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 434 "dhcp6_parser.cc" // lalr1.cc:676
         break;
 
-      case 247: // db_type
-#line 248 "dhcp6_parser.yy" // lalr1.cc:676
+      case 250: // db_type
+#line 249 "dhcp6_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 440 "dhcp6_parser.cc" // lalr1.cc:676
         break;
 
-      case 336: // hr_mode
-#line 248 "dhcp6_parser.yy" // lalr1.cc:676
+      case 339: // hr_mode
+#line 249 "dhcp6_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 446 "dhcp6_parser.cc" // lalr1.cc:676
         break;
 
-      case 472: // duid_type
-#line 248 "dhcp6_parser.yy" // lalr1.cc:676
+      case 475: // duid_type
+#line 249 "dhcp6_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 452 "dhcp6_parser.cc" // lalr1.cc:676
         break;
 
-      case 507: // ncr_protocol_value
-#line 248 "dhcp6_parser.yy" // lalr1.cc:676
+      case 510: // ncr_protocol_value
+#line 249 "dhcp6_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 458 "dhcp6_parser.cc" // lalr1.cc:676
         break;
 
-      case 514: // replace_client_name_value
-#line 248 "dhcp6_parser.yy" // lalr1.cc:676
+      case 517: // replace_client_name_value
+#line 249 "dhcp6_parser.yy" // lalr1.cc:676
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 464 "dhcp6_parser.cc" // lalr1.cc:676
         break;
@@ -677,29 +677,29 @@ namespace isc { namespace dhcp {
          when using variants.  */
       switch (yyr1_[yyn])
     {
-      case 191: // value
-      case 195: // map_value
-      case 247: // db_type
-      case 336: // hr_mode
-      case 472: // duid_type
-      case 507: // ncr_protocol_value
-      case 514: // replace_client_name_value
+      case 192: // value
+      case 196: // map_value
+      case 250: // db_type
+      case 339: // hr_mode
+      case 475: // duid_type
+      case 510: // ncr_protocol_value
+      case 517: // replace_client_name_value
         yylhs.value.emplace< ElementPtr > ();
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         yylhs.value.emplace< bool > ();
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         yylhs.value.emplace< double > ();
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         yylhs.value.emplace< int64_t > ();
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         yylhs.value.emplace< std::string > ();
         break;
 
@@ -724,139 +724,139 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2:
-#line 257 "dhcp6_parser.yy" // lalr1.cc:919
+#line 258 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 730 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 4:
-#line 258 "dhcp6_parser.yy" // lalr1.cc:919
+#line 259 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.CONFIG; }
 #line 736 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 6:
-#line 259 "dhcp6_parser.yy" // lalr1.cc:919
+#line 260 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.DHCP6; }
 #line 742 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 8:
-#line 260 "dhcp6_parser.yy" // lalr1.cc:919
+#line 261 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 748 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 10:
-#line 261 "dhcp6_parser.yy" // lalr1.cc:919
+#line 262 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.SUBNET6; }
 #line 754 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 12:
-#line 262 "dhcp6_parser.yy" // lalr1.cc:919
+#line 263 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.POOLS; }
 #line 760 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 14:
-#line 263 "dhcp6_parser.yy" // lalr1.cc:919
+#line 264 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.PD_POOLS; }
 #line 766 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 16:
-#line 264 "dhcp6_parser.yy" // lalr1.cc:919
+#line 265 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 772 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 18:
-#line 265 "dhcp6_parser.yy" // lalr1.cc:919
+#line 266 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.DHCP6; }
 #line 778 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 20:
-#line 266 "dhcp6_parser.yy" // lalr1.cc:919
+#line 267 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 784 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 22:
-#line 267 "dhcp6_parser.yy" // lalr1.cc:919
+#line 268 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 790 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 24:
-#line 268 "dhcp6_parser.yy" // lalr1.cc:919
+#line 269 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 796 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 26:
-#line 269 "dhcp6_parser.yy" // lalr1.cc:919
+#line 270 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 802 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 28:
-#line 270 "dhcp6_parser.yy" // lalr1.cc:919
+#line 271 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.LOGGING; }
 #line 808 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 30:
-#line 271 "dhcp6_parser.yy" // lalr1.cc:919
+#line 272 "dhcp6_parser.yy" // lalr1.cc:919
     { ctx.ctx_ = ctx.CONFIG_CONTROL; }
 #line 814 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 32:
-#line 279 "dhcp6_parser.yy" // lalr1.cc:919
+#line 280 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); }
 #line 820 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 33:
-#line 280 "dhcp6_parser.yy" // lalr1.cc:919
+#line 281 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); }
 #line 826 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 34:
-#line 281 "dhcp6_parser.yy" // lalr1.cc:919
+#line 282 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); }
 #line 832 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 35:
-#line 282 "dhcp6_parser.yy" // lalr1.cc:919
+#line 283 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); }
 #line 838 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 36:
-#line 283 "dhcp6_parser.yy" // lalr1.cc:919
+#line 284 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
 #line 844 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 37:
-#line 284 "dhcp6_parser.yy" // lalr1.cc:919
+#line 285 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 850 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 38:
-#line 285 "dhcp6_parser.yy" // lalr1.cc:919
+#line 286 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 856 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 39:
-#line 288 "dhcp6_parser.yy" // lalr1.cc:919
+#line 289 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Push back the JSON value on the stack
     ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ());
@@ -865,7 +865,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 40:
-#line 293 "dhcp6_parser.yy" // lalr1.cc:919
+#line 294 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -876,7 +876,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 41:
-#line 298 "dhcp6_parser.yy" // lalr1.cc:919
+#line 299 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -886,13 +886,13 @@ namespace isc { namespace dhcp {
     break;
 
   case 42:
-#line 304 "dhcp6_parser.yy" // lalr1.cc:919
+#line 305 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 892 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
   case 45:
-#line 311 "dhcp6_parser.yy" // lalr1.cc:919
+#line 312 "dhcp6_parser.yy" // lalr1.cc:919
     {
                   // map containing a single entry
                   ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
@@ -901,7 +901,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 46:
-#line 315 "dhcp6_parser.yy" // lalr1.cc:919
+#line 316 "dhcp6_parser.yy" // lalr1.cc:919
     {
                   // map consisting of a shorter map followed by
                   // comma and string:value
@@ -911,7 +911,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 47:
-#line 322 "dhcp6_parser.yy" // lalr1.cc:919
+#line 323 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(l);
@@ -920,7 +920,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 48:
-#line 325 "dhcp6_parser.yy" // lalr1.cc:919
+#line 326 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // list parsing complete. Put any sanity checking here
 }
@@ -928,7 +928,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 51:
-#line 333 "dhcp6_parser.yy" // lalr1.cc:919
+#line 334 "dhcp6_parser.yy" // lalr1.cc:919
     {
                   // List consisting of a single element.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
@@ -937,7 +937,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 52:
-#line 337 "dhcp6_parser.yy" // lalr1.cc:919
+#line 338 "dhcp6_parser.yy" // lalr1.cc:919
     {
                   // List ending with , and a value.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
@@ -946,7 +946,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 53:
-#line 344 "dhcp6_parser.yy" // lalr1.cc:919
+#line 345 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // List parsing about to start
 }
@@ -954,7 +954,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 54:
-#line 346 "dhcp6_parser.yy" // lalr1.cc:919
+#line 347 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // list parsing complete. Put any sanity checking here
     //ctx.stack_.pop_back();
@@ -963,7 +963,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 57:
-#line 355 "dhcp6_parser.yy" // lalr1.cc:919
+#line 356 "dhcp6_parser.yy" // lalr1.cc:919
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -972,7 +972,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 58:
-#line 359 "dhcp6_parser.yy" // lalr1.cc:919
+#line 360 "dhcp6_parser.yy" // lalr1.cc:919
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -981,7 +981,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 59:
-#line 370 "dhcp6_parser.yy" // lalr1.cc:919
+#line 371 "dhcp6_parser.yy" // lalr1.cc:919
     {
     const std::string& where = ctx.contextName();
     const std::string& keyword = yystack_[1].value.as < std::string > ();
@@ -992,7 +992,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 60:
-#line 380 "dhcp6_parser.yy" // lalr1.cc:919
+#line 381 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1003,7 +1003,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 61:
-#line 385 "dhcp6_parser.yy" // lalr1.cc:919
+#line 386 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -1016,7 +1016,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 70:
-#line 408 "dhcp6_parser.yy" // lalr1.cc:919
+#line 409 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1029,7 +1029,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 71:
-#line 415 "dhcp6_parser.yy" // lalr1.cc:919
+#line 416 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // No global parameter is required
     ctx.stack_.pop_back();
@@ -1039,7 +1039,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 72:
-#line 423 "dhcp6_parser.yy" // lalr1.cc:919
+#line 424 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Parse the Dhcp6 map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1049,7 +1049,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 73:
-#line 427 "dhcp6_parser.yy" // lalr1.cc:919
+#line 428 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // No global parameter is required
     // parsing completed
@@ -1057,491 +1057,509 @@ namespace isc { namespace dhcp {
 #line 1058 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 108:
-#line 472 "dhcp6_parser.yy" // lalr1.cc:919
+  case 109:
+#line 474 "dhcp6_parser.yy" // lalr1.cc:919
     {
-    ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("preferred-lifetime", prf);
+    ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1067 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1066 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 109:
-#line 477 "dhcp6_parser.yy" // lalr1.cc:919
+  case 110:
+#line 476 "dhcp6_parser.yy" // lalr1.cc:919
     {
-    ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("valid-lifetime", prf);
+    ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+    ctx.stack_.back()->set("data-directory", datadir);
+    ctx.leave();
 }
 #line 1076 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 110:
+  case 111:
 #line 482 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("renew-timer", prf);
+    ctx.stack_.back()->set("preferred-lifetime", prf);
 }
 #line 1085 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 111:
+  case 112:
 #line 487 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("rebind-timer", prf);
+    ctx.stack_.back()->set("valid-lifetime", prf);
 }
 #line 1094 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 112:
+  case 113:
 #line 492 "dhcp6_parser.yy" // lalr1.cc:919
     {
-    ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("decline-probation-period", dpp);
+    ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+    ctx.stack_.back()->set("renew-timer", prf);
 }
 #line 1103 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 113:
+  case 114:
 #line 497 "dhcp6_parser.yy" // lalr1.cc:919
+    {
+    ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+    ctx.stack_.back()->set("rebind-timer", prf);
+}
+#line 1112 "dhcp6_parser.cc" // lalr1.cc:919
+    break;
+
+  case 115:
+#line 502 "dhcp6_parser.yy" // lalr1.cc:919
+    {
+    ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+    ctx.stack_.back()->set("decline-probation-period", dpp);
+}
+#line 1121 "dhcp6_parser.cc" // lalr1.cc:919
+    break;
+
+  case 116:
+#line 507 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1111 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1129 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 114:
-#line 499 "dhcp6_parser.yy" // lalr1.cc:919
+  case 117:
+#line 509 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-tag", stag);
     ctx.leave();
 }
-#line 1121 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1139 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 115:
-#line 505 "dhcp6_parser.yy" // lalr1.cc:919
+  case 118:
+#line 515 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces-config", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.INTERFACES_CONFIG);
 }
-#line 1132 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1150 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 116:
-#line 510 "dhcp6_parser.yy" // lalr1.cc:919
+  case 119:
+#line 520 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // No interfaces config param is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1142 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1160 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 117:
-#line 516 "dhcp6_parser.yy" // lalr1.cc:919
+  case 120:
+#line 526 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1152 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1170 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 118:
-#line 520 "dhcp6_parser.yy" // lalr1.cc:919
+  case 121:
+#line 530 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // No interfaces config param is required
     // parsing completed
 }
-#line 1161 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1179 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 126:
-#line 536 "dhcp6_parser.yy" // lalr1.cc:919
+  case 129:
+#line 546 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1172 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1190 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 127:
-#line 541 "dhcp6_parser.yy" // lalr1.cc:919
+  case 130:
+#line 551 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1181 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1199 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 128:
-#line 546 "dhcp6_parser.yy" // lalr1.cc:919
+  case 131:
+#line 556 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("re-detect", b);
 }
-#line 1190 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1208 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 129:
-#line 552 "dhcp6_parser.yy" // lalr1.cc:919
+  case 132:
+#line 562 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lease-database", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.LEASE_DATABASE);
 }
-#line 1201 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1219 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 130:
-#line 557 "dhcp6_parser.yy" // lalr1.cc:919
+  case 133:
+#line 567 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1212 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1230 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 131:
-#line 564 "dhcp6_parser.yy" // lalr1.cc:919
+  case 134:
+#line 574 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-database", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.HOSTS_DATABASE);
 }
-#line 1223 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1241 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 132:
-#line 569 "dhcp6_parser.yy" // lalr1.cc:919
+  case 135:
+#line 579 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1234 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1252 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 133:
-#line 576 "dhcp6_parser.yy" // lalr1.cc:919
+  case 136:
+#line 586 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-databases", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOSTS_DATABASE);
 }
-#line 1245 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1263 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 134:
-#line 581 "dhcp6_parser.yy" // lalr1.cc:919
+  case 137:
+#line 591 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1254 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1272 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 139:
-#line 594 "dhcp6_parser.yy" // lalr1.cc:919
+  case 142:
+#line 604 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1264 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1282 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 140:
-#line 598 "dhcp6_parser.yy" // lalr1.cc:919
+  case 143:
+#line 608 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 1274 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1292 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 161:
-#line 628 "dhcp6_parser.yy" // lalr1.cc:919
+  case 164:
+#line 638 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.DATABASE_TYPE);
 }
-#line 1282 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1300 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 162:
-#line 630 "dhcp6_parser.yy" // lalr1.cc:919
+  case 165:
+#line 640 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1291 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1309 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 163:
-#line 635 "dhcp6_parser.yy" // lalr1.cc:919
+  case 166:
+#line 645 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
-#line 1297 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1315 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 164:
-#line 636 "dhcp6_parser.yy" // lalr1.cc:919
+  case 167:
+#line 646 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
-#line 1303 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1321 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 165:
-#line 637 "dhcp6_parser.yy" // lalr1.cc:919
+  case 168:
+#line 647 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
-#line 1309 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1327 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 166:
-#line 638 "dhcp6_parser.yy" // lalr1.cc:919
+  case 169:
+#line 648 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
-#line 1315 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1333 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 167:
-#line 641 "dhcp6_parser.yy" // lalr1.cc:919
+  case 170:
+#line 651 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1323 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1341 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 168:
-#line 643 "dhcp6_parser.yy" // lalr1.cc:919
+  case 171:
+#line 653 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("user", user);
     ctx.leave();
 }
-#line 1333 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1351 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 169:
-#line 649 "dhcp6_parser.yy" // lalr1.cc:919
+  case 172:
+#line 659 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1341 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1359 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 170:
-#line 651 "dhcp6_parser.yy" // lalr1.cc:919
+  case 173:
+#line 661 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("password", pwd);
     ctx.leave();
 }
-#line 1351 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1369 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 171:
-#line 657 "dhcp6_parser.yy" // lalr1.cc:919
+  case 174:
+#line 667 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1359 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1377 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 172:
-#line 659 "dhcp6_parser.yy" // lalr1.cc:919
+  case 175:
+#line 669 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host", h);
     ctx.leave();
 }
-#line 1369 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1387 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 173:
-#line 665 "dhcp6_parser.yy" // lalr1.cc:919
+  case 176:
+#line 675 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("port", p);
 }
-#line 1378 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1396 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 174:
-#line 670 "dhcp6_parser.yy" // lalr1.cc:919
+  case 177:
+#line 680 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1386 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1404 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 175:
-#line 672 "dhcp6_parser.yy" // lalr1.cc:919
+  case 178:
+#line 682 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("name", name);
     ctx.leave();
 }
-#line 1396 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1414 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 176:
-#line 678 "dhcp6_parser.yy" // lalr1.cc:919
+  case 179:
+#line 688 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("persist", n);
 }
-#line 1405 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1423 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 177:
-#line 683 "dhcp6_parser.yy" // lalr1.cc:919
+  case 180:
+#line 693 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lfc-interval", n);
 }
-#line 1414 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1432 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 178:
-#line 688 "dhcp6_parser.yy" // lalr1.cc:919
+  case 181:
+#line 698 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("readonly", n);
 }
-#line 1423 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1441 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 179:
-#line 693 "dhcp6_parser.yy" // lalr1.cc:919
+  case 182:
+#line 703 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("connect-timeout", n);
 }
-#line 1432 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1450 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 180:
-#line 698 "dhcp6_parser.yy" // lalr1.cc:919
+  case 183:
+#line 708 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reconnect-wait-time", n);
 }
-#line 1441 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1459 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 181:
-#line 703 "dhcp6_parser.yy" // lalr1.cc:919
+  case 184:
+#line 713 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("request-timeout", n);
 }
-#line 1450 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1468 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 182:
-#line 708 "dhcp6_parser.yy" // lalr1.cc:919
+  case 185:
+#line 718 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-keepalive", n);
 }
-#line 1459 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1477 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 183:
-#line 713 "dhcp6_parser.yy" // lalr1.cc:919
+  case 186:
+#line 723 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-nodelay", n);
 }
-#line 1468 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1486 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 184:
-#line 718 "dhcp6_parser.yy" // lalr1.cc:919
+  case 187:
+#line 728 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1476 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1494 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 185:
-#line 720 "dhcp6_parser.yy" // lalr1.cc:919
+  case 188:
+#line 730 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("contact-points", cp);
     ctx.leave();
 }
-#line 1486 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1504 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 186:
-#line 726 "dhcp6_parser.yy" // lalr1.cc:919
+  case 189:
+#line 736 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reconnect-tries", n);
 }
-#line 1495 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1513 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 187:
-#line 731 "dhcp6_parser.yy" // lalr1.cc:919
+  case 190:
+#line 741 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1503 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1521 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 188:
-#line 733 "dhcp6_parser.yy" // lalr1.cc:919
+  case 191:
+#line 743 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("keyspace", ks);
     ctx.leave();
 }
-#line 1513 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1531 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 189:
-#line 739 "dhcp6_parser.yy" // lalr1.cc:919
+  case 192:
+#line 749 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sanity-checks", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.SANITY_CHECKS);
 }
-#line 1524 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1542 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 190:
-#line 744 "dhcp6_parser.yy" // lalr1.cc:919
+  case 193:
+#line 754 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1533 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1551 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 194:
-#line 754 "dhcp6_parser.yy" // lalr1.cc:919
+  case 197:
+#line 764 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1541 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1559 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 195:
-#line 756 "dhcp6_parser.yy" // lalr1.cc:919
+  case 198:
+#line 766 "dhcp6_parser.yy" // lalr1.cc:919
     {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -1557,307 +1575,307 @@ namespace isc { namespace dhcp {
               ", supported values are: none, warn, fix, fix-del, del");
     }
 }
-#line 1561 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1579 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 196:
-#line 772 "dhcp6_parser.yy" // lalr1.cc:919
+  case 199:
+#line 782 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("mac-sources", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.MAC_SOURCES);
 }
-#line 1572 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1590 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 197:
-#line 777 "dhcp6_parser.yy" // lalr1.cc:919
+  case 200:
+#line 787 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1581 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1599 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 202:
-#line 790 "dhcp6_parser.yy" // lalr1.cc:919
+  case 205:
+#line 800 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1590 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1608 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 203:
-#line 795 "dhcp6_parser.yy" // lalr1.cc:919
+  case 206:
+#line 805 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1599 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1617 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 204:
-#line 800 "dhcp6_parser.yy" // lalr1.cc:919
+  case 207:
+#line 810 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host-reservation-identifiers", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
 }
-#line 1610 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1628 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 205:
-#line 805 "dhcp6_parser.yy" // lalr1.cc:919
+  case 208:
+#line 815 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1619 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1637 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 211:
-#line 819 "dhcp6_parser.yy" // lalr1.cc:919
+  case 214:
+#line 829 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
 }
-#line 1628 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1646 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 212:
-#line 824 "dhcp6_parser.yy" // lalr1.cc:919
+  case 215:
+#line 834 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
 }
-#line 1637 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1655 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 213:
-#line 831 "dhcp6_parser.yy" // lalr1.cc:919
+  case 216:
+#line 841 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("relay-supplied-options", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1648 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1666 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 214:
-#line 836 "dhcp6_parser.yy" // lalr1.cc:919
+  case 217:
+#line 846 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1657 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1675 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 215:
-#line 841 "dhcp6_parser.yy" // lalr1.cc:919
+  case 218:
+#line 851 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hooks-libraries", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOOKS_LIBRARIES);
 }
-#line 1668 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1686 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 216:
-#line 846 "dhcp6_parser.yy" // lalr1.cc:919
+  case 219:
+#line 856 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1677 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1695 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 221:
-#line 859 "dhcp6_parser.yy" // lalr1.cc:919
+  case 224:
+#line 869 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1687 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1705 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 222:
-#line 863 "dhcp6_parser.yy" // lalr1.cc:919
+  case 225:
+#line 873 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 1697 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1715 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 223:
-#line 869 "dhcp6_parser.yy" // lalr1.cc:919
+  case 226:
+#line 879 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Parse the hooks-libraries list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1707 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1725 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 224:
-#line 873 "dhcp6_parser.yy" // lalr1.cc:919
+  case 227:
+#line 883 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 1717 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1735 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 230:
-#line 888 "dhcp6_parser.yy" // lalr1.cc:919
+  case 233:
+#line 898 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1725 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1743 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 231:
-#line 890 "dhcp6_parser.yy" // lalr1.cc:919
+  case 234:
+#line 900 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("library", lib);
     ctx.leave();
 }
-#line 1735 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1753 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 232:
-#line 896 "dhcp6_parser.yy" // lalr1.cc:919
+  case 235:
+#line 906 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1743 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1761 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 233:
-#line 898 "dhcp6_parser.yy" // lalr1.cc:919
+  case 236:
+#line 908 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1752 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1770 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 234:
-#line 904 "dhcp6_parser.yy" // lalr1.cc:919
+  case 237:
+#line 914 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("expired-leases-processing", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.EXPIRED_LEASES_PROCESSING);
 }
-#line 1763 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1781 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 235:
-#line 909 "dhcp6_parser.yy" // lalr1.cc:919
+  case 238:
+#line 919 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // No expired lease parameter is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1773 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1791 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 244:
-#line 927 "dhcp6_parser.yy" // lalr1.cc:919
+  case 247:
+#line 937 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reclaim-timer-wait-time", value);
 }
-#line 1782 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1800 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 245:
-#line 932 "dhcp6_parser.yy" // lalr1.cc:919
+  case 248:
+#line 942 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value);
 }
-#line 1791 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1809 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 246:
-#line 937 "dhcp6_parser.yy" // lalr1.cc:919
+  case 249:
+#line 947 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hold-reclaimed-time", value);
 }
-#line 1800 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1818 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 247:
-#line 942 "dhcp6_parser.yy" // lalr1.cc:919
+  case 250:
+#line 952 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-leases", value);
 }
-#line 1809 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1827 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 248:
-#line 947 "dhcp6_parser.yy" // lalr1.cc:919
+  case 251:
+#line 957 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-time", value);
 }
-#line 1818 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1836 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 249:
-#line 952 "dhcp6_parser.yy" // lalr1.cc:919
+  case 252:
+#line 962 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
 }
-#line 1827 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1845 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 250:
-#line 960 "dhcp6_parser.yy" // lalr1.cc:919
+  case 253:
+#line 970 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet6", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.SUBNET6);
 }
-#line 1838 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1856 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 251:
-#line 965 "dhcp6_parser.yy" // lalr1.cc:919
+  case 254:
+#line 975 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1847 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1865 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 256:
-#line 985 "dhcp6_parser.yy" // lalr1.cc:919
+  case 259:
+#line 995 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1857 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1875 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 257:
-#line 989 "dhcp6_parser.yy" // lalr1.cc:919
+  case 260:
+#line 999 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Once we reached this place, the subnet parsing is now complete.
     // If we want to, we can implement default values here.
@@ -1879,267 +1897,267 @@ namespace isc { namespace dhcp {
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 1883 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1901 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 258:
-#line 1011 "dhcp6_parser.yy" // lalr1.cc:919
+  case 261:
+#line 1021 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Parse the subnet6 list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1893 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1911 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 259:
-#line 1015 "dhcp6_parser.yy" // lalr1.cc:919
+  case 262:
+#line 1025 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The subnet subnet6 parameter is required
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 1903 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1921 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 282:
-#line 1049 "dhcp6_parser.yy" // lalr1.cc:919
+  case 285:
+#line 1059 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1911 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1929 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 283:
-#line 1051 "dhcp6_parser.yy" // lalr1.cc:919
+  case 286:
+#line 1061 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet", subnet);
     ctx.leave();
 }
-#line 1921 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1939 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 284:
-#line 1057 "dhcp6_parser.yy" // lalr1.cc:919
+  case 287:
+#line 1067 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1929 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1947 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 285:
-#line 1059 "dhcp6_parser.yy" // lalr1.cc:919
+  case 288:
+#line 1069 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface", iface);
     ctx.leave();
 }
-#line 1939 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1957 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 286:
-#line 1065 "dhcp6_parser.yy" // lalr1.cc:919
+  case 289:
+#line 1075 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1947 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1965 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 287:
-#line 1067 "dhcp6_parser.yy" // lalr1.cc:919
+  case 290:
+#line 1077 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface-id", iface);
     ctx.leave();
 }
-#line 1957 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1975 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 288:
-#line 1073 "dhcp6_parser.yy" // lalr1.cc:919
+  case 291:
+#line 1083 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1965 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1983 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 289:
-#line 1075 "dhcp6_parser.yy" // lalr1.cc:919
+  case 292:
+#line 1085 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-class", cls);
     ctx.leave();
 }
-#line 1975 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1993 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 290:
-#line 1081 "dhcp6_parser.yy" // lalr1.cc:919
+  case 293:
+#line 1091 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("require-client-classes", c);
     ctx.stack_.push_back(c);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1986 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2004 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 291:
-#line 1086 "dhcp6_parser.yy" // lalr1.cc:919
+  case 294:
+#line 1096 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1995 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2013 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 292:
-#line 1091 "dhcp6_parser.yy" // lalr1.cc:919
+  case 295:
+#line 1101 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.RESERVATION_MODE);
 }
-#line 2003 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2021 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 293:
-#line 1093 "dhcp6_parser.yy" // lalr1.cc:919
+  case 296:
+#line 1103 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 2012 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2030 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 294:
-#line 1098 "dhcp6_parser.yy" // lalr1.cc:919
+  case 297:
+#line 1108 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
-#line 2018 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2036 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 295:
-#line 1099 "dhcp6_parser.yy" // lalr1.cc:919
+  case 298:
+#line 1109 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
-#line 2024 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2042 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 296:
-#line 1100 "dhcp6_parser.yy" // lalr1.cc:919
+  case 299:
+#line 1110 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
-#line 2030 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2048 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 297:
-#line 1101 "dhcp6_parser.yy" // lalr1.cc:919
+  case 300:
+#line 1111 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
-#line 2036 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2054 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 298:
-#line 1104 "dhcp6_parser.yy" // lalr1.cc:919
+  case 301:
+#line 1114 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("id", id);
 }
-#line 2045 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2063 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 299:
-#line 1109 "dhcp6_parser.yy" // lalr1.cc:919
+  case 302:
+#line 1119 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rapid-commit", rc);
 }
-#line 2054 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2072 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 300:
-#line 1117 "dhcp6_parser.yy" // lalr1.cc:919
+  case 303:
+#line 1127 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("shared-networks", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.SHARED_NETWORK);
 }
-#line 2065 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2083 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 301:
-#line 1122 "dhcp6_parser.yy" // lalr1.cc:919
+  case 304:
+#line 1132 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2074 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2092 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 306:
-#line 1137 "dhcp6_parser.yy" // lalr1.cc:919
+  case 309:
+#line 1147 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2084 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2102 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 307:
-#line 1141 "dhcp6_parser.yy" // lalr1.cc:919
+  case 310:
+#line 1151 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
 }
-#line 2092 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2110 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 327:
-#line 1172 "dhcp6_parser.yy" // lalr1.cc:919
+  case 330:
+#line 1182 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-def", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OPTION_DEF);
 }
-#line 2103 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2121 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 328:
-#line 1177 "dhcp6_parser.yy" // lalr1.cc:919
+  case 331:
+#line 1187 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2112 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2130 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 329:
-#line 1185 "dhcp6_parser.yy" // lalr1.cc:919
+  case 332:
+#line 1195 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2121 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2139 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 330:
-#line 1188 "dhcp6_parser.yy" // lalr1.cc:919
+  case 333:
+#line 1198 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // parsing completed
 }
-#line 2129 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2147 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 335:
-#line 1204 "dhcp6_parser.yy" // lalr1.cc:919
+  case 338:
+#line 1214 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2139 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2157 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 336:
-#line 1208 "dhcp6_parser.yy" // lalr1.cc:919
+  case 339:
+#line 1218 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2147,21 +2165,21 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2151 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2169 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 337:
-#line 1219 "dhcp6_parser.yy" // lalr1.cc:919
+  case 340:
+#line 1229 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Parse the option-def list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2161 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2179 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 338:
-#line 1223 "dhcp6_parser.yy" // lalr1.cc:919
+  case 341:
+#line 1233 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2169,280 +2187,280 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2173 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2191 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 354:
-#line 1255 "dhcp6_parser.yy" // lalr1.cc:919
+  case 357:
+#line 1265 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("code", code);
 }
-#line 2182 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2200 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 356:
-#line 1262 "dhcp6_parser.yy" // lalr1.cc:919
+  case 359:
+#line 1272 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2190 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2208 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 357:
-#line 1264 "dhcp6_parser.yy" // lalr1.cc:919
+  case 360:
+#line 1274 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("type", prf);
     ctx.leave();
 }
-#line 2200 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2218 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 358:
-#line 1270 "dhcp6_parser.yy" // lalr1.cc:919
+  case 361:
+#line 1280 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2208 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2226 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 359:
-#line 1272 "dhcp6_parser.yy" // lalr1.cc:919
+  case 362:
+#line 1282 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("record-types", rtypes);
     ctx.leave();
 }
-#line 2218 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2236 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 360:
-#line 1278 "dhcp6_parser.yy" // lalr1.cc:919
+  case 363:
+#line 1288 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2226 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2244 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 361:
-#line 1280 "dhcp6_parser.yy" // lalr1.cc:919
+  case 364:
+#line 1290 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("space", space);
     ctx.leave();
 }
-#line 2236 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2254 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 363:
-#line 1288 "dhcp6_parser.yy" // lalr1.cc:919
+  case 366:
+#line 1298 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2244 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2262 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 364:
-#line 1290 "dhcp6_parser.yy" // lalr1.cc:919
+  case 367:
+#line 1300 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("encapsulate", encap);
     ctx.leave();
 }
-#line 2254 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2272 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 365:
-#line 1296 "dhcp6_parser.yy" // lalr1.cc:919
+  case 368:
+#line 1306 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("array", array);
 }
-#line 2263 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2281 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 366:
-#line 1305 "dhcp6_parser.yy" // lalr1.cc:919
+  case 369:
+#line 1315 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-data", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OPTION_DATA);
 }
-#line 2274 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2292 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 367:
-#line 1310 "dhcp6_parser.yy" // lalr1.cc:919
+  case 370:
+#line 1320 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2283 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2301 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 372:
-#line 1329 "dhcp6_parser.yy" // lalr1.cc:919
+  case 375:
+#line 1339 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2293 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2311 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 373:
-#line 1333 "dhcp6_parser.yy" // lalr1.cc:919
+  case 376:
+#line 1343 "dhcp6_parser.yy" // lalr1.cc:919
     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
 }
-#line 2302 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2320 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 374:
-#line 1341 "dhcp6_parser.yy" // lalr1.cc:919
+  case 377:
+#line 1351 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Parse the option-data list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2312 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2330 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 375:
-#line 1345 "dhcp6_parser.yy" // lalr1.cc:919
+  case 378:
+#line 1355 "dhcp6_parser.yy" // lalr1.cc:919
     {
     /// @todo: the code or name parameters are required.
     // parsing completed
 }
-#line 2321 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2339 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 390:
-#line 1378 "dhcp6_parser.yy" // lalr1.cc:919
+  case 393:
+#line 1388 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2329 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2347 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 391:
-#line 1380 "dhcp6_parser.yy" // lalr1.cc:919
+  case 394:
+#line 1390 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data", data);
     ctx.leave();
 }
-#line 2339 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2357 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 394:
-#line 1390 "dhcp6_parser.yy" // lalr1.cc:919
+  case 397:
+#line 1400 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("csv-format", space);
 }
-#line 2348 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2366 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 395:
-#line 1395 "dhcp6_parser.yy" // lalr1.cc:919
+  case 398:
+#line 1405 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-send", persist);
 }
-#line 2357 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2375 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 396:
-#line 1403 "dhcp6_parser.yy" // lalr1.cc:919
+  case 399:
+#line 1413 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pools", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.POOLS);
 }
-#line 2368 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2386 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 397:
-#line 1408 "dhcp6_parser.yy" // lalr1.cc:919
+  case 400:
+#line 1418 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2377 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2395 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 402:
-#line 1423 "dhcp6_parser.yy" // lalr1.cc:919
+  case 405:
+#line 1433 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2387 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2405 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 403:
-#line 1427 "dhcp6_parser.yy" // lalr1.cc:919
+  case 406:
+#line 1437 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2397 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2415 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 404:
-#line 1433 "dhcp6_parser.yy" // lalr1.cc:919
+  case 407:
+#line 1443 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2407 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2425 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 405:
-#line 1437 "dhcp6_parser.yy" // lalr1.cc:919
+  case 408:
+#line 1447 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
 }
-#line 2416 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2434 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 415:
-#line 1455 "dhcp6_parser.yy" // lalr1.cc:919
+  case 418:
+#line 1465 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2424 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2442 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 416:
-#line 1457 "dhcp6_parser.yy" // lalr1.cc:919
+  case 419:
+#line 1467 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pool", pool);
     ctx.leave();
 }
-#line 2434 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2452 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 417:
-#line 1463 "dhcp6_parser.yy" // lalr1.cc:919
+  case 420:
+#line 1473 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2442 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2460 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 418:
-#line 1465 "dhcp6_parser.yy" // lalr1.cc:919
+  case 421:
+#line 1475 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -2465,19 +2483,19 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 2469 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2487 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 419:
-#line 1488 "dhcp6_parser.yy" // lalr1.cc:919
+  case 422:
+#line 1498 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2477 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2495 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 420:
-#line 1490 "dhcp6_parser.yy" // lalr1.cc:919
+  case 423:
+#line 1500 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -2502,41 +2520,41 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 2506 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2524 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 421:
-#line 1518 "dhcp6_parser.yy" // lalr1.cc:919
+  case 424:
+#line 1528 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pd-pools", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.PD_POOLS);
 }
-#line 2517 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2535 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 422:
-#line 1523 "dhcp6_parser.yy" // lalr1.cc:919
+  case 425:
+#line 1533 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2526 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2544 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 427:
-#line 1538 "dhcp6_parser.yy" // lalr1.cc:919
+  case 430:
+#line 1548 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2536 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2554 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 428:
-#line 1542 "dhcp6_parser.yy" // lalr1.cc:919
+  case 431:
+#line 1552 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The prefix, prefix len and delegated len parameters are required.
     ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2544,21 +2562,21 @@ namespace isc { namespace dhcp {
     ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2548 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2566 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 429:
-#line 1550 "dhcp6_parser.yy" // lalr1.cc:919
+  case 432:
+#line 1560 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Parse the pd-pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2558 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2576 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 430:
-#line 1554 "dhcp6_parser.yy" // lalr1.cc:919
+  case 433:
+#line 1564 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The prefix, prefix len and delegated len parameters are required.
     ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2566,544 +2584,544 @@ namespace isc { namespace dhcp {
     ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2570 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2588 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 444:
-#line 1579 "dhcp6_parser.yy" // lalr1.cc:919
+  case 447:
+#line 1589 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2578 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2596 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 445:
-#line 1581 "dhcp6_parser.yy" // lalr1.cc:919
+  case 448:
+#line 1591 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefix", prf);
     ctx.leave();
 }
-#line 2588 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2606 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 446:
-#line 1587 "dhcp6_parser.yy" // lalr1.cc:919
+  case 449:
+#line 1597 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefix-len", prf);
 }
-#line 2597 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2615 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 447:
-#line 1592 "dhcp6_parser.yy" // lalr1.cc:919
+  case 450:
+#line 1602 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2605 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2623 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 448:
-#line 1594 "dhcp6_parser.yy" // lalr1.cc:919
+  case 451:
+#line 1604 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("excluded-prefix", prf);
     ctx.leave();
 }
-#line 2615 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2633 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 449:
-#line 1600 "dhcp6_parser.yy" // lalr1.cc:919
+  case 452:
+#line 1610 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("excluded-prefix-len", prf);
 }
-#line 2624 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2642 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 450:
-#line 1605 "dhcp6_parser.yy" // lalr1.cc:919
+  case 453:
+#line 1615 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("delegated-len", deleg);
 }
-#line 2633 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2651 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 451:
-#line 1613 "dhcp6_parser.yy" // lalr1.cc:919
+  case 454:
+#line 1623 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reservations", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.RESERVATIONS);
 }
-#line 2644 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2662 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 452:
-#line 1618 "dhcp6_parser.yy" // lalr1.cc:919
+  case 455:
+#line 1628 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2653 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2671 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 457:
-#line 1631 "dhcp6_parser.yy" // lalr1.cc:919
+  case 460:
+#line 1641 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2663 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2681 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 458:
-#line 1635 "dhcp6_parser.yy" // lalr1.cc:919
+  case 461:
+#line 1645 "dhcp6_parser.yy" // lalr1.cc:919
     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
 }
-#line 2672 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2690 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 459:
-#line 1640 "dhcp6_parser.yy" // lalr1.cc:919
+  case 462:
+#line 1650 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2682 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2700 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 460:
-#line 1644 "dhcp6_parser.yy" // lalr1.cc:919
+  case 463:
+#line 1654 "dhcp6_parser.yy" // lalr1.cc:919
     {
     /// @todo: an identifier parameter is required.
     // parsing completed
 }
-#line 2691 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2709 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 476:
-#line 1671 "dhcp6_parser.yy" // lalr1.cc:919
+  case 479:
+#line 1681 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-addresses", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2702 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2720 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 477:
-#line 1676 "dhcp6_parser.yy" // lalr1.cc:919
+  case 480:
+#line 1686 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2711 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2729 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 478:
-#line 1681 "dhcp6_parser.yy" // lalr1.cc:919
+  case 481:
+#line 1691 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefixes", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2722 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2740 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 479:
-#line 1686 "dhcp6_parser.yy" // lalr1.cc:919
+  case 482:
+#line 1696 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2731 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2749 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 480:
-#line 1691 "dhcp6_parser.yy" // lalr1.cc:919
+  case 483:
+#line 1701 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2739 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2757 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 481:
-#line 1693 "dhcp6_parser.yy" // lalr1.cc:919
+  case 484:
+#line 1703 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("duid", d);
     ctx.leave();
 }
-#line 2749 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2767 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 482:
-#line 1699 "dhcp6_parser.yy" // lalr1.cc:919
+  case 485:
+#line 1709 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2757 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2775 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 483:
-#line 1701 "dhcp6_parser.yy" // lalr1.cc:919
+  case 486:
+#line 1711 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hw-address", hw);
     ctx.leave();
 }
-#line 2767 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2785 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 484:
-#line 1707 "dhcp6_parser.yy" // lalr1.cc:919
+  case 487:
+#line 1717 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2775 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2793 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 485:
-#line 1709 "dhcp6_parser.yy" // lalr1.cc:919
+  case 488:
+#line 1719 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname", host);
     ctx.leave();
 }
-#line 2785 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2803 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 486:
-#line 1715 "dhcp6_parser.yy" // lalr1.cc:919
+  case 489:
+#line 1725 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2793 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2811 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 487:
-#line 1717 "dhcp6_parser.yy" // lalr1.cc:919
+  case 490:
+#line 1727 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flex-id", hw);
     ctx.leave();
 }
-#line 2803 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2821 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 488:
-#line 1723 "dhcp6_parser.yy" // lalr1.cc:919
+  case 491:
+#line 1733 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", c);
     ctx.stack_.push_back(c);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2814 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2832 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 489:
-#line 1728 "dhcp6_parser.yy" // lalr1.cc:919
+  case 492:
+#line 1738 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2823 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2841 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 490:
-#line 1736 "dhcp6_parser.yy" // lalr1.cc:919
+  case 493:
+#line 1746 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("relay", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.RELAY);
 }
-#line 2834 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2852 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 491:
-#line 1741 "dhcp6_parser.yy" // lalr1.cc:919
+  case 494:
+#line 1751 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2843 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2861 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 494:
-#line 1750 "dhcp6_parser.yy" // lalr1.cc:919
+  case 497:
+#line 1760 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2851 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2869 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 495:
-#line 1752 "dhcp6_parser.yy" // lalr1.cc:919
+  case 498:
+#line 1762 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-address", addr);
     ctx.leave();
 }
-#line 2861 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2879 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 496:
-#line 1761 "dhcp6_parser.yy" // lalr1.cc:919
+  case 499:
+#line 1771 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CLIENT_CLASSES);
 }
-#line 2872 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2890 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 497:
-#line 1766 "dhcp6_parser.yy" // lalr1.cc:919
+  case 500:
+#line 1776 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2881 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2899 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 500:
-#line 1775 "dhcp6_parser.yy" // lalr1.cc:919
+  case 503:
+#line 1785 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2891 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2909 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 501:
-#line 1779 "dhcp6_parser.yy" // lalr1.cc:919
+  case 504:
+#line 1789 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The name client class parameter is required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2901 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2919 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 514:
-#line 1804 "dhcp6_parser.yy" // lalr1.cc:919
+  case 517:
+#line 1814 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2909 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2927 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 515:
-#line 1806 "dhcp6_parser.yy" // lalr1.cc:919
+  case 518:
+#line 1816 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("test", test);
     ctx.leave();
 }
-#line 2919 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2937 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 516:
-#line 1812 "dhcp6_parser.yy" // lalr1.cc:919
+  case 519:
+#line 1822 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("only-if-required", b);
 }
-#line 2928 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2946 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 517:
-#line 1820 "dhcp6_parser.yy" // lalr1.cc:919
+  case 520:
+#line 1830 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-id", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.SERVER_ID);
 }
-#line 2939 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2957 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 518:
-#line 1825 "dhcp6_parser.yy" // lalr1.cc:919
+  case 521:
+#line 1835 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The type parameter is required.
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2950 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2968 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 530:
-#line 1847 "dhcp6_parser.yy" // lalr1.cc:919
+  case 533:
+#line 1857 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.DUID_TYPE);
 }
-#line 2958 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2976 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 531:
-#line 1849 "dhcp6_parser.yy" // lalr1.cc:919
+  case 534:
+#line 1859 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 2967 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2985 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 532:
-#line 1854 "dhcp6_parser.yy" // lalr1.cc:919
+  case 535:
+#line 1864 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
-#line 2973 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2991 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 533:
-#line 1855 "dhcp6_parser.yy" // lalr1.cc:919
+  case 536:
+#line 1865 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
-#line 2979 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2997 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 534:
-#line 1856 "dhcp6_parser.yy" // lalr1.cc:919
+  case 537:
+#line 1866 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
-#line 2985 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3003 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 535:
-#line 1859 "dhcp6_parser.yy" // lalr1.cc:919
+  case 538:
+#line 1869 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("htype", htype);
 }
-#line 2994 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3012 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 536:
-#line 1864 "dhcp6_parser.yy" // lalr1.cc:919
+  case 539:
+#line 1874 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3002 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3020 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 537:
-#line 1866 "dhcp6_parser.yy" // lalr1.cc:919
+  case 540:
+#line 1876 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("identifier", id);
     ctx.leave();
 }
-#line 3012 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3030 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 538:
-#line 1872 "dhcp6_parser.yy" // lalr1.cc:919
+  case 541:
+#line 1882 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("time", time);
 }
-#line 3021 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3039 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 539:
-#line 1877 "dhcp6_parser.yy" // lalr1.cc:919
+  case 542:
+#line 1887 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enterprise-id", time);
 }
-#line 3030 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3048 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 540:
-#line 1884 "dhcp6_parser.yy" // lalr1.cc:919
+  case 543:
+#line 1894 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp4o6-port", time);
 }
-#line 3039 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3057 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 541:
-#line 1891 "dhcp6_parser.yy" // lalr1.cc:919
+  case 544:
+#line 1901 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("control-socket", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.CONTROL_SOCKET);
 }
-#line 3050 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3068 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 542:
-#line 1896 "dhcp6_parser.yy" // lalr1.cc:919
+  case 545:
+#line 1906 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3059 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3077 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 550:
-#line 1912 "dhcp6_parser.yy" // lalr1.cc:919
+  case 553:
+#line 1922 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3067 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3085 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 551:
-#line 1914 "dhcp6_parser.yy" // lalr1.cc:919
+  case 554:
+#line 1924 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
     ctx.leave();
 }
-#line 3077 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3095 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 552:
-#line 1920 "dhcp6_parser.yy" // lalr1.cc:919
+  case 555:
+#line 1930 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3085 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3103 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 553:
-#line 1922 "dhcp6_parser.yy" // lalr1.cc:919
+  case 556:
+#line 1932 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-name", name);
     ctx.leave();
 }
-#line 3095 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3113 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 554:
-#line 1930 "dhcp6_parser.yy" // lalr1.cc:919
+  case 557:
+#line 1940 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3103 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3121 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 555:
-#line 1932 "dhcp6_parser.yy" // lalr1.cc:919
+  case 558:
+#line 1942 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr qc = yystack_[0].value.as < ElementPtr > ();
     ctx.stack_.back()->set("dhcp-queue-control", qc);
@@ -3139,617 +3157,617 @@ namespace isc { namespace dhcp {
 
     ctx.leave();
 }
-#line 3143 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3161 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 556:
-#line 1970 "dhcp6_parser.yy" // lalr1.cc:919
+  case 559:
+#line 1980 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-ddns", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP_DDNS);
 }
-#line 3154 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3172 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 557:
-#line 1975 "dhcp6_parser.yy" // lalr1.cc:919
+  case 560:
+#line 1985 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3165 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3183 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 558:
-#line 1982 "dhcp6_parser.yy" // lalr1.cc:919
+  case 561:
+#line 1992 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3175 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3193 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 559:
-#line 1986 "dhcp6_parser.yy" // lalr1.cc:919
+  case 562:
+#line 1996 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 3185 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3203 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 580:
-#line 2016 "dhcp6_parser.yy" // lalr1.cc:919
+  case 583:
+#line 2026 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
 }
-#line 3194 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3212 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 581:
-#line 2021 "dhcp6_parser.yy" // lalr1.cc:919
+  case 584:
+#line 2031 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3202 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3220 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 582:
-#line 2023 "dhcp6_parser.yy" // lalr1.cc:919
+  case 585:
+#line 2033 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
     ctx.leave();
 }
-#line 3212 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3230 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 583:
-#line 2029 "dhcp6_parser.yy" // lalr1.cc:919
+  case 586:
+#line 2039 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3220 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3238 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 584:
-#line 2031 "dhcp6_parser.yy" // lalr1.cc:919
+  case 587:
+#line 2041 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-ip", s);
     ctx.leave();
 }
-#line 3230 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3248 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 585:
-#line 2037 "dhcp6_parser.yy" // lalr1.cc:919
+  case 588:
+#line 2047 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
 }
-#line 3239 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3257 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 586:
-#line 2042 "dhcp6_parser.yy" // lalr1.cc:919
+  case 589:
+#line 2052 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3247 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3265 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 587:
-#line 2044 "dhcp6_parser.yy" // lalr1.cc:919
+  case 590:
+#line 2054 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-ip", s);
     ctx.leave();
 }
-#line 3257 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3275 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 588:
-#line 2050 "dhcp6_parser.yy" // lalr1.cc:919
+  case 591:
+#line 2060 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
 }
-#line 3266 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3284 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 589:
-#line 2055 "dhcp6_parser.yy" // lalr1.cc:919
+  case 592:
+#line 2065 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
 }
-#line 3275 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3293 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 590:
-#line 2060 "dhcp6_parser.yy" // lalr1.cc:919
+  case 593:
+#line 2070 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
-#line 3283 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3301 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 591:
-#line 2062 "dhcp6_parser.yy" // lalr1.cc:919
+  case 594:
+#line 2072 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3292 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3310 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 592:
-#line 2068 "dhcp6_parser.yy" // lalr1.cc:919
+  case 595:
+#line 2078 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 3298 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3316 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 593:
-#line 2069 "dhcp6_parser.yy" // lalr1.cc:919
+  case 596:
+#line 2079 "dhcp6_parser.yy" // lalr1.cc:919
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 3304 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3322 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 594:
-#line 2072 "dhcp6_parser.yy" // lalr1.cc:919
+  case 597:
+#line 2082 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
-#line 3312 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3330 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 595:
-#line 2074 "dhcp6_parser.yy" // lalr1.cc:919
+  case 598:
+#line 2084 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
     ctx.leave();
 }
-#line 3322 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3340 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 596:
-#line 2080 "dhcp6_parser.yy" // lalr1.cc:919
+  case 599:
+#line 2090 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
 }
-#line 3331 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3349 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 597:
-#line 2085 "dhcp6_parser.yy" // lalr1.cc:919
+  case 600:
+#line 2095 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
 }
-#line 3340 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3358 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 598:
-#line 2090 "dhcp6_parser.yy" // lalr1.cc:919
+  case 601:
+#line 2100 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 3348 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3366 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 599:
-#line 2092 "dhcp6_parser.yy" // lalr1.cc:919
+  case 602:
+#line 2102 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3357 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3375 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 600:
-#line 2098 "dhcp6_parser.yy" // lalr1.cc:919
+  case 603:
+#line 2108 "dhcp6_parser.yy" // lalr1.cc:919
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3365 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3383 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 601:
-#line 2101 "dhcp6_parser.yy" // lalr1.cc:919
+  case 604:
+#line 2111 "dhcp6_parser.yy" // lalr1.cc:919
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3373 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3391 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 602:
-#line 2104 "dhcp6_parser.yy" // lalr1.cc:919
+  case 605:
+#line 2114 "dhcp6_parser.yy" // lalr1.cc:919
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3381 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3399 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 603:
-#line 2107 "dhcp6_parser.yy" // lalr1.cc:919
+  case 606:
+#line 2117 "dhcp6_parser.yy" // lalr1.cc:919
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3389 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3407 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 604:
-#line 2110 "dhcp6_parser.yy" // lalr1.cc:919
+  case 607:
+#line 2120 "dhcp6_parser.yy" // lalr1.cc:919
     {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
       }
-#line 3398 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3416 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 605:
-#line 2116 "dhcp6_parser.yy" // lalr1.cc:919
+  case 608:
+#line 2126 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3406 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3424 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 606:
-#line 2118 "dhcp6_parser.yy" // lalr1.cc:919
+  case 609:
+#line 2128 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
     ctx.leave();
 }
-#line 3416 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3434 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 607:
-#line 2124 "dhcp6_parser.yy" // lalr1.cc:919
+  case 610:
+#line 2134 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3424 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3442 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 608:
-#line 2126 "dhcp6_parser.yy" // lalr1.cc:919
+  case 611:
+#line 2136 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-set", s);
     ctx.leave();
 }
-#line 3434 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3452 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 609:
-#line 2132 "dhcp6_parser.yy" // lalr1.cc:919
+  case 612:
+#line 2142 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3442 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3460 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 610:
-#line 2134 "dhcp6_parser.yy" // lalr1.cc:919
+  case 613:
+#line 2144 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-replacement", s);
     ctx.leave();
 }
-#line 3452 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3470 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 611:
-#line 2142 "dhcp6_parser.yy" // lalr1.cc:919
+  case 614:
+#line 2152 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3460 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3478 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 612:
-#line 2144 "dhcp6_parser.yy" // lalr1.cc:919
+  case 615:
+#line 2154 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3469 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3487 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 613:
-#line 2149 "dhcp6_parser.yy" // lalr1.cc:919
+  case 616:
+#line 2159 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3477 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3495 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 614:
-#line 2151 "dhcp6_parser.yy" // lalr1.cc:919
+  case 617:
+#line 2161 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3486 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3504 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 615:
-#line 2156 "dhcp6_parser.yy" // lalr1.cc:919
+  case 618:
+#line 2166 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3494 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3512 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 616:
-#line 2158 "dhcp6_parser.yy" // lalr1.cc:919
+  case 619:
+#line 2168 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3503 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3521 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 617:
-#line 2165 "dhcp6_parser.yy" // lalr1.cc:919
+  case 620:
+#line 2175 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-control", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.CONFIG_CONTROL);
 }
-#line 3514 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3532 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 618:
-#line 2170 "dhcp6_parser.yy" // lalr1.cc:919
+  case 621:
+#line 2180 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // No config control params are required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3524 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3542 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 619:
-#line 2176 "dhcp6_parser.yy" // lalr1.cc:919
+  case 622:
+#line 2186 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3534 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3552 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 620:
-#line 2180 "dhcp6_parser.yy" // lalr1.cc:919
+  case 623:
+#line 2190 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // No config_control params are required
     // parsing completed
 }
-#line 3543 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3561 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 624:
-#line 2194 "dhcp6_parser.yy" // lalr1.cc:919
+  case 627:
+#line 2204 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-databases", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CONFIG_DATABASE);
 }
-#line 3554 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3572 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 625:
-#line 2199 "dhcp6_parser.yy" // lalr1.cc:919
+  case 628:
+#line 2209 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3563 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3581 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 626:
-#line 2209 "dhcp6_parser.yy" // lalr1.cc:919
+  case 629:
+#line 2219 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("Logging", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.LOGGING);
 }
-#line 3574 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3592 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 627:
-#line 2214 "dhcp6_parser.yy" // lalr1.cc:919
+  case 630:
+#line 2224 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3583 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3601 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 628:
-#line 2219 "dhcp6_parser.yy" // lalr1.cc:919
+  case 631:
+#line 2229 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // Parse the Logging map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3593 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3611 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 629:
-#line 2223 "dhcp6_parser.yy" // lalr1.cc:919
+  case 632:
+#line 2233 "dhcp6_parser.yy" // lalr1.cc:919
     {
     // parsing completed
 }
-#line 3601 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3619 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 633:
-#line 2239 "dhcp6_parser.yy" // lalr1.cc:919
+  case 636:
+#line 2249 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("loggers", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.LOGGERS);
 }
-#line 3612 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3630 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 634:
-#line 2244 "dhcp6_parser.yy" // lalr1.cc:919
+  case 637:
+#line 2254 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3621 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3639 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 637:
-#line 2256 "dhcp6_parser.yy" // lalr1.cc:919
+  case 640:
+#line 2266 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 3631 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3649 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 638:
-#line 2260 "dhcp6_parser.yy" // lalr1.cc:919
+  case 641:
+#line 2270 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
 }
-#line 3639 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3657 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 648:
-#line 2277 "dhcp6_parser.yy" // lalr1.cc:919
+  case 651:
+#line 2287 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
 }
-#line 3648 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3666 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 649:
-#line 2282 "dhcp6_parser.yy" // lalr1.cc:919
+  case 652:
+#line 2292 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3656 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3674 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 650:
-#line 2284 "dhcp6_parser.yy" // lalr1.cc:919
+  case 653:
+#line 2294 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
     ctx.leave();
 }
-#line 3666 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3684 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 651:
-#line 2290 "dhcp6_parser.yy" // lalr1.cc:919
+  case 654:
+#line 2300 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output_options", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OUTPUT_OPTIONS);
 }
-#line 3677 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3695 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 652:
-#line 2295 "dhcp6_parser.yy" // lalr1.cc:919
+  case 655:
+#line 2305 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3686 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3704 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 655:
-#line 2304 "dhcp6_parser.yy" // lalr1.cc:919
+  case 658:
+#line 2314 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3696 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3714 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 656:
-#line 2308 "dhcp6_parser.yy" // lalr1.cc:919
+  case 659:
+#line 2318 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.stack_.pop_back();
 }
-#line 3704 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3722 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 663:
-#line 2322 "dhcp6_parser.yy" // lalr1.cc:919
+  case 666:
+#line 2332 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3712 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3730 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 664:
-#line 2324 "dhcp6_parser.yy" // lalr1.cc:919
+  case 667:
+#line 2334 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
     ctx.leave();
 }
-#line 3722 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3740 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 665:
-#line 2330 "dhcp6_parser.yy" // lalr1.cc:919
+  case 668:
+#line 2340 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 3731 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3749 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 666:
-#line 2335 "dhcp6_parser.yy" // lalr1.cc:919
+  case 669:
+#line 2345 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
 }
-#line 3740 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3758 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
-  case 667:
-#line 2340 "dhcp6_parser.yy" // lalr1.cc:919
+  case 670:
+#line 2350 "dhcp6_parser.yy" // lalr1.cc:919
     {
     ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
 }
-#line 3749 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3767 "dhcp6_parser.cc" // lalr1.cc:919
     break;
 
 
-#line 3753 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3771 "dhcp6_parser.cc" // lalr1.cc:919
             default:
               break;
             }
@@ -4019,122 +4037,123 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp6Parser::yypact_ninf_ = -821;
+  const short Dhcp6Parser::yypact_ninf_ = -827;
 
   const signed char Dhcp6Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp6Parser::yypact_[] =
   {
-     337,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,    65,    55,    66,    90,
-     108,   110,   119,   125,   136,   169,   176,   177,   217,   245,
-     246,   247,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,    55,  -119,    28,    59,    25,   218,    64,   233,
-     350,    47,    30,   170,   -54,   456,   -73,   165,  -821,   258,
-     194,   262,   293,   267,  -821,  -821,  -821,  -821,  -821,   320,
-    -821,    71,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,   324,   346,   352,   354,   355,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,   360,  -821,  -821,  -821,  -821,
-      79,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,   361,  -821,    80,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,   362,   364,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,    86,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,   104,
-    -821,  -821,  -821,  -821,  -821,   380,  -821,   381,   386,  -821,
-    -821,  -821,  -821,  -821,  -821,   105,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,   340,   351,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,   370,  -821,  -821,   391,  -821,  -821,  -821,
-     394,  -821,  -821,   392,   396,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,   398,   401,
-    -821,  -821,  -821,  -821,   400,   403,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,   111,  -821,
-    -821,  -821,   405,  -821,  -821,   406,  -821,   409,   418,  -821,
-    -821,   419,   421,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-     120,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,   154,  -821,
-    -821,  -821,   155,  -821,  -821,  -821,    55,    55,  -821,   257,
-     424,   430,   432,   441,   447,  -821,    28,  -821,   448,   449,
-     450,   453,   459,   289,   294,   295,   296,   298,   460,   464,
-     466,   467,   468,   469,   471,   472,   474,   475,   476,   477,
-     478,   479,   480,   482,   483,   317,   503,   504,   505,    59,
-    -821,   506,   339,    25,  -821,   509,   510,   511,   512,   514,
-     348,   353,   519,   520,   521,   218,  -821,   523,    64,  -821,
-     524,   358,   526,   363,   365,   233,  -821,   527,   528,   531,
-     533,   534,   535,   536,  -821,   350,  -821,   537,   540,   375,
-     543,   544,   545,   377,  -821,    30,   547,   379,   382,  -821,
-     170,   549,   550,    51,  -821,   383,   553,   558,   393,   559,
-     395,   399,   561,   565,   402,   423,   567,   568,   569,   570,
-     456,  -821,   572,   -73,  -821,   587,   165,  -821,  -821,  -821,
-     590,   592,   593,    55,    55,    55,  -821,   594,   595,   596,
-     597,   600,  -821,  -821,  -821,  -821,  -821,   436,   602,   603,
-     604,   605,   440,   374,   606,   608,   609,   610,   611,   612,
-     614,   615,   616,   617,  -821,   618,   605,   620,  -821,   623,
-    -821,  -821,   624,   625,   446,   451,   452,  -821,  -821,   623,
-     461,   626,  -821,   462,  -821,   465,  -821,   470,  -821,  -821,
-    -821,   623,   623,   623,   473,   481,   484,   485,  -821,   486,
-     487,  -821,   488,   489,   490,  -821,  -821,   491,  -821,  -821,
-    -821,   492,    55,  -821,  -821,   493,   494,  -821,   495,  -821,
-    -821,    26,   498,  -821,  -821,    15,   496,   497,   499,  -821,
-     631,  -821,   632,  -821,    55,    59,   -73,  -821,  -821,  -821,
-     165,    25,   213,   213,   634,  -821,   635,   637,   638,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,   639,   -50,    55,
-     139,   556,   640,   641,   642,   229,    99,   138,  -821,   456,
-    -821,  -821,   643,   645,  -821,  -821,  -821,  -821,  -821,   -39,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,   646,   634,  -821,   164,   182,   191,
-     259,  -821,  -821,  -821,  -821,   664,   666,   667,   668,   669,
-    -821,   670,   671,  -821,   672,   673,   674,  -821,   260,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,   270,  -821,   633,
-     676,  -821,  -821,   675,   677,  -821,  -821,   678,   679,  -821,
-    -821,   680,   682,  -821,  -821,   681,   685,  -821,  -821,  -821,
-     167,  -821,  -821,  -821,   683,  -821,  -821,  -821,   190,  -821,
-    -821,  -821,  -821,   271,  -821,  -821,  -821,   297,  -821,  -821,
-     684,   688,  -821,  -821,   686,   690,  -821,   691,   692,   693,
-     694,   695,   696,   273,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,   697,   698,   699,  -821,  -821,  -821,  -821,
-     301,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,   304,  -821,  -821,  -821,   307,   513,  -821,   700,
-     701,  -821,  -821,   702,   704,  -821,  -821,  -821,   703,  -821,
-    -821,   333,  -821,   706,  -821,  -821,  -821,  -821,   705,   709,
-     710,   711,   539,   532,   546,   548,   551,   712,   552,   554,
-     714,   555,   557,   560,   213,  -821,  -821,   213,  -821,   634,
-     218,  -821,   635,    30,  -821,   637,   170,  -821,   638,   390,
-    -821,   639,   -50,  -821,  -821,   139,  -821,   715,   556,  -821,
-     121,   640,  -821,   350,  -821,   641,   -54,  -821,   642,   563,
-     564,   566,   571,   573,   574,   229,  -821,   716,   720,   575,
-     576,   577,    99,  -821,   723,   725,   138,  -821,  -821,  -821,
-     724,   728,    64,  -821,   643,   233,  -821,   645,   732,  -821,
-      44,   646,  -821,  -821,   397,   562,   579,   580,  -821,  -821,
-    -821,  -821,  -821,   581,  -821,  -821,   582,  -821,  -821,  -821,
-    -821,   308,  -821,   311,  -821,   730,  -821,   731,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,   315,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,   583,  -821,  -821,   736,  -821,  -821,  -821,  -821,  -821,
-     733,   740,  -821,  -821,  -821,  -821,  -821,   746,  -821,   318,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,   107,   585,
-    -821,  -821,  -821,  -821,   586,   588,  -821,  -821,   589,   319,
-    -821,   334,  -821,   591,  -821,   753,  -821,  -821,  -821,  -821,
-    -821,   335,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,   390,  -821,  -821,   756,   598,  -821,   121,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,   758,   613,   759,    44,  -821,  -821,   629,  -821,  -821,
-     689,  -821,   630,  -821,  -821,   757,  -821,  -821,   343,  -821,
-      -5,   757,  -821,  -821,   761,   763,   764,   344,  -821,  -821,
-    -821,  -821,  -821,  -821,   770,   628,   622,   644,    -5,  -821,
-     650,  -821,  -821,  -821,  -821,  -821
+     417,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,    44,    65,    50,    58,
+      66,    70,    78,   101,   111,   118,   122,   126,   138,   147,
+     158,   169,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,    65,  -120,    27,    69,    23,   237,   196,    36,
+     181,   137,    71,   200,   -37,   368,    54,   174,  -827,   197,
+     203,   224,   235,   242,  -827,  -827,  -827,  -827,  -827,   265,
+    -827,    42,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,   296,   298,   317,   319,   323,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,   345,  -827,  -827,  -827,
+    -827,    68,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,   355,  -827,   136,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,   361,
+     364,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,   165,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,   185,  -827,  -827,  -827,  -827,  -827,   365,  -827,   383,
+     387,  -827,  -827,  -827,  -827,  -827,  -827,   188,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,   334,   255,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,   343,  -827,  -827,   402,  -827,
+    -827,  -827,   405,  -827,  -827,   408,   328,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+     414,   415,  -827,  -827,  -827,  -827,   412,   419,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+     227,  -827,  -827,  -827,   421,  -827,  -827,   422,  -827,   424,
+     433,  -827,  -827,   444,   446,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,   238,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+     253,  -827,  -827,  -827,   256,  -827,  -827,  -827,    65,    65,
+    -827,   252,   447,   448,   449,   450,   451,  -827,    27,  -827,
+     454,   457,   460,   461,   462,   463,   297,   299,   300,   301,
+     304,   464,   466,   470,   473,   475,   476,   477,   478,   479,
+     480,   481,   483,   484,   485,   499,   500,   501,   336,   502,
+     503,   505,    69,  -827,   508,   339,    23,  -827,   510,   512,
+     513,   514,   515,   348,   349,   517,   520,   521,   237,  -827,
+     522,   196,  -827,   523,   356,   528,   362,   363,    36,  -827,
+     529,   532,   533,   536,   537,   538,   539,  -827,   181,  -827,
+     540,   541,   374,   545,   547,   548,   379,  -827,    71,   550,
+     381,   382,  -827,   200,   553,   554,   190,  -827,   386,   555,
+     558,   393,   563,   396,   398,   565,   567,   416,   418,   584,
+     585,   587,   589,   368,  -827,   590,    54,  -827,   591,   174,
+    -827,  -827,  -827,   592,   594,   595,    65,    65,    65,  -827,
+     428,   596,   597,   598,   599,   602,  -827,  -827,  -827,  -827,
+    -827,   437,   605,   606,   607,   608,   442,   366,   609,   611,
+     612,   613,   614,   615,   617,   618,   619,   620,  -827,   621,
+     608,   622,  -827,   625,  -827,  -827,   627,   628,   453,   465,
+     467,  -827,  -827,   625,   468,   630,  -827,   469,  -827,   471,
+    -827,   472,  -827,  -827,  -827,   625,   625,   625,   474,   482,
+     486,   487,  -827,   488,   489,  -827,   490,   491,   492,  -827,
+    -827,   493,  -827,  -827,  -827,   494,    65,  -827,  -827,   495,
+     496,  -827,   497,  -827,  -827,   176,   498,  -827,  -827,   -34,
+     504,   506,   507,  -827,   629,  -827,   636,  -827,    65,    69,
+      54,  -827,  -827,  -827,  -827,   174,    23,   184,   184,   637,
+    -827,   639,   640,   641,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,   642,   -52,    65,   139,   542,   643,   644,   645,
+      57,   112,    12,  -827,   368,  -827,  -827,   647,   648,  -827,
+    -827,  -827,  -827,  -827,   -49,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,   649,
+     637,  -827,   283,   284,   285,   293,  -827,  -827,  -827,  -827,
+     665,   666,   667,   668,   669,  -827,   670,   672,  -827,   675,
+     676,   677,  -827,   310,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,   311,  -827,   678,   616,  -827,  -827,   679,   680,
+    -827,  -827,   681,   683,  -827,  -827,   682,   686,  -827,  -827,
+     684,   688,  -827,  -827,  -827,   140,  -827,  -827,  -827,   687,
+    -827,  -827,  -827,   163,  -827,  -827,  -827,  -827,   312,  -827,
+    -827,  -827,   189,  -827,  -827,   689,   691,  -827,  -827,   690,
+     694,  -827,   695,   696,   697,   698,   699,   700,   321,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,   701,   702,
+     703,  -827,  -827,  -827,  -827,   327,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,   331,  -827,  -827,
+    -827,   335,   511,  -827,   692,   705,  -827,  -827,   704,   706,
+    -827,  -827,  -827,   707,  -827,  -827,   254,  -827,   708,  -827,
+    -827,  -827,  -827,   709,   712,   713,   714,   549,   518,   551,
+     546,   552,   715,   556,   557,   718,   559,   560,   561,   184,
+    -827,  -827,   184,  -827,   637,   237,  -827,   639,    71,  -827,
+     640,   200,  -827,   641,   390,  -827,   642,   -52,  -827,  -827,
+     139,  -827,   721,   542,  -827,   250,   643,  -827,   181,  -827,
+     644,   -37,  -827,   645,   562,   564,   566,   568,   569,   570,
+      57,  -827,   722,   723,   571,   572,   573,   112,  -827,   726,
+     729,    12,  -827,  -827,  -827,   731,   736,   196,  -827,   647,
+      36,  -827,   648,   742,  -827,    26,   649,  -827,  -827,   423,
+     576,   577,   578,  -827,  -827,  -827,  -827,  -827,   579,  -827,
+    -827,   580,  -827,  -827,  -827,  -827,   337,  -827,   338,  -827,
+     744,  -827,   745,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,   354,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,   583,  -827,  -827,   751,
+    -827,  -827,  -827,  -827,  -827,   748,   754,  -827,  -827,  -827,
+    -827,  -827,   750,  -827,   358,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,   302,   588,  -827,  -827,  -827,  -827,   593,
+     601,  -827,  -827,   633,   378,  -827,   385,  -827,   634,  -827,
+     756,  -827,  -827,  -827,  -827,  -827,   395,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,   390,  -827,  -827,   757,
+     624,  -827,   250,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,   758,   604,   759,    26,
+    -827,  -827,   635,  -827,  -827,   760,  -827,   654,  -827,  -827,
+     761,  -827,  -827,   347,  -827,     5,   761,  -827,  -827,   762,
+     763,   765,   397,  -827,  -827,  -827,  -827,  -827,  -827,   766,
+     646,   656,   660,     5,  -827,   674,  -827,  -827,  -827,  -827,
+    -827
   };
 
   const unsigned short
@@ -4144,155 +4163,157 @@ namespace isc { namespace dhcp {
       20,    22,    24,    26,    28,    30,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     1,    47,    40,    36,    35,    32,    33,    34,
-      39,     3,    37,    38,    60,     5,    72,     7,   117,     9,
-     258,    11,   404,    13,   429,    15,   459,    17,   329,    19,
-     337,    21,   374,    23,   223,    25,   558,    27,   628,    29,
-     619,    31,    49,    43,     0,     0,     0,     0,     0,     0,
-     461,     0,   339,   376,     0,     0,     0,     0,    51,     0,
-      50,     0,     0,    44,    70,   626,   611,   613,   615,     0,
-      69,     0,    62,    64,    66,    67,    68,    65,   617,   115,
-     129,   131,   133,     0,     0,     0,     0,     0,   113,   250,
-     327,   366,   417,   419,   292,   300,   196,   213,   204,   189,
-     496,   451,   215,   234,   517,     0,   541,   554,   556,   107,
-       0,    74,    76,    77,    78,    79,    80,   105,    83,    84,
-      85,    86,   102,    87,    89,    88,    93,    94,    81,   106,
-      82,    91,    92,   100,   101,   103,    90,    95,    96,    97,
-      98,    99,   104,   126,     0,   125,     0,   119,   121,   122,
-     123,   124,   396,   421,   282,   284,   286,     0,     0,   290,
-     288,   490,   281,   262,   263,   264,   265,     0,   260,   269,
-     270,   271,   274,   275,   277,   272,   273,   266,   267,   279,
-     280,   268,   276,   278,   415,   414,   410,   411,   409,     0,
-     406,   408,   412,   413,   444,     0,   447,     0,     0,   443,
-     437,   438,   436,   441,   442,     0,   431,   433,   434,   439,
-     440,   435,   488,   476,   478,   480,   482,   484,   486,   475,
-     472,   473,   474,     0,   462,   463,   467,   468,   465,   469,
-     470,   471,   466,     0,   356,   174,     0,   360,   358,   363,
-       0,   352,   353,     0,   340,   341,   343,   355,   344,   345,
-     346,   362,   347,   348,   349,   350,   351,   390,     0,     0,
-     388,   389,   392,   393,     0,   377,   378,   380,   381,   382,
-     383,   384,   385,   386,   387,   230,   232,   227,     0,   225,
-     228,   229,     0,   581,   583,     0,   586,     0,     0,   590,
-     594,     0,     0,   598,   605,   607,   609,   579,   577,   578,
-       0,   560,   562,   563,   564,   565,   566,   567,   568,   569,
-     570,   571,   572,   573,   574,   575,   576,   633,     0,   630,
-     632,   624,     0,   621,   623,    48,     0,     0,    41,     0,
-       0,     0,     0,     0,     0,    59,     0,    61,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      39,     3,    37,    38,    60,     5,    72,     7,   120,     9,
+     261,    11,   407,    13,   432,    15,   462,    17,   332,    19,
+     340,    21,   377,    23,   226,    25,   561,    27,   631,    29,
+     622,    31,    49,    43,     0,     0,     0,     0,     0,     0,
+     464,     0,   342,   379,     0,     0,     0,     0,    51,     0,
+      50,     0,     0,    44,    70,   629,   614,   616,   618,     0,
+      69,     0,    62,    64,    66,    67,    68,    65,   109,   620,
+     118,   132,   134,   136,     0,     0,     0,     0,     0,   116,
+     253,   330,   369,   420,   422,   295,   303,   199,   216,   207,
+     192,   499,   454,   218,   237,   520,     0,   544,   557,   559,
+     108,     0,    74,    76,    77,    78,    79,    80,    81,   106,
+      84,    85,    86,    87,   103,    88,    90,    89,    94,    95,
+      82,   107,    83,    92,    93,   101,   102,   104,    91,    96,
+      97,    98,    99,   100,   105,   129,     0,   128,     0,   122,
+     124,   125,   126,   127,   399,   424,   285,   287,   289,     0,
+       0,   293,   291,   493,   284,   265,   266,   267,   268,     0,
+     263,   272,   273,   274,   277,   278,   280,   275,   276,   269,
+     270,   282,   283,   271,   279,   281,   418,   417,   413,   414,
+     412,     0,   409,   411,   415,   416,   447,     0,   450,     0,
+       0,   446,   440,   441,   439,   444,   445,     0,   434,   436,
+     437,   442,   443,   438,   491,   479,   481,   483,   485,   487,
+     489,   478,   475,   476,   477,     0,   465,   466,   470,   471,
+     468,   472,   473,   474,   469,     0,   359,   177,     0,   363,
+     361,   366,     0,   355,   356,     0,   343,   344,   346,   358,
+     347,   348,   349,   365,   350,   351,   352,   353,   354,   393,
+       0,     0,   391,   392,   395,   396,     0,   380,   381,   383,
+     384,   385,   386,   387,   388,   389,   390,   233,   235,   230,
+       0,   228,   231,   232,     0,   584,   586,     0,   589,     0,
+       0,   593,   597,     0,     0,   601,   608,   610,   612,   582,
+     580,   581,     0,   563,   565,   566,   567,   568,   569,   570,
+     571,   572,   573,   574,   575,   576,   577,   578,   579,   636,
+       0,   633,   635,   627,     0,   624,   626,    48,     0,     0,
+      41,     0,     0,     0,     0,     0,     0,    59,     0,    61,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      73,     0,     0,     0,   118,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   259,     0,     0,   405,
-       0,     0,     0,     0,     0,     0,   430,     0,     0,     0,
-       0,     0,     0,     0,   460,     0,   330,     0,     0,     0,
-       0,     0,     0,     0,   338,     0,     0,     0,     0,   375,
-       0,     0,     0,     0,   224,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   559,     0,     0,   629,     0,     0,   620,    52,    45,
-       0,     0,     0,     0,     0,     0,    63,     0,     0,     0,
-       0,     0,   108,   109,   110,   111,   112,     0,     0,     0,
+       0,     0,     0,    73,     0,     0,     0,   121,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   262,
+       0,     0,   408,     0,     0,     0,     0,     0,     0,   433,
+       0,     0,     0,     0,     0,     0,     0,   463,     0,   333,
+       0,     0,     0,     0,     0,     0,     0,   341,     0,     0,
+       0,     0,   378,     0,     0,     0,     0,   227,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   540,     0,     0,     0,    75,     0,
-     128,   120,     0,     0,     0,     0,     0,   298,   299,     0,
-       0,     0,   261,     0,   407,     0,   446,     0,   449,   450,
-     432,     0,     0,     0,     0,     0,     0,     0,   464,     0,
-       0,   354,     0,     0,     0,   365,   342,     0,   394,   395,
-     379,     0,     0,   226,   580,     0,     0,   585,     0,   588,
-     589,     0,     0,   596,   597,     0,     0,     0,     0,   561,
-       0,   631,     0,   622,     0,     0,     0,   612,   614,   616,
-       0,     0,     0,     0,   135,   114,   252,   331,   368,    42,
-     418,   420,   294,   295,   296,   297,   293,   302,     0,    49,
-       0,     0,     0,   453,   217,     0,     0,     0,   555,     0,
-      53,   127,   398,   423,   283,   285,   287,   291,   289,     0,
-     416,   445,   448,   489,   477,   479,   481,   483,   485,   487,
-     357,   175,   361,   359,   364,   391,   231,   233,   582,   584,
-     587,   592,   593,   591,   595,   600,   601,   602,   603,   604,
-     599,   606,   608,   610,     0,   135,    46,     0,     0,     0,
-       0,   161,   167,   169,   171,     0,     0,     0,     0,     0,
-     184,     0,     0,   187,     0,     0,     0,   160,     0,   141,
-     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
-     155,   156,   157,   158,   153,   154,   159,     0,   139,     0,
-     136,   137,   256,     0,   253,   254,   335,     0,   332,   333,
-     372,     0,   369,   370,   306,     0,   303,   304,   202,   203,
-       0,   198,   200,   201,     0,   211,   212,   208,     0,   206,
-     209,   210,   194,     0,   191,   193,   500,     0,   498,   457,
-       0,   454,   455,   221,     0,   218,   219,     0,     0,     0,
-       0,     0,     0,     0,   236,   238,   239,   240,   241,   242,
-     243,   530,   536,     0,     0,     0,   529,   526,   527,   528,
-       0,   519,   521,   524,   522,   523,   525,   550,   552,   549,
-     547,   548,     0,   543,   545,   546,     0,    55,   402,     0,
-     399,   400,   427,     0,   424,   425,   494,   493,     0,   492,
-     637,     0,   635,     0,    71,   627,   618,   116,     0,     0,
+       0,     0,     0,     0,   562,     0,     0,   632,     0,     0,
+     623,    52,    45,     0,     0,     0,     0,     0,     0,    63,
+       0,     0,     0,     0,     0,     0,   111,   112,   113,   114,
+     115,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   543,     0,
+       0,     0,    75,     0,   131,   123,     0,     0,     0,     0,
+       0,   301,   302,     0,     0,     0,   264,     0,   410,     0,
+     449,     0,   452,   453,   435,     0,     0,     0,     0,     0,
+       0,     0,   467,     0,     0,   357,     0,     0,     0,   368,
+     345,     0,   397,   398,   382,     0,     0,   229,   583,     0,
+       0,   588,     0,   591,   592,     0,     0,   599,   600,     0,
+       0,     0,     0,   564,     0,   634,     0,   625,     0,     0,
+       0,   615,   617,   619,   110,     0,     0,     0,     0,   138,
+     117,   255,   334,   371,    42,   421,   423,   297,   298,   299,
+     300,   296,   305,     0,    49,     0,     0,     0,   456,   220,
+       0,     0,     0,   558,     0,    53,   130,   401,   426,   286,
+     288,   290,   294,   292,     0,   419,   448,   451,   492,   480,
+     482,   484,   486,   488,   490,   360,   178,   364,   362,   367,
+     394,   234,   236,   585,   587,   590,   595,   596,   594,   598,
+     603,   604,   605,   606,   607,   602,   609,   611,   613,     0,
+     138,    46,     0,     0,     0,     0,   164,   170,   172,   174,
+       0,     0,     0,     0,     0,   187,     0,     0,   190,     0,
+       0,     0,   163,     0,   144,   146,   147,   148,   149,   150,
+     151,   152,   153,   154,   155,   158,   159,   160,   161,   156,
+     157,   162,     0,   142,     0,   139,   140,   259,     0,   256,
+     257,   338,     0,   335,   336,   375,     0,   372,   373,   309,
+       0,   306,   307,   205,   206,     0,   201,   203,   204,     0,
+     214,   215,   211,     0,   209,   212,   213,   197,     0,   194,
+     196,   503,     0,   501,   460,     0,   457,   458,   224,     0,
+     221,   222,     0,     0,     0,     0,     0,     0,     0,   239,
+     241,   242,   243,   244,   245,   246,   533,   539,     0,     0,
+       0,   532,   529,   530,   531,     0,   522,   524,   527,   525,
+     526,   528,   553,   555,   552,   550,   551,     0,   546,   548,
+     549,     0,    55,   405,     0,   402,   403,   430,     0,   427,
+     428,   497,   496,     0,   495,   640,     0,   638,     0,    71,
+     630,   621,   119,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   130,   132,     0,   134,     0,
-       0,   251,     0,   339,   328,     0,   376,   367,     0,     0,
-     301,     0,     0,   197,   214,     0,   205,     0,     0,   190,
-     502,     0,   497,   461,   452,     0,     0,   216,     0,     0,
-       0,     0,     0,     0,     0,     0,   235,     0,     0,     0,
-       0,     0,     0,   518,     0,     0,     0,   542,   557,    57,
-       0,    56,     0,   397,     0,     0,   422,     0,     0,   491,
-       0,     0,   634,   625,     0,     0,     0,     0,   173,   176,
-     177,   178,   179,     0,   186,   180,     0,   181,   182,   183,
-     142,     0,   138,     0,   255,     0,   334,     0,   371,   326,
-     321,   323,   314,   315,   310,   311,   312,   313,   319,   320,
-     318,   322,     0,   308,   316,   324,   325,   317,   305,   199,
-     207,     0,   192,   514,     0,   512,   513,   509,   510,   511,
-       0,   503,   504,   506,   507,   508,   499,     0,   456,     0,
-     220,   244,   245,   246,   247,   248,   249,   237,     0,     0,
-     535,   538,   539,   520,     0,     0,   544,    54,     0,     0,
-     401,     0,   426,     0,   651,     0,   649,   647,   641,   645,
-     646,     0,   639,   643,   644,   642,   636,   163,   164,   165,
-     166,   162,   168,   170,   172,   185,   188,   140,   257,   336,
-     373,     0,   307,   195,     0,     0,   501,     0,   458,   222,
-     532,   533,   534,   531,   537,   551,   553,    58,   403,   428,
-     495,     0,     0,     0,     0,   638,   309,     0,   516,   505,
-       0,   648,     0,   640,   515,     0,   650,   655,     0,   653,
-       0,     0,   652,   663,     0,     0,     0,     0,   657,   659,
-     660,   661,   662,   654,     0,     0,     0,     0,     0,   656,
-       0,   665,   666,   667,   658,   664
+     133,   135,     0,   137,     0,     0,   254,     0,   342,   331,
+       0,   379,   370,     0,     0,   304,     0,     0,   200,   217,
+       0,   208,     0,     0,   193,   505,     0,   500,   464,   455,
+       0,     0,   219,     0,     0,     0,     0,     0,     0,     0,
+       0,   238,     0,     0,     0,     0,     0,     0,   521,     0,
+       0,     0,   545,   560,    57,     0,    56,     0,   400,     0,
+       0,   425,     0,     0,   494,     0,     0,   637,   628,     0,
+       0,     0,     0,   176,   179,   180,   181,   182,     0,   189,
+     183,     0,   184,   185,   186,   145,     0,   141,     0,   258,
+       0,   337,     0,   374,   329,   324,   326,   317,   318,   313,
+     314,   315,   316,   322,   323,   321,   325,     0,   311,   319,
+     327,   328,   320,   308,   202,   210,     0,   195,   517,     0,
+     515,   516,   512,   513,   514,     0,   506,   507,   509,   510,
+     511,   502,     0,   459,     0,   223,   247,   248,   249,   250,
+     251,   252,   240,     0,     0,   538,   541,   542,   523,     0,
+       0,   547,    54,     0,     0,   404,     0,   429,     0,   654,
+       0,   652,   650,   644,   648,   649,     0,   642,   646,   647,
+     645,   639,   166,   167,   168,   169,   165,   171,   173,   175,
+     188,   191,   143,   260,   339,   376,     0,   310,   198,     0,
+       0,   504,     0,   461,   225,   535,   536,   537,   534,   540,
+     554,   556,    58,   406,   431,   498,     0,     0,     0,     0,
+     641,   312,     0,   519,   508,     0,   651,     0,   643,   518,
+       0,   653,   658,     0,   656,     0,     0,   655,   666,     0,
+       0,     0,     0,   660,   662,   663,   664,   665,   657,     0,
+       0,     0,     0,     0,   659,     0,   668,   669,   670,   661,
+     667
   };
 
   const short
   Dhcp6Parser::yypgoto_[] =
   {
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,     6,  -821,  -453,
-    -821,   265,  -821,  -821,  -821,  -821,   174,  -821,  -408,  -821,
-    -821,  -821,   -74,  -821,  -821,  -821,   443,  -821,  -821,  -821,
-    -821,   211,   411,   -62,   -46,   -45,   -43,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,   220,   420,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,   149,  -821,   -12,  -821,  -565,
-      -3,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,   -70,  -821,  -600,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,   -26,
-    -821,  -821,  -821,  -821,  -821,   -19,  -584,  -821,  -821,  -821,
-    -821,   -20,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-     -28,  -821,  -821,  -821,   -25,   404,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,   -31,  -821,  -821,  -821,  -821,  -821,  -821,
-    -820,  -821,  -821,  -821,     1,  -821,  -821,  -821,     5,   431,
-    -821,  -821,  -819,  -821,  -816,  -821,   -36,  -821,   -32,  -821,
-     -42,  -821,  -821,  -821,  -813,  -821,  -821,  -821,  -821,    -4,
-    -821,  -821,  -173,   769,  -821,  -821,  -821,  -821,  -821,     8,
-    -821,  -821,  -821,    11,  -821,   410,  -821,   -76,  -821,  -821,
-    -821,  -821,  -821,   -69,  -821,  -821,  -821,  -821,  -821,   -11,
-    -821,  -821,  -821,     3,  -821,  -821,  -821,    18,  -821,   415,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,   -33,  -821,  -821,  -821,   -23,   454,  -821,  -821,   -58,
-    -821,   -24,  -821,  -821,  -821,  -821,  -821,   -30,  -821,  -821,
-    -821,   -29,   445,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-     -60,  -821,  -821,  -821,     9,  -821,  -821,  -821,    10,  -821,
-     442,   249,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -812,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,    14,  -821,  -821,  -821,  -148,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,    -2,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,    -1,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,   263,
-     413,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,  -821,
-    -821,  -821,  -821,  -821,  -821,  -821,  -821,   299,   412,  -821,
-    -821,  -821,  -821,  -821,  -821,   300,   414,  -821,  -821,  -821,
-     -10,  -821,  -821,  -154,  -821,  -821,  -821,  -821,  -821,  -821,
-    -169,  -821,  -821,  -185,  -821,  -821,  -821,  -821,  -821
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,    43,  -827,  -456,
+    -827,   191,  -827,  -827,  -827,  -827,    98,  -827,  -451,  -827,
+    -827,  -827,   -74,  -827,  -827,  -827,   411,  -827,  -827,  -827,
+    -827,   199,   371,  -827,  -827,   -62,   -46,   -45,   -43,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,   193,   380,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,   131,  -827,   -30,
+    -827,  -572,   -23,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,   -70,  -827,  -605,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,   -48,  -827,  -827,  -827,  -827,  -827,   -38,  -592,  -827,
+    -827,  -827,  -827,   -22,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,   -33,  -827,  -827,  -827,   -35,   392,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,   -31,  -827,  -827,  -827,  -827,
+    -827,  -827,  -826,  -827,  -827,  -827,   -10,  -827,  -827,  -827,
+       1,   432,  -827,  -827,  -825,  -827,  -824,  -827,   -36,  -827,
+     -32,  -827,   -42,  -827,  -827,  -827,  -821,  -827,  -827,  -827,
+    -827,    -5,  -827,  -827,  -174,   772,  -827,  -827,  -827,  -827,
+    -827,     6,  -827,  -827,  -827,     7,  -827,   410,  -827,   -76,
+    -827,  -827,  -827,  -827,  -827,   -69,  -827,  -827,  -827,  -827,
+    -827,   -11,  -827,  -827,  -827,     9,  -827,  -827,  -827,     8,
+    -827,   407,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,   -29,  -827,  -827,  -827,   -28,   445,  -827,
+    -827,   -58,  -827,   -24,  -827,  -827,  -827,  -827,  -827,   -27,
+    -827,  -827,  -827,   -26,   443,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,   -60,  -827,  -827,  -827,     2,  -827,  -827,  -827,
+      10,  -827,   439,   245,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -818,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,    14,  -827,  -827,  -827,  -150,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,    -4,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+      -7,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,   261,   420,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,
+    -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,  -827,   292,
+     409,  -827,  -827,  -827,  -827,  -827,  -827,   305,   425,  -827,
+    -827,  -827,   -16,  -827,  -827,  -158,  -827,  -827,  -827,  -827,
+    -827,  -827,  -172,  -827,  -827,  -191,  -827,  -827,  -827,  -827,
+    -827
   };
 
   const short
@@ -4300,445 +4321,448 @@ namespace isc { namespace dhcp {
   {
       -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    88,    41,    42,
-      73,   600,    92,    93,    43,    72,    89,    90,   621,   797,
-     890,   891,   687,    45,    74,   101,   102,   103,   360,    47,
-      75,   140,   141,   142,   143,   144,   145,   146,   147,   378,
-     148,   369,    49,    76,   176,   177,   178,   401,   179,   149,
-     370,   150,   371,   151,   372,   709,   710,   711,   837,   688,
-     689,   690,   818,  1011,   691,   819,   692,   820,   693,   821,
-     694,   695,   438,   696,   697,   698,   699,   700,   701,   702,
-     703,   704,   827,   705,   706,   830,   152,   389,   743,   744,
-     745,   857,   153,   386,   730,   731,   732,   733,   154,   388,
-     738,   739,   740,   741,   155,   387,   156,   392,   754,   755,
-     756,   866,    65,    84,   308,   309,   310,   451,   311,   452,
-     157,   393,   763,   764,   765,   766,   767,   768,   769,   770,
-     158,   379,   713,   714,   715,   840,    51,    77,   197,   198,
-     199,   407,   200,   408,   201,   409,   202,   413,   203,   412,
-     159,   384,   606,   205,   206,   160,   385,   725,   726,   727,
-     849,   942,   943,   161,   380,    59,    81,   717,   718,   719,
-     843,    61,    82,   273,   274,   275,   276,   277,   278,   279,
-     437,   280,   441,   281,   440,   282,   283,   442,   284,   162,
-     381,   721,   722,   723,   846,    63,    83,   294,   295,   296,
-     297,   298,   446,   299,   300,   301,   302,   208,   405,   799,
-     800,   801,   892,    53,    78,   219,   220,   221,   417,   163,
-     382,   164,   383,   211,   406,   803,   804,   805,   895,    55,
-      79,   235,   236,   237,   420,   238,   239,   422,   240,   241,
-     165,   391,   750,   751,   752,   863,    57,    80,   253,   254,
-     255,   256,   428,   257,   429,   258,   430,   259,   431,   260,
-     432,   261,   433,   262,   427,   213,   414,   808,   809,   898,
-     166,   390,   747,   748,   860,   960,   961,   962,   963,   964,
-    1024,   965,   167,   394,   780,   781,   782,   877,  1033,   783,
-     784,   878,   785,   786,   168,   169,   396,   792,   793,   794,
-     884,   795,   885,   170,   397,   171,   398,    67,    85,   330,
-     331,   332,   333,   456,   334,   457,   335,   336,   459,   337,
-     338,   339,   462,   653,   340,   463,   341,   342,   343,   466,
-     660,   344,   467,   345,   468,   346,   469,   104,   362,   105,
-     363,   106,   364,   172,   368,    71,    87,   352,   353,   354,
-     475,   107,   361,    69,    86,   348,   349,   350,   472,   811,
-     812,   900,  1001,  1002,  1003,  1004,  1043,  1005,  1041,  1058,
-    1059,  1060,  1067,  1068,  1069,  1074,  1070,  1071,  1072
+      73,   605,    92,    93,    43,    72,    89,    90,   626,   802,
+     895,   896,   692,    45,    74,   101,   102,   103,   362,    47,
+      75,   141,   142,   143,   370,   144,   145,   146,   147,   148,
+     149,   381,   150,   372,    49,    76,   178,   179,   180,   404,
+     181,   151,   373,   152,   374,   153,   375,   714,   715,   716,
+     842,   693,   694,   695,   823,  1016,   696,   824,   697,   825,
+     698,   826,   699,   700,   441,   701,   702,   703,   704,   705,
+     706,   707,   708,   709,   832,   710,   711,   835,   154,   392,
+     748,   749,   750,   862,   155,   389,   735,   736,   737,   738,
+     156,   391,   743,   744,   745,   746,   157,   390,   158,   395,
+     759,   760,   761,   871,    65,    84,   310,   311,   312,   454,
+     313,   455,   159,   396,   768,   769,   770,   771,   772,   773,
+     774,   775,   160,   382,   718,   719,   720,   845,    51,    77,
+     199,   200,   201,   410,   202,   411,   203,   412,   204,   416,
+     205,   415,   161,   387,   611,   207,   208,   162,   388,   730,
+     731,   732,   854,   947,   948,   163,   383,    59,    81,   722,
+     723,   724,   848,    61,    82,   275,   276,   277,   278,   279,
+     280,   281,   440,   282,   444,   283,   443,   284,   285,   445,
+     286,   164,   384,   726,   727,   728,   851,    63,    83,   296,
+     297,   298,   299,   300,   449,   301,   302,   303,   304,   210,
+     408,   804,   805,   806,   897,    53,    78,   221,   222,   223,
+     420,   165,   385,   166,   386,   213,   409,   808,   809,   810,
+     900,    55,    79,   237,   238,   239,   423,   240,   241,   425,
+     242,   243,   167,   394,   755,   756,   757,   868,    57,    80,
+     255,   256,   257,   258,   431,   259,   432,   260,   433,   261,
+     434,   262,   435,   263,   436,   264,   430,   215,   417,   813,
+     814,   903,   168,   393,   752,   753,   865,   965,   966,   967,
+     968,   969,  1029,   970,   169,   397,   785,   786,   787,   882,
+    1038,   788,   789,   883,   790,   791,   170,   171,   399,   797,
+     798,   799,   889,   800,   890,   172,   400,   173,   401,    67,
+      85,   332,   333,   334,   335,   459,   336,   460,   337,   338,
+     462,   339,   340,   341,   465,   658,   342,   466,   343,   344,
+     345,   469,   665,   346,   470,   347,   471,   348,   472,   104,
+     364,   105,   365,   106,   366,   174,   371,    71,    87,   354,
+     355,   356,   478,   107,   363,    69,    86,   350,   351,   352,
+     475,   816,   817,   905,  1006,  1007,  1008,  1009,  1048,  1010,
+    1046,  1063,  1064,  1065,  1072,  1073,  1074,  1079,  1075,  1076,
+    1077
   };
 
   const unsigned short
   Dhcp6Parser::yytable_[] =
   {
-     100,   139,   175,   192,   215,   229,   249,   292,   271,   290,
-     307,   327,   272,   291,   293,   193,   777,   212,   180,   209,
-     222,   233,   251,    40,   285,   303,   737,   328,   707,   935,
-     936,   194,   195,   937,   196,   204,   941,   947,    94,   173,
-     174,   728,   216,   230,   305,   306,   217,   231,   599,   264,
-     243,    91,   181,   210,   223,   234,   252,   806,   286,   304,
-      33,   329,    34,   599,    35,    32,   207,   218,   232,   250,
-     108,   347,   109,    44,   366,   110,   111,   112,   265,   367,
-     266,   267,   399,   403,   268,   269,   270,   400,   404,   415,
-     122,   123,   265,   120,   416,   122,   123,    46,   113,   114,
-     115,   116,   117,   118,   119,   120,   121,   418,   425,   122,
-     123,   121,   419,   426,   453,    48,    99,    50,   771,   454,
-     729,   627,   214,   470,   122,   123,    52,   676,   471,   122,
-     123,   124,    54,   633,   634,   635,   125,   126,   127,   128,
-     129,  1063,   130,    56,  1064,  1065,  1066,   131,   189,   305,
-     306,   190,   655,   656,   657,   658,   132,   473,   476,   133,
-     651,   652,   474,   477,   122,   123,   134,   399,   121,   265,
-     852,    95,   814,   853,   135,   136,    58,   351,   137,   138,
-      96,    97,    98,    60,    62,   473,   122,   123,   659,   994,
-     815,   995,   996,   855,   476,    99,   856,   356,    99,   816,
-      99,   935,   936,   122,   123,   937,   953,   954,   941,   947,
-     772,   773,   774,   775,    99,  1030,  1031,  1032,   265,   287,
-     266,   267,   288,   289,    64,    36,    37,    38,    39,    99,
-     728,   735,   671,   736,    99,   122,   123,   672,   673,   674,
-     675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
-     685,   686,    66,    68,    70,   787,   788,   113,   114,   115,
-     116,   265,   403,   834,   355,   121,   357,   817,   835,    99,
-     359,   737,   921,   834,   858,   182,   875,   183,   836,   859,
-     121,   876,   777,   122,   123,   184,   185,   186,   187,   188,
-     124,    99,   100,   224,   225,   226,   227,   228,   122,   123,
-     861,   358,   189,   862,   882,   190,   131,   886,    99,   883,
-     470,   834,   887,   191,   415,   888,  1017,   189,  1021,  1018,
-     190,   453,   418,  1022,   365,   139,  1029,  1038,   373,   175,
-     757,   758,   759,   760,   761,   762,   901,   425,  1044,   902,
-      99,   192,  1039,  1045,   215,   180,  1061,  1078,   434,  1062,
-     374,   229,  1079,   193,   435,   212,   375,   209,   376,   377,
-     222,   249,   478,   479,   395,   402,   410,   233,   411,   194,
-     195,   271,   196,   204,   292,   272,   290,   251,   436,   181,
-     291,   293,   216,    99,   421,   423,   217,   285,    99,   230,
-     424,   210,   303,   231,   223,   439,   327,   121,   443,   445,
-     444,   234,   447,    99,   207,   448,   450,   218,   449,   455,
-     458,   252,   328,   460,   232,   122,   123,  1007,  1008,  1009,
-    1010,   286,   461,   464,   250,   465,   304,   480,   481,   113,
-     114,   115,   116,   242,   482,   119,   483,   121,   265,   243,
-     244,   245,   246,   247,   248,   484,   329,   602,   603,   604,
-     605,   485,   487,   488,   489,   122,   123,   490,   185,   186,
-     492,   188,   124,   491,   497,   493,   494,   495,   498,   496,
-     499,   500,   501,   502,   189,   503,   504,   190,   505,   506,
-     507,   508,   509,   510,   511,   191,   512,   513,   514,   587,
-     588,   589,     1,     2,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,   515,   516,   517,
-     519,   139,   520,   522,   523,   524,   525,   175,   526,   527,
-      99,   122,   123,   529,   530,   531,   528,   533,   535,   536,
-     537,   541,   542,   180,   538,   543,   539,   544,   545,   546,
-     547,   549,   776,   789,   550,   327,   551,   552,   553,   554,
-     555,   557,   558,   561,   562,   559,   564,   565,   778,   790,
-      99,   328,   566,   568,   567,   571,   569,   181,   647,   572,
-     570,   575,   576,   577,   578,   573,   580,   312,   313,   314,
-     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
-     666,   582,   779,   791,   584,   329,   574,   325,   326,   585,
-     586,   590,   591,   592,   593,   594,   595,   596,   597,   598,
-     601,   607,    34,   608,   609,   610,   624,   612,   611,   613,
-     614,   625,   626,   615,   616,   617,    99,   619,   620,   622,
-     623,   628,   630,   629,   654,   631,   664,   665,   742,   838,
-     632,   708,   712,   636,   716,   720,   724,   746,   749,   753,
-     798,   637,   802,   810,   638,   639,   640,   641,   642,   643,
-     644,   645,   646,   648,   649,   650,   661,   662,   822,   663,
-     823,   824,   825,   826,   828,   829,   831,   832,   833,   839,
-     842,   841,   845,   889,   844,   848,   847,   850,   851,   854,
-     864,   865,   867,   868,  1055,   869,   870,   871,   872,   873,
-     874,   879,   880,   881,   894,   909,   893,   897,   896,   904,
-     908,   899,   903,   905,   906,   907,   913,   910,   916,   951,
-     978,   911,   912,   914,   979,   915,   917,   984,   918,   985,
-     987,   988,  1012,   919,   971,   972,   993,   973,  1019,  1020,
-    1025,  1026,   974,  1027,   975,   976,   980,   981,   982,  1013,
-    1014,  1015,  1016,  1023,  1028,  1034,  1035,  1042,  1036,  1037,
-    1047,  1040,  1050,  1052,  1057,  1075,   192,  1076,  1077,   271,
-     292,  1048,   290,   272,  1080,   929,   291,   293,   193,   934,
-     212,   618,   209,   734,  1051,   285,   955,   930,   303,   249,
-     956,   945,   307,  1082,   194,   195,   667,   196,   204,  1054,
-    1056,  1081,   958,   931,   932,   251,   933,   940,   776,   486,
-     518,   670,   789,   938,   813,  1083,   210,   939,   215,   286,
-    1085,   229,   304,   521,   778,   946,   997,   922,   790,   207,
-     998,   920,   952,   949,   222,   950,   959,   233,   944,   252,
-     970,   969,   999,   924,   977,   923,   532,   948,  1046,   957,
-     263,   928,   250,   926,   925,   556,   216,   563,   779,   230,
-     217,   990,   791,   231,   927,   560,   991,   992,   223,   989,
-     540,   234,   534,   967,   968,   966,  1000,   548,   807,  1049,
-     983,   218,   796,   579,   232,   986,   668,   581,   583,   669,
-    1053,  1006,  1073,  1084,     0,     0,     0,     0,     0,     0,
+     100,   140,   177,   194,   217,   231,   251,   294,   273,   292,
+     309,   329,   274,   293,   295,   195,   782,   214,   182,   211,
+     224,   235,   253,   742,   287,   305,   712,   330,   940,   941,
+     942,   196,   197,   946,   198,   206,   952,    94,   175,   176,
+     733,   245,   218,   232,    32,   368,   219,   233,   811,   604,
+     369,    91,   183,   212,   225,   236,   254,    44,   288,   306,
+      40,   331,   307,   308,   604,    46,   209,   220,   234,   252,
+      33,   402,    34,    48,    35,   267,   403,    50,   123,   124,
+     108,   109,   632,   110,   122,    52,   111,   112,   113,   123,
+     124,   266,   123,   124,   638,   639,   640,   226,   227,   228,
+     229,   230,   123,   124,   660,   661,   662,   663,    54,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,    56,   734,
+     267,   191,   268,   269,   192,    58,   270,   271,   272,    60,
+     792,   793,   776,    62,    99,   123,   124,   123,   124,   406,
+     664,   681,   125,   857,   407,    64,   858,   126,   127,   128,
+     129,   130,  1068,   131,    66,  1069,  1070,  1071,   132,   762,
+     763,   764,   765,   766,   767,    68,   860,   133,   418,   861,
+     134,    95,   999,   419,  1000,  1001,    70,   135,   123,   124,
+      96,    97,    98,    99,   121,   136,   137,   353,   421,   138,
+     139,   428,   866,   422,    99,   867,   429,    99,    99,   349,
+     940,   941,   942,   357,   676,   946,   358,    99,   952,   677,
+     678,   679,   680,   681,   682,   683,   684,   685,   686,   687,
+     688,   689,   690,   691,   777,   778,   779,   780,   359,   122,
+     456,   733,   740,   267,   741,   457,    36,    37,    38,    39,
+      99,   473,    99,   360,   122,   361,   474,   123,   124,   267,
+     289,   268,   269,   290,   291,   216,   476,   906,   438,   479,
+     907,   477,   123,   124,   480,   244,   123,   124,   742,   367,
+     926,   245,   246,   247,   248,   249,   250,   114,   115,   116,
+     117,   191,   782,    99,   192,   122,   402,   476,   479,   307,
+     308,   819,   820,   821,   100,   184,   406,   185,   122,   267,
+     376,   822,   377,   123,   124,   186,   187,   188,   189,   190,
+     125,   656,   657,   839,   839,   863,   123,   124,   840,   841,
+     864,   378,   191,   379,   880,   192,   132,   380,   140,   881,
+     887,   448,   177,   193,   891,   888,   958,   959,   473,   892,
+     839,   418,   437,   893,   194,  1022,  1023,   217,   182,   398,
+    1066,   439,    99,  1067,   231,    99,   195,  1026,   214,   405,
+     211,   456,  1027,   224,   251,   413,  1034,    99,   414,   424,
+     235,    99,   196,   197,   273,   198,   206,   294,   274,   292,
+     253,   421,   183,   293,   295,   218,  1043,   426,   428,   219,
+     287,   427,   232,  1044,   212,   305,   233,   225,  1049,   329,
+    1083,   481,   482,  1050,   236,  1084,   442,   209,    99,   446,
+     220,  1035,  1036,  1037,   254,   330,   447,   234,   450,   451,
+     452,    99,   453,   483,   288,   458,   461,   252,   463,   306,
+     114,   115,   116,   117,   123,   124,   120,   464,   122,   267,
+     607,   608,   609,   610,  1012,  1013,  1014,  1015,   467,   331,
+     468,   484,   485,   486,   487,   488,   123,   124,   490,   187,
+     188,   491,   190,   125,   492,   493,   494,   495,   501,   496,
+     502,   497,   498,   499,   503,   191,   500,   504,   192,   505,
+     506,   507,   508,   509,   510,   511,   193,   512,   513,   514,
+     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
+     324,   325,   326,   515,   516,   517,   519,   520,   518,   521,
+     327,   328,   523,   524,   526,   140,   527,   528,   529,   530,
+     531,   533,   177,   532,   534,   535,   537,   539,   540,   591,
+     592,   593,   541,   545,   542,   543,   546,   547,   182,    99,
+     548,   549,   550,   551,   553,   554,   555,   781,   794,   556,
+     329,   557,   558,   559,   561,   562,   563,   565,   566,   569,
+     568,    99,   570,   783,   795,   571,   330,   572,   573,   575,
+     574,   576,   183,     1,     2,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,   579,   580,
+     577,   581,   578,   582,   584,   586,   588,   784,   796,   594,
+     331,   589,   590,   595,   596,   597,   598,   599,   600,   652,
+     601,   602,   603,   606,   612,    34,   613,   614,   615,   844,
+     617,   616,   618,   619,   629,   747,   620,   621,   622,   624,
+     625,   671,   627,   628,   669,   659,   630,   634,   631,   633,
+     635,   670,   636,   637,   713,   641,   717,   721,   725,   729,
+     751,   754,   758,   642,   803,   807,   815,   643,   644,   645,
+     646,   647,   648,   649,   650,   651,   653,   654,   655,   827,
+     828,   829,   830,   831,   833,   666,   834,   667,   668,   836,
+     837,   838,   894,   847,   843,   846,   850,   849,   852,   853,
+     855,   856,   914,   859,   870,   869,   872,   873,   898,   874,
+     875,   876,   877,   878,   879,   884,   885,   886,   899,   902,
+     901,   623,   739,   909,   908,   904,   910,   911,   912,   918,
+     916,   913,   921,   915,   917,   956,   983,   984,   919,   920,
+     989,   922,   923,   990,   976,   924,   977,   992,   978,   993,
+     979,   980,   981,   985,   986,   987,   998,  1017,  1018,  1019,
+    1020,  1021,  1024,  1025,  1028,  1030,  1031,  1032,  1033,  1039,
+    1047,  1052,  1055,  1057,  1040,  1060,  1080,  1081,  1062,  1082,
+    1085,   194,  1041,   522,   273,   294,  1056,   292,   274,   489,
+     934,   293,   295,   195,   939,   214,   525,   211,   672,   675,
+     287,   960,   935,   305,   251,   961,   950,   309,  1053,   196,
+     197,   818,   198,   206,  1042,  1045,  1059,   963,   936,   937,
+     253,   938,   945,   781,   927,   957,   925,   794,   943,   954,
+    1086,   212,   944,   217,   288,  1061,   231,   306,  1087,   783,
+     951,  1002,  1088,   795,   209,  1003,   974,   929,   955,   224,
+     975,   964,   235,   949,   254,  1090,   928,  1004,   567,   982,
+     536,   953,  1051,   265,   962,   930,   931,   252,   560,   932,
+     564,   218,   933,   784,   232,   219,   538,   796,   233,   994,
+     995,   544,   973,   225,   996,   997,   236,   552,   972,   812,
+     971,  1005,  1054,   988,   991,   801,   220,   674,   587,   234,
+    1011,  1058,  1089,   583,  1078,   673,     0,     0,     0,     0,
+       0,   585,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   929,     0,     0,
-       0,   934,     0,   955,     0,     0,     0,   956,     0,   930,
-       0,     0,     0,   945,     0,     0,     0,     0,     0,   958,
-     997,     0,     0,     0,   998,   931,   932,     0,   933,   940,
-       0,     0,     0,     0,     0,   938,   999,     0,     0,   939,
-       0,     0,     0,     0,     0,     0,     0,   946,     0,     0,
-       0,     0,     0,   959,     0,     0,     0,     0,     0,     0,
-     944,     0,     0,     0,     0,     0,   957,     0,     0,     0,
-    1000
+       0,     0,   934,     0,     0,     0,   939,     0,   960,     0,
+       0,     0,   961,     0,   935,     0,     0,     0,   950,     0,
+       0,     0,     0,     0,   963,  1002,     0,     0,     0,  1003,
+     936,   937,     0,   938,   945,     0,     0,     0,     0,     0,
+     943,  1004,     0,     0,   944,     0,     0,     0,     0,     0,
+       0,     0,   951,     0,     0,     0,     0,     0,   964,     0,
+       0,     0,     0,     0,     0,   949,     0,     0,     0,     0,
+       0,   962,     0,     0,     0,  1005
   };
 
   const short
   Dhcp6Parser::yycheck_[] =
   {
       74,    75,    76,    77,    78,    79,    80,    83,    82,    83,
-      84,    85,    82,    83,    83,    77,   616,    77,    76,    77,
-      78,    79,    80,    17,    82,    83,   610,    85,   593,   849,
-     849,    77,    77,   849,    77,    77,   849,   849,    10,    14,
-      15,    91,    78,    79,    98,    99,    78,    79,   501,    19,
-      89,   170,    76,    77,    78,    79,    80,    96,    82,    83,
-       5,    85,     7,   516,     9,     0,    77,    78,    79,    80,
-      11,   144,    13,     7,     3,    16,    17,    18,    48,     8,
-      50,    51,     3,     3,    54,    55,    56,     8,     8,     3,
-      65,    66,    48,    46,     8,    65,    66,     7,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,     3,     3,    65,
-      66,    47,     8,     8,     3,     7,   170,     7,    19,     8,
-     170,   529,    58,     3,    65,    66,     7,    28,     8,    65,
-      66,    72,     7,   541,   542,   543,    77,    78,    79,    80,
-      81,   146,    83,     7,   149,   150,   151,    88,    84,    98,
-      99,    87,   137,   138,   139,   140,    97,     3,     3,   100,
-     134,   135,     8,     8,    65,    66,   107,     3,    47,    48,
-       3,   143,     8,     6,   115,   116,     7,    12,   119,   120,
-     152,   153,   154,     7,     7,     3,    65,    66,   173,   145,
-       8,   147,   148,     3,     3,   170,     6,     3,   170,     8,
-     170,  1021,  1021,    65,    66,  1021,    85,    86,  1021,  1021,
-     111,   112,   113,   114,   170,   108,   109,   110,    48,    49,
-      50,    51,    52,    53,     7,   170,   171,   172,   173,   170,
-      91,    92,    19,    94,   170,    65,    66,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,     7,     7,     7,   117,   118,    39,    40,    41,
-      42,    48,     3,     3,     6,    47,     4,     8,     8,   170,
-       3,   855,   837,     3,     3,    57,     3,    59,     8,     8,
-      47,     8,   882,    65,    66,    67,    68,    69,    70,    71,
-      72,   170,   366,    60,    61,    62,    63,    64,    65,    66,
-       3,     8,    84,     6,     3,    87,    88,     3,   170,     8,
-       3,     3,     8,    95,     3,     8,     8,    84,     3,     8,
-      87,     3,     3,     8,     4,   399,     8,     8,     4,   403,
-     101,   102,   103,   104,   105,   106,     3,     3,     3,     6,
-     170,   415,     8,     8,   418,   403,     3,     3,     8,     6,
-       4,   425,     8,   415,     3,   415,     4,   415,     4,     4,
-     418,   435,   356,   357,     4,     4,     4,   425,     4,   415,
-     415,   445,   415,   415,   450,   445,   450,   435,     8,   403,
-     450,   450,   418,   170,     4,     4,   418,   445,   170,   425,
-       4,   415,   450,   425,   418,     4,   470,    47,     4,     3,
-       8,   425,     4,   170,   415,     4,     3,   418,     8,     4,
-       4,   435,   470,     4,   425,    65,    66,    20,    21,    22,
-      23,   445,     4,     4,   435,     4,   450,   170,     4,    39,
-      40,    41,    42,    83,     4,    45,     4,    47,    48,    89,
-      90,    91,    92,    93,    94,     4,   470,    73,    74,    75,
-      76,     4,     4,     4,     4,    65,    66,     4,    68,    69,
-     171,    71,    72,     4,     4,   171,   171,   171,     4,   171,
-       4,     4,     4,     4,    84,     4,     4,    87,     4,     4,
-       4,     4,     4,     4,     4,    95,     4,     4,   171,   483,
-     484,   485,   155,   156,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,     4,     4,     4,
-       4,   585,   173,     4,     4,     4,     4,   591,     4,   171,
-     170,    65,    66,     4,     4,     4,   173,     4,     4,   171,
-       4,     4,     4,   591,   171,     4,   171,     4,     4,     4,
-       4,     4,   616,   617,     4,   619,   171,     4,     4,     4,
-     173,     4,   173,     4,     4,   173,   173,     4,   616,   617,
-     170,   619,     4,     4,   171,     4,   171,   591,   562,     4,
-     171,     4,     4,     4,     4,   173,     4,   121,   122,   123,
-     124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
-     584,     4,   616,   617,     4,   619,   173,   141,   142,     7,
-       7,     7,     7,     7,     7,     5,   170,     5,     5,     5,
-     170,     5,     7,     5,     5,     5,   170,     5,     7,     5,
-       5,   170,   170,     7,     7,     7,   170,     7,     5,     5,
-       5,   170,   170,     7,   136,   170,     5,     5,    82,     6,
-     170,     7,     7,   170,     7,     7,     7,     7,     7,     7,
-       7,   170,     7,     7,   170,   170,   170,   170,   170,   170,
-     170,   170,   170,   170,   170,   170,   170,   170,     4,   170,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     3,
-       3,     6,     3,   170,     6,     3,     6,     6,     3,     6,
-       6,     3,     6,     3,     5,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     3,   173,     6,     3,     6,     4,
-     171,     8,     6,     4,     4,     4,     4,   171,     4,     4,
-       4,   173,   171,   171,     4,   171,   171,     4,   171,     4,
-       6,     3,   170,   173,   171,   171,     4,   171,     8,     8,
-       4,     8,   171,     3,   171,   171,   171,   171,   171,   170,
-     170,   170,   170,   170,     8,   170,   170,     4,   170,   170,
-       4,   170,     4,     4,     7,     4,   840,     4,     4,   843,
-     846,   173,   846,   843,     4,   849,   846,   846,   840,   849,
-     840,   516,   840,   609,   171,   843,   860,   849,   846,   863,
-     860,   849,   866,   171,   840,   840,   585,   840,   840,   170,
-     170,   173,   860,   849,   849,   863,   849,   849,   882,   366,
-     399,   591,   886,   849,   665,   171,   840,   849,   892,   843,
-     170,   895,   846,   403,   882,   849,   900,   839,   886,   840,
-     900,   834,   858,   852,   892,   855,   860,   895,   849,   863,
-     868,   866,   900,   842,   875,   840,   415,   851,  1021,   860,
-      81,   848,   863,   845,   843,   445,   892,   453,   882,   895,
-     892,   894,   886,   895,   846,   450,   895,   897,   892,   892,
-     425,   895,   418,   863,   865,   861,   900,   435,   629,  1027,
-     882,   892,   619,   470,   895,   886,   586,   473,   476,   590,
-    1044,   901,  1061,  1078,    -1,    -1,    -1,    -1,    -1,    -1,
+      84,    85,    82,    83,    83,    77,   621,    77,    76,    77,
+      78,    79,    80,   615,    82,    83,   598,    85,   854,   854,
+     854,    77,    77,   854,    77,    77,   854,    10,    15,    16,
+      92,    90,    78,    79,     0,     3,    78,    79,    97,   505,
+       8,   171,    76,    77,    78,    79,    80,     7,    82,    83,
+      17,    85,    99,   100,   520,     7,    77,    78,    79,    80,
+       5,     3,     7,     7,     9,    49,     8,     7,    66,    67,
+      11,    12,   533,    14,    48,     7,    17,    18,    19,    66,
+      67,    20,    66,    67,   545,   546,   547,    61,    62,    63,
+      64,    65,    66,    67,   138,   139,   140,   141,     7,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,     7,   171,
+      49,    85,    51,    52,    88,     7,    55,    56,    57,     7,
+     118,   119,    20,     7,   171,    66,    67,    66,    67,     3,
+     174,    29,    73,     3,     8,     7,     6,    78,    79,    80,
+      81,    82,   147,    84,     7,   150,   151,   152,    89,   102,
+     103,   104,   105,   106,   107,     7,     3,    98,     3,     6,
+     101,   144,   146,     8,   148,   149,     7,   108,    66,    67,
+     153,   154,   155,   171,    47,   116,   117,    13,     3,   120,
+     121,     3,     3,     8,   171,     6,     8,   171,   171,   145,
+    1026,  1026,  1026,     6,    20,  1026,     3,   171,  1026,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+      36,    37,    38,    39,   112,   113,   114,   115,     4,    48,
+       3,    92,    93,    49,    95,     8,   171,   172,   173,   174,
+     171,     3,   171,     8,    48,     3,     8,    66,    67,    49,
+      50,    51,    52,    53,    54,    59,     3,     3,     3,     3,
+       6,     8,    66,    67,     8,    84,    66,    67,   860,     4,
+     842,    90,    91,    92,    93,    94,    95,    40,    41,    42,
+      43,    85,   887,   171,    88,    48,     3,     3,     3,    99,
+     100,     8,     8,     8,   368,    58,     3,    60,    48,    49,
+       4,     8,     4,    66,    67,    68,    69,    70,    71,    72,
+      73,   135,   136,     3,     3,     3,    66,    67,     8,     8,
+       8,     4,    85,     4,     3,    88,    89,     4,   402,     8,
+       3,     3,   406,    96,     3,     8,    86,    87,     3,     8,
+       3,     3,     8,     8,   418,     8,     8,   421,   406,     4,
+       3,     8,   171,     6,   428,   171,   418,     3,   418,     4,
+     418,     3,     8,   421,   438,     4,     8,   171,     4,     4,
+     428,   171,   418,   418,   448,   418,   418,   453,   448,   453,
+     438,     3,   406,   453,   453,   421,     8,     4,     3,   421,
+     448,     4,   428,     8,   418,   453,   428,   421,     3,   473,
+       3,   358,   359,     8,   428,     8,     4,   418,   171,     4,
+     421,   109,   110,   111,   438,   473,     8,   428,     4,     4,
+       8,   171,     3,   171,   448,     4,     4,   438,     4,   453,
+      40,    41,    42,    43,    66,    67,    46,     4,    48,    49,
+      74,    75,    76,    77,    21,    22,    23,    24,     4,   473,
+       4,     4,     4,     4,     4,     4,    66,    67,     4,    69,
+      70,     4,    72,    73,     4,     4,     4,     4,     4,   172,
+       4,   172,   172,   172,     4,    85,   172,     4,    88,     4,
+       4,     4,     4,     4,     4,     4,    96,     4,     4,     4,
+     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
+     132,   133,   134,     4,     4,     4,     4,     4,   172,     4,
+     142,   143,     4,   174,     4,   589,     4,     4,     4,     4,
+     172,     4,   596,   174,     4,     4,     4,     4,   172,   486,
+     487,   488,     4,     4,   172,   172,     4,     4,   596,   171,
+       4,     4,     4,     4,     4,     4,   172,   621,   622,     4,
+     624,     4,     4,   174,     4,   174,   174,     4,     4,     4,
+     174,   171,     4,   621,   622,   172,   624,     4,   172,     4,
+     172,     4,   596,   156,   157,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,     4,     4,
+     174,     4,   174,     4,     4,     4,     4,   621,   622,   171,
+     624,     7,     7,     7,     7,     7,     7,     5,   171,   566,
+       5,     5,     5,   171,     5,     7,     5,     5,     5,     3,
+       5,     7,     5,     5,   171,    83,     7,     7,     7,     7,
+       5,   588,     5,     5,     5,   137,   171,     7,   171,   171,
+     171,     5,   171,   171,     7,   171,     7,     7,     7,     7,
+       7,     7,     7,   171,     7,     7,     7,   171,   171,   171,
+     171,   171,   171,   171,   171,   171,   171,   171,   171,     4,
+       4,     4,     4,     4,     4,   171,     4,   171,   171,     4,
+       4,     4,   171,     3,     6,     6,     3,     6,     6,     3,
+       6,     3,   174,     6,     3,     6,     6,     3,     6,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     3,     3,
+       6,   520,   614,     4,     6,     8,     4,     4,     4,     4,
+     174,   172,     4,   172,   172,     4,     4,     4,   172,   172,
+       4,   172,   172,     4,   172,   174,   172,     6,   172,     3,
+     172,   172,   172,   172,   172,   172,     4,   171,   171,   171,
+     171,   171,     8,     8,   171,     4,     8,     3,     8,   171,
+       4,     4,     4,     4,   171,     5,     4,     4,     7,     4,
+       4,   845,   171,   402,   848,   851,   172,   851,   848,   368,
+     854,   851,   851,   845,   854,   845,   406,   845,   589,   596,
+     848,   865,   854,   851,   868,   865,   854,   871,   174,   845,
+     845,   670,   845,   845,   171,   171,   171,   865,   854,   854,
+     868,   854,   854,   887,   844,   863,   839,   891,   854,   857,
+     174,   845,   854,   897,   848,   171,   900,   851,   172,   887,
+     854,   905,   172,   891,   845,   905,   871,   847,   860,   897,
+     873,   865,   900,   854,   868,   171,   845,   905,   456,   880,
+     418,   856,  1026,    81,   865,   848,   850,   868,   448,   851,
+     453,   897,   853,   887,   900,   897,   421,   891,   900,   897,
+     899,   428,   870,   897,   900,   902,   900,   438,   868,   634,
+     866,   905,  1032,   887,   891,   624,   897,   595,   479,   900,
+     906,  1049,  1083,   473,  1066,   590,    -1,    -1,    -1,    -1,
+      -1,   476,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1021,    -1,    -1,
-      -1,  1021,    -1,  1027,    -1,    -1,    -1,  1027,    -1,  1021,
-      -1,    -1,    -1,  1021,    -1,    -1,    -1,    -1,    -1,  1027,
-    1044,    -1,    -1,    -1,  1044,  1021,  1021,    -1,  1021,  1021,
-      -1,    -1,    -1,    -1,    -1,  1021,  1044,    -1,    -1,  1021,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1021,    -1,    -1,
-      -1,    -1,    -1,  1027,    -1,    -1,    -1,    -1,    -1,    -1,
-    1021,    -1,    -1,    -1,    -1,    -1,  1027,    -1,    -1,    -1,
-    1044
+      -1,    -1,  1026,    -1,    -1,    -1,  1026,    -1,  1032,    -1,
+      -1,    -1,  1032,    -1,  1026,    -1,    -1,    -1,  1026,    -1,
+      -1,    -1,    -1,    -1,  1032,  1049,    -1,    -1,    -1,  1049,
+    1026,  1026,    -1,  1026,  1026,    -1,    -1,    -1,    -1,    -1,
+    1026,  1049,    -1,    -1,  1026,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  1026,    -1,    -1,    -1,    -1,    -1,  1032,    -1,
+      -1,    -1,    -1,    -1,    -1,  1026,    -1,    -1,    -1,    -1,
+      -1,  1032,    -1,    -1,    -1,  1049
   };
 
   const unsigned short
   Dhcp6Parser::yystos_[] =
   {
-       0,   155,   156,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,   168,   169,   175,   176,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
-     189,   190,     0,     5,     7,     9,   170,   171,   172,   173,
-     191,   192,   193,   198,     7,   207,     7,   213,     7,   226,
-       7,   320,     7,   397,     7,   413,     7,   430,     7,   349,
-       7,   355,     7,   379,     7,   296,     7,   491,     7,   537,
-       7,   529,   199,   194,   208,   214,   227,   321,   398,   414,
-     431,   350,   356,   380,   297,   492,   538,   530,   191,   200,
-     201,   170,   196,   197,    10,   143,   152,   153,   154,   170,
-     206,   209,   210,   211,   521,   523,   525,   535,    11,    13,
-      16,    17,    18,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    65,    66,    72,    77,    78,    79,    80,    81,
-      83,    88,    97,   100,   107,   115,   116,   119,   120,   206,
-     215,   216,   217,   218,   219,   220,   221,   222,   224,   233,
-     235,   237,   270,   276,   282,   288,   290,   304,   314,   334,
-     339,   347,   373,   403,   405,   424,   454,   466,   478,   479,
-     487,   489,   527,    14,    15,   206,   228,   229,   230,   232,
-     403,   405,    57,    59,    67,    68,    69,    70,    71,    84,
-      87,    95,   206,   217,   218,   219,   220,   322,   323,   324,
-     326,   328,   330,   332,   334,   337,   338,   373,   391,   403,
-     405,   407,   424,   449,    58,   206,   330,   332,   373,   399,
-     400,   401,   403,   405,    60,    61,    62,    63,    64,   206,
-     330,   332,   373,   403,   405,   415,   416,   417,   419,   420,
-     422,   423,    83,    89,    90,    91,    92,    93,    94,   206,
-     373,   403,   405,   432,   433,   434,   435,   437,   439,   441,
-     443,   445,   447,   347,    19,    48,    50,    51,    54,    55,
-      56,   206,   255,   357,   358,   359,   360,   361,   362,   363,
-     365,   367,   369,   370,   372,   403,   405,    49,    52,    53,
-     206,   255,   361,   367,   381,   382,   383,   384,   385,   387,
-     388,   389,   390,   403,   405,    98,    99,   206,   298,   299,
-     300,   302,   121,   122,   123,   124,   125,   126,   127,   128,
-     129,   130,   131,   132,   133,   141,   142,   206,   403,   405,
-     493,   494,   495,   496,   498,   500,   501,   503,   504,   505,
-     508,   510,   511,   512,   515,   517,   519,   144,   539,   540,
-     541,    12,   531,   532,   533,     6,     3,     4,     8,     3,
-     212,   536,   522,   524,   526,     4,     3,     8,   528,   225,
-     234,   236,   238,     4,     4,     4,     4,     4,   223,   315,
-     348,   374,   404,   406,   335,   340,   277,   289,   283,   271,
-     455,   425,   291,   305,   467,     4,   480,   488,   490,     3,
-       8,   231,     4,     3,     8,   392,   408,   325,   327,   329,
-       4,     4,   333,   331,   450,     3,     8,   402,     3,     8,
-     418,     4,   421,     4,     4,     3,     8,   448,   436,   438,
-     440,   442,   444,   446,     8,     3,     8,   364,   256,     4,
-     368,   366,   371,     4,     8,     3,   386,     4,     4,     8,
-       3,   301,   303,     3,     8,     4,   497,   499,     4,   502,
-       4,     4,   506,   509,     4,     4,   513,   516,   518,   520,
-       3,     8,   542,     3,     8,   534,     3,     8,   191,   191,
-     170,     4,     4,     4,     4,     4,   210,     4,     4,     4,
-       4,     4,   171,   171,   171,   171,   171,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,   171,     4,     4,     4,   216,     4,
-     173,   229,     4,     4,     4,     4,     4,   171,   173,     4,
-       4,     4,   323,     4,   400,     4,   171,     4,   171,   171,
-     416,     4,     4,     4,     4,     4,     4,     4,   434,     4,
-       4,   171,     4,     4,     4,   173,   359,     4,   173,   173,
-     383,     4,     4,   299,   173,     4,     4,   171,     4,   171,
-     171,     4,     4,   173,   173,     4,     4,     4,     4,   494,
-       4,   540,     4,   532,     4,     7,     7,   191,   191,   191,
-       7,     7,     7,     7,     5,   170,     5,     5,     5,   193,
-     195,   170,    73,    74,    75,    76,   336,     5,     5,     5,
-       5,     7,     5,     5,     5,     7,     7,     7,   195,     7,
-       5,   202,     5,     5,   170,   170,   170,   202,   170,     7,
-     170,   170,   170,   202,   202,   202,   170,   170,   170,   170,
-     170,   170,   170,   170,   170,   170,   170,   191,   170,   170,
-     170,   134,   135,   507,   136,   137,   138,   139,   140,   173,
-     514,   170,   170,   170,     5,     5,   191,   215,   539,   531,
-     228,    19,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,   206,   243,   244,
-     245,   248,   250,   252,   254,   255,   257,   258,   259,   260,
-     261,   262,   263,   264,   265,   267,   268,   243,     7,   239,
-     240,   241,     7,   316,   317,   318,     7,   351,   352,   353,
-       7,   375,   376,   377,     7,   341,   342,   343,    91,   170,
-     278,   279,   280,   281,   200,    92,    94,   280,   284,   285,
-     286,   287,    82,   272,   273,   274,     7,   456,   457,     7,
-     426,   427,   428,     7,   292,   293,   294,   101,   102,   103,
-     104,   105,   106,   306,   307,   308,   309,   310,   311,   312,
-     313,    19,   111,   112,   113,   114,   206,   257,   403,   405,
-     468,   469,   470,   473,   474,   476,   477,   117,   118,   206,
-     403,   405,   481,   482,   483,   485,   493,   203,     7,   393,
-     394,   395,     7,   409,   410,   411,    96,   435,   451,   452,
-       7,   543,   544,   239,     8,     8,     8,     8,   246,   249,
-     251,   253,     4,     4,     4,     4,     4,   266,     4,     4,
-     269,     4,     4,     4,     3,     8,     8,   242,     6,     3,
-     319,     6,     3,   354,     6,     3,   378,     6,     3,   344,
-       6,     3,     3,     6,     6,     3,     6,   275,     3,     8,
-     458,     3,     6,   429,     6,     3,   295,     6,     3,     4,
-       4,     4,     4,     4,     4,     3,     8,   471,   475,     4,
-       4,     4,     3,     8,   484,   486,     3,     8,     8,   170,
-     204,   205,   396,     6,     3,   412,     6,     3,   453,     8,
-     545,     3,     6,     6,     4,     4,     4,     4,   171,   173,
-     171,   173,   171,     4,   171,   171,     4,   171,   171,   173,
-     244,   243,   241,   322,   318,   357,   353,   381,   377,   206,
-     217,   218,   219,   220,   255,   314,   326,   328,   330,   332,
-     334,   338,   345,   346,   373,   403,   405,   449,   343,   279,
-     285,     4,   273,    85,    86,   206,   255,   373,   403,   405,
-     459,   460,   461,   462,   463,   465,   457,   432,   428,   298,
-     294,   171,   171,   171,   171,   171,   171,   307,     4,     4,
-     171,   171,   171,   469,     4,     4,   482,     6,     3,   399,
-     395,   415,   411,     4,   145,   147,   148,   206,   255,   403,
-     405,   546,   547,   548,   549,   551,   544,    20,    21,    22,
-      23,   247,   170,   170,   170,   170,   170,     8,     8,     8,
-       8,     3,     8,   170,   464,     4,     8,     3,     8,     8,
-     108,   109,   110,   472,   170,   170,   170,   170,     8,     8,
-     170,   552,     4,   550,     3,     8,   346,     4,   173,   461,
-       4,   171,     4,   547,   170,     5,   170,     7,   553,   554,
-     555,     3,     6,   146,   149,   150,   151,   556,   557,   558,
-     560,   561,   562,   554,   559,     4,     4,     4,     3,     8,
-       4,   173,   171,   171,   557,   170
+       0,   156,   157,   158,   159,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,   169,   170,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
+     190,   191,     0,     5,     7,     9,   171,   172,   173,   174,
+     192,   193,   194,   199,     7,   208,     7,   214,     7,   229,
+       7,   323,     7,   400,     7,   416,     7,   433,     7,   352,
+       7,   358,     7,   382,     7,   299,     7,   494,     7,   540,
+       7,   532,   200,   195,   209,   215,   230,   324,   401,   417,
+     434,   353,   359,   383,   300,   495,   541,   533,   192,   201,
+     202,   171,   197,   198,    10,   144,   153,   154,   155,   171,
+     207,   210,   211,   212,   524,   526,   528,   538,    11,    12,
+      14,    17,    18,    19,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    66,    67,    73,    78,    79,    80,    81,
+      82,    84,    89,    98,   101,   108,   116,   117,   120,   121,
+     207,   216,   217,   218,   220,   221,   222,   223,   224,   225,
+     227,   236,   238,   240,   273,   279,   285,   291,   293,   307,
+     317,   337,   342,   350,   376,   406,   408,   427,   457,   469,
+     481,   482,   490,   492,   530,    15,    16,   207,   231,   232,
+     233,   235,   406,   408,    58,    60,    68,    69,    70,    71,
+      72,    85,    88,    96,   207,   220,   221,   222,   223,   325,
+     326,   327,   329,   331,   333,   335,   337,   340,   341,   376,
+     394,   406,   408,   410,   427,   452,    59,   207,   333,   335,
+     376,   402,   403,   404,   406,   408,    61,    62,    63,    64,
+      65,   207,   333,   335,   376,   406,   408,   418,   419,   420,
+     422,   423,   425,   426,    84,    90,    91,    92,    93,    94,
+      95,   207,   376,   406,   408,   435,   436,   437,   438,   440,
+     442,   444,   446,   448,   450,   350,    20,    49,    51,    52,
+      55,    56,    57,   207,   258,   360,   361,   362,   363,   364,
+     365,   366,   368,   370,   372,   373,   375,   406,   408,    50,
+      53,    54,   207,   258,   364,   370,   384,   385,   386,   387,
+     388,   390,   391,   392,   393,   406,   408,    99,   100,   207,
+     301,   302,   303,   305,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   142,   143,   207,
+     406,   408,   496,   497,   498,   499,   501,   503,   504,   506,
+     507,   508,   511,   513,   514,   515,   518,   520,   522,   145,
+     542,   543,   544,    13,   534,   535,   536,     6,     3,     4,
+       8,     3,   213,   539,   525,   527,   529,     4,     3,     8,
+     219,   531,   228,   237,   239,   241,     4,     4,     4,     4,
+       4,   226,   318,   351,   377,   407,   409,   338,   343,   280,
+     292,   286,   274,   458,   428,   294,   308,   470,     4,   483,
+     491,   493,     3,     8,   234,     4,     3,     8,   395,   411,
+     328,   330,   332,     4,     4,   336,   334,   453,     3,     8,
+     405,     3,     8,   421,     4,   424,     4,     4,     3,     8,
+     451,   439,   441,   443,   445,   447,   449,     8,     3,     8,
+     367,   259,     4,   371,   369,   374,     4,     8,     3,   389,
+       4,     4,     8,     3,   304,   306,     3,     8,     4,   500,
+     502,     4,   505,     4,     4,   509,   512,     4,     4,   516,
+     519,   521,   523,     3,     8,   545,     3,     8,   537,     3,
+       8,   192,   192,   171,     4,     4,     4,     4,     4,   211,
+       4,     4,     4,     4,     4,     4,   172,   172,   172,   172,
+     172,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,   172,     4,
+       4,     4,   217,     4,   174,   232,     4,     4,     4,     4,
+       4,   172,   174,     4,     4,     4,   326,     4,   403,     4,
+     172,     4,   172,   172,   419,     4,     4,     4,     4,     4,
+       4,     4,   437,     4,     4,   172,     4,     4,     4,   174,
+     362,     4,   174,   174,   386,     4,     4,   302,   174,     4,
+       4,   172,     4,   172,   172,     4,     4,   174,   174,     4,
+       4,     4,     4,   497,     4,   543,     4,   535,     4,     7,
+       7,   192,   192,   192,   171,     7,     7,     7,     7,     5,
+     171,     5,     5,     5,   194,   196,   171,    74,    75,    76,
+      77,   339,     5,     5,     5,     5,     7,     5,     5,     5,
+       7,     7,     7,   196,     7,     5,   203,     5,     5,   171,
+     171,   171,   203,   171,     7,   171,   171,   171,   203,   203,
+     203,   171,   171,   171,   171,   171,   171,   171,   171,   171,
+     171,   171,   192,   171,   171,   171,   135,   136,   510,   137,
+     138,   139,   140,   141,   174,   517,   171,   171,   171,     5,
+       5,   192,   216,   542,   534,   231,    20,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,   207,   246,   247,   248,   251,   253,   255,   257,
+     258,   260,   261,   262,   263,   264,   265,   266,   267,   268,
+     270,   271,   246,     7,   242,   243,   244,     7,   319,   320,
+     321,     7,   354,   355,   356,     7,   378,   379,   380,     7,
+     344,   345,   346,    92,   171,   281,   282,   283,   284,   201,
+      93,    95,   283,   287,   288,   289,   290,    83,   275,   276,
+     277,     7,   459,   460,     7,   429,   430,   431,     7,   295,
+     296,   297,   102,   103,   104,   105,   106,   107,   309,   310,
+     311,   312,   313,   314,   315,   316,    20,   112,   113,   114,
+     115,   207,   260,   406,   408,   471,   472,   473,   476,   477,
+     479,   480,   118,   119,   207,   406,   408,   484,   485,   486,
+     488,   496,   204,     7,   396,   397,   398,     7,   412,   413,
+     414,    97,   438,   454,   455,     7,   546,   547,   242,     8,
+       8,     8,     8,   249,   252,   254,   256,     4,     4,     4,
+       4,     4,   269,     4,     4,   272,     4,     4,     4,     3,
+       8,     8,   245,     6,     3,   322,     6,     3,   357,     6,
+       3,   381,     6,     3,   347,     6,     3,     3,     6,     6,
+       3,     6,   278,     3,     8,   461,     3,     6,   432,     6,
+       3,   298,     6,     3,     4,     4,     4,     4,     4,     4,
+       3,     8,   474,   478,     4,     4,     4,     3,     8,   487,
+     489,     3,     8,     8,   171,   205,   206,   399,     6,     3,
+     415,     6,     3,   456,     8,   548,     3,     6,     6,     4,
+       4,     4,     4,   172,   174,   172,   174,   172,     4,   172,
+     172,     4,   172,   172,   174,   247,   246,   244,   325,   321,
+     360,   356,   384,   380,   207,   220,   221,   222,   223,   258,
+     317,   329,   331,   333,   335,   337,   341,   348,   349,   376,
+     406,   408,   452,   346,   282,   288,     4,   276,    86,    87,
+     207,   258,   376,   406,   408,   462,   463,   464,   465,   466,
+     468,   460,   435,   431,   301,   297,   172,   172,   172,   172,
+     172,   172,   310,     4,     4,   172,   172,   172,   472,     4,
+       4,   485,     6,     3,   402,   398,   418,   414,     4,   146,
+     148,   149,   207,   258,   406,   408,   549,   550,   551,   552,
+     554,   547,    21,    22,    23,    24,   250,   171,   171,   171,
+     171,   171,     8,     8,     8,     8,     3,     8,   171,   467,
+       4,     8,     3,     8,     8,   109,   110,   111,   475,   171,
+     171,   171,   171,     8,     8,   171,   555,     4,   553,     3,
+       8,   349,     4,   174,   464,     4,   172,     4,   550,   171,
+       5,   171,     7,   556,   557,   558,     3,     6,   147,   150,
+     151,   152,   559,   560,   561,   563,   564,   565,   557,   562,
+       4,     4,     4,     3,     8,     4,   174,   172,   172,   560,
+     171
   };
 
   const unsigned short
   Dhcp6Parser::yyr1_[] =
   {
-       0,   174,   176,   175,   177,   175,   178,   175,   179,   175,
-     180,   175,   181,   175,   182,   175,   183,   175,   184,   175,
-     185,   175,   186,   175,   187,   175,   188,   175,   189,   175,
-     190,   175,   191,   191,   191,   191,   191,   191,   191,   192,
-     194,   193,   195,   196,   196,   197,   197,   199,   198,   200,
-     200,   201,   201,   203,   202,   204,   204,   205,   205,   206,
-     208,   207,   209,   209,   210,   210,   210,   210,   210,   210,
-     212,   211,   214,   213,   215,   215,   216,   216,   216,   216,
-     216,   216,   216,   216,   216,   216,   216,   216,   216,   216,
-     216,   216,   216,   216,   216,   216,   216,   216,   216,   216,
-     216,   216,   216,   216,   216,   216,   216,   216,   217,   218,
-     219,   220,   221,   223,   222,   225,   224,   227,   226,   228,
-     228,   229,   229,   229,   229,   229,   231,   230,   232,   234,
-     233,   236,   235,   238,   237,   239,   239,   240,   240,   242,
-     241,   243,   243,   244,   244,   244,   244,   244,   244,   244,
-     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
-     244,   246,   245,   247,   247,   247,   247,   249,   248,   251,
-     250,   253,   252,   254,   256,   255,   257,   258,   259,   260,
-     261,   262,   263,   264,   266,   265,   267,   269,   268,   271,
-     270,   272,   272,   273,   275,   274,   277,   276,   278,   278,
-     279,   279,   280,   281,   283,   282,   284,   284,   285,   285,
-     285,   286,   287,   289,   288,   291,   290,   292,   292,   293,
-     293,   295,   294,   297,   296,   298,   298,   298,   299,   299,
-     301,   300,   303,   302,   305,   304,   306,   306,   307,   307,
-     307,   307,   307,   307,   308,   309,   310,   311,   312,   313,
-     315,   314,   316,   316,   317,   317,   319,   318,   321,   320,
-     322,   322,   323,   323,   323,   323,   323,   323,   323,   323,
-     323,   323,   323,   323,   323,   323,   323,   323,   323,   323,
-     323,   323,   325,   324,   327,   326,   329,   328,   331,   330,
-     333,   332,   335,   334,   336,   336,   336,   336,   337,   338,
-     340,   339,   341,   341,   342,   342,   344,   343,   345,   345,
-     346,   346,   346,   346,   346,   346,   346,   346,   346,   346,
-     346,   346,   346,   346,   346,   346,   346,   348,   347,   350,
-     349,   351,   351,   352,   352,   354,   353,   356,   355,   357,
-     357,   358,   358,   359,   359,   359,   359,   359,   359,   359,
-     359,   359,   359,   360,   361,   362,   364,   363,   366,   365,
-     368,   367,   369,   371,   370,   372,   374,   373,   375,   375,
-     376,   376,   378,   377,   380,   379,   381,   381,   382,   382,
-     383,   383,   383,   383,   383,   383,   383,   383,   383,   384,
-     386,   385,   387,   388,   389,   390,   392,   391,   393,   393,
-     394,   394,   396,   395,   398,   397,   399,   399,   400,   400,
-     400,   400,   400,   400,   400,   402,   401,   404,   403,   406,
-     405,   408,   407,   409,   409,   410,   410,   412,   411,   414,
-     413,   415,   415,   416,   416,   416,   416,   416,   416,   416,
-     416,   416,   416,   416,   418,   417,   419,   421,   420,   422,
-     423,   425,   424,   426,   426,   427,   427,   429,   428,   431,
-     430,   432,   432,   433,   433,   434,   434,   434,   434,   434,
-     434,   434,   434,   434,   434,   434,   436,   435,   438,   437,
-     440,   439,   442,   441,   444,   443,   446,   445,   448,   447,
-     450,   449,   451,   451,   453,   452,   455,   454,   456,   456,
-     458,   457,   459,   459,   460,   460,   461,   461,   461,   461,
-     461,   461,   461,   462,   464,   463,   465,   467,   466,   468,
-     468,   469,   469,   469,   469,   469,   469,   469,   469,   469,
-     471,   470,   472,   472,   472,   473,   475,   474,   476,   477,
-     478,   480,   479,   481,   481,   482,   482,   482,   482,   482,
-     484,   483,   486,   485,   488,   487,   490,   489,   492,   491,
-     493,   493,   494,   494,   494,   494,   494,   494,   494,   494,
-     494,   494,   494,   494,   494,   494,   494,   494,   494,   494,
-     495,   497,   496,   499,   498,   500,   502,   501,   503,   504,
-     506,   505,   507,   507,   509,   508,   510,   511,   513,   512,
-     514,   514,   514,   514,   514,   516,   515,   518,   517,   520,
-     519,   522,   521,   524,   523,   526,   525,   528,   527,   530,
-     529,   531,   531,   532,   534,   533,   536,   535,   538,   537,
-     539,   539,   540,   542,   541,   543,   543,   545,   544,   546,
-     546,   547,   547,   547,   547,   547,   547,   547,   548,   550,
-     549,   552,   551,   553,   553,   555,   554,   556,   556,   557,
-     557,   557,   557,   559,   558,   560,   561,   562
+       0,   175,   177,   176,   178,   176,   179,   176,   180,   176,
+     181,   176,   182,   176,   183,   176,   184,   176,   185,   176,
+     186,   176,   187,   176,   188,   176,   189,   176,   190,   176,
+     191,   176,   192,   192,   192,   192,   192,   192,   192,   193,
+     195,   194,   196,   197,   197,   198,   198,   200,   199,   201,
+     201,   202,   202,   204,   203,   205,   205,   206,   206,   207,
+     209,   208,   210,   210,   211,   211,   211,   211,   211,   211,
+     213,   212,   215,   214,   216,   216,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   219,
+     218,   220,   221,   222,   223,   224,   226,   225,   228,   227,
+     230,   229,   231,   231,   232,   232,   232,   232,   232,   234,
+     233,   235,   237,   236,   239,   238,   241,   240,   242,   242,
+     243,   243,   245,   244,   246,   246,   247,   247,   247,   247,
+     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
+     247,   247,   247,   247,   249,   248,   250,   250,   250,   250,
+     252,   251,   254,   253,   256,   255,   257,   259,   258,   260,
+     261,   262,   263,   264,   265,   266,   267,   269,   268,   270,
+     272,   271,   274,   273,   275,   275,   276,   278,   277,   280,
+     279,   281,   281,   282,   282,   283,   284,   286,   285,   287,
+     287,   288,   288,   288,   289,   290,   292,   291,   294,   293,
+     295,   295,   296,   296,   298,   297,   300,   299,   301,   301,
+     301,   302,   302,   304,   303,   306,   305,   308,   307,   309,
+     309,   310,   310,   310,   310,   310,   310,   311,   312,   313,
+     314,   315,   316,   318,   317,   319,   319,   320,   320,   322,
+     321,   324,   323,   325,   325,   326,   326,   326,   326,   326,
+     326,   326,   326,   326,   326,   326,   326,   326,   326,   326,
+     326,   326,   326,   326,   326,   328,   327,   330,   329,   332,
+     331,   334,   333,   336,   335,   338,   337,   339,   339,   339,
+     339,   340,   341,   343,   342,   344,   344,   345,   345,   347,
+     346,   348,   348,   349,   349,   349,   349,   349,   349,   349,
+     349,   349,   349,   349,   349,   349,   349,   349,   349,   349,
+     351,   350,   353,   352,   354,   354,   355,   355,   357,   356,
+     359,   358,   360,   360,   361,   361,   362,   362,   362,   362,
+     362,   362,   362,   362,   362,   362,   363,   364,   365,   367,
+     366,   369,   368,   371,   370,   372,   374,   373,   375,   377,
+     376,   378,   378,   379,   379,   381,   380,   383,   382,   384,
+     384,   385,   385,   386,   386,   386,   386,   386,   386,   386,
+     386,   386,   387,   389,   388,   390,   391,   392,   393,   395,
+     394,   396,   396,   397,   397,   399,   398,   401,   400,   402,
+     402,   403,   403,   403,   403,   403,   403,   403,   405,   404,
+     407,   406,   409,   408,   411,   410,   412,   412,   413,   413,
+     415,   414,   417,   416,   418,   418,   419,   419,   419,   419,
+     419,   419,   419,   419,   419,   419,   419,   421,   420,   422,
+     424,   423,   425,   426,   428,   427,   429,   429,   430,   430,
+     432,   431,   434,   433,   435,   435,   436,   436,   437,   437,
+     437,   437,   437,   437,   437,   437,   437,   437,   437,   439,
+     438,   441,   440,   443,   442,   445,   444,   447,   446,   449,
+     448,   451,   450,   453,   452,   454,   454,   456,   455,   458,
+     457,   459,   459,   461,   460,   462,   462,   463,   463,   464,
+     464,   464,   464,   464,   464,   464,   465,   467,   466,   468,
+     470,   469,   471,   471,   472,   472,   472,   472,   472,   472,
+     472,   472,   472,   474,   473,   475,   475,   475,   476,   478,
+     477,   479,   480,   481,   483,   482,   484,   484,   485,   485,
+     485,   485,   485,   487,   486,   489,   488,   491,   490,   493,
+     492,   495,   494,   496,   496,   497,   497,   497,   497,   497,
+     497,   497,   497,   497,   497,   497,   497,   497,   497,   497,
+     497,   497,   497,   498,   500,   499,   502,   501,   503,   505,
+     504,   506,   507,   509,   508,   510,   510,   512,   511,   513,
+     514,   516,   515,   517,   517,   517,   517,   517,   519,   518,
+     521,   520,   523,   522,   525,   524,   527,   526,   529,   528,
+     531,   530,   533,   532,   534,   534,   535,   537,   536,   539,
+     538,   541,   540,   542,   542,   543,   545,   544,   546,   546,
+     548,   547,   549,   549,   550,   550,   550,   550,   550,   550,
+     550,   551,   553,   552,   555,   554,   556,   556,   558,   557,
+     559,   559,   560,   560,   560,   560,   562,   561,   563,   564,
+     565
   };
 
   const unsigned char
@@ -4754,63 +4778,64 @@ namespace isc { namespace dhcp {
        0,     6,     0,     4,     1,     3,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     3,     3,
-       3,     3,     3,     0,     4,     0,     6,     0,     4,     1,
-       3,     1,     1,     1,     1,     1,     0,     4,     3,     0,
-       6,     0,     6,     0,     6,     0,     1,     1,     3,     0,
-       4,     1,     3,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     0,     4,     1,     1,     1,     1,     0,     4,     0,
-       4,     0,     4,     3,     0,     4,     3,     3,     3,     3,
-       3,     3,     3,     3,     0,     4,     3,     0,     4,     0,
-       6,     1,     3,     1,     0,     4,     0,     6,     1,     3,
-       1,     1,     1,     1,     0,     6,     1,     3,     1,     1,
-       1,     1,     1,     0,     6,     0,     6,     0,     1,     1,
-       3,     0,     4,     0,     4,     1,     3,     1,     1,     1,
-       0,     4,     0,     4,     0,     6,     1,     3,     1,     1,
-       1,     1,     1,     1,     3,     3,     3,     3,     3,     3,
-       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
-       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     0,     4,     0,     4,     0,     4,     0,     4,
-       0,     4,     0,     4,     1,     1,     1,     1,     3,     3,
-       0,     6,     0,     1,     1,     3,     0,     4,     1,     3,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
+       4,     3,     3,     3,     3,     3,     0,     4,     0,     6,
+       0,     4,     1,     3,     1,     1,     1,     1,     1,     0,
+       4,     3,     0,     6,     0,     6,     0,     6,     0,     1,
+       1,     3,     0,     4,     1,     3,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     0,     6,     0,
-       4,     0,     1,     1,     3,     0,     4,     0,     4,     0,
-       1,     1,     3,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     3,     1,     0,     4,     0,     4,
-       0,     4,     1,     0,     4,     3,     0,     6,     0,     1,
-       1,     3,     0,     4,     0,     4,     0,     1,     1,     3,
+       1,     1,     1,     1,     0,     4,     1,     1,     1,     1,
+       0,     4,     0,     4,     0,     4,     3,     0,     4,     3,
+       3,     3,     3,     3,     3,     3,     3,     0,     4,     3,
+       0,     4,     0,     6,     1,     3,     1,     0,     4,     0,
+       6,     1,     3,     1,     1,     1,     1,     0,     6,     1,
+       3,     1,     1,     1,     1,     1,     0,     6,     0,     6,
+       0,     1,     1,     3,     0,     4,     0,     4,     1,     3,
+       1,     1,     1,     0,     4,     0,     4,     0,     6,     1,
+       3,     1,     1,     1,     1,     1,     1,     3,     3,     3,
+       3,     3,     3,     0,     6,     0,     1,     1,     3,     0,
+       4,     0,     4,     1,     3,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       0,     4,     1,     1,     3,     3,     0,     6,     0,     1,
-       1,     3,     0,     4,     0,     4,     1,     3,     1,     1,
        1,     1,     1,     1,     1,     0,     4,     0,     4,     0,
-       4,     0,     6,     0,     1,     1,     3,     0,     4,     0,
+       4,     0,     4,     0,     4,     0,     4,     1,     1,     1,
+       1,     3,     3,     0,     6,     0,     1,     1,     3,     0,
        4,     1,     3,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     0,     4,     3,     0,     4,     3,
-       3,     0,     6,     0,     1,     1,     3,     0,     4,     0,
-       4,     0,     1,     1,     3,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     0,     4,     0,     4,
-       0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
-       0,     6,     1,     1,     0,     4,     0,     6,     1,     3,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       0,     6,     0,     4,     0,     1,     1,     3,     0,     4,
        0,     4,     0,     1,     1,     3,     1,     1,     1,     1,
-       1,     1,     1,     1,     0,     4,     3,     0,     6,     1,
-       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       0,     4,     1,     1,     1,     3,     0,     4,     3,     3,
-       3,     0,     6,     1,     3,     1,     1,     1,     1,     1,
-       0,     4,     0,     4,     0,     4,     0,     6,     0,     4,
-       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     3,     1,     0,
+       4,     0,     4,     0,     4,     1,     0,     4,     3,     0,
+       6,     0,     1,     1,     3,     0,     4,     0,     4,     0,
+       1,     1,     3,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     0,     4,     1,     1,     3,     3,     0,
+       6,     0,     1,     1,     3,     0,     4,     0,     4,     1,
+       3,     1,     1,     1,     1,     1,     1,     1,     0,     4,
+       0,     4,     0,     4,     0,     6,     0,     1,     1,     3,
+       0,     4,     0,     4,     1,     3,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     0,     4,     3,
+       0,     4,     3,     3,     0,     6,     0,     1,     1,     3,
+       0,     4,     0,     4,     0,     1,     1,     3,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
+       4,     0,     4,     0,     4,     0,     4,     0,     4,     0,
+       4,     0,     4,     0,     6,     1,     1,     0,     4,     0,
+       6,     1,     3,     0,     4,     0,     1,     1,     3,     1,
+       1,     1,     1,     1,     1,     1,     1,     0,     4,     3,
+       0,     6,     1,     3,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     0,     4,     1,     1,     1,     3,     0,
+       4,     3,     3,     3,     0,     6,     1,     3,     1,     1,
+       1,     1,     1,     0,     4,     0,     4,     0,     4,     0,
+       6,     0,     4,     1,     3,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       3,     0,     4,     0,     4,     3,     0,     4,     3,     3,
-       0,     4,     1,     1,     0,     4,     3,     3,     0,     4,
-       1,     1,     1,     1,     1,     0,     4,     0,     4,     0,
-       4,     0,     4,     0,     4,     0,     4,     0,     6,     0,
-       4,     1,     3,     1,     0,     6,     0,     6,     0,     4,
-       1,     3,     1,     0,     6,     1,     3,     0,     4,     1,
-       3,     1,     1,     1,     1,     1,     1,     1,     3,     0,
-       4,     0,     6,     1,     3,     0,     4,     1,     3,     1,
-       1,     1,     1,     0,     4,     3,     3,     3
+       1,     1,     1,     3,     0,     4,     0,     4,     3,     0,
+       4,     3,     3,     0,     4,     1,     1,     0,     4,     3,
+       3,     0,     4,     1,     1,     1,     1,     1,     0,     4,
+       0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
+       0,     6,     0,     4,     1,     3,     1,     0,     6,     0,
+       6,     0,     4,     1,     3,     1,     0,     6,     1,     3,
+       0,     4,     1,     3,     1,     1,     1,     1,     1,     1,
+       1,     3,     0,     4,     0,     6,     1,     3,     0,     4,
+       1,     3,     1,     1,     1,     1,     0,     4,     3,     3,
+       3
   };
 
 
@@ -4821,26 +4846,26 @@ namespace isc { namespace dhcp {
   const Dhcp6Parser::yytname_[] =
   {
   "\"end of file\"", "error", "$undefined", "\",\"", "\":\"", "\"[\"",
-  "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp6\"", "\"config-control\"",
-  "\"config-databases\"", "\"interfaces-config\"", "\"interfaces\"",
-  "\"re-detect\"", "\"lease-database\"", "\"hosts-database\"",
-  "\"hosts-databases\"", "\"type\"", "\"memfile\"", "\"mysql\"",
-  "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"", "\"host\"",
-  "\"port\"", "\"persist\"", "\"lfc-interval\"", "\"readonly\"",
-  "\"connect-timeout\"", "\"contact-points\"", "\"max-reconnect-tries\"",
-  "\"reconnect-wait-time\"", "\"keyspace\"", "\"request-timeout\"",
-  "\"tcp-keepalive\"", "\"tcp-nodelay\"", "\"preferred-lifetime\"",
-  "\"valid-lifetime\"", "\"renew-timer\"", "\"rebind-timer\"",
-  "\"decline-probation-period\"", "\"server-tag\"", "\"subnet6\"",
-  "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"",
-  "\"space\"", "\"csv-format\"", "\"always-send\"", "\"record-types\"",
-  "\"encapsulate\"", "\"array\"", "\"pools\"", "\"pool\"", "\"pd-pools\"",
-  "\"prefix\"", "\"prefix-len\"", "\"excluded-prefix\"",
-  "\"excluded-prefix-len\"", "\"delegated-len\"", "\"user-context\"",
-  "\"comment\"", "\"subnet\"", "\"interface\"", "\"interface-id\"",
-  "\"id\"", "\"rapid-commit\"", "\"reservation-mode\"", "\"disabled\"",
-  "\"out-of-pool\"", "\"global\"", "\"all\"", "\"shared-networks\"",
-  "\"mac-sources\"", "\"relay-supplied-options\"",
+  "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp6\"", "\"data-directory\"",
+  "\"config-control\"", "\"config-databases\"", "\"interfaces-config\"",
+  "\"interfaces\"", "\"re-detect\"", "\"lease-database\"",
+  "\"hosts-database\"", "\"hosts-databases\"", "\"type\"", "\"memfile\"",
+  "\"mysql\"", "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"",
+  "\"host\"", "\"port\"", "\"persist\"", "\"lfc-interval\"",
+  "\"readonly\"", "\"connect-timeout\"", "\"contact-points\"",
+  "\"max-reconnect-tries\"", "\"reconnect-wait-time\"", "\"keyspace\"",
+  "\"request-timeout\"", "\"tcp-keepalive\"", "\"tcp-nodelay\"",
+  "\"preferred-lifetime\"", "\"valid-lifetime\"", "\"renew-timer\"",
+  "\"rebind-timer\"", "\"decline-probation-period\"", "\"server-tag\"",
+  "\"subnet6\"", "\"option-def\"", "\"option-data\"", "\"name\"",
+  "\"data\"", "\"code\"", "\"space\"", "\"csv-format\"", "\"always-send\"",
+  "\"record-types\"", "\"encapsulate\"", "\"array\"", "\"pools\"",
+  "\"pool\"", "\"pd-pools\"", "\"prefix\"", "\"prefix-len\"",
+  "\"excluded-prefix\"", "\"excluded-prefix-len\"", "\"delegated-len\"",
+  "\"user-context\"", "\"comment\"", "\"subnet\"", "\"interface\"",
+  "\"interface-id\"", "\"id\"", "\"rapid-commit\"", "\"reservation-mode\"",
+  "\"disabled\"", "\"out-of-pool\"", "\"global\"", "\"all\"",
+  "\"shared-networks\"", "\"mac-sources\"", "\"relay-supplied-options\"",
   "\"host-reservation-identifiers\"", "\"sanity-checks\"",
   "\"lease-checks\"", "\"client-classes\"", "\"require-client-classes\"",
   "\"test\"", "\"only-if-required\"", "\"client-class\"",
@@ -4876,164 +4901,165 @@ namespace isc { namespace dhcp {
   "not_empty_list", "list_strings", "$@18", "list_strings_content",
   "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@19",
   "global_objects", "global_object", "dhcp6_object", "$@20", "sub_dhcp6",
-  "$@21", "global_params", "global_param", "preferred_lifetime",
-  "valid_lifetime", "renew_timer", "rebind_timer",
-  "decline_probation_period", "server_tag", "$@22", "interfaces_config",
-  "$@23", "sub_interfaces6", "$@24", "interfaces_config_params",
-  "interfaces_config_param", "interfaces_list", "$@25", "re_detect",
-  "lease_database", "$@26", "hosts_database", "$@27", "hosts_databases",
-  "$@28", "database_list", "not_empty_database_list", "database", "$@29",
-  "database_map_params", "database_map_param", "database_type", "$@30",
-  "db_type", "user", "$@31", "password", "$@32", "host", "$@33", "port",
-  "name", "$@34", "persist", "lfc_interval", "readonly", "connect_timeout",
+  "$@21", "global_params", "global_param", "data_directory", "$@22",
+  "preferred_lifetime", "valid_lifetime", "renew_timer", "rebind_timer",
+  "decline_probation_period", "server_tag", "$@23", "interfaces_config",
+  "$@24", "sub_interfaces6", "$@25", "interfaces_config_params",
+  "interfaces_config_param", "interfaces_list", "$@26", "re_detect",
+  "lease_database", "$@27", "hosts_database", "$@28", "hosts_databases",
+  "$@29", "database_list", "not_empty_database_list", "database", "$@30",
+  "database_map_params", "database_map_param", "database_type", "$@31",
+  "db_type", "user", "$@32", "password", "$@33", "host", "$@34", "port",
+  "name", "$@35", "persist", "lfc_interval", "readonly", "connect_timeout",
   "reconnect_wait_time", "request_timeout", "tcp_keepalive", "tcp_nodelay",
-  "contact_points", "$@35", "max_reconnect_tries", "keyspace", "$@36",
-  "sanity_checks", "$@37", "sanity_checks_params", "sanity_checks_param",
-  "lease_checks", "$@38", "mac_sources", "$@39", "mac_sources_list",
+  "contact_points", "$@36", "max_reconnect_tries", "keyspace", "$@37",
+  "sanity_checks", "$@38", "sanity_checks_params", "sanity_checks_param",
+  "lease_checks", "$@39", "mac_sources", "$@40", "mac_sources_list",
   "mac_sources_value", "duid_id", "string_id",
-  "host_reservation_identifiers", "$@40",
+  "host_reservation_identifiers", "$@41",
   "host_reservation_identifiers_list", "host_reservation_identifier",
-  "hw_address_id", "flex_id", "relay_supplied_options", "$@41",
-  "hooks_libraries", "$@42", "hooks_libraries_list",
-  "not_empty_hooks_libraries_list", "hooks_library", "$@43",
-  "sub_hooks_library", "$@44", "hooks_params", "hooks_param", "library",
-  "$@45", "parameters", "$@46", "expired_leases_processing", "$@47",
+  "hw_address_id", "flex_id", "relay_supplied_options", "$@42",
+  "hooks_libraries", "$@43", "hooks_libraries_list",
+  "not_empty_hooks_libraries_list", "hooks_library", "$@44",
+  "sub_hooks_library", "$@45", "hooks_params", "hooks_param", "library",
+  "$@46", "parameters", "$@47", "expired_leases_processing", "$@48",
   "expired_leases_params", "expired_leases_param",
   "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time",
   "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time",
-  "unwarned_reclaim_cycles", "subnet6_list", "$@48",
-  "subnet6_list_content", "not_empty_subnet6_list", "subnet6", "$@49",
-  "sub_subnet6", "$@50", "subnet6_params", "subnet6_param", "subnet",
-  "$@51", "interface", "$@52", "interface_id", "$@53", "client_class",
-  "$@54", "require_client_classes", "$@55", "reservation_mode", "$@56",
-  "hr_mode", "id", "rapid_commit", "shared_networks", "$@57",
+  "unwarned_reclaim_cycles", "subnet6_list", "$@49",
+  "subnet6_list_content", "not_empty_subnet6_list", "subnet6", "$@50",
+  "sub_subnet6", "$@51", "subnet6_params", "subnet6_param", "subnet",
+  "$@52", "interface", "$@53", "interface_id", "$@54", "client_class",
+  "$@55", "require_client_classes", "$@56", "reservation_mode", "$@57",
+  "hr_mode", "id", "rapid_commit", "shared_networks", "$@58",
   "shared_networks_content", "shared_networks_list", "shared_network",
-  "$@58", "shared_network_params", "shared_network_param",
-  "option_def_list", "$@59", "sub_option_def_list", "$@60",
+  "$@59", "shared_network_params", "shared_network_param",
+  "option_def_list", "$@60", "sub_option_def_list", "$@61",
   "option_def_list_content", "not_empty_option_def_list",
-  "option_def_entry", "$@61", "sub_option_def", "$@62",
+  "option_def_entry", "$@62", "sub_option_def", "$@63",
   "option_def_params", "not_empty_option_def_params", "option_def_param",
-  "option_def_name", "code", "option_def_code", "option_def_type", "$@63",
-  "option_def_record_types", "$@64", "space", "$@65", "option_def_space",
-  "option_def_encapsulate", "$@66", "option_def_array", "option_data_list",
-  "$@67", "option_data_list_content", "not_empty_option_data_list",
-  "option_data_entry", "$@68", "sub_option_data", "$@69",
+  "option_def_name", "code", "option_def_code", "option_def_type", "$@64",
+  "option_def_record_types", "$@65", "space", "$@66", "option_def_space",
+  "option_def_encapsulate", "$@67", "option_def_array", "option_data_list",
+  "$@68", "option_data_list_content", "not_empty_option_data_list",
+  "option_data_entry", "$@69", "sub_option_data", "$@70",
   "option_data_params", "not_empty_option_data_params",
-  "option_data_param", "option_data_name", "option_data_data", "$@70",
+  "option_data_param", "option_data_name", "option_data_data", "$@71",
   "option_data_code", "option_data_space", "option_data_csv_format",
-  "option_data_always_send", "pools_list", "$@71", "pools_list_content",
-  "not_empty_pools_list", "pool_list_entry", "$@72", "sub_pool6", "$@73",
-  "pool_params", "pool_param", "pool_entry", "$@74", "user_context",
-  "$@75", "comment", "$@76", "pd_pools_list", "$@77",
+  "option_data_always_send", "pools_list", "$@72", "pools_list_content",
+  "not_empty_pools_list", "pool_list_entry", "$@73", "sub_pool6", "$@74",
+  "pool_params", "pool_param", "pool_entry", "$@75", "user_context",
+  "$@76", "comment", "$@77", "pd_pools_list", "$@78",
   "pd_pools_list_content", "not_empty_pd_pools_list", "pd_pool_entry",
-  "$@78", "sub_pd_pool", "$@79", "pd_pool_params", "pd_pool_param",
-  "pd_prefix", "$@80", "pd_prefix_len", "excluded_prefix", "$@81",
-  "excluded_prefix_len", "pd_delegated_len", "reservations", "$@82",
+  "$@79", "sub_pd_pool", "$@80", "pd_pool_params", "pd_pool_param",
+  "pd_prefix", "$@81", "pd_prefix_len", "excluded_prefix", "$@82",
+  "excluded_prefix_len", "pd_delegated_len", "reservations", "$@83",
   "reservations_list", "not_empty_reservations_list", "reservation",
-  "$@83", "sub_reservation", "$@84", "reservation_params",
+  "$@84", "sub_reservation", "$@85", "reservation_params",
   "not_empty_reservation_params", "reservation_param", "ip_addresses",
-  "$@85", "prefixes", "$@86", "duid", "$@87", "hw_address", "$@88",
-  "hostname", "$@89", "flex_id_value", "$@90",
-  "reservation_client_classes", "$@91", "relay", "$@92", "relay_map",
-  "ip_address", "$@93", "client_classes", "$@94", "client_classes_list",
-  "client_class_entry", "$@95", "client_class_params",
+  "$@86", "prefixes", "$@87", "duid", "$@88", "hw_address", "$@89",
+  "hostname", "$@90", "flex_id_value", "$@91",
+  "reservation_client_classes", "$@92", "relay", "$@93", "relay_map",
+  "ip_address", "$@94", "client_classes", "$@95", "client_classes_list",
+  "client_class_entry", "$@96", "client_class_params",
   "not_empty_client_class_params", "client_class_param",
-  "client_class_name", "client_class_test", "$@96", "only_if_required",
-  "server_id", "$@97", "server_id_params", "server_id_param",
-  "server_id_type", "$@98", "duid_type", "htype", "identifier", "$@99",
-  "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@100",
-  "control_socket_params", "control_socket_param", "socket_type", "$@101",
-  "socket_name", "$@102", "dhcp_queue_control", "$@103", "dhcp_ddns",
-  "$@104", "sub_dhcp_ddns", "$@105", "dhcp_ddns_params", "dhcp_ddns_param",
-  "enable_updates", "qualifying_suffix", "$@106", "server_ip", "$@107",
-  "server_port", "sender_ip", "$@108", "sender_port", "max_queue_size",
-  "ncr_protocol", "$@109", "ncr_protocol_value", "ncr_format", "$@110",
+  "client_class_name", "client_class_test", "$@97", "only_if_required",
+  "server_id", "$@98", "server_id_params", "server_id_param",
+  "server_id_type", "$@99", "duid_type", "htype", "identifier", "$@100",
+  "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@101",
+  "control_socket_params", "control_socket_param", "socket_type", "$@102",
+  "socket_name", "$@103", "dhcp_queue_control", "$@104", "dhcp_ddns",
+  "$@105", "sub_dhcp_ddns", "$@106", "dhcp_ddns_params", "dhcp_ddns_param",
+  "enable_updates", "qualifying_suffix", "$@107", "server_ip", "$@108",
+  "server_port", "sender_ip", "$@109", "sender_port", "max_queue_size",
+  "ncr_protocol", "$@110", "ncr_protocol_value", "ncr_format", "$@111",
   "override_no_update", "override_client_update", "replace_client_name",
-  "$@111", "replace_client_name_value", "generated_prefix", "$@112",
-  "hostname_char_set", "$@113", "hostname_char_replacement", "$@114",
-  "dhcp4_json_object", "$@115", "dhcpddns_json_object", "$@116",
-  "control_agent_json_object", "$@117", "config_control", "$@118",
-  "sub_config_control", "$@119", "config_control_params",
-  "config_control_param", "config_databases", "$@120", "logging_object",
-  "$@121", "sub_logging", "$@122", "logging_params", "logging_param",
-  "loggers", "$@123", "loggers_entries", "logger_entry", "$@124",
-  "logger_params", "logger_param", "debuglevel", "severity", "$@125",
-  "output_options_list", "$@126", "output_options_list_content",
-  "output_entry", "$@127", "output_params_list", "output_params", "output",
-  "$@128", "flush", "maxsize", "maxver", YY_NULLPTR
+  "$@112", "replace_client_name_value", "generated_prefix", "$@113",
+  "hostname_char_set", "$@114", "hostname_char_replacement", "$@115",
+  "dhcp4_json_object", "$@116", "dhcpddns_json_object", "$@117",
+  "control_agent_json_object", "$@118", "config_control", "$@119",
+  "sub_config_control", "$@120", "config_control_params",
+  "config_control_param", "config_databases", "$@121", "logging_object",
+  "$@122", "sub_logging", "$@123", "logging_params", "logging_param",
+  "loggers", "$@124", "loggers_entries", "logger_entry", "$@125",
+  "logger_params", "logger_param", "debuglevel", "severity", "$@126",
+  "output_options_list", "$@127", "output_options_list_content",
+  "output_entry", "$@128", "output_params_list", "output_params", "output",
+  "$@129", "flush", "maxsize", "maxver", YY_NULLPTR
   };
 
 #if PARSER6_DEBUG
   const unsigned short
   Dhcp6Parser::yyrline_[] =
   {
-       0,   257,   257,   257,   258,   258,   259,   259,   260,   260,
-     261,   261,   262,   262,   263,   263,   264,   264,   265,   265,
-     266,   266,   267,   267,   268,   268,   269,   269,   270,   270,
-     271,   271,   279,   280,   281,   282,   283,   284,   285,   288,
-     293,   293,   304,   307,   308,   311,   315,   322,   322,   329,
-     330,   333,   337,   344,   344,   351,   352,   355,   359,   370,
-     380,   380,   395,   396,   400,   401,   402,   403,   404,   405,
-     408,   408,   423,   423,   432,   433,   438,   439,   440,   441,
-     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
-     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
-     462,   463,   464,   465,   466,   467,   468,   469,   472,   477,
-     482,   487,   492,   497,   497,   505,   505,   516,   516,   525,
-     526,   529,   530,   531,   532,   533,   536,   536,   546,   552,
-     552,   564,   564,   576,   576,   586,   587,   590,   591,   594,
-     594,   604,   605,   608,   609,   610,   611,   612,   613,   614,
-     615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
-     625,   628,   628,   635,   636,   637,   638,   641,   641,   649,
-     649,   657,   657,   665,   670,   670,   678,   683,   688,   693,
-     698,   703,   708,   713,   718,   718,   726,   731,   731,   739,
-     739,   749,   750,   752,   754,   754,   772,   772,   782,   783,
-     786,   787,   790,   795,   800,   800,   810,   811,   814,   815,
-     816,   819,   824,   831,   831,   841,   841,   851,   852,   855,
-     856,   859,   859,   869,   869,   879,   880,   881,   884,   885,
-     888,   888,   896,   896,   904,   904,   915,   916,   919,   920,
-     921,   922,   923,   924,   927,   932,   937,   942,   947,   952,
-     960,   960,   973,   974,   977,   978,   985,   985,  1011,  1011,
-    1022,  1023,  1027,  1028,  1029,  1030,  1031,  1032,  1033,  1034,
-    1035,  1036,  1037,  1038,  1039,  1040,  1041,  1042,  1043,  1044,
-    1045,  1046,  1049,  1049,  1057,  1057,  1065,  1065,  1073,  1073,
-    1081,  1081,  1091,  1091,  1098,  1099,  1100,  1101,  1104,  1109,
-    1117,  1117,  1128,  1129,  1133,  1134,  1137,  1137,  1145,  1146,
-    1149,  1150,  1151,  1152,  1153,  1154,  1155,  1156,  1157,  1158,
-    1159,  1160,  1161,  1162,  1163,  1164,  1165,  1172,  1172,  1185,
-    1185,  1194,  1195,  1198,  1199,  1204,  1204,  1219,  1219,  1233,
-    1234,  1237,  1238,  1241,  1242,  1243,  1244,  1245,  1246,  1247,
-    1248,  1249,  1250,  1253,  1255,  1260,  1262,  1262,  1270,  1270,
-    1278,  1278,  1286,  1288,  1288,  1296,  1305,  1305,  1317,  1318,
-    1323,  1324,  1329,  1329,  1341,  1341,  1353,  1354,  1359,  1360,
-    1365,  1366,  1367,  1368,  1369,  1370,  1371,  1372,  1373,  1376,
-    1378,  1378,  1386,  1388,  1390,  1395,  1403,  1403,  1415,  1416,
-    1419,  1420,  1423,  1423,  1433,  1433,  1442,  1443,  1446,  1447,
-    1448,  1449,  1450,  1451,  1452,  1455,  1455,  1463,  1463,  1488,
-    1488,  1518,  1518,  1530,  1531,  1534,  1535,  1538,  1538,  1550,
-    1550,  1562,  1563,  1566,  1567,  1568,  1569,  1570,  1571,  1572,
-    1573,  1574,  1575,  1576,  1579,  1579,  1587,  1592,  1592,  1600,
-    1605,  1613,  1613,  1623,  1624,  1627,  1628,  1631,  1631,  1640,
-    1640,  1649,  1650,  1653,  1654,  1658,  1659,  1660,  1661,  1662,
-    1663,  1664,  1665,  1666,  1667,  1668,  1671,  1671,  1681,  1681,
-    1691,  1691,  1699,  1699,  1707,  1707,  1715,  1715,  1723,  1723,
-    1736,  1736,  1746,  1747,  1750,  1750,  1761,  1761,  1771,  1772,
-    1775,  1775,  1785,  1786,  1789,  1790,  1793,  1794,  1795,  1796,
-    1797,  1798,  1799,  1802,  1804,  1804,  1812,  1820,  1820,  1832,
-    1833,  1836,  1837,  1838,  1839,  1840,  1841,  1842,  1843,  1844,
-    1847,  1847,  1854,  1855,  1856,  1859,  1864,  1864,  1872,  1877,
-    1884,  1891,  1891,  1901,  1902,  1905,  1906,  1907,  1908,  1909,
-    1912,  1912,  1920,  1920,  1930,  1930,  1970,  1970,  1982,  1982,
-    1992,  1993,  1996,  1997,  1998,  1999,  2000,  2001,  2002,  2003,
-    2004,  2005,  2006,  2007,  2008,  2009,  2010,  2011,  2012,  2013,
-    2016,  2021,  2021,  2029,  2029,  2037,  2042,  2042,  2050,  2055,
-    2060,  2060,  2068,  2069,  2072,  2072,  2080,  2085,  2090,  2090,
-    2098,  2101,  2104,  2107,  2110,  2116,  2116,  2124,  2124,  2132,
-    2132,  2142,  2142,  2149,  2149,  2156,  2156,  2165,  2165,  2176,
-    2176,  2186,  2187,  2191,  2194,  2194,  2209,  2209,  2219,  2219,
-    2230,  2231,  2235,  2239,  2239,  2251,  2252,  2256,  2256,  2264,
-    2265,  2268,  2269,  2270,  2271,  2272,  2273,  2274,  2277,  2282,
-    2282,  2290,  2290,  2300,  2301,  2304,  2304,  2312,  2313,  2316,
-    2317,  2318,  2319,  2322,  2322,  2330,  2335,  2340
+       0,   258,   258,   258,   259,   259,   260,   260,   261,   261,
+     262,   262,   263,   263,   264,   264,   265,   265,   266,   266,
+     267,   267,   268,   268,   269,   269,   270,   270,   271,   271,
+     272,   272,   280,   281,   282,   283,   284,   285,   286,   289,
+     294,   294,   305,   308,   309,   312,   316,   323,   323,   330,
+     331,   334,   338,   345,   345,   352,   353,   356,   360,   371,
+     381,   381,   396,   397,   401,   402,   403,   404,   405,   406,
+     409,   409,   424,   424,   433,   434,   439,   440,   441,   442,
+     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
+     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
+     463,   464,   465,   466,   467,   468,   469,   470,   471,   474,
+     474,   482,   487,   492,   497,   502,   507,   507,   515,   515,
+     526,   526,   535,   536,   539,   540,   541,   542,   543,   546,
+     546,   556,   562,   562,   574,   574,   586,   586,   596,   597,
+     600,   601,   604,   604,   614,   615,   618,   619,   620,   621,
+     622,   623,   624,   625,   626,   627,   628,   629,   630,   631,
+     632,   633,   634,   635,   638,   638,   645,   646,   647,   648,
+     651,   651,   659,   659,   667,   667,   675,   680,   680,   688,
+     693,   698,   703,   708,   713,   718,   723,   728,   728,   736,
+     741,   741,   749,   749,   759,   760,   762,   764,   764,   782,
+     782,   792,   793,   796,   797,   800,   805,   810,   810,   820,
+     821,   824,   825,   826,   829,   834,   841,   841,   851,   851,
+     861,   862,   865,   866,   869,   869,   879,   879,   889,   890,
+     891,   894,   895,   898,   898,   906,   906,   914,   914,   925,
+     926,   929,   930,   931,   932,   933,   934,   937,   942,   947,
+     952,   957,   962,   970,   970,   983,   984,   987,   988,   995,
+     995,  1021,  1021,  1032,  1033,  1037,  1038,  1039,  1040,  1041,
+    1042,  1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,  1051,
+    1052,  1053,  1054,  1055,  1056,  1059,  1059,  1067,  1067,  1075,
+    1075,  1083,  1083,  1091,  1091,  1101,  1101,  1108,  1109,  1110,
+    1111,  1114,  1119,  1127,  1127,  1138,  1139,  1143,  1144,  1147,
+    1147,  1155,  1156,  1159,  1160,  1161,  1162,  1163,  1164,  1165,
+    1166,  1167,  1168,  1169,  1170,  1171,  1172,  1173,  1174,  1175,
+    1182,  1182,  1195,  1195,  1204,  1205,  1208,  1209,  1214,  1214,
+    1229,  1229,  1243,  1244,  1247,  1248,  1251,  1252,  1253,  1254,
+    1255,  1256,  1257,  1258,  1259,  1260,  1263,  1265,  1270,  1272,
+    1272,  1280,  1280,  1288,  1288,  1296,  1298,  1298,  1306,  1315,
+    1315,  1327,  1328,  1333,  1334,  1339,  1339,  1351,  1351,  1363,
+    1364,  1369,  1370,  1375,  1376,  1377,  1378,  1379,  1380,  1381,
+    1382,  1383,  1386,  1388,  1388,  1396,  1398,  1400,  1405,  1413,
+    1413,  1425,  1426,  1429,  1430,  1433,  1433,  1443,  1443,  1452,
+    1453,  1456,  1457,  1458,  1459,  1460,  1461,  1462,  1465,  1465,
+    1473,  1473,  1498,  1498,  1528,  1528,  1540,  1541,  1544,  1545,
+    1548,  1548,  1560,  1560,  1572,  1573,  1576,  1577,  1578,  1579,
+    1580,  1581,  1582,  1583,  1584,  1585,  1586,  1589,  1589,  1597,
+    1602,  1602,  1610,  1615,  1623,  1623,  1633,  1634,  1637,  1638,
+    1641,  1641,  1650,  1650,  1659,  1660,  1663,  1664,  1668,  1669,
+    1670,  1671,  1672,  1673,  1674,  1675,  1676,  1677,  1678,  1681,
+    1681,  1691,  1691,  1701,  1701,  1709,  1709,  1717,  1717,  1725,
+    1725,  1733,  1733,  1746,  1746,  1756,  1757,  1760,  1760,  1771,
+    1771,  1781,  1782,  1785,  1785,  1795,  1796,  1799,  1800,  1803,
+    1804,  1805,  1806,  1807,  1808,  1809,  1812,  1814,  1814,  1822,
+    1830,  1830,  1842,  1843,  1846,  1847,  1848,  1849,  1850,  1851,
+    1852,  1853,  1854,  1857,  1857,  1864,  1865,  1866,  1869,  1874,
+    1874,  1882,  1887,  1894,  1901,  1901,  1911,  1912,  1915,  1916,
+    1917,  1918,  1919,  1922,  1922,  1930,  1930,  1940,  1940,  1980,
+    1980,  1992,  1992,  2002,  2003,  2006,  2007,  2008,  2009,  2010,
+    2011,  2012,  2013,  2014,  2015,  2016,  2017,  2018,  2019,  2020,
+    2021,  2022,  2023,  2026,  2031,  2031,  2039,  2039,  2047,  2052,
+    2052,  2060,  2065,  2070,  2070,  2078,  2079,  2082,  2082,  2090,
+    2095,  2100,  2100,  2108,  2111,  2114,  2117,  2120,  2126,  2126,
+    2134,  2134,  2142,  2142,  2152,  2152,  2159,  2159,  2166,  2166,
+    2175,  2175,  2186,  2186,  2196,  2197,  2201,  2204,  2204,  2219,
+    2219,  2229,  2229,  2240,  2241,  2245,  2249,  2249,  2261,  2262,
+    2266,  2266,  2274,  2275,  2278,  2279,  2280,  2281,  2282,  2283,
+    2284,  2287,  2292,  2292,  2300,  2300,  2310,  2311,  2314,  2314,
+    2322,  2323,  2326,  2327,  2328,  2329,  2332,  2332,  2340,  2345,
+    2350
   };
 
   // Print the state stack on the debug stream.
@@ -5068,8 +5094,8 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp6_parser.yy" // lalr1.cc:1242
 } } // isc::dhcp
-#line 5072 "dhcp6_parser.cc" // lalr1.cc:1242
-#line 2345 "dhcp6_parser.yy" // lalr1.cc:1243
+#line 5098 "dhcp6_parser.cc" // lalr1.cc:1242
+#line 2355 "dhcp6_parser.yy" // lalr1.cc:1243
 
 
 void
index da5a2d61461fade453b083650937df3deb565c1f..1821830ba1567bf53cb26af0b3d140805d08cf7c 100644 (file)
@@ -459,169 +459,170 @@ namespace isc { namespace dhcp {
         TOKEN_RCURLY_BRACKET = 263,
         TOKEN_NULL_TYPE = 264,
         TOKEN_DHCP6 = 265,
-        TOKEN_CONFIG_CONTROL = 266,
-        TOKEN_CONFIG_DATABASES = 267,
-        TOKEN_INTERFACES_CONFIG = 268,
-        TOKEN_INTERFACES = 269,
-        TOKEN_RE_DETECT = 270,
-        TOKEN_LEASE_DATABASE = 271,
-        TOKEN_HOSTS_DATABASE = 272,
-        TOKEN_HOSTS_DATABASES = 273,
-        TOKEN_TYPE = 274,
-        TOKEN_MEMFILE = 275,
-        TOKEN_MYSQL = 276,
-        TOKEN_POSTGRESQL = 277,
-        TOKEN_CQL = 278,
-        TOKEN_USER = 279,
-        TOKEN_PASSWORD = 280,
-        TOKEN_HOST = 281,
-        TOKEN_PORT = 282,
-        TOKEN_PERSIST = 283,
-        TOKEN_LFC_INTERVAL = 284,
-        TOKEN_READONLY = 285,
-        TOKEN_CONNECT_TIMEOUT = 286,
-        TOKEN_CONTACT_POINTS = 287,
-        TOKEN_MAX_RECONNECT_TRIES = 288,
-        TOKEN_RECONNECT_WAIT_TIME = 289,
-        TOKEN_KEYSPACE = 290,
-        TOKEN_REQUEST_TIMEOUT = 291,
-        TOKEN_TCP_KEEPALIVE = 292,
-        TOKEN_TCP_NODELAY = 293,
-        TOKEN_PREFERRED_LIFETIME = 294,
-        TOKEN_VALID_LIFETIME = 295,
-        TOKEN_RENEW_TIMER = 296,
-        TOKEN_REBIND_TIMER = 297,
-        TOKEN_DECLINE_PROBATION_PERIOD = 298,
-        TOKEN_SERVER_TAG = 299,
-        TOKEN_SUBNET6 = 300,
-        TOKEN_OPTION_DEF = 301,
-        TOKEN_OPTION_DATA = 302,
-        TOKEN_NAME = 303,
-        TOKEN_DATA = 304,
-        TOKEN_CODE = 305,
-        TOKEN_SPACE = 306,
-        TOKEN_CSV_FORMAT = 307,
-        TOKEN_ALWAYS_SEND = 308,
-        TOKEN_RECORD_TYPES = 309,
-        TOKEN_ENCAPSULATE = 310,
-        TOKEN_ARRAY = 311,
-        TOKEN_POOLS = 312,
-        TOKEN_POOL = 313,
-        TOKEN_PD_POOLS = 314,
-        TOKEN_PREFIX = 315,
-        TOKEN_PREFIX_LEN = 316,
-        TOKEN_EXCLUDED_PREFIX = 317,
-        TOKEN_EXCLUDED_PREFIX_LEN = 318,
-        TOKEN_DELEGATED_LEN = 319,
-        TOKEN_USER_CONTEXT = 320,
-        TOKEN_COMMENT = 321,
-        TOKEN_SUBNET = 322,
-        TOKEN_INTERFACE = 323,
-        TOKEN_INTERFACE_ID = 324,
-        TOKEN_ID = 325,
-        TOKEN_RAPID_COMMIT = 326,
-        TOKEN_RESERVATION_MODE = 327,
-        TOKEN_DISABLED = 328,
-        TOKEN_OUT_OF_POOL = 329,
-        TOKEN_GLOBAL = 330,
-        TOKEN_ALL = 331,
-        TOKEN_SHARED_NETWORKS = 332,
-        TOKEN_MAC_SOURCES = 333,
-        TOKEN_RELAY_SUPPLIED_OPTIONS = 334,
-        TOKEN_HOST_RESERVATION_IDENTIFIERS = 335,
-        TOKEN_SANITY_CHECKS = 336,
-        TOKEN_LEASE_CHECKS = 337,
-        TOKEN_CLIENT_CLASSES = 338,
-        TOKEN_REQUIRE_CLIENT_CLASSES = 339,
-        TOKEN_TEST = 340,
-        TOKEN_ONLY_IF_REQUIRED = 341,
-        TOKEN_CLIENT_CLASS = 342,
-        TOKEN_RESERVATIONS = 343,
-        TOKEN_IP_ADDRESSES = 344,
-        TOKEN_PREFIXES = 345,
-        TOKEN_DUID = 346,
-        TOKEN_HW_ADDRESS = 347,
-        TOKEN_HOSTNAME = 348,
-        TOKEN_FLEX_ID = 349,
-        TOKEN_RELAY = 350,
-        TOKEN_IP_ADDRESS = 351,
-        TOKEN_HOOKS_LIBRARIES = 352,
-        TOKEN_LIBRARY = 353,
-        TOKEN_PARAMETERS = 354,
-        TOKEN_EXPIRED_LEASES_PROCESSING = 355,
-        TOKEN_RECLAIM_TIMER_WAIT_TIME = 356,
-        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 357,
-        TOKEN_HOLD_RECLAIMED_TIME = 358,
-        TOKEN_MAX_RECLAIM_LEASES = 359,
-        TOKEN_MAX_RECLAIM_TIME = 360,
-        TOKEN_UNWARNED_RECLAIM_CYCLES = 361,
-        TOKEN_SERVER_ID = 362,
-        TOKEN_LLT = 363,
-        TOKEN_EN = 364,
-        TOKEN_LL = 365,
-        TOKEN_IDENTIFIER = 366,
-        TOKEN_HTYPE = 367,
-        TOKEN_TIME = 368,
-        TOKEN_ENTERPRISE_ID = 369,
-        TOKEN_DHCP4O6_PORT = 370,
-        TOKEN_CONTROL_SOCKET = 371,
-        TOKEN_SOCKET_TYPE = 372,
-        TOKEN_SOCKET_NAME = 373,
-        TOKEN_DHCP_QUEUE_CONTROL = 374,
-        TOKEN_DHCP_DDNS = 375,
-        TOKEN_ENABLE_UPDATES = 376,
-        TOKEN_QUALIFYING_SUFFIX = 377,
-        TOKEN_SERVER_IP = 378,
-        TOKEN_SERVER_PORT = 379,
-        TOKEN_SENDER_IP = 380,
-        TOKEN_SENDER_PORT = 381,
-        TOKEN_MAX_QUEUE_SIZE = 382,
-        TOKEN_NCR_PROTOCOL = 383,
-        TOKEN_NCR_FORMAT = 384,
-        TOKEN_OVERRIDE_NO_UPDATE = 385,
-        TOKEN_OVERRIDE_CLIENT_UPDATE = 386,
-        TOKEN_REPLACE_CLIENT_NAME = 387,
-        TOKEN_GENERATED_PREFIX = 388,
-        TOKEN_UDP = 389,
-        TOKEN_TCP = 390,
-        TOKEN_JSON = 391,
-        TOKEN_WHEN_PRESENT = 392,
-        TOKEN_NEVER = 393,
-        TOKEN_ALWAYS = 394,
-        TOKEN_WHEN_NOT_PRESENT = 395,
-        TOKEN_HOSTNAME_CHAR_SET = 396,
-        TOKEN_HOSTNAME_CHAR_REPLACEMENT = 397,
-        TOKEN_LOGGING = 398,
-        TOKEN_LOGGERS = 399,
-        TOKEN_OUTPUT_OPTIONS = 400,
-        TOKEN_OUTPUT = 401,
-        TOKEN_DEBUGLEVEL = 402,
-        TOKEN_SEVERITY = 403,
-        TOKEN_FLUSH = 404,
-        TOKEN_MAXSIZE = 405,
-        TOKEN_MAXVER = 406,
-        TOKEN_DHCP4 = 407,
-        TOKEN_DHCPDDNS = 408,
-        TOKEN_CONTROL_AGENT = 409,
-        TOKEN_TOPLEVEL_JSON = 410,
-        TOKEN_TOPLEVEL_DHCP6 = 411,
-        TOKEN_SUB_DHCP6 = 412,
-        TOKEN_SUB_INTERFACES6 = 413,
-        TOKEN_SUB_SUBNET6 = 414,
-        TOKEN_SUB_POOL6 = 415,
-        TOKEN_SUB_PD_POOL = 416,
-        TOKEN_SUB_RESERVATION = 417,
-        TOKEN_SUB_OPTION_DEFS = 418,
-        TOKEN_SUB_OPTION_DEF = 419,
-        TOKEN_SUB_OPTION_DATA = 420,
-        TOKEN_SUB_HOOKS_LIBRARY = 421,
-        TOKEN_SUB_DHCP_DDNS = 422,
-        TOKEN_SUB_LOGGING = 423,
-        TOKEN_SUB_CONFIG_CONTROL = 424,
-        TOKEN_STRING = 425,
-        TOKEN_INTEGER = 426,
-        TOKEN_FLOAT = 427,
-        TOKEN_BOOLEAN = 428
+        TOKEN_DATA_DIRECTORY = 266,
+        TOKEN_CONFIG_CONTROL = 267,
+        TOKEN_CONFIG_DATABASES = 268,
+        TOKEN_INTERFACES_CONFIG = 269,
+        TOKEN_INTERFACES = 270,
+        TOKEN_RE_DETECT = 271,
+        TOKEN_LEASE_DATABASE = 272,
+        TOKEN_HOSTS_DATABASE = 273,
+        TOKEN_HOSTS_DATABASES = 274,
+        TOKEN_TYPE = 275,
+        TOKEN_MEMFILE = 276,
+        TOKEN_MYSQL = 277,
+        TOKEN_POSTGRESQL = 278,
+        TOKEN_CQL = 279,
+        TOKEN_USER = 280,
+        TOKEN_PASSWORD = 281,
+        TOKEN_HOST = 282,
+        TOKEN_PORT = 283,
+        TOKEN_PERSIST = 284,
+        TOKEN_LFC_INTERVAL = 285,
+        TOKEN_READONLY = 286,
+        TOKEN_CONNECT_TIMEOUT = 287,
+        TOKEN_CONTACT_POINTS = 288,
+        TOKEN_MAX_RECONNECT_TRIES = 289,
+        TOKEN_RECONNECT_WAIT_TIME = 290,
+        TOKEN_KEYSPACE = 291,
+        TOKEN_REQUEST_TIMEOUT = 292,
+        TOKEN_TCP_KEEPALIVE = 293,
+        TOKEN_TCP_NODELAY = 294,
+        TOKEN_PREFERRED_LIFETIME = 295,
+        TOKEN_VALID_LIFETIME = 296,
+        TOKEN_RENEW_TIMER = 297,
+        TOKEN_REBIND_TIMER = 298,
+        TOKEN_DECLINE_PROBATION_PERIOD = 299,
+        TOKEN_SERVER_TAG = 300,
+        TOKEN_SUBNET6 = 301,
+        TOKEN_OPTION_DEF = 302,
+        TOKEN_OPTION_DATA = 303,
+        TOKEN_NAME = 304,
+        TOKEN_DATA = 305,
+        TOKEN_CODE = 306,
+        TOKEN_SPACE = 307,
+        TOKEN_CSV_FORMAT = 308,
+        TOKEN_ALWAYS_SEND = 309,
+        TOKEN_RECORD_TYPES = 310,
+        TOKEN_ENCAPSULATE = 311,
+        TOKEN_ARRAY = 312,
+        TOKEN_POOLS = 313,
+        TOKEN_POOL = 314,
+        TOKEN_PD_POOLS = 315,
+        TOKEN_PREFIX = 316,
+        TOKEN_PREFIX_LEN = 317,
+        TOKEN_EXCLUDED_PREFIX = 318,
+        TOKEN_EXCLUDED_PREFIX_LEN = 319,
+        TOKEN_DELEGATED_LEN = 320,
+        TOKEN_USER_CONTEXT = 321,
+        TOKEN_COMMENT = 322,
+        TOKEN_SUBNET = 323,
+        TOKEN_INTERFACE = 324,
+        TOKEN_INTERFACE_ID = 325,
+        TOKEN_ID = 326,
+        TOKEN_RAPID_COMMIT = 327,
+        TOKEN_RESERVATION_MODE = 328,
+        TOKEN_DISABLED = 329,
+        TOKEN_OUT_OF_POOL = 330,
+        TOKEN_GLOBAL = 331,
+        TOKEN_ALL = 332,
+        TOKEN_SHARED_NETWORKS = 333,
+        TOKEN_MAC_SOURCES = 334,
+        TOKEN_RELAY_SUPPLIED_OPTIONS = 335,
+        TOKEN_HOST_RESERVATION_IDENTIFIERS = 336,
+        TOKEN_SANITY_CHECKS = 337,
+        TOKEN_LEASE_CHECKS = 338,
+        TOKEN_CLIENT_CLASSES = 339,
+        TOKEN_REQUIRE_CLIENT_CLASSES = 340,
+        TOKEN_TEST = 341,
+        TOKEN_ONLY_IF_REQUIRED = 342,
+        TOKEN_CLIENT_CLASS = 343,
+        TOKEN_RESERVATIONS = 344,
+        TOKEN_IP_ADDRESSES = 345,
+        TOKEN_PREFIXES = 346,
+        TOKEN_DUID = 347,
+        TOKEN_HW_ADDRESS = 348,
+        TOKEN_HOSTNAME = 349,
+        TOKEN_FLEX_ID = 350,
+        TOKEN_RELAY = 351,
+        TOKEN_IP_ADDRESS = 352,
+        TOKEN_HOOKS_LIBRARIES = 353,
+        TOKEN_LIBRARY = 354,
+        TOKEN_PARAMETERS = 355,
+        TOKEN_EXPIRED_LEASES_PROCESSING = 356,
+        TOKEN_RECLAIM_TIMER_WAIT_TIME = 357,
+        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 358,
+        TOKEN_HOLD_RECLAIMED_TIME = 359,
+        TOKEN_MAX_RECLAIM_LEASES = 360,
+        TOKEN_MAX_RECLAIM_TIME = 361,
+        TOKEN_UNWARNED_RECLAIM_CYCLES = 362,
+        TOKEN_SERVER_ID = 363,
+        TOKEN_LLT = 364,
+        TOKEN_EN = 365,
+        TOKEN_LL = 366,
+        TOKEN_IDENTIFIER = 367,
+        TOKEN_HTYPE = 368,
+        TOKEN_TIME = 369,
+        TOKEN_ENTERPRISE_ID = 370,
+        TOKEN_DHCP4O6_PORT = 371,
+        TOKEN_CONTROL_SOCKET = 372,
+        TOKEN_SOCKET_TYPE = 373,
+        TOKEN_SOCKET_NAME = 374,
+        TOKEN_DHCP_QUEUE_CONTROL = 375,
+        TOKEN_DHCP_DDNS = 376,
+        TOKEN_ENABLE_UPDATES = 377,
+        TOKEN_QUALIFYING_SUFFIX = 378,
+        TOKEN_SERVER_IP = 379,
+        TOKEN_SERVER_PORT = 380,
+        TOKEN_SENDER_IP = 381,
+        TOKEN_SENDER_PORT = 382,
+        TOKEN_MAX_QUEUE_SIZE = 383,
+        TOKEN_NCR_PROTOCOL = 384,
+        TOKEN_NCR_FORMAT = 385,
+        TOKEN_OVERRIDE_NO_UPDATE = 386,
+        TOKEN_OVERRIDE_CLIENT_UPDATE = 387,
+        TOKEN_REPLACE_CLIENT_NAME = 388,
+        TOKEN_GENERATED_PREFIX = 389,
+        TOKEN_UDP = 390,
+        TOKEN_TCP = 391,
+        TOKEN_JSON = 392,
+        TOKEN_WHEN_PRESENT = 393,
+        TOKEN_NEVER = 394,
+        TOKEN_ALWAYS = 395,
+        TOKEN_WHEN_NOT_PRESENT = 396,
+        TOKEN_HOSTNAME_CHAR_SET = 397,
+        TOKEN_HOSTNAME_CHAR_REPLACEMENT = 398,
+        TOKEN_LOGGING = 399,
+        TOKEN_LOGGERS = 400,
+        TOKEN_OUTPUT_OPTIONS = 401,
+        TOKEN_OUTPUT = 402,
+        TOKEN_DEBUGLEVEL = 403,
+        TOKEN_SEVERITY = 404,
+        TOKEN_FLUSH = 405,
+        TOKEN_MAXSIZE = 406,
+        TOKEN_MAXVER = 407,
+        TOKEN_DHCP4 = 408,
+        TOKEN_DHCPDDNS = 409,
+        TOKEN_CONTROL_AGENT = 410,
+        TOKEN_TOPLEVEL_JSON = 411,
+        TOKEN_TOPLEVEL_DHCP6 = 412,
+        TOKEN_SUB_DHCP6 = 413,
+        TOKEN_SUB_INTERFACES6 = 414,
+        TOKEN_SUB_SUBNET6 = 415,
+        TOKEN_SUB_POOL6 = 416,
+        TOKEN_SUB_PD_POOL = 417,
+        TOKEN_SUB_RESERVATION = 418,
+        TOKEN_SUB_OPTION_DEFS = 419,
+        TOKEN_SUB_OPTION_DEF = 420,
+        TOKEN_SUB_OPTION_DATA = 421,
+        TOKEN_SUB_HOOKS_LIBRARY = 422,
+        TOKEN_SUB_DHCP_DDNS = 423,
+        TOKEN_SUB_LOGGING = 424,
+        TOKEN_SUB_CONFIG_CONTROL = 425,
+        TOKEN_STRING = 426,
+        TOKEN_INTEGER = 427,
+        TOKEN_FLOAT = 428,
+        TOKEN_BOOLEAN = 429
       };
     };
 
@@ -763,29 +764,29 @@ namespace isc { namespace dhcp {
         // Type destructor.
 switch (yytype)
     {
-      case 191: // value
-      case 195: // map_value
-      case 247: // db_type
-      case 336: // hr_mode
-      case 472: // duid_type
-      case 507: // ncr_protocol_value
-      case 514: // replace_client_name_value
+      case 192: // value
+      case 196: // map_value
+      case 250: // db_type
+      case 339: // hr_mode
+      case 475: // duid_type
+      case 510: // ncr_protocol_value
+      case 517: // replace_client_name_value
         value.template destroy< ElementPtr > ();
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.template destroy< bool > ();
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.template destroy< double > ();
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.template destroy< int64_t > ();
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.template destroy< std::string > ();
         break;
 
@@ -868,13 +869,13 @@ switch (yytype)
       symbol_type (int tok, location_type l)
         : super_type(token_type (tok), std::move (l))
       {
-        YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
+        YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
       }
 #else
       symbol_type (int tok, const location_type& l)
         : super_type(token_type (tok), l)
       {
-        YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
+        YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
       }
 #endif
 #if 201103L <= YY_CPLUSPLUS
@@ -1101,6 +1102,21 @@ switch (yytype)
         return symbol_type (token::TOKEN_DHCP6, l);
       }
 #endif
+#if 201103L <= YY_CPLUSPLUS
+      static
+      symbol_type
+      make_DATA_DIRECTORY (location_type l)
+      {
+        return symbol_type (token::TOKEN_DATA_DIRECTORY, std::move (l));
+      }
+#else
+      static
+      symbol_type
+      make_DATA_DIRECTORY (const location_type& l)
+      {
+        return symbol_type (token::TOKEN_DATA_DIRECTORY, l);
+      }
+#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -3852,12 +3868,12 @@ switch (yytype)
     enum
     {
       yyeof_ = 0,
-      yylast_ = 1020,     ///< Last index in yytable_.
-      yynnts_ = 389,  ///< Number of nonterminal symbols.
+      yylast_ = 1025,     ///< Last index in yytable_.
+      yynnts_ = 391,  ///< Number of nonterminal symbols.
       yyfinal_ = 32, ///< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
-      yyntokens_ = 174  ///< Number of tokens.
+      yyntokens_ = 175  ///< Number of tokens.
     };
 
 
@@ -3917,9 +3933,9 @@ switch (yytype)
      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   170,   171,   172,   173
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174
     };
-    const unsigned user_token_number_max_ = 428;
+    const unsigned user_token_number_max_ = 429;
     const token_number_type undef_token_ = 2;
 
     if (static_cast<int> (t) <= yyeof_)
@@ -3940,29 +3956,29 @@ switch (yytype)
   {
     switch (this->type_get ())
     {
-      case 191: // value
-      case 195: // map_value
-      case 247: // db_type
-      case 336: // hr_mode
-      case 472: // duid_type
-      case 507: // ncr_protocol_value
-      case 514: // replace_client_name_value
+      case 192: // value
+      case 196: // map_value
+      case 250: // db_type
+      case 339: // hr_mode
+      case 475: // duid_type
+      case 510: // ncr_protocol_value
+      case 517: // replace_client_name_value
         value.move< ElementPtr > (std::move (that.value));
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.move< bool > (std::move (that.value));
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.move< double > (std::move (that.value));
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.move< int64_t > (std::move (that.value));
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.move< std::string > (std::move (that.value));
         break;
 
@@ -3981,29 +3997,29 @@ switch (yytype)
   {
     switch (this->type_get ())
     {
-      case 191: // value
-      case 195: // map_value
-      case 247: // db_type
-      case 336: // hr_mode
-      case 472: // duid_type
-      case 507: // ncr_protocol_value
-      case 514: // replace_client_name_value
+      case 192: // value
+      case 196: // map_value
+      case 250: // db_type
+      case 339: // hr_mode
+      case 475: // duid_type
+      case 510: // ncr_protocol_value
+      case 517: // replace_client_name_value
         value.copy< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.copy< bool > (YY_MOVE (that.value));
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.copy< double > (YY_MOVE (that.value));
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.copy< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.copy< std::string > (YY_MOVE (that.value));
         break;
 
@@ -4029,29 +4045,29 @@ switch (yytype)
     super_type::move (s);
     switch (this->type_get ())
     {
-      case 191: // value
-      case 195: // map_value
-      case 247: // db_type
-      case 336: // hr_mode
-      case 472: // duid_type
-      case 507: // ncr_protocol_value
-      case 514: // replace_client_name_value
+      case 192: // value
+      case 196: // map_value
+      case 250: // db_type
+      case 339: // hr_mode
+      case 475: // duid_type
+      case 510: // ncr_protocol_value
+      case 517: // replace_client_name_value
         value.move< ElementPtr > (YY_MOVE (s.value));
         break;
 
-      case 173: // "boolean"
+      case 174: // "boolean"
         value.move< bool > (YY_MOVE (s.value));
         break;
 
-      case 172: // "floating point"
+      case 173: // "floating point"
         value.move< double > (YY_MOVE (s.value));
         break;
 
-      case 171: // "integer"
+      case 172: // "integer"
         value.move< int64_t > (YY_MOVE (s.value));
         break;
 
-      case 170: // "constant string"
+      case 171: // "constant string"
         value.move< std::string > (YY_MOVE (s.value));
         break;
 
@@ -4136,14 +4152,14 @@ switch (yytype)
      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
-     425,   426,   427,   428
+     425,   426,   427,   428,   429
     };
     return token_type (yytoken_number_[type]);
   }
 
 #line 14 "dhcp6_parser.yy" // lalr1.cc:401
 } } // isc::dhcp
-#line 4147 "dhcp6_parser.h" // lalr1.cc:401
+#line 4163 "dhcp6_parser.h" // lalr1.cc:401