blob: 044dd67cb35db61333760ac0752ae8fd54b11007 [file]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <optional>
#include <string>
#include <utility>
#include "quiche/common/platform/api/quiche_test.h"
#include "quiche/common/structured_headers.h"
// This file contains tests cases for the Structured Header parser and
// serializer, taken from the public test case repository at
// https://github.com/httpwg/structured-field-tests. All of the tests are named,
// so a given test case can be found in the JSON files in that repository by
// searching for the test name. This file is generated, with the test cases
// being automatically translated from the JSON source to C++ unit tests. Please
// do not modify, as the contents will be overwritten when this is re-generated.
// Generated on 2026-09-09 from structured-field-tests.git @
// 1e280c3ed9ffe0ca5fdb1d97219dddc389007677.
namespace quiche {
namespace structured_headers {
namespace {
// Helpers to make test cases clearer
Item Integer(int64_t value) { return Item(value); }
std::pair<std::string, Item> BooleanParam(std::string key, bool value) {
return std::make_pair(std::move(key), Item(value));
}
std::pair<std::string, Item> DoubleParam(std::string key, double value) {
return std::make_pair(std::move(key), Item(value));
}
std::pair<std::string, Item> Param(std::string key, int64_t value) {
return std::make_pair(std::move(key), Item(value));
}
std::pair<std::string, Item> Param(std::string key, absl::string_view value) {
return std::make_pair(std::move(key), Item(Item::string, value));
}
std::pair<std::string, Item> TokenParam(std::string key,
absl::string_view value) {
return std::make_pair(std::move(key), Item(Item::token, value));
}
const struct ParameterizedItemTestCase {
const char* name;
const char* raw;
size_t raw_len;
const std::optional<ParameterizedItem>
expected; // nullopt if parse error is expected.
const char* canonical; // nullptr if parse error is expected, or if canonical
// format is identical to raw.
const char* known_bug = nullptr;
} parameterized_item_test_cases[] = {
// binary.json
{"basic binary",
":aGVsbG8=:",
10,
{{Item(Item::byte_sequence, "hello"), {}}},
nullptr},
{"empty binary", "::", 2, {{Item(Item::byte_sequence, ""), {}}}, nullptr},
{"padding at beginning", ":=aGVsbG8=:", 11, std::nullopt, nullptr},
{"padding in middle", ":a=GVsbG8=:", 11, std::nullopt, nullptr},
{"bad padding",
":aGVsbG8:",
9,
{{Item(Item::byte_sequence, "hello"), {}}},
":aGVsbG8=:"},
{"bad padding dot", ":aGVsbG8.:", 10, std::nullopt, nullptr},
{"bad end delimiter", ":aGVsbG8=", 9, std::nullopt, nullptr},
{"extra whitespace", ":aGVsb G8=:", 11, std::nullopt, nullptr},
{"all whitespace", ": :", 6, std::nullopt, nullptr},
{"extra chars", ":aGVsbG!8=:", 11, std::nullopt, nullptr},
{"suffix chars", ":aGVsbG8=!:", 11, std::nullopt, nullptr},
{"non-zero pad bits",
":iZ==:",
6,
{{Item(Item::byte_sequence, "\211"), {}}},
":iQ==:"},
{"non-ASCII binary",
":/+Ah:",
6,
{{Item(Item::byte_sequence, "\377\340!"), {}}},
nullptr},
{"base64url binary", ":_-Ah:", 6, std::nullopt, nullptr},
{"binary prefix only", ":", 1, std::nullopt, nullptr},
// boolean.json
{"basic true boolean", "?1", 2, {{Item(true), {}}}, nullptr},
{"basic false boolean", "?0", 2, {{Item(false), {}}}, nullptr},
{"unknown boolean", "?Q", 2, std::nullopt, nullptr},
{"whitespace boolean", "? 1", 3, std::nullopt, nullptr},
{"negative zero boolean", "?-0", 3, std::nullopt, nullptr},
{"T boolean", "?T", 2, std::nullopt, nullptr},
{"F boolean", "?F", 2, std::nullopt, nullptr},
{"t boolean", "?t", 2, std::nullopt, nullptr},
{"f boolean", "?f", 2, std::nullopt, nullptr},
{"spelled-out True boolean", "?True", 5, std::nullopt, nullptr},
{"spelled-out False boolean", "?False", 6, std::nullopt, nullptr},
{"boolean prefix only", "?", 1, std::nullopt, nullptr},
// examples.json
{"Foo-Example",
"2; foourl=\"https://foo.example.com/\"",
36,
{{Integer(2), {Param("foourl", "https://foo.example.com/")}}},
"2;foourl=\"https://foo.example.com/\""},
{"Example-IntHeader",
"1; a; b=?0",
10,
{{Integer(1), {BooleanParam("a", true), BooleanParam("b", false)}}},
"1;a;b=?0"},
{"Example-IntItemHeader", "5", 1, {{Integer(5), {}}}, nullptr},
{"Example-IntItemHeader (params)",
"5; foo=bar",
10,
{{Integer(5), {TokenParam("foo", "bar")}}},
"5;foo=bar"},
{"Example-IntegerHeader", "42", 2, {{Integer(42), {}}}, nullptr},
{"Example-FloatHeader", "4.5", 3, {{Item(4.5), {}}}, nullptr},
{"Example-StringHeader",
"\"hello world\"",
13,
{{Item(Item::string, "hello world"), {}}},
nullptr},
{"Example-BinaryHdr",
":cHJldGVuZCB0aGlzIGlzIGJpbmFyeSBjb250ZW50Lg==:",
46,
{{Item(Item::byte_sequence, "pretend this is binary content."), {}}},
nullptr},
{"Example-BoolHdr", "?1", 2, {{Item(true), {}}}, nullptr},
// item.json
{"empty item", "", 0, std::nullopt, nullptr},
{"leading space", " \t 1", 4, std::nullopt, nullptr},
{"trailing space", "1 \t ", 4, std::nullopt, nullptr},
{"leading and trailing space", " 1 ", 5, {{Integer(1), {}}}, "1"},
{"leading and trailing whitespace", " 1 ", 8, {{Integer(1), {}}}, "1"},
// large-generated.json
{"large string",
"\"======================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"========================================================================="
"====\"",
1026,
{{Item(Item::string,
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================================================="
"=================================="),
{}}},
nullptr},
{"large escaped string",
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\"
"\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\\\"\"",
2050,
{{Item(Item::string,
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""
"\""),
{}}},
nullptr},
{"large token",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"a",
512,
{{Item(Item::token,
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"),
{}}},
nullptr},
{"large byte sequence",
":YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF"
"hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"
"YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY"
"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW"
"FhYWFhYWFhYWFhYWFhYQ==:",
21850,
{{Item(
Item::byte_sequence,
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"),
{}}},
nullptr},
// number-generated.json
{"1 digits of zero", "0", 1, {{Integer(0), {}}}, "0"},
{"1 digit small integer", "1", 1, {{Integer(1), {}}}, nullptr},
{"1 digit large integer", "9", 1, {{Integer(9), {}}}, nullptr},
{"2 digits of zero", "00", 2, {{Integer(0), {}}}, "0"},
{"2 digit small integer", "11", 2, {{Integer(11), {}}}, nullptr},
{"2 digit large integer", "99", 2, {{Integer(99), {}}}, nullptr},
{"3 digits of zero", "000", 3, {{Integer(0), {}}}, "0"},
{"3 digit small integer", "111", 3, {{Integer(111), {}}}, nullptr},
{"3 digit large integer", "999", 3, {{Integer(999), {}}}, nullptr},
{"4 digits of zero", "0000", 4, {{Integer(0), {}}}, "0"},
{"4 digit small integer", "1111", 4, {{Integer(1111), {}}}, nullptr},
{"4 digit large integer", "9999", 4, {{Integer(9999), {}}}, nullptr},
{"5 digits of zero", "00000", 5, {{Integer(0), {}}}, "0"},
{"5 digit small integer", "11111", 5, {{Integer(11111), {}}}, nullptr},
{"5 digit large integer", "99999", 5, {{Integer(99999), {}}}, nullptr},
{"6 digits of zero", "000000", 6, {{Integer(0), {}}}, "0"},
{"6 digit small integer", "111111", 6, {{Integer(111111), {}}}, nullptr},
{"6 digit large integer", "999999", 6, {{Integer(999999), {}}}, nullptr},
{"7 digits of zero", "0000000", 7, {{Integer(0), {}}}, "0"},
{"7 digit small integer", "1111111", 7, {{Integer(1111111), {}}}, nullptr},
{"7 digit large integer", "9999999", 7, {{Integer(9999999), {}}}, nullptr},
{"8 digits of zero", "00000000", 8, {{Integer(0), {}}}, "0"},
{"8 digit small integer",
"11111111",
8,
{{Integer(11111111), {}}},
nullptr},
{"8 digit large integer",
"99999999",
8,
{{Integer(99999999), {}}},
nullptr},
{"9 digits of zero", "000000000", 9, {{Integer(0), {}}}, "0"},
{"9 digit small integer",
"111111111",
9,
{{Integer(111111111), {}}},
nullptr},
{"9 digit large integer",
"999999999",
9,
{{Integer(999999999), {}}},
nullptr},
{"10 digits of zero", "0000000000", 10, {{Integer(0), {}}}, "0"},
{"10 digit small integer",
"1111111111",
10,
{{Integer(1111111111), {}}},
nullptr},
{"10 digit large integer",
"9999999999",
10,
{{Integer(9999999999), {}}},
nullptr},
{"11 digits of zero", "00000000000", 11, {{Integer(0), {}}}, "0"},
{"11 digit small integer",
"11111111111",
11,
{{Integer(11111111111), {}}},
nullptr},
{"11 digit large integer",
"99999999999",
11,
{{Integer(99999999999), {}}},
nullptr},
{"12 digits of zero", "000000000000", 12, {{Integer(0), {}}}, "0"},
{"12 digit small integer",
"111111111111",
12,
{{Integer(111111111111), {}}},
nullptr},
{"12 digit large integer",
"999999999999",
12,
{{Integer(999999999999), {}}},
nullptr},
{"13 digits of zero", "0000000000000", 13, {{Integer(0), {}}}, "0"},
{"13 digit small integer",
"1111111111111",
13,
{{Integer(1111111111111), {}}},
nullptr},
{"13 digit large integer",
"9999999999999",
13,
{{Integer(9999999999999), {}}},
nullptr},
{"14 digits of zero", "00000000000000", 14, {{Integer(0), {}}}, "0"},
{"14 digit small integer",
"11111111111111",
14,
{{Integer(11111111111111), {}}},
nullptr},
{"14 digit large integer",
"99999999999999",
14,
{{Integer(99999999999999), {}}},
nullptr},
{"15 digits of zero", "000000000000000", 15, {{Integer(0), {}}}, "0"},
{"15 digit small integer",
"111111111111111",
15,
{{Integer(111111111111111), {}}},
nullptr},
{"15 digit large integer",
"999999999999999",
15,
{{Integer(999999999999999), {}}},
nullptr},
{"2 digit 0, 1 fractional small decimal",
"0.1",
3,
{{Item(0.1), {}}},
"0.1"},
{"2 digit, 1 fractional 0 decimal", "1.0", 3, {{Item(1.0), {}}}, "1.0"},
{"2 digit, 1 fractional small decimal",
"1.1",
3,
{{Item(1.1), {}}},
nullptr},
{"2 digit, 1 fractional large decimal",
"9.9",
3,
{{Item(9.9), {}}},
nullptr},
{"3 digit 0, 2 fractional small decimal",
"0.11",
4,
{{Item(0.11), {}}},
"0.11"},
{"3 digit, 2 fractional 0 decimal", "1.00", 4, {{Item(1.0), {}}}, "1.0"},
{"3 digit, 2 fractional small decimal",
"1.11",
4,
{{Item(1.11), {}}},
nullptr},
{"3 digit, 2 fractional large decimal",
"9.99",
4,
{{Item(9.99), {}}},
nullptr},
{"4 digit 0, 3 fractional small decimal",
"0.111",
5,
{{Item(0.111), {}}},
"0.111"},
{"4 digit, 3 fractional 0 decimal", "1.000", 5, {{Item(1.0), {}}}, "1.0"},
{"4 digit, 3 fractional small decimal",
"1.111",
5,
{{Item(1.111), {}}},
nullptr},
{"4 digit, 3 fractional large decimal",
"9.999",
5,
{{Item(9.999), {}}},
nullptr},
{"3 digit 0, 1 fractional small decimal",
"00.1",
4,
{{Item(0.1), {}}},
"0.1"},
{"3 digit, 1 fractional 0 decimal", "11.0", 4, {{Item(11.0), {}}}, "11.0"},
{"3 digit, 1 fractional small decimal",
"11.1",
4,
{{Item(11.1), {}}},
nullptr},
{"3 digit, 1 fractional large decimal",
"99.9",
4,
{{Item(99.9), {}}},
nullptr},
{"4 digit 0, 2 fractional small decimal",
"00.11",
5,
{{Item(0.11), {}}},
"0.11"},
{"4 digit, 2 fractional 0 decimal", "11.00", 5, {{Item(11.0), {}}}, "11.0"},
{"4 digit, 2 fractional small decimal",
"11.11",
5,
{{Item(11.11), {}}},
nullptr},
{"4 digit, 2 fractional large decimal",
"99.99",
5,
{{Item(99.99), {}}},
nullptr},
{"5 digit 0, 3 fractional small decimal",
"00.111",
6,
{{Item(0.111), {}}},
"0.111"},
{"5 digit, 3 fractional 0 decimal",
"11.000",
6,
{{Item(11.0), {}}},
"11.0"},
{"5 digit, 3 fractional small decimal",
"11.111",
6,
{{Item(11.111), {}}},
nullptr},
{"5 digit, 3 fractional large decimal",
"99.999",
6,
{{Item(99.999), {}}},
nullptr},
{"4 digit 0, 1 fractional small decimal",
"000.1",
5,
{{Item(0.1), {}}},
"0.1"},
{"4 digit, 1 fractional 0 decimal",
"111.0",
5,
{{Item(111.0), {}}},
"111.0"},
{"4 digit, 1 fractional small decimal",
"111.1",
5,
{{Item(111.1), {}}},
nullptr},
{"4 digit, 1 fractional large decimal",
"999.9",
5,
{{Item(999.9), {}}},
nullptr},
{"5 digit 0, 2 fractional small decimal",
"000.11",
6,
{{Item(0.11), {}}},
"0.11"},
{"5 digit, 2 fractional 0 decimal",
"111.00",
6,
{{Item(111.0), {}}},
"111.0"},
{"5 digit, 2 fractional small decimal",
"111.11",
6,
{{Item(111.11), {}}},
nullptr},
{"5 digit, 2 fractional large decimal",
"999.99",
6,
{{Item(999.99), {}}},
nullptr},
{"6 digit 0, 3 fractional small decimal",
"000.111",
7,
{{Item(0.111), {}}},
"0.111"},
{"6 digit, 3 fractional 0 decimal",
"111.000",
7,
{{Item(111.0), {}}},
"111.0"},
{"6 digit, 3 fractional small decimal",
"111.111",
7,
{{Item(111.111), {}}},
nullptr},
{"6 digit, 3 fractional large decimal",
"999.999",
7,
{{Item(999.999), {}}},
nullptr},
{"5 digit 0, 1 fractional small decimal",
"0000.1",
6,
{{Item(0.1), {}}},
"0.1"},
{"5 digit, 1 fractional 0 decimal",
"1111.0",
6,
{{Item(1111.0), {}}},
"1111.0"},
{"5 digit, 1 fractional small decimal",
"1111.1",
6,
{{Item(1111.1), {}}},
nullptr},
{"5 digit, 1 fractional large decimal",
"9999.9",
6,
{{Item(9999.9), {}}},
nullptr},
{"6 digit 0, 2 fractional small decimal",
"0000.11",
7,
{{Item(0.11), {}}},
"0.11"},
{"6 digit, 2 fractional 0 decimal",
"1111.00",
7,
{{Item(1111.0), {}}},
"1111.0"},
{"6 digit, 2 fractional small decimal",
"1111.11",
7,
{{Item(1111.11), {}}},
nullptr},
{"6 digit, 2 fractional large decimal",
"9999.99",
7,
{{Item(9999.99), {}}},
nullptr},
{"7 digit 0, 3 fractional small decimal",
"0000.111",
8,
{{Item(0.111), {}}},
"0.111"},
{"7 digit, 3 fractional 0 decimal",
"1111.000",
8,
{{Item(1111.0), {}}},
"1111.0"},
{"7 digit, 3 fractional small decimal",
"1111.111",
8,
{{Item(1111.111), {}}},
nullptr},
{"7 digit, 3 fractional large decimal",
"9999.999",
8,
{{Item(9999.999), {}}},
nullptr},
{"6 digit 0, 1 fractional small decimal",
"00000.1",
7,
{{Item(0.1), {}}},
"0.1"},
{"6 digit, 1 fractional 0 decimal",
"11111.0",
7,
{{Item(11111.0), {}}},
"11111.0"},
{"6 digit, 1 fractional small decimal",
"11111.1",
7,
{{Item(11111.1), {}}},
nullptr},
{"6 digit, 1 fractional large decimal",
"99999.9",
7,
{{Item(99999.9), {}}},
nullptr},
{"7 digit 0, 2 fractional small decimal",
"00000.11",
8,
{{Item(0.11), {}}},
"0.11"},
{"7 digit, 2 fractional 0 decimal",
"11111.00",
8,
{{Item(11111.0), {}}},
"11111.0"},
{"7 digit, 2 fractional small decimal",
"11111.11",
8,
{{Item(11111.11), {}}},
nullptr},
{"7 digit, 2 fractional large decimal",
"99999.99",
8,
{{Item(99999.99), {}}},
nullptr},
{"8 digit 0, 3 fractional small decimal",
"00000.111",
9,
{{Item(0.111), {}}},
"0.111"},
{"8 digit, 3 fractional 0 decimal",
"11111.000",
9,
{{Item(11111.0), {}}},
"11111.0"},
{"8 digit, 3 fractional small decimal",
"11111.111",
9,
{{Item(11111.111), {}}},
nullptr},
{"8 digit, 3 fractional large decimal",
"99999.999",
9,
{{Item(99999.999), {}}},
nullptr},
{"7 digit 0, 1 fractional small decimal",
"000000.1",
8,
{{Item(0.1), {}}},
"0.1"},
{"7 digit, 1 fractional 0 decimal",
"111111.0",
8,
{{Item(111111.0), {}}},
"111111.0"},
{"7 digit, 1 fractional small decimal",
"111111.1",
8,
{{Item(111111.1), {}}},
nullptr},
{"7 digit, 1 fractional large decimal",
"999999.9",
8,
{{Item(999999.9), {}}},
nullptr},
{"8 digit 0, 2 fractional small decimal",
"000000.11",
9,
{{Item(0.11), {}}},
"0.11"},
{"8 digit, 2 fractional 0 decimal",
"111111.00",
9,
{{Item(111111.0), {}}},
"111111.0"},
{"8 digit, 2 fractional small decimal",
"111111.11",
9,
{{Item(111111.11), {}}},
nullptr},
{"8 digit, 2 fractional large decimal",
"999999.99",
9,
{{Item(999999.99), {}}},
nullptr},
{"9 digit 0, 3 fractional small decimal",
"000000.111",
10,
{{Item(0.111), {}}},
"0.111"},
{"9 digit, 3 fractional 0 decimal",
"111111.000",
10,
{{Item(111111.0), {}}},
"111111.0"},
{"9 digit, 3 fractional small decimal",
"111111.111",
10,
{{Item(111111.111), {}}},
nullptr},
{"9 digit, 3 fractional large decimal",
"999999.999",
10,
{{Item(999999.999), {}}},
nullptr},
{"8 digit 0, 1 fractional small decimal",
"0000000.1",
9,
{{Item(0.1), {}}},
"0.1"},
{"8 digit, 1 fractional 0 decimal",
"1111111.0",
9,
{{Item(1111111.0), {}}},
"1111111.0"},
{"8 digit, 1 fractional small decimal",
"1111111.1",
9,
{{Item(1111111.1), {}}},
nullptr},
{"8 digit, 1 fractional large decimal",
"9999999.9",
9,
{{Item(9999999.9), {}}},
nullptr},
{"9 digit 0, 2 fractional small decimal",
"0000000.11",
10,
{{Item(0.11), {}}},
"0.11"},
{"9 digit, 2 fractional 0 decimal",
"1111111.00",
10,
{{Item(1111111.0), {}}},
"1111111.0"},
{"9 digit, 2 fractional small decimal",
"1111111.11",
10,
{{Item(1111111.11), {}}},
nullptr},
{"9 digit, 2 fractional large decimal",
"9999999.99",
10,
{{Item(9999999.99), {}}},
nullptr},
{"10 digit 0, 3 fractional small decimal",
"0000000.111",
11,
{{Item(0.111), {}}},
"0.111"},
{"10 digit, 3 fractional 0 decimal",
"1111111.000",
11,
{{Item(1111111.0), {}}},
"1111111.0"},
{"10 digit, 3 fractional small decimal",
"1111111.111",
11,
{{Item(1111111.111), {}}},
nullptr},
{"10 digit, 3 fractional large decimal",
"9999999.999",
11,
{{Item(9999999.999), {}}},
nullptr},
{"9 digit 0, 1 fractional small decimal",
"00000000.1",
10,
{{Item(0.1), {}}},
"0.1"},
{"9 digit, 1 fractional 0 decimal",
"11111111.0",
10,
{{Item(11111111.0), {}}},
"11111111.0"},
{"9 digit, 1 fractional small decimal",
"11111111.1",
10,
{{Item(11111111.1), {}}},
nullptr},
{"9 digit, 1 fractional large decimal",
"99999999.9",
10,
{{Item(99999999.9), {}}},
nullptr},
{"10 digit 0, 2 fractional small decimal",
"00000000.11",
11,
{{Item(0.11), {}}},
"0.11"},
{"10 digit, 2 fractional 0 decimal",
"11111111.00",
11,
{{Item(11111111.0), {}}},
"11111111.0"},
{"10 digit, 2 fractional small decimal",
"11111111.11",
11,
{{Item(11111111.11), {}}},
nullptr},
{"10 digit, 2 fractional large decimal",
"99999999.99",
11,
{{Item(99999999.99), {}}},
nullptr},
{"11 digit 0, 3 fractional small decimal",
"00000000.111",
12,
{{Item(0.111), {}}},
"0.111"},
{"11 digit, 3 fractional 0 decimal",
"11111111.000",
12,
{{Item(11111111.0), {}}},
"11111111.0"},
{"11 digit, 3 fractional small decimal",
"11111111.111",
12,
{{Item(11111111.111), {}}},
nullptr},
{"11 digit, 3 fractional large decimal",
"99999999.999",
12,
{{Item(99999999.999), {}}},
nullptr},
{"10 digit 0, 1 fractional small decimal",
"000000000.1",
11,
{{Item(0.1), {}}},
"0.1"},
{"10 digit, 1 fractional 0 decimal",
"111111111.0",
11,
{{Item(111111111.0), {}}},
"111111111.0"},
{"10 digit, 1 fractional small decimal",
"111111111.1",
11,
{{Item(111111111.1), {}}},
nullptr},
{"10 digit, 1 fractional large decimal",
"999999999.9",
11,
{{Item(999999999.9), {}}},
nullptr},
{"11 digit 0, 2 fractional small decimal",
"000000000.11",
12,
{{Item(0.11), {}}},
"0.11"},
{"11 digit, 2 fractional 0 decimal",
"111111111.00",
12,
{{Item(111111111.0), {}}},
"111111111.0"},
{"11 digit, 2 fractional small decimal",
"111111111.11",
12,
{{Item(111111111.11), {}}},
nullptr},
{"11 digit, 2 fractional large decimal",
"999999999.99",
12,
{{Item(999999999.99), {}}},
nullptr},
{"12 digit 0, 3 fractional small decimal",
"000000000.111",
13,
{{Item(0.111), {}}},
"0.111"},
{"12 digit, 3 fractional 0 decimal",
"111111111.000",
13,
{{Item(111111111.0), {}}},
"111111111.0"},
{"12 digit, 3 fractional small decimal",
"111111111.111",
13,
{{Item(111111111.111), {}}},
nullptr},
{"12 digit, 3 fractional large decimal",
"999999999.999",
13,
{{Item(999999999.999), {}}},
nullptr},
{"11 digit 0, 1 fractional small decimal",
"0000000000.1",
12,
{{Item(0.1), {}}},
"0.1"},
{"11 digit, 1 fractional 0 decimal",
"1111111111.0",
12,
{{Item(1111111111.0), {}}},
"1111111111.0"},
{"11 digit, 1 fractional small decimal",
"1111111111.1",
12,
{{Item(1111111111.1), {}}},
nullptr},
{"11 digit, 1 fractional large decimal",
"9999999999.9",
12,
{{Item(9999999999.9), {}}},
nullptr},
{"12 digit 0, 2 fractional small decimal",
"0000000000.11",
13,
{{Item(0.11), {}}},
"0.11"},
{"12 digit, 2 fractional 0 decimal",
"1111111111.00",
13,
{{Item(1111111111.0), {}}},
"1111111111.0"},
{"12 digit, 2 fractional small decimal",
"1111111111.11",
13,
{{Item(1111111111.11), {}}},
nullptr},
{"12 digit, 2 fractional large decimal",
"9999999999.99",
13,
{{Item(9999999999.99), {}}},
nullptr},
{"13 digit 0, 3 fractional small decimal",
"0000000000.111",
14,
{{Item(0.111), {}}},
"0.111"},
{"13 digit, 3 fractional 0 decimal",
"1111111111.000",
14,
{{Item(1111111111.0), {}}},
"1111111111.0"},
{"13 digit, 3 fractional small decimal",
"1111111111.111",
14,
{{Item(1111111111.111), {}}},
nullptr},
{"13 digit, 3 fractional large decimal",
"9999999999.999",
14,
{{Item(9999999999.999), {}}},
nullptr},
{"12 digit 0, 1 fractional small decimal",
"00000000000.1",
13,
{{Item(0.1), {}}},
"0.1"},
{"12 digit, 1 fractional 0 decimal",
"11111111111.0",
13,
{{Item(11111111111.0), {}}},
"11111111111.0"},
{"12 digit, 1 fractional small decimal",
"11111111111.1",
13,
{{Item(11111111111.1), {}}},
nullptr},
{"12 digit, 1 fractional large decimal",
"99999999999.9",
13,
{{Item(99999999999.9), {}}},
nullptr},
{"13 digit 0, 2 fractional small decimal",
"00000000000.11",
14,
{{Item(0.11), {}}},
"0.11"},
{"13 digit, 2 fractional 0 decimal",
"11111111111.00",
14,
{{Item(11111111111.0), {}}},
"11111111111.0"},
{"13 digit, 2 fractional small decimal",
"11111111111.11",
14,
{{Item(11111111111.11), {}}},
nullptr},
{"13 digit, 2 fractional large decimal",
"99999999999.99",
14,
{{Item(99999999999.99), {}}},
nullptr},
{"14 digit 0, 3 fractional small decimal",
"00000000000.111",
15,
{{Item(0.111), {}}},
"0.111"},
{"14 digit, 3 fractional 0 decimal",
"11111111111.000",
15,
{{Item(11111111111.0), {}}},
"11111111111.0"},
{"14 digit, 3 fractional small decimal",
"11111111111.111",
15,
{{Item(11111111111.111), {}}},
nullptr},
{"14 digit, 3 fractional large decimal",
"99999999999.999",
15,
{{Item(99999999999.999), {}}},
nullptr},
{"13 digit 0, 1 fractional small decimal",
"000000000000.1",
14,
{{Item(0.1), {}}},
"0.1"},
{"13 digit, 1 fractional 0 decimal",
"111111111111.0",
14,
{{Item(111111111111.0), {}}},
"111111111111.0"},
{"13 digit, 1 fractional small decimal",
"111111111111.1",
14,
{{Item(111111111111.1), {}}},
nullptr},
{"13 digit, 1 fractional large decimal",
"999999999999.9",
14,
{{Item(999999999999.9), {}}},
nullptr},
{"14 digit 0, 2 fractional small decimal",
"000000000000.11",
15,
{{Item(0.11), {}}},
"0.11"},
{"14 digit, 2 fractional 0 decimal",
"111111111111.00",
15,
{{Item(111111111111.0), {}}},
"111111111111.0"},
{"14 digit, 2 fractional small decimal",
"111111111111.11",
15,
{{Item(111111111111.11), {}}},
nullptr},
{"14 digit, 2 fractional large decimal",
"999999999999.99",
15,
{{Item(999999999999.99), {}}},
nullptr},
{"15 digit 0, 3 fractional small decimal",
"000000000000.111",
16,
{{Item(0.111), {}}},
"0.111"},
{"15 digit, 3 fractional 0 decimal",
"111111111111.000",
16,
{{Item(111111111111.0), {}}},
"111111111111.0"},
{"15 digit, 3 fractional small decimal",
"111111111111.111",
16,
{{Item(111111111111.111), {}}},
nullptr},
{"15 digit, 3 fractional large decimal",
"999999999999.999",
16,
{{Item(999999999999.999), {}}},
nullptr},
{"too many digit 0 decimal", "000000000000000.0", 17, std::nullopt,
nullptr},
{"too many fractional digits 0 decimal", "000000000000.0000", 17,
std::nullopt, nullptr},
{"too many digit 9 decimal", "999999999999999.9", 17, std::nullopt,
nullptr},
{"too many fractional digits 9 decimal", "999999999999.9999", 17,
std::nullopt, nullptr},
// number.json
{"basic integer", "42", 2, {{Integer(42), {}}}, nullptr},
{"zero integer", "0", 1, {{Integer(0), {}}}, nullptr},
{"negative zero", "-0", 2, {{Integer(0), {}}}, "0"},
{"double negative zero", "--0", 3, std::nullopt, nullptr},
{"negative integer", "-42", 3, {{Integer(-42), {}}}, nullptr},
{"leading 0 integer", "042", 3, {{Integer(42), {}}}, "42"},
{"leading 0 negative integer", "-042", 4, {{Integer(-42), {}}}, "-42"},
{"leading 0 zero", "00", 2, {{Integer(0), {}}}, "0"},
{"comma", "2,3", 3, std::nullopt, nullptr},
{"negative non-DIGIT first character", "-a23", 4, std::nullopt, nullptr},
{"sign out of place", "4-2", 3, std::nullopt, nullptr},
{"whitespace after sign", "- 42", 4, std::nullopt, nullptr},
{"long integer",
"123456789012345",
15,
{{Integer(123456789012345), {}}},
nullptr},
{"long negative integer",
"-123456789012345",
16,
{{Integer(-123456789012345), {}}},
nullptr},
{"too long integer", "1234567890123456", 16, std::nullopt, nullptr},
{"negative too long integer", "-1234567890123456", 17, std::nullopt,
nullptr},
{"simple decimal", "1.23", 4, {{Item(1.23), {}}}, nullptr},
{"negative decimal", "-1.23", 5, {{Item(-1.23), {}}}, nullptr},
{"decimal, whitespace after decimal", "1. 23", 5, std::nullopt, nullptr},
{"decimal, whitespace before decimal", "1 .23", 5, std::nullopt, nullptr},
{"negative decimal, whitespace after sign", "- 1.23", 6, std::nullopt,
nullptr},
{"tricky precision decimal",
"123456789012.1",
14,
{{Item(123456789012.1), {}}},
nullptr},
{"double decimal decimal", "1.5.4", 5, std::nullopt, nullptr},
{"adjacent double decimal decimal", "1..4", 4, std::nullopt, nullptr},
{"decimal with three fractional digits",
"1.123",
5,
{{Item(1.123), {}}},
nullptr},
{"negative decimal with three fractional digits",
"-1.123",
6,
{{Item(-1.123), {}}},
nullptr},
{"decimal with zero fractional digits", "1.", 2, std::nullopt, nullptr},
{"decimal with four fractional digits", "1.1234", 6, std::nullopt, nullptr},
{"negative decimal with four fractional digits", "-1.1234", 7, std::nullopt,
nullptr},
{"decimal with thirteen integer digits", "1234567890123.0", 15,
std::nullopt, nullptr},
{"negative decimal with thirteen integer digits", "-1234567890123.0", 16,
std::nullopt, nullptr},
{"decimal with 1 significant digit and 1 insignificant digit",
"1.20",
4,
{{Item(1.2), {}}},
"1.2"},
{"decimal with 1 significant digit and 2 insignificant digits",
"1.200",
5,
{{Item(1.2), {}}},
"1.2"},
{"decimal with 2 significant digits and 1 insignificant digit",
"1.230",
5,
{{Item(1.23), {}}},
"1.23"},
// string-generated.json
{"0x00 in string", "\" \000 \"", 5, std::nullopt, nullptr},
{"0x01 in string", "\" \001 \"", 5, std::nullopt, nullptr},
{"0x02 in string", "\" \002 \"", 5, std::nullopt, nullptr},
{"0x03 in string", "\" \003 \"", 5, std::nullopt, nullptr},
{"0x04 in string", "\" \004 \"", 5, std::nullopt, nullptr},
{"0x05 in string", "\" \005 \"", 5, std::nullopt, nullptr},
{"0x06 in string", "\" \006 \"", 5, std::nullopt, nullptr},
{"0x07 in string", "\" \007 \"", 5, std::nullopt, nullptr},
{"0x08 in string", "\" \010 \"", 5, std::nullopt, nullptr},
{"0x09 in string", "\" \t \"", 5, std::nullopt, nullptr},
{"0x0a in string", "\" \n \"", 5, std::nullopt, nullptr},
{"0x0b in string", "\" \013 \"", 5, std::nullopt, nullptr},
{"0x0c in string", "\" \014 \"", 5, std::nullopt, nullptr},
{"0x0d in string", "\" \r \"", 5, std::nullopt, nullptr},
{"0x0e in string", "\" \016 \"", 5, std::nullopt, nullptr},
{"0x0f in string", "\" \017 \"", 5, std::nullopt, nullptr},
{"0x10 in string", "\" \020 \"", 5, std::nullopt, nullptr},
{"0x11 in string", "\" \021 \"", 5, std::nullopt, nullptr},
{"0x12 in string", "\" \022 \"", 5, std::nullopt, nullptr},
{"0x13 in string", "\" \023 \"", 5, std::nullopt, nullptr},
{"0x14 in string", "\" \024 \"", 5, std::nullopt, nullptr},
{"0x15 in string", "\" \025 \"", 5, std::nullopt, nullptr},
{"0x16 in string", "\" \026 \"", 5, std::nullopt, nullptr},
{"0x17 in string", "\" \027 \"", 5, std::nullopt, nullptr},
{"0x18 in string", "\" \030 \"", 5, std::nullopt, nullptr},
{"0x19 in string", "\" \031 \"", 5, std::nullopt, nullptr},
{"0x1a in string", "\" \032 \"", 5, std::nullopt, nullptr},
{"0x1b in string", "\" \033 \"", 5, std::nullopt, nullptr},
{"0x1c in string", "\" \034 \"", 5, std::nullopt, nullptr},
{"0x1d in string", "\" \035 \"", 5, std::nullopt, nullptr},
{"0x1e in string", "\" \036 \"", 5, std::nullopt, nullptr},
{"0x1f in string", "\" \037 \"", 5, std::nullopt, nullptr},
{"0x20 in string",
"\" \"",
5,
{{Item(Item::string, " "), {}}},
nullptr},
{"0x21 in string",
"\" ! \"",
5,
{{Item(Item::string, " ! "), {}}},
nullptr},
{"0x22 in string", "\" \" \"", 5, std::nullopt, nullptr},
{"0x23 in string",
"\" # \"",
5,
{{Item(Item::string, " # "), {}}},
nullptr},
{"0x24 in string",
"\" $ \"",
5,
{{Item(Item::string, " $ "), {}}},
nullptr},
{"0x25 in string",
"\" % \"",
5,
{{Item(Item::string, " % "), {}}},
nullptr},
{"0x26 in string",
"\" & \"",
5,
{{Item(Item::string, " & "), {}}},
nullptr},
{"0x27 in string",
"\" ' \"",
5,
{{Item(Item::string, " ' "), {}}},
nullptr},
{"0x28 in string",
"\" ( \"",
5,
{{Item(Item::string, " ( "), {}}},
nullptr},
{"0x29 in string",
"\" ) \"",
5,
{{Item(Item::string, " ) "), {}}},
nullptr},
{"0x2a in string",
"\" * \"",
5,
{{Item(Item::string, " * "), {}}},
nullptr},
{"0x2b in string",
"\" + \"",
5,
{{Item(Item::string, " + "), {}}},
nullptr},
{"0x2c in string",
"\" , \"",
5,
{{Item(Item::string, " , "), {}}},
nullptr},
{"0x2d in string",
"\" - \"",
5,
{{Item(Item::string, " - "), {}}},
nullptr},
{"0x2e in string",
"\" . \"",
5,
{{Item(Item::string, " . "), {}}},
nullptr},
{"0x2f in string",
"\" / \"",
5,
{{Item(Item::string, " / "), {}}},
nullptr},
{"0x30 in string",
"\" 0 \"",
5,
{{Item(Item::string, " 0 "), {}}},
nullptr},
{"0x31 in string",
"\" 1 \"",
5,
{{Item(Item::string, " 1 "), {}}},
nullptr},
{"0x32 in string",
"\" 2 \"",
5,
{{Item(Item::string, " 2 "), {}}},
nullptr},
{"0x33 in string",
"\" 3 \"",
5,
{{Item(Item::string, " 3 "), {}}},
nullptr},
{"0x34 in string",
"\" 4 \"",
5,
{{Item(Item::string, " 4 "), {}}},
nullptr},
{"0x35 in string",
"\" 5 \"",
5,
{{Item(Item::string, " 5 "), {}}},
nullptr},
{"0x36 in string",
"\" 6 \"",
5,
{{Item(Item::string, " 6 "), {}}},
nullptr},
{"0x37 in string",
"\" 7 \"",
5,
{{Item(Item::string, " 7 "), {}}},
nullptr},
{"0x38 in string",
"\" 8 \"",
5,
{{Item(Item::string, " 8 "), {}}},
nullptr},
{"0x39 in string",
"\" 9 \"",
5,
{{Item(Item::string, " 9 "), {}}},
nullptr},
{"0x3a in string",
"\" : \"",
5,
{{Item(Item::string, " : "), {}}},
nullptr},
{"0x3b in string",
"\" ; \"",
5,
{{Item(Item::string, " ; "), {}}},
nullptr},
{"0x3c in string",
"\" < \"",
5,
{{Item(Item::string, " < "), {}}},
nullptr},
{"0x3d in string",
"\" = \"",
5,
{{Item(Item::string, " = "), {}}},
nullptr},
{"0x3e in string",
"\" > \"",
5,
{{Item(Item::string, " > "), {}}},
nullptr},
{"0x3f in string",
"\" ? \"",
5,
{{Item(Item::string, " ? "), {}}},
nullptr},
{"0x40 in string",
"\" @ \"",
5,
{{Item(Item::string, " @ "), {}}},
nullptr},
{"0x41 in string",
"\" A \"",
5,
{{Item(Item::string, " A "), {}}},
nullptr},
{"0x42 in string",
"\" B \"",
5,
{{Item(Item::string, " B "), {}}},
nullptr},
{"0x43 in string",
"\" C \"",
5,
{{Item(Item::string, " C "), {}}},
nullptr},
{"0x44 in string",
"\" D \"",
5,
{{Item(Item::string, " D "), {}}},
nullptr},
{"0x45 in string",
"\" E \"",
5,
{{Item(Item::string, " E "), {}}},
nullptr},
{"0x46 in string",
"\" F \"",
5,
{{Item(Item::string, " F "), {}}},
nullptr},
{"0x47 in string",
"\" G \"",
5,
{{Item(Item::string, " G "), {}}},
nullptr},
{"0x48 in string",
"\" H \"",
5,
{{Item(Item::string, " H "), {}}},
nullptr},
{"0x49 in string",
"\" I \"",
5,
{{Item(Item::string, " I "), {}}},
nullptr},
{"0x4a in string",
"\" J \"",
5,
{{Item(Item::string, " J "), {}}},
nullptr},
{"0x4b in string",
"\" K \"",
5,
{{Item(Item::string, " K "), {}}},
nullptr},
{"0x4c in string",
"\" L \"",
5,
{{Item(Item::string, " L "), {}}},
nullptr},
{"0x4d in string",
"\" M \"",
5,
{{Item(Item::string, " M "), {}}},
nullptr},
{"0x4e in string",
"\" N \"",
5,
{{Item(Item::string, " N "), {}}},
nullptr},
{"0x4f in string",
"\" O \"",
5,
{{Item(Item::string, " O "), {}}},
nullptr},
{"0x50 in string",
"\" P \"",
5,
{{Item(Item::string, " P "), {}}},
nullptr},
{"0x51 in string",
"\" Q \"",
5,
{{Item(Item::string, " Q "), {}}},
nullptr},
{"0x52 in string",
"\" R \"",
5,
{{Item(Item::string, " R "), {}}},
nullptr},
{"0x53 in string",
"\" S \"",
5,
{{Item(Item::string, " S "), {}}},
nullptr},
{"0x54 in string",
"\" T \"",
5,
{{Item(Item::string, " T "), {}}},
nullptr},
{"0x55 in string",
"\" U \"",
5,
{{Item(Item::string, " U "), {}}},
nullptr},
{"0x56 in string",
"\" V \"",
5,
{{Item(Item::string, " V "), {}}},
nullptr},
{"0x57 in string",
"\" W \"",
5,
{{Item(Item::string, " W "), {}}},
nullptr},
{"0x58 in string",
"\" X \"",
5,
{{Item(Item::string, " X "), {}}},
nullptr},
{"0x59 in string",
"\" Y \"",
5,
{{Item(Item::string, " Y "), {}}},
nullptr},
{"0x5a in string",
"\" Z \"",
5,
{{Item(Item::string, " Z "), {}}},
nullptr},
{"0x5b in string",
"\" [ \"",
5,
{{Item(Item::string, " [ "), {}}},
nullptr},
{"0x5c in string", "\" \\ \"", 5, std::nullopt, nullptr},
{"0x5d in string",
"\" ] \"",
5,
{{Item(Item::string, " ] "), {}}},
nullptr},
{"0x5e in string",
"\" ^ \"",
5,
{{Item(Item::string, " ^ "), {}}},
nullptr},
{"0x5f in string",
"\" _ \"",
5,
{{Item(Item::string, " _ "), {}}},
nullptr},
{"0x60 in string",
"\" ` \"",
5,
{{Item(Item::string, " ` "), {}}},
nullptr},
{"0x61 in string",
"\" a \"",
5,
{{Item(Item::string, " a "), {}}},
nullptr},
{"0x62 in string",
"\" b \"",
5,
{{Item(Item::string, " b "), {}}},
nullptr},
{"0x63 in string",
"\" c \"",
5,
{{Item(Item::string, " c "), {}}},
nullptr},
{"0x64 in string",
"\" d \"",
5,
{{Item(Item::string, " d "), {}}},
nullptr},
{"0x65 in string",
"\" e \"",
5,
{{Item(Item::string, " e "), {}}},
nullptr},
{"0x66 in string",
"\" f \"",
5,
{{Item(Item::string, " f "), {}}},
nullptr},
{"0x67 in string",
"\" g \"",
5,
{{Item(Item::string, " g "), {}}},
nullptr},
{"0x68 in string",
"\" h \"",
5,
{{Item(Item::string, " h "), {}}},
nullptr},
{"0x69 in string",
"\" i \"",
5,
{{Item(Item::string, " i "), {}}},
nullptr},
{"0x6a in string",
"\" j \"",
5,
{{Item(Item::string, " j "), {}}},
nullptr},
{"0x6b in string",
"\" k \"",
5,
{{Item(Item::string, " k "), {}}},
nullptr},
{"0x6c in string",
"\" l \"",
5,
{{Item(Item::string, " l "), {}}},
nullptr},
{"0x6d in string",
"\" m \"",
5,
{{Item(Item::string, " m "), {}}},
nullptr},
{"0x6e in string",
"\" n \"",
5,
{{Item(Item::string, " n "), {}}},
nullptr},
{"0x6f in string",
"\" o \"",
5,
{{Item(Item::string, " o "), {}}},
nullptr},
{"0x70 in string",
"\" p \"",
5,
{{Item(Item::string, " p "), {}}},
nullptr},
{"0x71 in string",
"\" q \"",
5,
{{Item(Item::string, " q "), {}}},
nullptr},
{"0x72 in string",
"\" r \"",
5,
{{Item(Item::string, " r "), {}}},
nullptr},
{"0x73 in string",
"\" s \"",
5,
{{Item(Item::string, " s "), {}}},
nullptr},
{"0x74 in string",
"\" t \"",
5,
{{Item(Item::string, " t "), {}}},
nullptr},
{"0x75 in string",
"\" u \"",
5,
{{Item(Item::string, " u "), {}}},
nullptr},
{"0x76 in string",
"\" v \"",
5,
{{Item(Item::string, " v "), {}}},
nullptr},
{"0x77 in string",
"\" w \"",
5,
{{Item(Item::string, " w "), {}}},
nullptr},
{"0x78 in string",
"\" x \"",
5,
{{Item(Item::string, " x "), {}}},
nullptr},
{"0x79 in string",
"\" y \"",
5,
{{Item(Item::string, " y "), {}}},
nullptr},
{"0x7a in string",
"\" z \"",
5,
{{Item(Item::string, " z "), {}}},
nullptr},
{"0x7b in string",
"\" { \"",
5,
{{Item(Item::string, " { "), {}}},
nullptr},
{"0x7c in string",
"\" | \"",
5,
{{Item(Item::string, " | "), {}}},
nullptr},
{"0x7d in string",
"\" } \"",
5,
{{Item(Item::string, " } "), {}}},
nullptr},
{"0x7e in string",
"\" ~ \"",
5,
{{Item(Item::string, " ~ "), {}}},
nullptr},
{"0x7f in string", "\" \177 \"", 5, std::nullopt, nullptr},
{"Escaped 0x00 in string", "\"\\\000\"", 4, std::nullopt, nullptr},
{"Escaped 0x01 in string", "\"\\\001\"", 4, std::nullopt, nullptr},
{"Escaped 0x02 in string", "\"\\\002\"", 4, std::nullopt, nullptr},
{"Escaped 0x03 in string", "\"\\\003\"", 4, std::nullopt, nullptr},
{"Escaped 0x04 in string", "\"\\\004\"", 4, std::nullopt, nullptr},
{"Escaped 0x05 in string", "\"\\\005\"", 4, std::nullopt, nullptr},
{"Escaped 0x06 in string", "\"\\\006\"", 4, std::nullopt, nullptr},
{"Escaped 0x07 in string", "\"\\\007\"", 4, std::nullopt, nullptr},
{"Escaped 0x08 in string", "\"\\\010\"", 4, std::nullopt, nullptr},
{"Escaped 0x09 in string", "\"\\\t\"", 4, std::nullopt, nullptr},
{"Escaped 0x0a in string", "\"\\\n\"", 4, std::nullopt, nullptr},
{"Escaped 0x0b in string", "\"\\\013\"", 4, std::nullopt, nullptr},
{"Escaped 0x0c in string", "\"\\\014\"", 4, std::nullopt, nullptr},
{"Escaped 0x0d in string", "\"\\\r\"", 4, std::nullopt, nullptr},
{"Escaped 0x0e in string", "\"\\\016\"", 4, std::nullopt, nullptr},
{"Escaped 0x0f in string", "\"\\\017\"", 4, std::nullopt, nullptr},
{"Escaped 0x10 in string", "\"\\\020\"", 4, std::nullopt, nullptr},
{"Escaped 0x11 in string", "\"\\\021\"", 4, std::nullopt, nullptr},
{"Escaped 0x12 in string", "\"\\\022\"", 4, std::nullopt, nullptr},
{"Escaped 0x13 in string", "\"\\\023\"", 4, std::nullopt, nullptr},
{"Escaped 0x14 in string", "\"\\\024\"", 4, std::nullopt, nullptr},
{"Escaped 0x15 in string", "\"\\\025\"", 4, std::nullopt, nullptr},
{"Escaped 0x16 in string", "\"\\\026\"", 4, std::nullopt, nullptr},
{"Escaped 0x17 in string", "\"\\\027\"", 4, std::nullopt, nullptr},
{"Escaped 0x18 in string", "\"\\\030\"", 4, std::nullopt, nullptr},
{"Escaped 0x19 in string", "\"\\\031\"", 4, std::nullopt, nullptr},
{"Escaped 0x1a in string", "\"\\\032\"", 4, std::nullopt, nullptr},
{"Escaped 0x1b in string", "\"\\\033\"", 4, std::nullopt, nullptr},
{"Escaped 0x1c in string", "\"\\\034\"", 4, std::nullopt, nullptr},
{"Escaped 0x1d in string", "\"\\\035\"", 4, std::nullopt, nullptr},
{"Escaped 0x1e in string", "\"\\\036\"", 4, std::nullopt, nullptr},
{"Escaped 0x1f in string", "\"\\\037\"", 4, std::nullopt, nullptr},
{"Escaped 0x20 in string", "\"\\ \"", 4, std::nullopt, nullptr},
{"Escaped 0x21 in string", "\"\\!\"", 4, std::nullopt, nullptr},
{"Escaped 0x22 in string",
"\"\\\"\"",
4,
{{Item(Item::string, "\""), {}}},
nullptr},
{"Escaped 0x23 in string", "\"\\#\"", 4, std::nullopt, nullptr},
{"Escaped 0x24 in string", "\"\\$\"", 4, std::nullopt, nullptr},
{"Escaped 0x25 in string", "\"\\%\"", 4, std::nullopt, nullptr},
{"Escaped 0x26 in string", "\"\\&\"", 4, std::nullopt, nullptr},
{"Escaped 0x27 in string", "\"\\'\"", 4, std::nullopt, nullptr},
{"Escaped 0x28 in string", "\"\\(\"", 4, std::nullopt, nullptr},
{"Escaped 0x29 in string", "\"\\)\"", 4, std::nullopt, nullptr},
{"Escaped 0x2a in string", "\"\\*\"", 4, std::nullopt, nullptr},
{"Escaped 0x2b in string", "\"\\+\"", 4, std::nullopt, nullptr},
{"Escaped 0x2c in string", "\"\\,\"", 4, std::nullopt, nullptr},
{"Escaped 0x2d in string", "\"\\-\"", 4, std::nullopt, nullptr},
{"Escaped 0x2e in string", "\"\\.\"", 4, std::nullopt, nullptr},
{"Escaped 0x2f in string", "\"\\/\"", 4, std::nullopt, nullptr},
{"Escaped 0x30 in string", "\"\\0\"", 4, std::nullopt, nullptr},
{"Escaped 0x31 in string", "\"\\1\"", 4, std::nullopt, nullptr},
{"Escaped 0x32 in string", "\"\\2\"", 4, std::nullopt, nullptr},
{"Escaped 0x33 in string", "\"\\3\"", 4, std::nullopt, nullptr},
{"Escaped 0x34 in string", "\"\\4\"", 4, std::nullopt, nullptr},
{"Escaped 0x35 in string", "\"\\5\"", 4, std::nullopt, nullptr},
{"Escaped 0x36 in string", "\"\\6\"", 4, std::nullopt, nullptr},
{"Escaped 0x37 in string", "\"\\7\"", 4, std::nullopt, nullptr},
{"Escaped 0x38 in string", "\"\\8\"", 4, std::nullopt, nullptr},
{"Escaped 0x39 in string", "\"\\9\"", 4, std::nullopt, nullptr},
{"Escaped 0x3a in string", "\"\\:\"", 4, std::nullopt, nullptr},
{"Escaped 0x3b in string", "\"\\;\"", 4, std::nullopt, nullptr},
{"Escaped 0x3c in string", "\"\\<\"", 4, std::nullopt, nullptr},
{"Escaped 0x3d in string", "\"\\=\"", 4, std::nullopt, nullptr},
{"Escaped 0x3e in string", "\"\\>\"", 4, std::nullopt, nullptr},
{"Escaped 0x3f in string", "\"\\?\"", 4, std::nullopt, nullptr},
{"Escaped 0x40 in string", "\"\\@\"", 4, std::nullopt, nullptr},
{"Escaped 0x41 in string", "\"\\A\"", 4, std::nullopt, nullptr},
{"Escaped 0x42 in string", "\"\\B\"", 4, std::nullopt, nullptr},
{"Escaped 0x43 in string", "\"\\C\"", 4, std::nullopt, nullptr},
{"Escaped 0x44 in string", "\"\\D\"", 4, std::nullopt, nullptr},
{"Escaped 0x45 in string", "\"\\E\"", 4, std::nullopt, nullptr},
{"Escaped 0x46 in string", "\"\\F\"", 4, std::nullopt, nullptr},
{"Escaped 0x47 in string", "\"\\G\"", 4, std::nullopt, nullptr},
{"Escaped 0x48 in string", "\"\\H\"", 4, std::nullopt, nullptr},
{"Escaped 0x49 in string", "\"\\I\"", 4, std::nullopt, nullptr},
{"Escaped 0x4a in string", "\"\\J\"", 4, std::nullopt, nullptr},
{"Escaped 0x4b in string", "\"\\K\"", 4, std::nullopt, nullptr},
{"Escaped 0x4c in string", "\"\\L\"", 4, std::nullopt, nullptr},
{"Escaped 0x4d in string", "\"\\M\"", 4, std::nullopt, nullptr},
{"Escaped 0x4e in string", "\"\\N\"", 4, std::nullopt, nullptr},
{"Escaped 0x4f in string", "\"\\O\"", 4, std::nullopt, nullptr},
{"Escaped 0x50 in string", "\"\\P\"", 4, std::nullopt, nullptr},
{"Escaped 0x51 in string", "\"\\Q\"", 4, std::nullopt, nullptr},
{"Escaped 0x52 in string", "\"\\R\"", 4, std::nullopt, nullptr},
{"Escaped 0x53 in string", "\"\\S\"", 4, std::nullopt, nullptr},
{"Escaped 0x54 in string", "\"\\T\"", 4, std::nullopt, nullptr},
{"Escaped 0x55 in string", "\"\\U\"", 4, std::nullopt, nullptr},
{"Escaped 0x56 in string", "\"\\V\"", 4, std::nullopt, nullptr},
{"Escaped 0x57 in string", "\"\\W\"", 4, std::nullopt, nullptr},
{"Escaped 0x58 in string", "\"\\X\"", 4, std::nullopt, nullptr},
{"Escaped 0x59 in string", "\"\\Y\"", 4, std::nullopt, nullptr},
{"Escaped 0x5a in string", "\"\\Z\"", 4, std::nullopt, nullptr},
{"Escaped 0x5b in string", "\"\\[\"", 4, std::nullopt, nullptr},
{"Escaped 0x5c in string",
"\"\\\\\"",
4,
{{Item(Item::string, "\\"), {}}},
nullptr},
{"Escaped 0x5d in string", "\"\\]\"", 4, std::nullopt, nullptr},
{"Escaped 0x5e in string", "\"\\^\"", 4, std::nullopt, nullptr},
{"Escaped 0x5f in string", "\"\\_\"", 4, std::nullopt, nullptr},
{"Escaped 0x60 in string", "\"\\`\"", 4, std::nullopt, nullptr},
{"Escaped 0x61 in string", "\"\\a\"", 4, std::nullopt, nullptr},
{"Escaped 0x62 in string", "\"\\b\"", 4, std::nullopt, nullptr},
{"Escaped 0x63 in string", "\"\\c\"", 4, std::nullopt, nullptr},
{"Escaped 0x64 in string", "\"\\d\"", 4, std::nullopt, nullptr},
{"Escaped 0x65 in string", "\"\\e\"", 4, std::nullopt, nullptr},
{"Escaped 0x66 in string", "\"\\f\"", 4, std::nullopt, nullptr},
{"Escaped 0x67 in string", "\"\\g\"", 4, std::nullopt, nullptr},
{"Escaped 0x68 in string", "\"\\h\"", 4, std::nullopt, nullptr},
{"Escaped 0x69 in string", "\"\\i\"", 4, std::nullopt, nullptr},
{"Escaped 0x6a in string", "\"\\j\"", 4, std::nullopt, nullptr},
{"Escaped 0x6b in string", "\"\\k\"", 4, std::nullopt, nullptr},
{"Escaped 0x6c in string", "\"\\l\"", 4, std::nullopt, nullptr},
{"Escaped 0x6d in string", "\"\\m\"", 4, std::nullopt, nullptr},
{"Escaped 0x6e in string", "\"\\n\"", 4, std::nullopt, nullptr},
{"Escaped 0x6f in string", "\"\\o\"", 4, std::nullopt, nullptr},
{"Escaped 0x70 in string", "\"\\p\"", 4, std::nullopt, nullptr},
{"Escaped 0x71 in string", "\"\\q\"", 4, std::nullopt, nullptr},
{"Escaped 0x72 in string", "\"\\r\"", 4, std::nullopt, nullptr},
{"Escaped 0x73 in string", "\"\\s\"", 4, std::nullopt, nullptr},
{"Escaped 0x74 in string", "\"\\t\"", 4, std::nullopt, nullptr},
{"Escaped 0x75 in string", "\"\\u\"", 4, std::nullopt, nullptr},
{"Escaped 0x76 in string", "\"\\v\"", 4, std::nullopt, nullptr},
{"Escaped 0x77 in string", "\"\\w\"", 4, std::nullopt, nullptr},
{"Escaped 0x78 in string", "\"\\x\"", 4, std::nullopt, nullptr},
{"Escaped 0x79 in string", "\"\\y\"", 4, std::nullopt, nullptr},
{"Escaped 0x7a in string", "\"\\z\"", 4, std::nullopt, nullptr},
{"Escaped 0x7b in string", "\"\\{\"", 4, std::nullopt, nullptr},
{"Escaped 0x7c in string", "\"\\|\"", 4, std::nullopt, nullptr},
{"Escaped 0x7d in string", "\"\\}\"", 4, std::nullopt, nullptr},
{"Escaped 0x7e in string", "\"\\~\"", 4, std::nullopt, nullptr},
{"Escaped 0x7f in string", "\"\\\177\"", 4, std::nullopt, nullptr},
// string.json
{"basic string",
"\"foo bar\"",
9,
{{Item(Item::string, "foo bar"), {}}},
nullptr},
{"empty string", "\"\"", 2, {{Item(Item::string, ""), {}}}, nullptr},
{"long string",
"\"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo foo foo foo foo foo foo foo foo foo foo foo \"",
262,
{{Item(Item::string,
"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo "
"foo "),
{}}},
nullptr},
{"whitespace string",
"\" \"",
5,
{{Item(Item::string, " "), {}}},
nullptr},
{"non-ascii string", "\"f\374\374\"", 5, std::nullopt, nullptr},
{"tab in string", "\"\t\"", 3, std::nullopt, nullptr},
{"newline in string", "\" \n \"", 5, std::nullopt, nullptr},
{"single quoted string", "'foo'", 5, std::nullopt, nullptr},
{"unbalanced string", "\"foo", 4, std::nullopt, nullptr},
{"string quoting",
"\"foo \\\"bar\\\" \\\\ baz\"",
20,
{{Item(Item::string, "foo \"bar\" \\ baz"), {}}},
nullptr},
{"bad string quoting", "\"foo \\,\"", 8, std::nullopt, nullptr},
{"ending string quote", "\"foo \\\"", 7, std::nullopt, nullptr},
{"abruptly ending string quote", "\"foo \\", 6, std::nullopt, nullptr},
{"two lines string",
"\"foo, bar\"",
10,
{{Item(Item::string, "foo, bar"), {}}},
"\"foo, bar\""},
// token-generated.json
{"0x00 in token", "a\000a", 3, std::nullopt, nullptr},
{"0x01 in token", "a\001a", 3, std::nullopt, nullptr},
{"0x02 in token", "a\002a", 3, std::nullopt, nullptr},
{"0x03 in token", "a\003a", 3, std::nullopt, nullptr},
{"0x04 in token", "a\004a", 3, std::nullopt, nullptr},
{"0x05 in token", "a\005a", 3, std::nullopt, nullptr},
{"0x06 in token", "a\006a", 3, std::nullopt, nullptr},
{"0x07 in token", "a\007a", 3, std::nullopt, nullptr},
{"0x08 in token", "a\010a", 3, std::nullopt, nullptr},
{"0x09 in token", "a\ta", 3, std::nullopt, nullptr},
{"0x0a in token", "a\na", 3, std::nullopt, nullptr},
{"0x0b in token", "a\013a", 3, std::nullopt, nullptr},
{"0x0c in token", "a\014a", 3, std::nullopt, nullptr},
{"0x0d in token", "a\ra", 3, std::nullopt, nullptr},
{"0x0e in token", "a\016a", 3, std::nullopt, nullptr},
{"0x0f in token", "a\017a", 3, std::nullopt, nullptr},
{"0x10 in token", "a\020a", 3, std::nullopt, nullptr},
{"0x11 in token", "a\021a", 3, std::nullopt, nullptr},
{"0x12 in token", "a\022a", 3, std::nullopt, nullptr},
{"0x13 in token", "a\023a", 3, std::nullopt, nullptr},
{"0x14 in token", "a\024a", 3, std::nullopt, nullptr},
{"0x15 in token", "a\025a", 3, std::nullopt, nullptr},
{"0x16 in token", "a\026a", 3, std::nullopt, nullptr},
{"0x17 in token", "a\027a", 3, std::nullopt, nullptr},
{"0x18 in token", "a\030a", 3, std::nullopt, nullptr},
{"0x19 in token", "a\031a", 3, std::nullopt, nullptr},
{"0x1a in token", "a\032a", 3, std::nullopt, nullptr},
{"0x1b in token", "a\033a", 3, std::nullopt, nullptr},
{"0x1c in token", "a\034a", 3, std::nullopt, nullptr},
{"0x1d in token", "a\035a", 3, std::nullopt, nullptr},
{"0x1e in token", "a\036a", 3, std::nullopt, nullptr},
{"0x1f in token", "a\037a", 3, std::nullopt, nullptr},
{"0x20 in token", "a a", 3, std::nullopt, nullptr},
{"0x21 in token", "a!a", 3, {{Item(Item::token, "a!a"), {}}}, nullptr},
{"0x22 in token", "a\"a", 3, std::nullopt, nullptr},
{"0x23 in token", "a#a", 3, {{Item(Item::token, "a#a"), {}}}, nullptr},
{"0x24 in token", "a$a", 3, {{Item(Item::token, "a$a"), {}}}, nullptr},
{"0x25 in token", "a%a", 3, {{Item(Item::token, "a%a"), {}}}, nullptr},
{"0x26 in token", "a&a", 3, {{Item(Item::token, "a&a"), {}}}, nullptr},
{"0x27 in token", "a'a", 3, {{Item(Item::token, "a'a"), {}}}, nullptr},
{"0x28 in token", "a(a", 3, std::nullopt, nullptr},
{"0x29 in token", "a)a", 3, std::nullopt, nullptr},
{"0x2a in token", "a*a", 3, {{Item(Item::token, "a*a"), {}}}, nullptr},
{"0x2b in token", "a+a", 3, {{Item(Item::token, "a+a"), {}}}, nullptr},
{"0x2c in token", "a,a", 3, std::nullopt, nullptr},
{"0x2d in token", "a-a", 3, {{Item(Item::token, "a-a"), {}}}, nullptr},
{"0x2e in token", "a.a", 3, {{Item(Item::token, "a.a"), {}}}, nullptr},
{"0x2f in token", "a/a", 3, {{Item(Item::token, "a/a"), {}}}, nullptr},
{"0x30 in token", "a0a", 3, {{Item(Item::token, "a0a"), {}}}, nullptr},
{"0x31 in token", "a1a", 3, {{Item(Item::token, "a1a"), {}}}, nullptr},
{"0x32 in token", "a2a", 3, {{Item(Item::token, "a2a"), {}}}, nullptr},
{"0x33 in token", "a3a", 3, {{Item(Item::token, "a3a"), {}}}, nullptr},
{"0x34 in token", "a4a", 3, {{Item(Item::token, "a4a"), {}}}, nullptr},
{"0x35 in token", "a5a", 3, {{Item(Item::token, "a5a"), {}}}, nullptr},
{"0x36 in token", "a6a", 3, {{Item(Item::token, "a6a"), {}}}, nullptr},
{"0x37 in token", "a7a", 3, {{Item(Item::token, "a7a"), {}}}, nullptr},
{"0x38 in token", "a8a", 3, {{Item(Item::token, "a8a"), {}}}, nullptr},
{"0x39 in token", "a9a", 3, {{Item(Item::token, "a9a"), {}}}, nullptr},
{"0x3a in token", "a:a", 3, {{Item(Item::token, "a:a"), {}}}, nullptr},
{"0x3b in token",
"a;a",
3,
{{Item(Item::token, "a"), {BooleanParam("a", true)}}},
nullptr},
{"0x3c in token", "a<a", 3, std::nullopt, nullptr},
{"0x3d in token", "a=a", 3, std::nullopt, nullptr},
{"0x3e in token", "a>a", 3, std::nullopt, nullptr},
{"0x3f in token", "a?a", 3, std::nullopt, nullptr},
{"0x40 in token", "a@a", 3, std::nullopt, nullptr},
{"0x41 in token", "aAa", 3, {{Item(Item::token, "aAa"), {}}}, nullptr},
{"0x42 in token", "aBa", 3, {{Item(Item::token, "aBa"), {}}}, nullptr},
{"0x43 in token", "aCa", 3, {{Item(Item::token, "aCa"), {}}}, nullptr},
{"0x44 in token", "aDa", 3, {{Item(Item::token, "aDa"), {}}}, nullptr},
{"0x45 in token", "aEa", 3, {{Item(Item::token, "aEa"), {}}}, nullptr},
{"0x46 in token", "aFa", 3, {{Item(Item::token, "aFa"), {}}}, nullptr},
{"0x47 in token", "aGa", 3, {{Item(Item::token, "aGa"), {}}}, nullptr},
{"0x48 in token", "aHa", 3, {{Item(Item::token, "aHa"), {}}}, nullptr},
{"0x49 in token", "aIa", 3, {{Item(Item::token, "aIa"), {}}}, nullptr},
{"0x4a in token", "aJa", 3, {{Item(Item::token, "aJa"), {}}}, nullptr},
{"0x4b in token", "aKa", 3, {{Item(Item::token, "aKa"), {}}}, nullptr},
{"0x4c in token", "aLa", 3, {{Item(Item::token, "aLa"), {}}}, nullptr},
{"0x4d in token", "aMa", 3, {{Item(Item::token, "aMa"), {}}}, nullptr},
{"0x4e in token", "aNa", 3, {{Item(Item::token, "aNa"), {}}}, nullptr},
{"0x4f in token", "aOa", 3, {{Item(Item::token, "aOa"), {}}}, nullptr},
{"0x50 in token", "aPa", 3, {{Item(Item::token, "aPa"), {}}}, nullptr},
{"0x51 in token", "aQa", 3, {{Item(Item::token, "aQa"), {}}}, nullptr},
{"0x52 in token", "aRa", 3, {{Item(Item::token, "aRa"), {}}}, nullptr},
{"0x53 in token", "aSa", 3, {{Item(Item::token, "aSa"), {}}}, nullptr},
{"0x54 in token", "aTa", 3, {{Item(Item::token, "aTa"), {}}}, nullptr},
{"0x55 in token", "aUa", 3, {{Item(Item::token, "aUa"), {}}}, nullptr},
{"0x56 in token", "aVa", 3, {{Item(Item::token, "aVa"), {}}}, nullptr},
{"0x57 in token", "aWa", 3, {{Item(Item::token, "aWa"), {}}}, nullptr},
{"0x58 in token", "aXa", 3, {{Item(Item::token, "aXa"), {}}}, nullptr},
{"0x59 in token", "aYa", 3, {{Item(Item::token, "aYa"), {}}}, nullptr},
{"0x5a in token", "aZa", 3, {{Item(Item::token, "aZa"), {}}}, nullptr},
{"0x5b in token", "a[a", 3, std::nullopt, nullptr},
{"0x5c in token", "a\\a", 3, std::nullopt, nullptr},
{"0x5d in token", "a]a", 3, std::nullopt, nullptr},
{"0x5e in token", "a^a", 3, {{Item(Item::token, "a^a"), {}}}, nullptr},
{"0x5f in token", "a_a", 3, {{Item(Item::token, "a_a"), {}}}, nullptr},
{"0x60 in token", "a`a", 3, {{Item(Item::token, "a`a"), {}}}, nullptr},
{"0x61 in token", "aaa", 3, {{Item(Item::token, "aaa"), {}}}, nullptr},
{"0x62 in token", "aba", 3, {{Item(Item::token, "aba"), {}}}, nullptr},
{"0x63 in token", "aca", 3, {{Item(Item::token, "aca"), {}}}, nullptr},
{"0x64 in token", "ada", 3, {{Item(Item::token, "ada"), {}}}, nullptr},
{"0x65 in token", "aea", 3, {{Item(Item::token, "aea"), {}}}, nullptr},
{"0x66 in token", "afa", 3, {{Item(Item::token, "afa"), {}}}, nullptr},
{"0x67 in token", "aga", 3, {{Item(Item::token, "aga"), {}}}, nullptr},
{"0x68 in token", "aha", 3, {{Item(Item::token, "aha"), {}}}, nullptr},
{"0x69 in token", "aia", 3, {{Item(Item::token, "aia"), {}}}, nullptr},
{"0x6a in token", "aja", 3, {{Item(Item::token, "aja"), {}}}, nullptr},
{"0x6b in token", "aka", 3, {{Item(Item::token, "aka"), {}}}, nullptr},
{"0x6c in token", "ala", 3, {{Item(Item::token, "ala"), {}}}, nullptr},
{"0x6d in token", "ama", 3, {{Item(Item::token, "ama"), {}}}, nullptr},
{"0x6e in token", "ana", 3, {{Item(Item::token, "ana"), {}}}, nullptr},
{"0x6f in token", "aoa", 3, {{Item(Item::token, "aoa"), {}}}, nullptr},
{"0x70 in token", "apa", 3, {{Item(Item::token, "apa"), {}}}, nullptr},
{"0x71 in token", "aqa", 3, {{Item(Item::token, "aqa"), {}}}, nullptr},
{"0x72 in token", "ara", 3, {{Item(Item::token, "ara"), {}}}, nullptr},
{"0x73 in token", "asa", 3, {{Item(Item::token, "asa"), {}}}, nullptr},
{"0x74 in token", "ata", 3, {{Item(Item::token, "ata"), {}}}, nullptr},
{"0x75 in token", "aua", 3, {{Item(Item::token, "aua"), {}}}, nullptr},
{"0x76 in token", "ava", 3, {{Item(Item::token, "ava"), {}}}, nullptr},
{"0x77 in token", "awa", 3, {{Item(Item::token, "awa"), {}}}, nullptr},
{"0x78 in token", "axa", 3, {{Item(Item::token, "axa"), {}}}, nullptr},
{"0x79 in token", "aya", 3, {{Item(Item::token, "aya"), {}}}, nullptr},
{"0x7a in token", "aza", 3, {{Item(Item::token, "aza"), {}}}, nullptr},
{"0x7b in token", "a{a", 3, std::nullopt, nullptr},
{"0x7c in token", "a|a", 3, {{Item(Item::token, "a|a"), {}}}, nullptr},
{"0x7d in token", "a}a", 3, std::nullopt, nullptr},
{"0x7e in token", "a~a", 3, {{Item(Item::token, "a~a"), {}}}, nullptr},
{"0x7f in token", "a\177a", 3, std::nullopt, nullptr},
{"0x00 starting a token", "\000a", 2, std::nullopt, nullptr},
{"0x01 starting a token", "\001a", 2, std::nullopt, nullptr},
{"0x02 starting a token", "\002a", 2, std::nullopt, nullptr},
{"0x03 starting a token", "\003a", 2, std::nullopt, nullptr},
{"0x04 starting a token", "\004a", 2, std::nullopt, nullptr},
{"0x05 starting a token", "\005a", 2, std::nullopt, nullptr},
{"0x06 starting a token", "\006a", 2, std::nullopt, nullptr},
{"0x07 starting a token", "\007a", 2, std::nullopt, nullptr},
{"0x08 starting a token", "\010a", 2, std::nullopt, nullptr},
{"0x09 starting a token", "\ta", 2, std::nullopt, nullptr},
{"0x0a starting a token", "\na", 2, std::nullopt, nullptr},
{"0x0b starting a token", "\013a", 2, std::nullopt, nullptr},
{"0x0c starting a token", "\014a", 2, std::nullopt, nullptr},
{"0x0d starting a token", "\ra", 2, std::nullopt, nullptr},
{"0x0e starting a token", "\016a", 2, std::nullopt, nullptr},
{"0x0f starting a token", "\017a", 2, std::nullopt, nullptr},
{"0x10 starting a token", "\020a", 2, std::nullopt, nullptr},
{"0x11 starting a token", "\021a", 2, std::nullopt, nullptr},
{"0x12 starting a token", "\022a", 2, std::nullopt, nullptr},
{"0x13 starting a token", "\023a", 2, std::nullopt, nullptr},
{"0x14 starting a token", "\024a", 2, std::nullopt, nullptr},
{"0x15 starting a token", "\025a", 2, std::nullopt, nullptr},
{"0x16 starting a token", "\026a", 2, std::nullopt, nullptr},
{"0x17 starting a token", "\027a", 2, std::nullopt, nullptr},
{"0x18 starting a token", "\030a", 2, std::nullopt, nullptr},
{"0x19 starting a token", "\031a", 2, std::nullopt, nullptr},
{"0x1a starting a token", "\032a", 2, std::nullopt, nullptr},
{"0x1b starting a token", "\033a", 2, std::nullopt, nullptr},
{"0x1c starting a token", "\034a", 2, std::nullopt, nullptr},
{"0x1d starting a token", "\035a", 2, std::nullopt, nullptr},
{"0x1e starting a token", "\036a", 2, std::nullopt, nullptr},
{"0x1f starting a token", "\037a", 2, std::nullopt, nullptr},
{"0x20 starting a token", " a", 2, {{Item(Item::token, "a"), {}}}, "a"},
{"0x21 starting a token", "!a", 2, std::nullopt, nullptr},
{"0x22 starting a token", "\"a", 2, std::nullopt, nullptr},
{"0x23 starting a token", "#a", 2, std::nullopt, nullptr},
{"0x24 starting a token", "$a", 2, std::nullopt, nullptr},
{"0x25 starting a token", "%a", 2, std::nullopt, nullptr},
{"0x26 starting a token", "&a", 2, std::nullopt, nullptr},
{"0x27 starting a token", "'a", 2, std::nullopt, nullptr},
{"0x28 starting a token", "(a", 2, std::nullopt, nullptr},
{"0x29 starting a token", ")a", 2, std::nullopt, nullptr},
{"0x2a starting a token",
"*a",
2,
{{Item(Item::token, "*a"), {}}},
nullptr},
{"0x2b starting a token", "+a", 2, std::nullopt, nullptr},
{"0x2c starting a token", ",a", 2, std::nullopt, nullptr},
{"0x2d starting a token", "-a", 2, std::nullopt, nullptr},
{"0x2e starting a token", ".a", 2, std::nullopt, nullptr},
{"0x2f starting a token", "/a", 2, std::nullopt, nullptr},
{"0x30 starting a token", "0a", 2, std::nullopt, nullptr},
{"0x31 starting a token", "1a", 2, std::nullopt, nullptr},
{"0x32 starting a token", "2a", 2, std::nullopt, nullptr},
{"0x33 starting a token", "3a", 2, std::nullopt, nullptr},
{"0x34 starting a token", "4a", 2, std::nullopt, nullptr},
{"0x35 starting a token", "5a", 2, std::nullopt, nullptr},
{"0x36 starting a token", "6a", 2, std::nullopt, nullptr},
{"0x37 starting a token", "7a", 2, std::nullopt, nullptr},
{"0x38 starting a token", "8a", 2, std::nullopt, nullptr},
{"0x39 starting a token", "9a", 2, std::nullopt, nullptr},
{"0x3a starting a token", ":a", 2, std::nullopt, nullptr},
{"0x3b starting a token", ";a", 2, std::nullopt, nullptr},
{"0x3c starting a token", "<a", 2, std::nullopt, nullptr},
{"0x3d starting a token", "=a", 2, std::nullopt, nullptr},
{"0x3e starting a token", ">a", 2, std::nullopt, nullptr},
{"0x3f starting a token", "?a", 2, std::nullopt, nullptr},
{"0x40 starting a token", "@a", 2, std::nullopt, nullptr},
{"0x41 starting a token",
"Aa",
2,
{{Item(Item::token, "Aa"), {}}},
nullptr},
{"0x42 starting a token",
"Ba",
2,
{{Item(Item::token, "Ba"), {}}},
nullptr},
{"0x43 starting a token",
"Ca",
2,
{{Item(Item::token, "Ca"), {}}},
nullptr},
{"0x44 starting a token",
"Da",
2,
{{Item(Item::token, "Da"), {}}},
nullptr},
{"0x45 starting a token",
"Ea",
2,
{{Item(Item::token, "Ea"), {}}},
nullptr},
{"0x46 starting a token",
"Fa",
2,
{{Item(Item::token, "Fa"), {}}},
nullptr},
{"0x47 starting a token",
"Ga",
2,
{{Item(Item::token, "Ga"), {}}},
nullptr},
{"0x48 starting a token",
"Ha",
2,
{{Item(Item::token, "Ha"), {}}},
nullptr},
{"0x49 starting a token",
"Ia",
2,
{{Item(Item::token, "Ia"), {}}},
nullptr},
{"0x4a starting a token",
"Ja",
2,
{{Item(Item::token, "Ja"), {}}},
nullptr},
{"0x4b starting a token",
"Ka",
2,
{{Item(Item::token, "Ka"), {}}},
nullptr},
{"0x4c starting a token",
"La",
2,
{{Item(Item::token, "La"), {}}},
nullptr},
{"0x4d starting a token",
"Ma",
2,
{{Item(Item::token, "Ma"), {}}},
nullptr},
{"0x4e starting a token",
"Na",
2,
{{Item(Item::token, "Na"), {}}},
nullptr},
{"0x4f starting a token",
"Oa",
2,
{{Item(Item::token, "Oa"), {}}},
nullptr},
{"0x50 starting a token",
"Pa",
2,
{{Item(Item::token, "Pa"), {}}},
nullptr},
{"0x51 starting a token",
"Qa",
2,
{{Item(Item::token, "Qa"), {}}},
nullptr},
{"0x52 starting a token",
"Ra",
2,
{{Item(Item::token, "Ra"), {}}},
nullptr},
{"0x53 starting a token",
"Sa",
2,
{{Item(Item::token, "Sa"), {}}},
nullptr},
{"0x54 starting a token",
"Ta",
2,
{{Item(Item::token, "Ta"), {}}},
nullptr},
{"0x55 starting a token",
"Ua",
2,
{{Item(Item::token, "Ua"), {}}},
nullptr},
{"0x56 starting a token",
"Va",
2,
{{Item(Item::token, "Va"), {}}},
nullptr},
{"0x57 starting a token",
"Wa",
2,
{{Item(Item::token, "Wa"), {}}},
nullptr},
{"0x58 starting a token",
"Xa",
2,
{{Item(Item::token, "Xa"), {}}},
nullptr},
{"0x59 starting a token",
"Ya",
2,
{{Item(Item::token, "Ya"), {}}},
nullptr},
{"0x5a starting a token",
"Za",
2,
{{Item(Item::token, "Za"), {}}},
nullptr},
{"0x5b starting a token", "[a", 2, std::nullopt, nullptr},
{"0x5c starting a token", "\\a", 2, std::nullopt, nullptr},
{"0x5d starting a token", "]a", 2, std::nullopt, nullptr},
{"0x5e starting a token", "^a", 2, std::nullopt, nullptr},
{"0x5f starting a token", "_a", 2, std::nullopt, nullptr},
{"0x60 starting a token", "`a", 2, std::nullopt, nullptr},
{"0x61 starting a token",
"aa",
2,
{{Item(Item::token, "aa"), {}}},
nullptr},
{"0x62 starting a token",
"ba",
2,
{{Item(Item::token, "ba"), {}}},
nullptr},
{"0x63 starting a token",
"ca",
2,
{{Item(Item::token, "ca"), {}}},
nullptr},
{"0x64 starting a token",
"da",
2,
{{Item(Item::token, "da"), {}}},
nullptr},
{"0x65 starting a token",
"ea",
2,
{{Item(Item::token, "ea"), {}}},
nullptr},
{"0x66 starting a token",
"fa",
2,
{{Item(Item::token, "fa"), {}}},
nullptr},
{"0x67 starting a token",
"ga",
2,
{{Item(Item::token, "ga"), {}}},
nullptr},
{"0x68 starting a token",
"ha",
2,
{{Item(Item::token, "ha"), {}}},
nullptr},
{"0x69 starting a token",
"ia",
2,
{{Item(Item::token, "ia"), {}}},
nullptr},
{"0x6a starting a token",
"ja",
2,
{{Item(Item::token, "ja"), {}}},
nullptr},
{"0x6b starting a token",
"ka",
2,
{{Item(Item::token, "ka"), {}}},
nullptr},
{"0x6c starting a token",
"la",
2,
{{Item(Item::token, "la"), {}}},
nullptr},
{"0x6d starting a token",
"ma",
2,
{{Item(Item::token, "ma"), {}}},
nullptr},
{"0x6e starting a token",
"na",
2,
{{Item(Item::token, "na"), {}}},
nullptr},
{"0x6f starting a token",
"oa",
2,
{{Item(Item::token, "oa"), {}}},
nullptr},
{"0x70 starting a token",
"pa",
2,
{{Item(Item::token, "pa"), {}}},
nullptr},
{"0x71 starting a token",
"qa",
2,
{{Item(Item::token, "qa"), {}}},
nullptr},
{"0x72 starting a token",
"ra",
2,
{{Item(Item::token, "ra"), {}}},
nullptr},
{"0x73 starting a token",
"sa",
2,
{{Item(Item::token, "sa"), {}}},
nullptr},
{"0x74 starting a token",
"ta",
2,
{{Item(Item::token, "ta"), {}}},
nullptr},
{"0x75 starting a token",
"ua",
2,
{{Item(Item::token, "ua"), {}}},
nullptr},
{"0x76 starting a token",
"va",
2,
{{Item(Item::token, "va"), {}}},
nullptr},
{"0x77 starting a token",
"wa",
2,
{{Item(Item::token, "wa"), {}}},
nullptr},
{"0x78 starting a token",
"xa",
2,
{{Item(Item::token, "xa"), {}}},
nullptr},
{"0x79 starting a token",
"ya",
2,
{{Item(Item::token, "ya"), {}}},
nullptr},
{"0x7a starting a token",
"za",
2,
{{Item(Item::token, "za"), {}}},
nullptr},
{"0x7b starting a token", "{a", 2, std::nullopt, nullptr},
{"0x7c starting a token", "|a", 2, std::nullopt, nullptr},
{"0x7d starting a token", "}a", 2, std::nullopt, nullptr},
{"0x7e starting a token", "~a", 2, std::nullopt, nullptr},
{"0x7f starting a token", "\177a", 2, std::nullopt, nullptr},
// token.json
{"basic token - item",
"a_b-c.d3:f%00/*",
15,
{{Item(Item::token, "a_b-c.d3:f%00/*"), {}}},
nullptr},
{"token with capitals - item",
"fooBar",
6,
{{Item(Item::token, "fooBar"), {}}},
nullptr},
{"token starting with capitals - item",
"FooBar",
6,
{{Item(Item::token, "FooBar"), {}}},
nullptr},
};
const struct ListTestCase {
const char* name;
const char* raw;
size_t raw_len;
const std::optional<List> expected; // nullopt if parse error is expected.
const char* canonical; // nullptr if parse error is expected, or if canonical
// format is identical to raw.
const char* known_bug = nullptr;
} list_test_cases[] = {
// examples.json
{"Example-StrListHeader",
"\"foo\", \"bar\", \"It was the best of times.\"",
41,
{{{Item(Item::string, "foo"), {}},
{Item(Item::string, "bar"), {}},
{Item(Item::string, "It was the best of times."), {}}}},
nullptr},
{"Example-Hdr (list on one line)",
"foo, bar",
8,
{{{Item(Item::token, "foo"), {}}, {Item(Item::token, "bar"), {}}}},
nullptr},
{"Example-Hdr (list on two lines)",
"foo, bar",
8,
{{{Item(Item::token, "foo"), {}}, {Item(Item::token, "bar"), {}}}},
"foo, bar"},
{"Example-StrListListHeader",
"(\"foo\" \"bar\"), (\"baz\"), (\"bat\" \"one\"), ()",
41,
{{{{{Item(Item::string, "foo"), {}}, {Item(Item::string, "bar"), {}}}, {}},
{{{Item(Item::string, "baz"), {}}}, {}},
{{{Item(Item::string, "bat"), {}}, {Item(Item::string, "one"), {}}}, {}},
{std::vector<ParameterizedItem>(), {}}}},
nullptr},
{"Example-ListListParam",
"(\"foo\"; a=1;b=2);lvl=5, (\"bar\" \"baz\");lvl=1",
43,
{{{{{Item(Item::string, "foo"), {Param("a", 1), Param("b", 2)}}},
{Param("lvl", 5)}},
{{{Item(Item::string, "bar"), {}}, {Item(Item::string, "baz"), {}}},
{Param("lvl", 1)}}}},
"(\"foo\";a=1;b=2);lvl=5, (\"bar\" \"baz\");lvl=1"},
{"Example-ParamListHeader",
"abc;a=1;b=2; cde_456, (ghi;jk=4 l);q=\"9\";r=w",
44,
{{{Item(Item::token, "abc"),
{Param("a", 1), Param("b", 2), BooleanParam("cde_456", true)}},
{{{Item(Item::token, "ghi"), {Param("jk", 4)}},
{Item(Item::token, "l"), {}}},
{Param("q", "9"), TokenParam("r", "w")}}}},
"abc;a=1;b=2;cde_456, (ghi;jk=4 l);q=\"9\";r=w"},
// key-generated.json
{"0x00 in parameterised list key", "foo; a\000a=1", 10, std::nullopt,
nullptr},
{"0x01 in parameterised list key", "foo; a\001a=1", 10, std::nullopt,
nullptr},
{"0x02 in parameterised list key", "foo; a\002a=1", 10, std::nullopt,
nullptr},
{"0x03 in parameterised list key", "foo; a\003a=1", 10, std::nullopt,
nullptr},
{"0x04 in parameterised list key", "foo; a\004a=1", 10, std::nullopt,
nullptr},
{"0x05 in parameterised list key", "foo; a\005a=1", 10, std::nullopt,
nullptr},
{"0x06 in parameterised list key", "foo; a\006a=1", 10, std::nullopt,
nullptr},
{"0x07 in parameterised list key", "foo; a\007a=1", 10, std::nullopt,
nullptr},
{"0x08 in parameterised list key", "foo; a\010a=1", 10, std::nullopt,
nullptr},
{"0x09 in parameterised list key", "foo; a\ta=1", 10, std::nullopt,
nullptr},
{"0x0a in parameterised list key", "foo; a\na=1", 10, std::nullopt,
nullptr},
{"0x0b in parameterised list key", "foo; a\013a=1", 10, std::nullopt,
nullptr},
{"0x0c in parameterised list key", "foo; a\014a=1", 10, std::nullopt,
nullptr},
{"0x0d in parameterised list key", "foo; a\ra=1", 10, std::nullopt,
nullptr},
{"0x0e in parameterised list key", "foo; a\016a=1", 10, std::nullopt,
nullptr},
{"0x0f in parameterised list key", "foo; a\017a=1", 10, std::nullopt,
nullptr},
{"0x10 in parameterised list key", "foo; a\020a=1", 10, std::nullopt,
nullptr},
{"0x11 in parameterised list key", "foo; a\021a=1", 10, std::nullopt,
nullptr},
{"0x12 in parameterised list key", "foo; a\022a=1", 10, std::nullopt,
nullptr},
{"0x13 in parameterised list key", "foo; a\023a=1", 10, std::nullopt,
nullptr},
{"0x14 in parameterised list key", "foo; a\024a=1", 10, std::nullopt,
nullptr},
{"0x15 in parameterised list key", "foo; a\025a=1", 10, std::nullopt,
nullptr},
{"0x16 in parameterised list key", "foo; a\026a=1", 10, std::nullopt,
nullptr},
{"0x17 in parameterised list key", "foo; a\027a=1", 10, std::nullopt,
nullptr},
{"0x18 in parameterised list key", "foo; a\030a=1", 10, std::nullopt,
nullptr},
{"0x19 in parameterised list key", "foo; a\031a=1", 10, std::nullopt,
nullptr},
{"0x1a in parameterised list key", "foo; a\032a=1", 10, std::nullopt,
nullptr},
{"0x1b in parameterised list key", "foo; a\033a=1", 10, std::nullopt,
nullptr},
{"0x1c in parameterised list key", "foo; a\034a=1", 10, std::nullopt,
nullptr},
{"0x1d in parameterised list key", "foo; a\035a=1", 10, std::nullopt,
nullptr},
{"0x1e in parameterised list key", "foo; a\036a=1", 10, std::nullopt,
nullptr},
{"0x1f in parameterised list key", "foo; a\037a=1", 10, std::nullopt,
nullptr},
{"0x20 in parameterised list key", "foo; a a=1", 10, std::nullopt, nullptr},
{"0x21 in parameterised list key", "foo; a!a=1", 10, std::nullopt, nullptr},
{"0x22 in parameterised list key", "foo; a\"a=1", 10, std::nullopt,
nullptr},
{"0x23 in parameterised list key", "foo; a#a=1", 10, std::nullopt, nullptr},
{"0x24 in parameterised list key", "foo; a$a=1", 10, std::nullopt, nullptr},
{"0x25 in parameterised list key", "foo; a%a=1", 10, std::nullopt, nullptr},
{"0x26 in parameterised list key", "foo; a&a=1", 10, std::nullopt, nullptr},
{"0x27 in parameterised list key", "foo; a'a=1", 10, std::nullopt, nullptr},
{"0x28 in parameterised list key", "foo; a(a=1", 10, std::nullopt, nullptr},
{"0x29 in parameterised list key", "foo; a)a=1", 10, std::nullopt, nullptr},
{"0x2a in parameterised list key",
"foo; a*a=1",
10,
{{{Item(Item::token, "foo"), {Param("a*a", 1)}}}},
"foo;a*a=1"},
{"0x2b in parameterised list key", "foo; a+a=1", 10, std::nullopt, nullptr},
{"0x2c in parameterised list key", "foo; a,a=1", 10, std::nullopt, nullptr},
{"0x2d in parameterised list key",
"foo; a-a=1",
10,
{{{Item(Item::token, "foo"), {Param("a-a", 1)}}}},
"foo;a-a=1"},
{"0x2e in parameterised list key",
"foo; a.a=1",
10,
{{{Item(Item::token, "foo"), {Param("a.a", 1)}}}},
"foo;a.a=1"},
{"0x2f in parameterised list key", "foo; a/a=1", 10, std::nullopt, nullptr},
{"0x30 in parameterised list key",
"foo; a0a=1",
10,
{{{Item(Item::token, "foo"), {Param("a0a", 1)}}}},
"foo;a0a=1"},
{"0x31 in parameterised list key",
"foo; a1a=1",
10,
{{{Item(Item::token, "foo"), {Param("a1a", 1)}}}},
"foo;a1a=1"},
{"0x32 in parameterised list key",
"foo; a2a=1",
10,
{{{Item(Item::token, "foo"), {Param("a2a", 1)}}}},
"foo;a2a=1"},
{"0x33 in parameterised list key",
"foo; a3a=1",
10,
{{{Item(Item::token, "foo"), {Param("a3a", 1)}}}},
"foo;a3a=1"},
{"0x34 in parameterised list key",
"foo; a4a=1",
10,
{{{Item(Item::token, "foo"), {Param("a4a", 1)}}}},
"foo;a4a=1"},
{"0x35 in parameterised list key",
"foo; a5a=1",
10,
{{{Item(Item::token, "foo"), {Param("a5a", 1)}}}},
"foo;a5a=1"},
{"0x36 in parameterised list key",
"foo; a6a=1",
10,
{{{Item(Item::token, "foo"), {Param("a6a", 1)}}}},
"foo;a6a=1"},
{"0x37 in parameterised list key",
"foo; a7a=1",
10,
{{{Item(Item::token, "foo"), {Param("a7a", 1)}}}},
"foo;a7a=1"},
{"0x38 in parameterised list key",
"foo; a8a=1",
10,
{{{Item(Item::token, "foo"), {Param("a8a", 1)}}}},
"foo;a8a=1"},
{"0x39 in parameterised list key",
"foo; a9a=1",
10,
{{{Item(Item::token, "foo"), {Param("a9a", 1)}}}},
"foo;a9a=1"},
{"0x3a in parameterised list key", "foo; a:a=1", 10, std::nullopt, nullptr},
{"0x3b in parameterised list key",
"foo; a;a=1",
10,
{{{Item(Item::token, "foo"), {Param("a", 1)}}}},
"foo;a=1"},
{"0x3c in parameterised list key", "foo; a<a=1", 10, std::nullopt, nullptr},
{"0x3d in parameterised list key", "foo; a=a=1", 10, std::nullopt, nullptr},
{"0x3e in parameterised list key", "foo; a>a=1", 10, std::nullopt, nullptr},
{"0x3f in parameterised list key", "foo; a?a=1", 10, std::nullopt, nullptr},
{"0x40 in parameterised list key", "foo; a@a=1", 10, std::nullopt, nullptr},
{"0x41 in parameterised list key", "foo; aAa=1", 10, std::nullopt, nullptr},
{"0x42 in parameterised list key", "foo; aBa=1", 10, std::nullopt, nullptr},
{"0x43 in parameterised list key", "foo; aCa=1", 10, std::nullopt, nullptr},
{"0x44 in parameterised list key", "foo; aDa=1", 10, std::nullopt, nullptr},
{"0x45 in parameterised list key", "foo; aEa=1", 10, std::nullopt, nullptr},
{"0x46 in parameterised list key", "foo; aFa=1", 10, std::nullopt, nullptr},
{"0x47 in parameterised list key", "foo; aGa=1", 10, std::nullopt, nullptr},
{"0x48 in parameterised list key", "foo; aHa=1", 10, std::nullopt, nullptr},
{"0x49 in parameterised list key", "foo; aIa=1", 10, std::nullopt, nullptr},
{"0x4a in parameterised list key", "foo; aJa=1", 10, std::nullopt, nullptr},
{"0x4b in parameterised list key", "foo; aKa=1", 10, std::nullopt, nullptr},
{"0x4c in parameterised list key", "foo; aLa=1", 10, std::nullopt, nullptr},
{"0x4d in parameterised list key", "foo; aMa=1", 10, std::nullopt, nullptr},
{"0x4e in parameterised list key", "foo; aNa=1", 10, std::nullopt, nullptr},
{"0x4f in parameterised list key", "foo; aOa=1", 10, std::nullopt, nullptr},
{"0x50 in parameterised list key", "foo; aPa=1", 10, std::nullopt, nullptr},
{"0x51 in parameterised list key", "foo; aQa=1", 10, std::nullopt, nullptr},
{"0x52 in parameterised list key", "foo; aRa=1", 10, std::nullopt, nullptr},
{"0x53 in parameterised list key", "foo; aSa=1", 10, std::nullopt, nullptr},
{"0x54 in parameterised list key", "foo; aTa=1", 10, std::nullopt, nullptr},
{"0x55 in parameterised list key", "foo; aUa=1", 10, std::nullopt, nullptr},
{"0x56 in parameterised list key", "foo; aVa=1", 10, std::nullopt, nullptr},
{"0x57 in parameterised list key", "foo; aWa=1", 10, std::nullopt, nullptr},
{"0x58 in parameterised list key", "foo; aXa=1", 10, std::nullopt, nullptr},
{"0x59 in parameterised list key", "foo; aYa=1", 10, std::nullopt, nullptr},
{"0x5a in parameterised list key", "foo; aZa=1", 10, std::nullopt, nullptr},
{"0x5b in parameterised list key", "foo; a[a=1", 10, std::nullopt, nullptr},
{"0x5c in parameterised list key", "foo; a\\a=1", 10, std::nullopt,
nullptr},
{"0x5d in parameterised list key", "foo; a]a=1", 10, std::nullopt, nullptr},
{"0x5e in parameterised list key", "foo; a^a=1", 10, std::nullopt, nullptr},
{"0x5f in parameterised list key",
"foo; a_a=1",
10,
{{{Item(Item::token, "foo"), {Param("a_a", 1)}}}},
"foo;a_a=1"},
{"0x60 in parameterised list key", "foo; a`a=1", 10, std::nullopt, nullptr},
{"0x61 in parameterised list key",
"foo; aaa=1",
10,
{{{Item(Item::token, "foo"), {Param("aaa", 1)}}}},
"foo;aaa=1"},
{"0x62 in parameterised list key",
"foo; aba=1",
10,
{{{Item(Item::token, "foo"), {Param("aba", 1)}}}},
"foo;aba=1"},
{"0x63 in parameterised list key",
"foo; aca=1",
10,
{{{Item(Item::token, "foo"), {Param("aca", 1)}}}},
"foo;aca=1"},
{"0x64 in parameterised list key",
"foo; ada=1",
10,
{{{Item(Item::token, "foo"), {Param("ada", 1)}}}},
"foo;ada=1"},
{"0x65 in parameterised list key",
"foo; aea=1",
10,
{{{Item(Item::token, "foo"), {Param("aea", 1)}}}},
"foo;aea=1"},
{"0x66 in parameterised list key",
"foo; afa=1",
10,
{{{Item(Item::token, "foo"), {Param("afa", 1)}}}},
"foo;afa=1"},
{"0x67 in parameterised list key",
"foo; aga=1",
10,
{{{Item(Item::token, "foo"), {Param("aga", 1)}}}},
"foo;aga=1"},
{"0x68 in parameterised list key",
"foo; aha=1",
10,
{{{Item(Item::token, "foo"), {Param("aha", 1)}}}},
"foo;aha=1"},
{"0x69 in parameterised list key",
"foo; aia=1",
10,
{{{Item(Item::token, "foo"), {Param("aia", 1)}}}},
"foo;aia=1"},
{"0x6a in parameterised list key",
"foo; aja=1",
10,
{{{Item(Item::token, "foo"), {Param("aja", 1)}}}},
"foo;aja=1"},
{"0x6b in parameterised list key",
"foo; aka=1",
10,
{{{Item(Item::token, "foo"), {Param("aka", 1)}}}},
"foo;aka=1"},
{"0x6c in parameterised list key",
"foo; ala=1",
10,
{{{Item(Item::token, "foo"), {Param("ala", 1)}}}},
"foo;ala=1"},
{"0x6d in parameterised list key",
"foo; ama=1",
10,
{{{Item(Item::token, "foo"), {Param("ama", 1)}}}},
"foo;ama=1"},
{"0x6e in parameterised list key",
"foo; ana=1",
10,
{{{Item(Item::token, "foo"), {Param("ana", 1)}}}},
"foo;ana=1"},
{"0x6f in parameterised list key",
"foo; aoa=1",
10,
{{{Item(Item::token, "foo"), {Param("aoa", 1)}}}},
"foo;aoa=1"},
{"0x70 in parameterised list key",
"foo; apa=1",
10,
{{{Item(Item::token, "foo"), {Param("apa", 1)}}}},
"foo;apa=1"},
{"0x71 in parameterised list key",
"foo; aqa=1",
10,
{{{Item(Item::token, "foo"), {Param("aqa", 1)}}}},
"foo;aqa=1"},
{"0x72 in parameterised list key",
"foo; ara=1",
10,
{{{Item(Item::token, "foo"), {Param("ara", 1)}}}},
"foo;ara=1"},
{"0x73 in parameterised list key",
"foo; asa=1",
10,
{{{Item(Item::token, "foo"), {Param("asa", 1)}}}},
"foo;asa=1"},
{"0x74 in parameterised list key",
"foo; ata=1",
10,
{{{Item(Item::token, "foo"), {Param("ata", 1)}}}},
"foo;ata=1"},
{"0x75 in parameterised list key",
"foo; aua=1",
10,
{{{Item(Item::token, "foo"), {Param("aua", 1)}}}},
"foo;aua=1"},
{"0x76 in parameterised list key",
"foo; ava=1",
10,
{{{Item(Item::token, "foo"), {Param("ava", 1)}}}},
"foo;ava=1"},
{"0x77 in parameterised list key",
"foo; awa=1",
10,
{{{Item(Item::token, "foo"), {Param("awa", 1)}}}},
"foo;awa=1"},
{"0x78 in parameterised list key",
"foo; axa=1",
10,
{{{Item(Item::token, "foo"), {Param("axa", 1)}}}},
"foo;axa=1"},
{"0x79 in parameterised list key",
"foo; aya=1",
10,
{{{Item(Item::token, "foo"), {Param("aya", 1)}}}},
"foo;aya=1"},
{"0x7a in parameterised list key",
"foo; aza=1",
10,
{{{Item(Item::token, "foo"), {Param("aza", 1)}}}},
"foo;aza=1"},
{"0x7b in parameterised list key", "foo; a{a=1", 10, std::nullopt, nullptr},
{"0x7c in parameterised list key", "foo; a|a=1", 10, std::nullopt, nullptr},
{"0x7d in parameterised list key", "foo; a}a=1", 10, std::nullopt, nullptr},
{"0x7e in parameterised list key", "foo; a~a=1", 10, std::nullopt, nullptr},
{"0x7f in parameterised list key", "foo; a\177a=1", 10, std::nullopt,
nullptr},
{"0x00 starting a parameterised list key", "foo; \000a=1", 9, std::nullopt,
nullptr},
{"0x01 starting a parameterised list key", "foo; \001a=1", 9, std::nullopt,
nullptr},
{"0x02 starting a parameterised list key", "foo; \002a=1", 9, std::nullopt,
nullptr},
{"0x03 starting a parameterised list key", "foo; \003a=1", 9, std::nullopt,
nullptr},
{"0x04 starting a parameterised list key", "foo; \004a=1", 9, std::nullopt,
nullptr},
{"0x05 starting a parameterised list key", "foo; \005a=1", 9, std::nullopt,
nullptr},
{"0x06 starting a parameterised list key", "foo; \006a=1", 9, std::nullopt,
nullptr},
{"0x07 starting a parameterised list key", "foo; \007a=1", 9, std::nullopt,
nullptr},
{"0x08 starting a parameterised list key", "foo; \010a=1", 9, std::nullopt,
nullptr},
{"0x09 starting a parameterised list key", "foo; \ta=1", 9, std::nullopt,
nullptr},
{"0x0a starting a parameterised list key", "foo; \na=1", 9, std::nullopt,
nullptr},
{"0x0b starting a parameterised list key", "foo; \013a=1", 9, std::nullopt,
nullptr},
{"0x0c starting a parameterised list key", "foo; \014a=1", 9, std::nullopt,
nullptr},
{"0x0d starting a parameterised list key", "foo; \ra=1", 9, std::nullopt,
nullptr},
{"0x0e starting a parameterised list key", "foo; \016a=1", 9, std::nullopt,
nullptr},
{"0x0f starting a parameterised list key", "foo; \017a=1", 9, std::nullopt,
nullptr},
{"0x10 starting a parameterised list key", "foo; \020a=1", 9, std::nullopt,
nullptr},
{"0x11 starting a parameterised list key", "foo; \021a=1", 9, std::nullopt,
nullptr},
{"0x12 starting a parameterised list key", "foo; \022a=1", 9, std::nullopt,
nullptr},
{"0x13 starting a parameterised list key", "foo; \023a=1", 9, std::nullopt,
nullptr},
{"0x14 starting a parameterised list key", "foo; \024a=1", 9, std::nullopt,
nullptr},
{"0x15 starting a parameterised list key", "foo; \025a=1", 9, std::nullopt,
nullptr},
{"0x16 starting a parameterised list key", "foo; \026a=1", 9, std::nullopt,
nullptr},
{"0x17 starting a parameterised list key", "foo; \027a=1", 9, std::nullopt,
nullptr},
{"0x18 starting a parameterised list key", "foo; \030a=1", 9, std::nullopt,
nullptr},
{"0x19 starting a parameterised list key", "foo; \031a=1", 9, std::nullopt,
nullptr},
{"0x1a starting a parameterised list key", "foo; \032a=1", 9, std::nullopt,
nullptr},
{"0x1b starting a parameterised list key", "foo; \033a=1", 9, std::nullopt,
nullptr},
{"0x1c starting a parameterised list key", "foo; \034a=1", 9, std::nullopt,
nullptr},
{"0x1d starting a parameterised list key", "foo; \035a=1", 9, std::nullopt,
nullptr},
{"0x1e starting a parameterised list key", "foo; \036a=1", 9, std::nullopt,
nullptr},
{"0x1f starting a parameterised list key", "foo; \037a=1", 9, std::nullopt,
nullptr},
{"0x20 starting a parameterised list key",
"foo; a=1",
9,
{{{Item(Item::token, "foo"), {Param("a", 1)}}}},
"foo;a=1"},
{"0x21 starting a parameterised list key", "foo; !a=1", 9, std::nullopt,
nullptr},
{"0x22 starting a parameterised list key", "foo; \"a=1", 9, std::nullopt,
nullptr},
{"0x23 starting a parameterised list key", "foo; #a=1", 9, std::nullopt,
nullptr},
{"0x24 starting a parameterised list key", "foo; $a=1", 9, std::nullopt,
nullptr},
{"0x25 starting a parameterised list key", "foo; %a=1", 9, std::nullopt,
nullptr},
{"0x26 starting a parameterised list key", "foo; &a=1", 9, std::nullopt,
nullptr},
{"0x27 starting a parameterised list key", "foo; 'a=1", 9, std::nullopt,
nullptr},
{"0x28 starting a parameterised list key", "foo; (a=1", 9, std::nullopt,
nullptr},
{"0x29 starting a parameterised list key", "foo; )a=1", 9, std::nullopt,
nullptr},
{"0x2a starting a parameterised list key",
"foo; *a=1",
9,
{{{Item(Item::token, "foo"), {Param("*a", 1)}}}},
"foo;*a=1"},
{"0x2b starting a parameterised list key", "foo; +a=1", 9, std::nullopt,
nullptr},
{"0x2c starting a parameterised list key", "foo; ,a=1", 9, std::nullopt,
nullptr},
{"0x2d starting a parameterised list key", "foo; -a=1", 9, std::nullopt,
nullptr},
{"0x2e starting a parameterised list key", "foo; .a=1", 9, std::nullopt,
nullptr},
{"0x2f starting a parameterised list key", "foo; /a=1", 9, std::nullopt,
nullptr},
{"0x30 starting a parameterised list key", "foo; 0a=1", 9, std::nullopt,
nullptr},
{"0x31 starting a parameterised list key", "foo; 1a=1", 9, std::nullopt,
nullptr},
{"0x32 starting a parameterised list key", "foo; 2a=1", 9, std::nullopt,
nullptr},
{"0x33 starting a parameterised list key", "foo; 3a=1", 9, std::nullopt,
nullptr},
{"0x34 starting a parameterised list key", "foo; 4a=1", 9, std::nullopt,
nullptr},
{"0x35 starting a parameterised list key", "foo; 5a=1", 9, std::nullopt,
nullptr},
{"0x36 starting a parameterised list key", "foo; 6a=1", 9, std::nullopt,
nullptr},
{"0x37 starting a parameterised list key", "foo; 7a=1", 9, std::nullopt,
nullptr},
{"0x38 starting a parameterised list key", "foo; 8a=1", 9, std::nullopt,
nullptr},
{"0x39 starting a parameterised list key", "foo; 9a=1", 9, std::nullopt,
nullptr},
{"0x3a starting a parameterised list key", "foo; :a=1", 9, std::nullopt,
nullptr},
{"0x3b starting a parameterised list key", "foo; ;a=1", 9, std::nullopt,
nullptr},
{"0x3c starting a parameterised list key", "foo; <a=1", 9, std::nullopt,
nullptr},
{"0x3d starting a parameterised list key", "foo; =a=1", 9, std::nullopt,
nullptr},
{"0x3e starting a parameterised list key", "foo; >a=1", 9, std::nullopt,
nullptr},
{"0x3f starting a parameterised list key", "foo; ?a=1", 9, std::nullopt,
nullptr},
{"0x40 starting a parameterised list key", "foo; @a=1", 9, std::nullopt,
nullptr},
{"0x41 starting a parameterised list key", "foo; Aa=1", 9, std::nullopt,
nullptr},
{"0x42 starting a parameterised list key", "foo; Ba=1", 9, std::nullopt,
nullptr},
{"0x43 starting a parameterised list key", "foo; Ca=1", 9, std::nullopt,
nullptr},
{"0x44 starting a parameterised list key", "foo; Da=1", 9, std::nullopt,
nullptr},
{"0x45 starting a parameterised list key", "foo; Ea=1", 9, std::nullopt,
nullptr},
{"0x46 starting a parameterised list key", "foo; Fa=1", 9, std::nullopt,
nullptr},
{"0x47 starting a parameterised list key", "foo; Ga=1", 9, std::nullopt,
nullptr},
{"0x48 starting a parameterised list key", "foo; Ha=1", 9, std::nullopt,
nullptr},
{"0x49 starting a parameterised list key", "foo; Ia=1", 9, std::nullopt,
nullptr},
{"0x4a starting a parameterised list key", "foo; Ja=1", 9, std::nullopt,
nullptr},
{"0x4b starting a parameterised list key", "foo; Ka=1", 9, std::nullopt,
nullptr},
{"0x4c starting a parameterised list key", "foo; La=1", 9, std::nullopt,
nullptr},
{"0x4d starting a parameterised list key", "foo; Ma=1", 9, std::nullopt,
nullptr},
{"0x4e starting a parameterised list key", "foo; Na=1", 9, std::nullopt,
nullptr},
{"0x4f starting a parameterised list key", "foo; Oa=1", 9, std::nullopt,
nullptr},
{"0x50 starting a parameterised list key", "foo; Pa=1", 9, std::nullopt,
nullptr},
{"0x51 starting a parameterised list key", "foo; Qa=1", 9, std::nullopt,
nullptr},
{"0x52 starting a parameterised list key", "foo; Ra=1", 9, std::nullopt,
nullptr},
{"0x53 starting a parameterised list key", "foo; Sa=1", 9, std::nullopt,
nullptr},
{"0x54 starting a parameterised list key", "foo; Ta=1", 9, std::nullopt,
nullptr},
{"0x55 starting a parameterised list key", "foo; Ua=1", 9, std::nullopt,
nullptr},
{"0x56 starting a parameterised list key", "foo; Va=1", 9, std::nullopt,
nullptr},
{"0x57 starting a parameterised list key", "foo; Wa=1", 9, std::nullopt,
nullptr},
{"0x58 starting a parameterised list key", "foo; Xa=1", 9, std::nullopt,
nullptr},
{"0x59 starting a parameterised list key", "foo; Ya=1", 9, std::nullopt,
nullptr},
{"0x5a starting a parameterised list key", "foo; Za=1", 9, std::nullopt,
nullptr},
{"0x5b starting a parameterised list key", "foo; [a=1", 9, std::nullopt,
nullptr},
{"0x5c starting a parameterised list key", "foo; \\a=1", 9, std::nullopt,
nullptr},
{"0x5d starting a parameterised list key", "foo; ]a=1", 9, std::nullopt,
nullptr},
{"0x5e starting a parameterised list key", "foo; ^a=1", 9, std::nullopt,
nullptr},
{"0x5f starting a parameterised list key", "foo; _a=1", 9, std::nullopt,
nullptr},
{"0x60 starting a parameterised list key", "foo; `a=1", 9, std::nullopt,
nullptr},
{"0x61 starting a parameterised list key",
"foo; aa=1",
9,
{{{Item(Item::token, "foo"), {Param("aa", 1)}}}},
"foo;aa=1"},
{"0x62 starting a parameterised list key",
"foo; ba=1",
9,
{{{Item(Item::token, "foo"), {Param("ba", 1)}}}},
"foo;ba=1"},
{"0x63 starting a parameterised list key",
"foo; ca=1",
9,
{{{Item(Item::token, "foo"), {Param("ca", 1)}}}},
"foo;ca=1"},
{"0x64 starting a parameterised list key",
"foo; da=1",
9,
{{{Item(Item::token, "foo"), {Param("da", 1)}}}},
"foo;da=1"},
{"0x65 starting a parameterised list key",
"foo; ea=1",
9,
{{{Item(Item::token, "foo"), {Param("ea", 1)}}}},
"foo;ea=1"},
{"0x66 starting a parameterised list key",
"foo; fa=1",
9,
{{{Item(Item::token, "foo"), {Param("fa", 1)}}}},
"foo;fa=1"},
{"0x67 starting a parameterised list key",
"foo; ga=1",
9,
{{{Item(Item::token, "foo"), {Param("ga", 1)}}}},
"foo;ga=1"},
{"0x68 starting a parameterised list key",
"foo; ha=1",
9,
{{{Item(Item::token, "foo"), {Param("ha", 1)}}}},
"foo;ha=1"},
{"0x69 starting a parameterised list key",
"foo; ia=1",
9,
{{{Item(Item::token, "foo"), {Param("ia", 1)}}}},
"foo;ia=1"},
{"0x6a starting a parameterised list key",
"foo; ja=1",
9,
{{{Item(Item::token, "foo"), {Param("ja", 1)}}}},
"foo;ja=1"},
{"0x6b starting a parameterised list key",
"foo; ka=1",
9,
{{{Item(Item::token, "foo"), {Param("ka", 1)}}}},
"foo;ka=1"},
{"0x6c starting a parameterised list key",
"foo; la=1",
9,
{{{Item(Item::token, "foo"), {Param("la", 1)}}}},
"foo;la=1"},
{"0x6d starting a parameterised list key",
"foo; ma=1",
9,
{{{Item(Item::token, "foo"), {Param("ma", 1)}}}},
"foo;ma=1"},
{"0x6e starting a parameterised list key",
"foo; na=1",
9,
{{{Item(Item::token, "foo"), {Param("na", 1)}}}},
"foo;na=1"},
{"0x6f starting a parameterised list key",
"foo; oa=1",
9,
{{{Item(Item::token, "foo"), {Param("oa", 1)}}}},
"foo;oa=1"},
{"0x70 starting a parameterised list key",
"foo; pa=1",
9,
{{{Item(Item::token, "foo"), {Param("pa", 1)}}}},
"foo;pa=1"},
{"0x71 starting a parameterised list key",
"foo; qa=1",
9,
{{{Item(Item::token, "foo"), {Param("qa", 1)}}}},
"foo;qa=1"},
{"0x72 starting a parameterised list key",
"foo; ra=1",
9,
{{{Item(Item::token, "foo"), {Param("ra", 1)}}}},
"foo;ra=1"},
{"0x73 starting a parameterised list key",
"foo; sa=1",
9,
{{{Item(Item::token, "foo"), {Param("sa", 1)}}}},
"foo;sa=1"},
{"0x74 starting a parameterised list key",
"foo; ta=1",
9,
{{{Item(Item::token, "foo"), {Param("ta", 1)}}}},
"foo;ta=1"},
{"0x75 starting a parameterised list key",
"foo; ua=1",
9,
{{{Item(Item::token, "foo"), {Param("ua", 1)}}}},
"foo;ua=1"},
{"0x76 starting a parameterised list key",
"foo; va=1",
9,
{{{Item(Item::token, "foo"), {Param("va", 1)}}}},
"foo;va=1"},
{"0x77 starting a parameterised list key",
"foo; wa=1",
9,
{{{Item(Item::token, "foo"), {Param("wa", 1)}}}},
"foo;wa=1"},
{"0x78 starting a parameterised list key",
"foo; xa=1",
9,
{{{Item(Item::token, "foo"), {Param("xa", 1)}}}},
"foo;xa=1"},
{"0x79 starting a parameterised list key",
"foo; ya=1",
9,
{{{Item(Item::token, "foo"), {Param("ya", 1)}}}},
"foo;ya=1"},
{"0x7a starting a parameterised list key",
"foo; za=1",
9,
{{{Item(Item::token, "foo"), {Param("za", 1)}}}},
"foo;za=1"},
{"0x7b starting a parameterised list key", "foo; {a=1", 9, std::nullopt,
nullptr},
{"0x7c starting a parameterised list key", "foo; |a=1", 9, std::nullopt,
nullptr},
{"0x7d starting a parameterised list key", "foo; }a=1", 9, std::nullopt,
nullptr},
{"0x7e starting a parameterised list key", "foo; ~a=1", 9, std::nullopt,
nullptr},
{"0x7f starting a parameterised list key", "foo; \177a=1", 9, std::nullopt,
nullptr},
// large-generated.json
{"large list",
"a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, "
"a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, "
"a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, "
"a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, "
"a58, a59, a60, a61, a62, a63, a64, a65, a66, a67, a68, a69, a70, a71, "
"a72, a73, a74, a75, a76, a77, a78, a79, a80, a81, a82, a83, a84, a85, "
"a86, a87, a88, a89, a90, a91, a92, a93, a94, a95, a96, a97, a98, a99, "
"a100, a101, a102, a103, a104, a105, a106, a107, a108, a109, a110, a111, "
"a112, a113, a114, a115, a116, a117, a118, a119, a120, a121, a122, a123, "
"a124, a125, a126, a127, a128, a129, a130, a131, a132, a133, a134, a135, "
"a136, a137, a138, a139, a140, a141, a142, a143, a144, a145, a146, a147, "
"a148, a149, a150, a151, a152, a153, a154, a155, a156, a157, a158, a159, "
"a160, a161, a162, a163, a164, a165, a166, a167, a168, a169, a170, a171, "
"a172, a173, a174, a175, a176, a177, a178, a179, a180, a181, a182, a183, "
"a184, a185, a186, a187, a188, a189, a190, a191, a192, a193, a194, a195, "
"a196, a197, a198, a199, a200, a201, a202, a203, a204, a205, a206, a207, "
"a208, a209, a210, a211, a212, a213, a214, a215, a216, a217, a218, a219, "
"a220, a221, a222, a223, a224, a225, a226, a227, a228, a229, a230, a231, "
"a232, a233, a234, a235, a236, a237, a238, a239, a240, a241, a242, a243, "
"a244, a245, a246, a247, a248, a249, a250, a251, a252, a253, a254, a255, "
"a256, a257, a258, a259, a260, a261, a262, a263, a264, a265, a266, a267, "
"a268, a269, a270, a271, a272, a273, a274, a275, a276, a277, a278, a279, "
"a280, a281, a282, a283, a284, a285, a286, a287, a288, a289, a290, a291, "
"a292, a293, a294, a295, a296, a297, a298, a299, a300, a301, a302, a303, "
"a304, a305, a306, a307, a308, a309, a310, a311, a312, a313, a314, a315, "
"a316, a317, a318, a319, a320, a321, a322, a323, a324, a325, a326, a327, "
"a328, a329, a330, a331, a332, a333, a334, a335, a336, a337, a338, a339, "
"a340, a341, a342, a343, a344, a345, a346, a347, a348, a349, a350, a351, "
"a352, a353, a354, a355, a356, a357, a358, a359, a360, a361, a362, a363, "
"a364, a365, a366, a367, a368, a369, a370, a371, a372, a373, a374, a375, "
"a376, a377, a378, a379, a380, a381, a382, a383, a384, a385, a386, a387, "
"a388, a389, a390, a391, a392, a393, a394, a395, a396, a397, a398, a399, "
"a400, a401, a402, a403, a404, a405, a406, a407, a408, a409, a410, a411, "
"a412, a413, a414, a415, a416, a417, a418, a419, a420, a421, a422, a423, "
"a424, a425, a426, a427, a428, a429, a430, a431, a432, a433, a434, a435, "
"a436, a437, a438, a439, a440, a441, a442, a443, a444, a445, a446, a447, "
"a448, a449, a450, a451, a452, a453, a454, a455, a456, a457, a458, a459, "
"a460, a461, a462, a463, a464, a465, a466, a467, a468, a469, a470, a471, "
"a472, a473, a474, a475, a476, a477, a478, a479, a480, a481, a482, a483, "
"a484, a485, a486, a487, a488, a489, a490, a491, a492, a493, a494, a495, "
"a496, a497, a498, a499, a500, a501, a502, a503, a504, a505, a506, a507, "
"a508, a509, a510, a511, a512, a513, a514, a515, a516, a517, a518, a519, "
"a520, a521, a522, a523, a524, a525, a526, a527, a528, a529, a530, a531, "
"a532, a533, a534, a535, a536, a537, a538, a539, a540, a541, a542, a543, "
"a544, a545, a546, a547, a548, a549, a550, a551, a552, a553, a554, a555, "
"a556, a557, a558, a559, a560, a561, a562, a563, a564, a565, a566, a567, "
"a568, a569, a570, a571, a572, a573, a574, a575, a576, a577, a578, a579, "
"a580, a581, a582, a583, a584, a585, a586, a587, a588, a589, a590, a591, "
"a592, a593, a594, a595, a596, a597, a598, a599, a600, a601, a602, a603, "
"a604, a605, a606, a607, a608, a609, a610, a611, a612, a613, a614, a615, "
"a616, a617, a618, a619, a620, a621, a622, a623, a624, a625, a626, a627, "
"a628, a629, a630, a631, a632, a633, a634, a635, a636, a637, a638, a639, "
"a640, a641, a642, a643, a644, a645, a646, a647, a648, a649, a650, a651, "
"a652, a653, a654, a655, a656, a657, a658, a659, a660, a661, a662, a663, "
"a664, a665, a666, a667, a668, a669, a670, a671, a672, a673, a674, a675, "
"a676, a677, a678, a679, a680, a681, a682, a683, a684, a685, a686, a687, "
"a688, a689, a690, a691, a692, a693, a694, a695, a696, a697, a698, a699, "
"a700, a701, a702, a703, a704, a705, a706, a707, a708, a709, a710, a711, "
"a712, a713, a714, a715, a716, a717, a718, a719, a720, a721, a722, a723, "
"a724, a725, a726, a727, a728, a729, a730, a731, a732, a733, a734, a735, "
"a736, a737, a738, a739, a740, a741, a742, a743, a744, a745, a746, a747, "
"a748, a749, a750, a751, a752, a753, a754, a755, a756, a757, a758, a759, "
"a760, a761, a762, a763, a764, a765, a766, a767, a768, a769, a770, a771, "
"a772, a773, a774, a775, a776, a777, a778, a779, a780, a781, a782, a783, "
"a784, a785, a786, a787, a788, a789, a790, a791, a792, a793, a794, a795, "
"a796, a797, a798, a799, a800, a801, a802, a803, a804, a805, a806, a807, "
"a808, a809, a810, a811, a812, a813, a814, a815, a816, a817, a818, a819, "
"a820, a821, a822, a823, a824, a825, a826, a827, a828, a829, a830, a831, "
"a832, a833, a834, a835, a836, a837, a838, a839, a840, a841, a842, a843, "
"a844, a845, a846, a847, a848, a849, a850, a851, a852, a853, a854, a855, "
"a856, a857, a858, a859, a860, a861, a862, a863, a864, a865, a866, a867, "
"a868, a869, a870, a871, a872, a873, a874, a875, a876, a877, a878, a879, "
"a880, a881, a882, a883, a884, a885, a886, a887, a888, a889, a890, a891, "
"a892, a893, a894, a895, a896, a897, a898, a899, a900, a901, a902, a903, "
"a904, a905, a906, a907, a908, a909, a910, a911, a912, a913, a914, a915, "
"a916, a917, a918, a919, a920, a921, a922, a923, a924, a925, a926, a927, "
"a928, a929, a930, a931, a932, a933, a934, a935, a936, a937, a938, a939, "
"a940, a941, a942, a943, a944, a945, a946, a947, a948, a949, a950, a951, "
"a952, a953, a954, a955, a956, a957, a958, a959, a960, a961, a962, a963, "
"a964, a965, a966, a967, a968, a969, a970, a971, a972, a973, a974, a975, "
"a976, a977, a978, a979, a980, a981, a982, a983, a984, a985, a986, a987, "
"a988, a989, a990, a991, a992, a993, a994, a995, a996, a997, a998, a999, "
"a1000, a1001, a1002, a1003, a1004, a1005, a1006, a1007, a1008, a1009, "
"a1010, a1011, a1012, a1013, a1014, a1015, a1016, a1017, a1018, a1019, "
"a1020, a1021, a1022, a1023",
6056,
{{{Item(Item::token, "a0"), {}}, {Item(Item::token, "a1"), {}},
{Item(Item::token, "a2"), {}}, {Item(Item::token, "a3"), {}},
{Item(Item::token, "a4"), {}}, {Item(Item::token, "a5"), {}},
{Item(Item::token, "a6"), {}}, {Item(Item::token, "a7"), {}},
{Item(Item::token, "a8"), {}}, {Item(Item::token, "a9"), {}},
{Item(Item::token, "a10"), {}}, {Item(Item::token, "a11"), {}},
{Item(Item::token, "a12"), {}}, {Item(Item::token, "a13"), {}},
{Item(Item::token, "a14"), {}}, {Item(Item::token, "a15"), {}},
{Item(Item::token, "a16"), {}}, {Item(Item::token, "a17"), {}},
{Item(Item::token, "a18"), {}}, {Item(Item::token, "a19"), {}},
{Item(Item::token, "a20"), {}}, {Item(Item::token, "a21"), {}},
{Item(Item::token, "a22"), {}}, {Item(Item::token, "a23"), {}},
{Item(Item::token, "a24"), {}}, {Item(Item::token, "a25"), {}},
{Item(Item::token, "a26"), {}}, {Item(Item::token, "a27"), {}},
{Item(Item::token, "a28"), {}}, {Item(Item::token, "a29"), {}},
{Item(Item::token, "a30"), {}}, {Item(Item::token, "a31"), {}},
{Item(Item::token, "a32"), {}}, {Item(Item::token, "a33"), {}},
{Item(Item::token, "a34"), {}}, {Item(Item::token, "a35"), {}},
{Item(Item::token, "a36"), {}}, {Item(Item::token, "a37"), {}},
{Item(Item::token, "a38"), {}}, {Item(Item::token, "a39"), {}},
{Item(Item::token, "a40"), {}}, {Item(Item::token, "a41"), {}},
{Item(Item::token, "a42"), {}}, {Item(Item::token, "a43"), {}},
{Item(Item::token, "a44"), {}}, {Item(Item::token, "a45"), {}},
{Item(Item::token, "a46"), {}}, {Item(Item::token, "a47"), {}},
{Item(Item::token, "a48"), {}}, {Item(Item::token, "a49"), {}},
{Item(Item::token, "a50"), {}}, {Item(Item::token, "a51"), {}},
{Item(Item::token, "a52"), {}}, {Item(Item::token, "a53"), {}},
{Item(Item::token, "a54"), {}}, {Item(Item::token, "a55"), {}},
{Item(Item::token, "a56"), {}}, {Item(Item::token, "a57"), {}},
{Item(Item::token, "a58"), {}}, {Item(Item::token, "a59"), {}},
{Item(Item::token, "a60"), {}}, {Item(Item::token, "a61"), {}},
{Item(Item::token, "a62"), {}}, {Item(Item::token, "a63"), {}},
{Item(Item::token, "a64"), {}}, {Item(Item::token, "a65"), {}},
{Item(Item::token, "a66"), {}}, {Item(Item::token, "a67"), {}},
{Item(Item::token, "a68"), {}}, {Item(Item::token, "a69"), {}},
{Item(Item::token, "a70"), {}}, {Item(Item::token, "a71"), {}},
{Item(Item::token, "a72"), {}}, {Item(Item::token, "a73"), {}},
{Item(Item::token, "a74"), {}}, {Item(Item::token, "a75"), {}},
{Item(Item::token, "a76"), {}}, {Item(Item::token, "a77"), {}},
{Item(Item::token, "a78"), {}}, {Item(Item::token, "a79"), {}},
{Item(Item::token, "a80"), {}}, {Item(Item::token, "a81"), {}},
{Item(Item::token, "a82"), {}}, {Item(Item::token, "a83"), {}},
{Item(Item::token, "a84"), {}}, {Item(Item::token, "a85"), {}},
{Item(Item::token, "a86"), {}}, {Item(Item::token, "a87"), {}},
{Item(Item::token, "a88"), {}}, {Item(Item::token, "a89"), {}},
{Item(Item::token, "a90"), {}}, {Item(Item::token, "a91"), {}},
{Item(Item::token, "a92"), {}}, {Item(Item::token, "a93"), {}},
{Item(Item::token, "a94"), {}}, {Item(Item::token, "a95"), {}},
{Item(Item::token, "a96"), {}}, {Item(Item::token, "a97"), {}},
{Item(Item::token, "a98"), {}}, {Item(Item::token, "a99"), {}},
{Item(Item::token, "a100"), {}}, {Item(Item::token, "a101"), {}},
{Item(Item::token, "a102"), {}}, {Item(Item::token, "a103"), {}},
{Item(Item::token, "a104"), {}}, {Item(Item::token, "a105"), {}},
{Item(Item::token, "a106"), {}}, {Item(Item::token, "a107"), {}},
{Item(Item::token, "a108"), {}}, {Item(Item::token, "a109"), {}},
{Item(Item::token, "a110"), {}}, {Item(Item::token, "a111"), {}},
{Item(Item::token, "a112"), {}}, {Item(Item::token, "a113"), {}},
{Item(Item::token, "a114"), {}}, {Item(Item::token, "a115"), {}},
{Item(Item::token, "a116"), {}}, {Item(Item::token, "a117"), {}},
{Item(Item::token, "a118"), {}}, {Item(Item::token, "a119"), {}},
{Item(Item::token, "a120"), {}}, {Item(Item::token, "a121"), {}},
{Item(Item::token, "a122"), {}}, {Item(Item::token, "a123"), {}},
{Item(Item::token, "a124"), {}}, {Item(Item::token, "a125"), {}},
{Item(Item::token, "a126"), {}}, {Item(Item::token, "a127"), {}},
{Item(Item::token, "a128"), {}}, {Item(Item::token, "a129"), {}},
{Item(Item::token, "a130"), {}}, {Item(Item::token, "a131"), {}},
{Item(Item::token, "a132"), {}}, {Item(Item::token, "a133"), {}},
{Item(Item::token, "a134"), {}}, {Item(Item::token, "a135"), {}},
{Item(Item::token, "a136"), {}}, {Item(Item::token, "a137"), {}},
{Item(Item::token, "a138"), {}}, {Item(Item::token, "a139"), {}},
{Item(Item::token, "a140"), {}}, {Item(Item::token, "a141"), {}},
{Item(Item::token, "a142"), {}}, {Item(Item::token, "a143"), {}},
{Item(Item::token, "a144"), {}}, {Item(Item::token, "a145"), {}},
{Item(Item::token, "a146"), {}}, {Item(Item::token, "a147"), {}},
{Item(Item::token, "a148"), {}}, {Item(Item::token, "a149"), {}},
{Item(Item::token, "a150"), {}}, {Item(Item::token, "a151"), {}},
{Item(Item::token, "a152"), {}}, {Item(Item::token, "a153"), {}},
{Item(Item::token, "a154"), {}}, {Item(Item::token, "a155"), {}},
{Item(Item::token, "a156"), {}}, {Item(Item::token, "a157"), {}},
{Item(Item::token, "a158"), {}}, {Item(Item::token, "a159"), {}},
{Item(Item::token, "a160"), {}}, {Item(Item::token, "a161"), {}},
{Item(Item::token, "a162"), {}}, {Item(Item::token, "a163"), {}},
{Item(Item::token, "a164"), {}}, {Item(Item::token, "a165"), {}},
{Item(Item::token, "a166"), {}}, {Item(Item::token, "a167"), {}},
{Item(Item::token, "a168"), {}}, {Item(Item::token, "a169"), {}},
{Item(Item::token, "a170"), {}}, {Item(Item::token, "a171"), {}},
{Item(Item::token, "a172"), {}}, {Item(Item::token, "a173"), {}},
{Item(Item::token, "a174"), {}}, {Item(Item::token, "a175"), {}},
{Item(Item::token, "a176"), {}}, {Item(Item::token, "a177"), {}},
{Item(Item::token, "a178"), {}}, {Item(Item::token, "a179"), {}},
{Item(Item::token, "a180"), {}}, {Item(Item::token, "a181"), {}},
{Item(Item::token, "a182"), {}}, {Item(Item::token, "a183"), {}},
{Item(Item::token, "a184"), {}}, {Item(Item::token, "a185"), {}},
{Item(Item::token, "a186"), {}}, {Item(Item::token, "a187"), {}},
{Item(Item::token, "a188"), {}}, {Item(Item::token, "a189"), {}},
{Item(Item::token, "a190"), {}}, {Item(Item::token, "a191"), {}},
{Item(Item::token, "a192"), {}}, {Item(Item::token, "a193"), {}},
{Item(Item::token, "a194"), {}}, {Item(Item::token, "a195"), {}},
{Item(Item::token, "a196"), {}}, {Item(Item::token, "a197"), {}},
{Item(Item::token, "a198"), {}}, {Item(Item::token, "a199"), {}},
{Item(Item::token, "a200"), {}}, {Item(Item::token, "a201"), {}},
{Item(Item::token, "a202"), {}}, {Item(Item::token, "a203"), {}},
{Item(Item::token, "a204"), {}}, {Item(Item::token, "a205"), {}},
{Item(Item::token, "a206"), {}}, {Item(Item::token, "a207"), {}},
{Item(Item::token, "a208"), {}}, {Item(Item::token, "a209"), {}},
{Item(Item::token, "a210"), {}}, {Item(Item::token, "a211"), {}},
{Item(Item::token, "a212"), {}}, {Item(Item::token, "a213"), {}},
{Item(Item::token, "a214"), {}}, {Item(Item::token, "a215"), {}},
{Item(Item::token, "a216"), {}}, {Item(Item::token, "a217"), {}},
{Item(Item::token, "a218"), {}}, {Item(Item::token, "a219"), {}},
{Item(Item::token, "a220"), {}}, {Item(Item::token, "a221"), {}},
{Item(Item::token, "a222"), {}}, {Item(Item::token, "a223"), {}},
{Item(Item::token, "a224"), {}}, {Item(Item::token, "a225"), {}},
{Item(Item::token, "a226"), {}}, {Item(Item::token, "a227"), {}},
{Item(Item::token, "a228"), {}}, {Item(Item::token, "a229"), {}},
{Item(Item::token, "a230"), {}}, {Item(Item::token, "a231"), {}},
{Item(Item::token, "a232"), {}}, {Item(Item::token, "a233"), {}},
{Item(Item::token, "a234"), {}}, {Item(Item::token, "a235"), {}},
{Item(Item::token, "a236"), {}}, {Item(Item::token, "a237"), {}},
{Item(Item::token, "a238"), {}}, {Item(Item::token, "a239"), {}},
{Item(Item::token, "a240"), {}}, {Item(Item::token, "a241"), {}},
{Item(Item::token, "a242"), {}}, {Item(Item::token, "a243"), {}},
{Item(Item::token, "a244"), {}}, {Item(Item::token, "a245"), {}},
{Item(Item::token, "a246"), {}}, {Item(Item::token, "a247"), {}},
{Item(Item::token, "a248"), {}}, {Item(Item::token, "a249"), {}},
{Item(Item::token, "a250"), {}}, {Item(Item::token, "a251"), {}},
{Item(Item::token, "a252"), {}}, {Item(Item::token, "a253"), {}},
{Item(Item::token, "a254"), {}}, {Item(Item::token, "a255"), {}},
{Item(Item::token, "a256"), {}}, {Item(Item::token, "a257"), {}},
{Item(Item::token, "a258"), {}}, {Item(Item::token, "a259"), {}},
{Item(Item::token, "a260"), {}}, {Item(Item::token, "a261"), {}},
{Item(Item::token, "a262"), {}}, {Item(Item::token, "a263"), {}},
{Item(Item::token, "a264"), {}}, {Item(Item::token, "a265"), {}},
{Item(Item::token, "a266"), {}}, {Item(Item::token, "a267"), {}},
{Item(Item::token, "a268"), {}}, {Item(Item::token, "a269"), {}},
{Item(Item::token, "a270"), {}}, {Item(Item::token, "a271"), {}},
{Item(Item::token, "a272"), {}}, {Item(Item::token, "a273"), {}},
{Item(Item::token, "a274"), {}}, {Item(Item::token, "a275"), {}},
{Item(Item::token, "a276"), {}}, {Item(Item::token, "a277"), {}},
{Item(Item::token, "a278"), {}}, {Item(Item::token, "a279"), {}},
{Item(Item::token, "a280"), {}}, {Item(Item::token, "a281"), {}},
{Item(Item::token, "a282"), {}}, {Item(Item::token, "a283"), {}},
{Item(Item::token, "a284"), {}}, {Item(Item::token, "a285"), {}},
{Item(Item::token, "a286"), {}}, {Item(Item::token, "a287"), {}},
{Item(Item::token, "a288"), {}}, {Item(Item::token, "a289"), {}},
{Item(Item::token, "a290"), {}}, {Item(Item::token, "a291"), {}},
{Item(Item::token, "a292"), {}}, {Item(Item::token, "a293"), {}},
{Item(Item::token, "a294"), {}}, {Item(Item::token, "a295"), {}},
{Item(Item::token, "a296"), {}}, {Item(Item::token, "a297"), {}},
{Item(Item::token, "a298"), {}}, {Item(Item::token, "a299"), {}},
{Item(Item::token, "a300"), {}}, {Item(Item::token, "a301"), {}},
{Item(Item::token, "a302"), {}}, {Item(Item::token, "a303"), {}},
{Item(Item::token, "a304"), {}}, {Item(Item::token, "a305"), {}},
{Item(Item::token, "a306"), {}}, {Item(Item::token, "a307"), {}},
{Item(Item::token, "a308"), {}}, {Item(Item::token, "a309"), {}},
{Item(Item::token, "a310"), {}}, {Item(Item::token, "a311"), {}},
{Item(Item::token, "a312"), {}}, {Item(Item::token, "a313"), {}},
{Item(Item::token, "a314"), {}}, {Item(Item::token, "a315"), {}},
{Item(Item::token, "a316"), {}}, {Item(Item::token, "a317"), {}},
{Item(Item::token, "a318"), {}}, {Item(Item::token, "a319"), {}},
{Item(Item::token, "a320"), {}}, {Item(Item::token, "a321"), {}},
{Item(Item::token, "a322"), {}}, {Item(Item::token, "a323"), {}},
{Item(Item::token, "a324"), {}}, {Item(Item::token, "a325"), {}},
{Item(Item::token, "a326"), {}}, {Item(Item::token, "a327"), {}},
{Item(Item::token, "a328"), {}}, {Item(Item::token, "a329"), {}},
{Item(Item::token, "a330"), {}}, {Item(Item::token, "a331"), {}},
{Item(Item::token, "a332"), {}}, {Item(Item::token, "a333"), {}},
{Item(Item::token, "a334"), {}}, {Item(Item::token, "a335"), {}},
{Item(Item::token, "a336"), {}}, {Item(Item::token, "a337"), {}},
{Item(Item::token, "a338"), {}}, {Item(Item::token, "a339"), {}},
{Item(Item::token, "a340"), {}}, {Item(Item::token, "a341"), {}},
{Item(Item::token, "a342"), {}}, {Item(Item::token, "a343"), {}},
{Item(Item::token, "a344"), {}}, {Item(Item::token, "a345"), {}},
{Item(Item::token, "a346"), {}}, {Item(Item::token, "a347"), {}},
{Item(Item::token, "a348"), {}}, {Item(Item::token, "a349"), {}},
{Item(Item::token, "a350"), {}}, {Item(Item::token, "a351"), {}},
{Item(Item::token, "a352"), {}}, {Item(Item::token, "a353"), {}},
{Item(Item::token, "a354"), {}}, {Item(Item::token, "a355"), {}},
{Item(Item::token, "a356"), {}}, {Item(Item::token, "a357"), {}},
{Item(Item::token, "a358"), {}}, {Item(Item::token, "a359"), {}},
{Item(Item::token, "a360"), {}}, {Item(Item::token, "a361"), {}},
{Item(Item::token, "a362"), {}}, {Item(Item::token, "a363"), {}},
{Item(Item::token, "a364"), {}}, {Item(Item::token, "a365"), {}},
{Item(Item::token, "a366"), {}}, {Item(Item::token, "a367"), {}},
{Item(Item::token, "a368"), {}}, {Item(Item::token, "a369"), {}},
{Item(Item::token, "a370"), {}}, {Item(Item::token, "a371"), {}},
{Item(Item::token, "a372"), {}}, {Item(Item::token, "a373"), {}},
{Item(Item::token, "a374"), {}}, {Item(Item::token, "a375"), {}},
{Item(Item::token, "a376"), {}}, {Item(Item::token, "a377"), {}},
{Item(Item::token, "a378"), {}}, {Item(Item::token, "a379"), {}},
{Item(Item::token, "a380"), {}}, {Item(Item::token, "a381"), {}},
{Item(Item::token, "a382"), {}}, {Item(Item::token, "a383"), {}},
{Item(Item::token, "a384"), {}}, {Item(Item::token, "a385"), {}},
{Item(Item::token, "a386"), {}}, {Item(Item::token, "a387"), {}},
{Item(Item::token, "a388"), {}}, {Item(Item::token, "a389"), {}},
{Item(Item::token, "a390"), {}}, {Item(Item::token, "a391"), {}},
{Item(Item::token, "a392"), {}}, {Item(Item::token, "a393"), {}},
{Item(Item::token, "a394"), {}}, {Item(Item::token, "a395"), {}},
{Item(Item::token, "a396"), {}}, {Item(Item::token, "a397"), {}},
{Item(Item::token, "a398"), {}}, {Item(Item::token, "a399"), {}},
{Item(Item::token, "a400"), {}}, {Item(Item::token, "a401"), {}},
{Item(Item::token, "a402"), {}}, {Item(Item::token, "a403"), {}},
{Item(Item::token, "a404"), {}}, {Item(Item::token, "a405"), {}},
{Item(Item::token, "a406"), {}}, {Item(Item::token, "a407"), {}},
{Item(Item::token, "a408"), {}}, {Item(Item::token, "a409"), {}},
{Item(Item::token, "a410"), {}}, {Item(Item::token, "a411"), {}},
{Item(Item::token, "a412"), {}}, {Item(Item::token, "a413"), {}},
{Item(Item::token, "a414"), {}}, {Item(Item::token, "a415"), {}},
{Item(Item::token, "a416"), {}}, {Item(Item::token, "a417"), {}},
{Item(Item::token, "a418"), {}}, {Item(Item::token, "a419"), {}},
{Item(Item::token, "a420"), {}}, {Item(Item::token, "a421"), {}},
{Item(Item::token, "a422"), {}}, {Item(Item::token, "a423"), {}},
{Item(Item::token, "a424"), {}}, {Item(Item::token, "a425"), {}},
{Item(Item::token, "a426"), {}}, {Item(Item::token, "a427"), {}},
{Item(Item::token, "a428"), {}}, {Item(Item::token, "a429"), {}},
{Item(Item::token, "a430"), {}}, {Item(Item::token, "a431"), {}},
{Item(Item::token, "a432"), {}}, {Item(Item::token, "a433"), {}},
{Item(Item::token, "a434"), {}}, {Item(Item::token, "a435"), {}},
{Item(Item::token, "a436"), {}}, {Item(Item::token, "a437"), {}},
{Item(Item::token, "a438"), {}}, {Item(Item::token, "a439"), {}},
{Item(Item::token, "a440"), {}}, {Item(Item::token, "a441"), {}},
{Item(Item::token, "a442"), {}}, {Item(Item::token, "a443"), {}},
{Item(Item::token, "a444"), {}}, {Item(Item::token, "a445"), {}},
{Item(Item::token, "a446"), {}}, {Item(Item::token, "a447"), {}},
{Item(Item::token, "a448"), {}}, {Item(Item::token, "a449"), {}},
{Item(Item::token, "a450"), {}}, {Item(Item::token, "a451"), {}},
{Item(Item::token, "a452"), {}}, {Item(Item::token, "a453"), {}},
{Item(Item::token, "a454"), {}}, {Item(Item::token, "a455"), {}},
{Item(Item::token, "a456"), {}}, {Item(Item::token, "a457"), {}},
{Item(Item::token, "a458"), {}}, {Item(Item::token, "a459"), {}},
{Item(Item::token, "a460"), {}}, {Item(Item::token, "a461"), {}},
{Item(Item::token, "a462"), {}}, {Item(Item::token, "a463"), {}},
{Item(Item::token, "a464"), {}}, {Item(Item::token, "a465"), {}},
{Item(Item::token, "a466"), {}}, {Item(Item::token, "a467"), {}},
{Item(Item::token, "a468"), {}}, {Item(Item::token, "a469"), {}},
{Item(Item::token, "a470"), {}}, {Item(Item::token, "a471"), {}},
{Item(Item::token, "a472"), {}}, {Item(Item::token, "a473"), {}},
{Item(Item::token, "a474"), {}}, {Item(Item::token, "a475"), {}},
{Item(Item::token, "a476"), {}}, {Item(Item::token, "a477"), {}},
{Item(Item::token, "a478"), {}}, {Item(Item::token, "a479"), {}},
{Item(Item::token, "a480"), {}}, {Item(Item::token, "a481"), {}},
{Item(Item::token, "a482"), {}}, {Item(Item::token, "a483"), {}},
{Item(Item::token, "a484"), {}}, {Item(Item::token, "a485"), {}},
{Item(Item::token, "a486"), {}}, {Item(Item::token, "a487"), {}},
{Item(Item::token, "a488"), {}}, {Item(Item::token, "a489"), {}},
{Item(Item::token, "a490"), {}}, {Item(Item::token, "a491"), {}},
{Item(Item::token, "a492"), {}}, {Item(Item::token, "a493"), {}},
{Item(Item::token, "a494"), {}}, {Item(Item::token, "a495"), {}},
{Item(Item::token, "a496"), {}}, {Item(Item::token, "a497"), {}},
{Item(Item::token, "a498"), {}}, {Item(Item::token, "a499"), {}},
{Item(Item::token, "a500"), {}}, {Item(Item::token, "a501"), {}},
{Item(Item::token, "a502"), {}}, {Item(Item::token, "a503"), {}},
{Item(Item::token, "a504"), {}}, {Item(Item::token, "a505"), {}},
{Item(Item::token, "a506"), {}}, {Item(Item::token, "a507"), {}},
{Item(Item::token, "a508"), {}}, {Item(Item::token, "a509"), {}},
{Item(Item::token, "a510"), {}}, {Item(Item::token, "a511"), {}},
{Item(Item::token, "a512"), {}}, {Item(Item::token, "a513"), {}},
{Item(Item::token, "a514"), {}}, {Item(Item::token, "a515"), {}},
{Item(Item::token, "a516"), {}}, {Item(Item::token, "a517"), {}},
{Item(Item::token, "a518"), {}}, {Item(Item::token, "a519"), {}},
{Item(Item::token, "a520"), {}}, {Item(Item::token, "a521"), {}},
{Item(Item::token, "a522"), {}}, {Item(Item::token, "a523"), {}},
{Item(Item::token, "a524"), {}}, {Item(Item::token, "a525"), {}},
{Item(Item::token, "a526"), {}}, {Item(Item::token, "a527"), {}},
{Item(Item::token, "a528"), {}}, {Item(Item::token, "a529"), {}},
{Item(Item::token, "a530"), {}}, {Item(Item::token, "a531"), {}},
{Item(Item::token, "a532"), {}}, {Item(Item::token, "a533"), {}},
{Item(Item::token, "a534"), {}}, {Item(Item::token, "a535"), {}},
{Item(Item::token, "a536"), {}}, {Item(Item::token, "a537"), {}},
{Item(Item::token, "a538"), {}}, {Item(Item::token, "a539"), {}},
{Item(Item::token, "a540"), {}}, {Item(Item::token, "a541"), {}},
{Item(Item::token, "a542"), {}}, {Item(Item::token, "a543"), {}},
{Item(Item::token, "a544"), {}}, {Item(Item::token, "a545"), {}},
{Item(Item::token, "a546"), {}}, {Item(Item::token, "a547"), {}},
{Item(Item::token, "a548"), {}}, {Item(Item::token, "a549"), {}},
{Item(Item::token, "a550"), {}}, {Item(Item::token, "a551"), {}},
{Item(Item::token, "a552"), {}}, {Item(Item::token, "a553"), {}},
{Item(Item::token, "a554"), {}}, {Item(Item::token, "a555"), {}},
{Item(Item::token, "a556"), {}}, {Item(Item::token, "a557"), {}},
{Item(Item::token, "a558"), {}}, {Item(Item::token, "a559"), {}},
{Item(Item::token, "a560"), {}}, {Item(Item::token, "a561"), {}},
{Item(Item::token, "a562"), {}}, {Item(Item::token, "a563"), {}},
{Item(Item::token, "a564"), {}}, {Item(Item::token, "a565"), {}},
{Item(Item::token, "a566"), {}}, {Item(Item::token, "a567"), {}},
{Item(Item::token, "a568"), {}}, {Item(Item::token, "a569"), {}},
{Item(Item::token, "a570"), {}}, {Item(Item::token, "a571"), {}},
{Item(Item::token, "a572"), {}}, {Item(Item::token, "a573"), {}},
{Item(Item::token, "a574"), {}}, {Item(Item::token, "a575"), {}},
{Item(Item::token, "a576"), {}}, {Item(Item::token, "a577"), {}},
{Item(Item::token, "a578"), {}}, {Item(Item::token, "a579"), {}},
{Item(Item::token, "a580"), {}}, {Item(Item::token, "a581"), {}},
{Item(Item::token, "a582"), {}}, {Item(Item::token, "a583"), {}},
{Item(Item::token, "a584"), {}}, {Item(Item::token, "a585"), {}},
{Item(Item::token, "a586"), {}}, {Item(Item::token, "a587"), {}},
{Item(Item::token, "a588"), {}}, {Item(Item::token, "a589"), {}},
{Item(Item::token, "a590"), {}}, {Item(Item::token, "a591"), {}},
{Item(Item::token, "a592"), {}}, {Item(Item::token, "a593"), {}},
{Item(Item::token, "a594"), {}}, {Item(Item::token, "a595"), {}},
{Item(Item::token, "a596"), {}}, {Item(Item::token, "a597"), {}},
{Item(Item::token, "a598"), {}}, {Item(Item::token, "a599"), {}},
{Item(Item::token, "a600"), {}}, {Item(Item::token, "a601"), {}},
{Item(Item::token, "a602"), {}}, {Item(Item::token, "a603"), {}},
{Item(Item::token, "a604"), {}}, {Item(Item::token, "a605"), {}},
{Item(Item::token, "a606"), {}}, {Item(Item::token, "a607"), {}},
{Item(Item::token, "a608"), {}}, {Item(Item::token, "a609"), {}},
{Item(Item::token, "a610"), {}}, {Item(Item::token, "a611"), {}},
{Item(Item::token, "a612"), {}}, {Item(Item::token, "a613"), {}},
{Item(Item::token, "a614"), {}}, {Item(Item::token, "a615"), {}},
{Item(Item::token, "a616"), {}}, {Item(Item::token, "a617"), {}},
{Item(Item::token, "a618"), {}}, {Item(Item::token, "a619"), {}},
{Item(Item::token, "a620"), {}}, {Item(Item::token, "a621"), {}},
{Item(Item::token, "a622"), {}}, {Item(Item::token, "a623"), {}},
{Item(Item::token, "a624"), {}}, {Item(Item::token, "a625"), {}},
{Item(Item::token, "a626"), {}}, {Item(Item::token, "a627"), {}},
{Item(Item::token, "a628"), {}}, {Item(Item::token, "a629"), {}},
{Item(Item::token, "a630"), {}}, {Item(Item::token, "a631"), {}},
{Item(Item::token, "a632"), {}}, {Item(Item::token, "a633"), {}},
{Item(Item::token, "a634"), {}}, {Item(Item::token, "a635"), {}},
{Item(Item::token, "a636"), {}}, {Item(Item::token, "a637"), {}},
{Item(Item::token, "a638"), {}}, {Item(Item::token, "a639"), {}},
{Item(Item::token, "a640"), {}}, {Item(Item::token, "a641"), {}},
{Item(Item::token, "a642"), {}}, {Item(Item::token, "a643"), {}},
{Item(Item::token, "a644"), {}}, {Item(Item::token, "a645"), {}},
{Item(Item::token, "a646"), {}}, {Item(Item::token, "a647"), {}},
{Item(Item::token, "a648"), {}}, {Item(Item::token, "a649"), {}},
{Item(Item::token, "a650"), {}}, {Item(Item::token, "a651"), {}},
{Item(Item::token, "a652"), {}}, {Item(Item::token, "a653"), {}},
{Item(Item::token, "a654"), {}}, {Item(Item::token, "a655"), {}},
{Item(Item::token, "a656"), {}}, {Item(Item::token, "a657"), {}},
{Item(Item::token, "a658"), {}}, {Item(Item::token, "a659"), {}},
{Item(Item::token, "a660"), {}}, {Item(Item::token, "a661"), {}},
{Item(Item::token, "a662"), {}}, {Item(Item::token, "a663"), {}},
{Item(Item::token, "a664"), {}}, {Item(Item::token, "a665"), {}},
{Item(Item::token, "a666"), {}}, {Item(Item::token, "a667"), {}},
{Item(Item::token, "a668"), {}}, {Item(Item::token, "a669"), {}},
{Item(Item::token, "a670"), {}}, {Item(Item::token, "a671"), {}},
{Item(Item::token, "a672"), {}}, {Item(Item::token, "a673"), {}},
{Item(Item::token, "a674"), {}}, {Item(Item::token, "a675"), {}},
{Item(Item::token, "a676"), {}}, {Item(Item::token, "a677"), {}},
{Item(Item::token, "a678"), {}}, {Item(Item::token, "a679"), {}},
{Item(Item::token, "a680"), {}}, {Item(Item::token, "a681"), {}},
{Item(Item::token, "a682"), {}}, {Item(Item::token, "a683"), {}},
{Item(Item::token, "a684"), {}}, {Item(Item::token, "a685"), {}},
{Item(Item::token, "a686"), {}}, {Item(Item::token, "a687"), {}},
{Item(Item::token, "a688"), {}}, {Item(Item::token, "a689"), {}},
{Item(Item::token, "a690"), {}}, {Item(Item::token, "a691"), {}},
{Item(Item::token, "a692"), {}}, {Item(Item::token, "a693"), {}},
{Item(Item::token, "a694"), {}}, {Item(Item::token, "a695"), {}},
{Item(Item::token, "a696"), {}}, {Item(Item::token, "a697"), {}},
{Item(Item::token, "a698"), {}}, {Item(Item::token, "a699"), {}},
{Item(Item::token, "a700"), {}}, {Item(Item::token, "a701"), {}},
{Item(Item::token, "a702"), {}}, {Item(Item::token, "a703"), {}},
{Item(Item::token, "a704"), {}}, {Item(Item::token, "a705"), {}},
{Item(Item::token, "a706"), {}}, {Item(Item::token, "a707"), {}},
{Item(Item::token, "a708"), {}}, {Item(Item::token, "a709"), {}},
{Item(Item::token, "a710"), {}}, {Item(Item::token, "a711"), {}},
{Item(Item::token, "a712"), {}}, {Item(Item::token, "a713"), {}},
{Item(Item::token, "a714"), {}}, {Item(Item::token, "a715"), {}},
{Item(Item::token, "a716"), {}}, {Item(Item::token, "a717"), {}},
{Item(Item::token, "a718"), {}}, {Item(Item::token, "a719"), {}},
{Item(Item::token, "a720"), {}}, {Item(Item::token, "a721"), {}},
{Item(Item::token, "a722"), {}}, {Item(Item::token, "a723"), {}},
{Item(Item::token, "a724"), {}}, {Item(Item::token, "a725"), {}},
{Item(Item::token, "a726"), {}}, {Item(Item::token, "a727"), {}},
{Item(Item::token, "a728"), {}}, {Item(Item::token, "a729"), {}},
{Item(Item::token, "a730"), {}}, {Item(Item::token, "a731"), {}},
{Item(Item::token, "a732"), {}}, {Item(Item::token, "a733"), {}},
{Item(Item::token, "a734"), {}}, {Item(Item::token, "a735"), {}},
{Item(Item::token, "a736"), {}}, {Item(Item::token, "a737"), {}},
{Item(Item::token, "a738"), {}}, {Item(Item::token, "a739"), {}},
{Item(Item::token, "a740"), {}}, {Item(Item::token, "a741"), {}},
{Item(Item::token, "a742"), {}}, {Item(Item::token, "a743"), {}},
{Item(Item::token, "a744"), {}}, {Item(Item::token, "a745"), {}},
{Item(Item::token, "a746"), {}}, {Item(Item::token, "a747"), {}},
{Item(Item::token, "a748"), {}}, {Item(Item::token, "a749"), {}},
{Item(Item::token, "a750"), {}}, {Item(Item::token, "a751"), {}},
{Item(Item::token, "a752"), {}}, {Item(Item::token, "a753"), {}},
{Item(Item::token, "a754"), {}}, {Item(Item::token, "a755"), {}},
{Item(Item::token, "a756"), {}}, {Item(Item::token, "a757"), {}},
{Item(Item::token, "a758"), {}}, {Item(Item::token, "a759"), {}},
{Item(Item::token, "a760"), {}}, {Item(Item::token, "a761"), {}},
{Item(Item::token, "a762"), {}}, {Item(Item::token, "a763"), {}},
{Item(Item::token, "a764"), {}}, {Item(Item::token, "a765"), {}},
{Item(Item::token, "a766"), {}}, {Item(Item::token, "a767"), {}},
{Item(Item::token, "a768"), {}}, {Item(Item::token, "a769"), {}},
{Item(Item::token, "a770"), {}}, {Item(Item::token, "a771"), {}},
{Item(Item::token, "a772"), {}}, {Item(Item::token, "a773"), {}},
{Item(Item::token, "a774"), {}}, {Item(Item::token, "a775"), {}},
{Item(Item::token, "a776"), {}}, {Item(Item::token, "a777"), {}},
{Item(Item::token, "a778"), {}}, {Item(Item::token, "a779"), {}},
{Item(Item::token, "a780"), {}}, {Item(Item::token, "a781"), {}},
{Item(Item::token, "a782"), {}}, {Item(Item::token, "a783"), {}},
{Item(Item::token, "a784"), {}}, {Item(Item::token, "a785"), {}},
{Item(Item::token, "a786"), {}}, {Item(Item::token, "a787"), {}},
{Item(Item::token, "a788"), {}}, {Item(Item::token, "a789"), {}},
{Item(Item::token, "a790"), {}}, {Item(Item::token, "a791"), {}},
{Item(Item::token, "a792"), {}}, {Item(Item::token, "a793"), {}},
{Item(Item::token, "a794"), {}}, {Item(Item::token, "a795"), {}},
{Item(Item::token, "a796"), {}}, {Item(Item::token, "a797"), {}},
{Item(Item::token, "a798"), {}}, {Item(Item::token, "a799"), {}},
{Item(Item::token, "a800"), {}}, {Item(Item::token, "a801"), {}},
{Item(Item::token, "a802"), {}}, {Item(Item::token, "a803"), {}},
{Item(Item::token, "a804"), {}}, {Item(Item::token, "a805"), {}},
{Item(Item::token, "a806"), {}}, {Item(Item::token, "a807"), {}},
{Item(Item::token, "a808"), {}}, {Item(Item::token, "a809"), {}},
{Item(Item::token, "a810"), {}}, {Item(Item::token, "a811"), {}},
{Item(Item::token, "a812"), {}}, {Item(Item::token, "a813"), {}},
{Item(Item::token, "a814"), {}}, {Item(Item::token, "a815"), {}},
{Item(Item::token, "a816"), {}}, {Item(Item::token, "a817"), {}},
{Item(Item::token, "a818"), {}}, {Item(Item::token, "a819"), {}},
{Item(Item::token, "a820"), {}}, {Item(Item::token, "a821"), {}},
{Item(Item::token, "a822"), {}}, {Item(Item::token, "a823"), {}},
{Item(Item::token, "a824"), {}}, {Item(Item::token, "a825"), {}},
{Item(Item::token, "a826"), {}}, {Item(Item::token, "a827"), {}},
{Item(Item::token, "a828"), {}}, {Item(Item::token, "a829"), {}},
{Item(Item::token, "a830"), {}}, {Item(Item::token, "a831"), {}},
{Item(Item::token, "a832"), {}}, {Item(Item::token, "a833"), {}},
{Item(Item::token, "a834"), {}}, {Item(Item::token, "a835"), {}},
{Item(Item::token, "a836"), {}}, {Item(Item::token, "a837"), {}},
{Item(Item::token, "a838"), {}}, {Item(Item::token, "a839"), {}},
{Item(Item::token, "a840"), {}}, {Item(Item::token, "a841"), {}},
{Item(Item::token, "a842"), {}}, {Item(Item::token, "a843"), {}},
{Item(Item::token, "a844"), {}}, {Item(Item::token, "a845"), {}},
{Item(Item::token, "a846"), {}}, {Item(Item::token, "a847"), {}},
{Item(Item::token, "a848"), {}}, {Item(Item::token, "a849"), {}},
{Item(Item::token, "a850"), {}}, {Item(Item::token, "a851"), {}},
{Item(Item::token, "a852"), {}}, {Item(Item::token, "a853"), {}},
{Item(Item::token, "a854"), {}}, {Item(Item::token, "a855"), {}},
{Item(Item::token, "a856"), {}}, {Item(Item::token, "a857"), {}},
{Item(Item::token, "a858"), {}}, {Item(Item::token, "a859"), {}},
{Item(Item::token, "a860"), {}}, {Item(Item::token, "a861"), {}},
{Item(Item::token, "a862"), {}}, {Item(Item::token, "a863"), {}},
{Item(Item::token, "a864"), {}}, {Item(Item::token, "a865"), {}},
{Item(Item::token, "a866"), {}}, {Item(Item::token, "a867"), {}},
{Item(Item::token, "a868"), {}}, {Item(Item::token, "a869"), {}},
{Item(Item::token, "a870"), {}}, {Item(Item::token, "a871"), {}},
{Item(Item::token, "a872"), {}}, {Item(Item::token, "a873"), {}},
{Item(Item::token, "a874"), {}}, {Item(Item::token, "a875"), {}},
{Item(Item::token, "a876"), {}}, {Item(Item::token, "a877"), {}},
{Item(Item::token, "a878"), {}}, {Item(Item::token, "a879"), {}},
{Item(Item::token, "a880"), {}}, {Item(Item::token, "a881"), {}},
{Item(Item::token, "a882"), {}}, {Item(Item::token, "a883"), {}},
{Item(Item::token, "a884"), {}}, {Item(Item::token, "a885"), {}},
{Item(Item::token, "a886"), {}}, {Item(Item::token, "a887"), {}},
{Item(Item::token, "a888"), {}}, {Item(Item::token, "a889"), {}},
{Item(Item::token, "a890"), {}}, {Item(Item::token, "a891"), {}},
{Item(Item::token, "a892"), {}}, {Item(Item::token, "a893"), {}},
{Item(Item::token, "a894"), {}}, {Item(Item::token, "a895"), {}},
{Item(Item::token, "a896"), {}}, {Item(Item::token, "a897"), {}},
{Item(Item::token, "a898"), {}}, {Item(Item::token, "a899"), {}},
{Item(Item::token, "a900"), {}}, {Item(Item::token, "a901"), {}},
{Item(Item::token, "a902"), {}}, {Item(Item::token, "a903"), {}},
{Item(Item::token, "a904"), {}}, {Item(Item::token, "a905"), {}},
{Item(Item::token, "a906"), {}}, {Item(Item::token, "a907"), {}},
{Item(Item::token, "a908"), {}}, {Item(Item::token, "a909"), {}},
{Item(Item::token, "a910"), {}}, {Item(Item::token, "a911"), {}},
{Item(Item::token, "a912"), {}}, {Item(Item::token, "a913"), {}},
{Item(Item::token, "a914"), {}}, {Item(Item::token, "a915"), {}},
{Item(Item::token, "a916"), {}}, {Item(Item::token, "a917"), {}},
{Item(Item::token, "a918"), {}}, {Item(Item::token, "a919"), {}},
{Item(Item::token, "a920"), {}}, {Item(Item::token, "a921"), {}},
{Item(Item::token, "a922"), {}}, {Item(Item::token, "a923"), {}},
{Item(Item::token, "a924"), {}}, {Item(Item::token, "a925"), {}},
{Item(Item::token, "a926"), {}}, {Item(Item::token, "a927"), {}},
{Item(Item::token, "a928"), {}}, {Item(Item::token, "a929"), {}},
{Item(Item::token, "a930"), {}}, {Item(Item::token, "a931"), {}},
{Item(Item::token, "a932"), {}}, {Item(Item::token, "a933"), {}},
{Item(Item::token, "a934"), {}}, {Item(Item::token, "a935"), {}},
{Item(Item::token, "a936"), {}}, {Item(Item::token, "a937"), {}},
{Item(Item::token, "a938"), {}}, {Item(Item::token, "a939"), {}},
{Item(Item::token, "a940"), {}}, {Item(Item::token, "a941"), {}},
{Item(Item::token, "a942"), {}}, {Item(Item::token, "a943"), {}},
{Item(Item::token, "a944"), {}}, {Item(Item::token, "a945"), {}},
{Item(Item::token, "a946"), {}}, {Item(Item::token, "a947"), {}},
{Item(Item::token, "a948"), {}}, {Item(Item::token, "a949"), {}},
{Item(Item::token, "a950"), {}}, {Item(Item::token, "a951"), {}},
{Item(Item::token, "a952"), {}}, {Item(Item::token, "a953"), {}},
{Item(Item::token, "a954"), {}}, {Item(Item::token, "a955"), {}},
{Item(Item::token, "a956"), {}}, {Item(Item::token, "a957"), {}},
{Item(Item::token, "a958"), {}}, {Item(Item::token, "a959"), {}},
{Item(Item::token, "a960"), {}}, {Item(Item::token, "a961"), {}},
{Item(Item::token, "a962"), {}}, {Item(Item::token, "a963"), {}},
{Item(Item::token, "a964"), {}}, {Item(Item::token, "a965"), {}},
{Item(Item::token, "a966"), {}}, {Item(Item::token, "a967"), {}},
{Item(Item::token, "a968"), {}}, {Item(Item::token, "a969"), {}},
{Item(Item::token, "a970"), {}}, {Item(Item::token, "a971"), {}},
{Item(Item::token, "a972"), {}}, {Item(Item::token, "a973"), {}},
{Item(Item::token, "a974"), {}}, {Item(Item::token, "a975"), {}},
{Item(Item::token, "a976"), {}}, {Item(Item::token, "a977"), {}},
{Item(Item::token, "a978"), {}}, {Item(Item::token, "a979"), {}},
{Item(Item::token, "a980"), {}}, {Item(Item::token, "a981"), {}},
{Item(Item::token, "a982"), {}}, {Item(Item::token, "a983"), {}},
{Item(Item::token, "a984"), {}}, {Item(Item::token, "a985"), {}},
{Item(Item::token, "a986"), {}}, {Item(Item::token, "a987"), {}},
{Item(Item::token, "a988"), {}}, {Item(Item::token, "a989"), {}},
{Item(Item::token, "a990"), {}}, {Item(Item::token, "a991"), {}},
{Item(Item::token, "a992"), {}}, {Item(Item::token, "a993"), {}},
{Item(Item::token, "a994"), {}}, {Item(Item::token, "a995"), {}},
{Item(Item::token, "a996"), {}}, {Item(Item::token, "a997"), {}},
{Item(Item::token, "a998"), {}}, {Item(Item::token, "a999"), {}},
{Item(Item::token, "a1000"), {}}, {Item(Item::token, "a1001"), {}},
{Item(Item::token, "a1002"), {}}, {Item(Item::token, "a1003"), {}},
{Item(Item::token, "a1004"), {}}, {Item(Item::token, "a1005"), {}},
{Item(Item::token, "a1006"), {}}, {Item(Item::token, "a1007"), {}},
{Item(Item::token, "a1008"), {}}, {Item(Item::token, "a1009"), {}},
{Item(Item::token, "a1010"), {}}, {Item(Item::token, "a1011"), {}},
{Item(Item::token, "a1012"), {}}, {Item(Item::token, "a1013"), {}},
{Item(Item::token, "a1014"), {}}, {Item(Item::token, "a1015"), {}},
{Item(Item::token, "a1016"), {}}, {Item(Item::token, "a1017"), {}},
{Item(Item::token, "a1018"), {}}, {Item(Item::token, "a1019"), {}},
{Item(Item::token, "a1020"), {}}, {Item(Item::token, "a1021"), {}},
{Item(Item::token, "a1022"), {}}, {Item(Item::token, "a1023"), {}}}},
nullptr},
{"large parameterised list",
"foo;a0=1, foo;a1=1, foo;a2=1, foo;a3=1, foo;a4=1, foo;a5=1, foo;a6=1, "
"foo;a7=1, foo;a8=1, foo;a9=1, foo;a10=1, foo;a11=1, foo;a12=1, "
"foo;a13=1, foo;a14=1, foo;a15=1, foo;a16=1, foo;a17=1, foo;a18=1, "
"foo;a19=1, foo;a20=1, foo;a21=1, foo;a22=1, foo;a23=1, foo;a24=1, "
"foo;a25=1, foo;a26=1, foo;a27=1, foo;a28=1, foo;a29=1, foo;a30=1, "
"foo;a31=1, foo;a32=1, foo;a33=1, foo;a34=1, foo;a35=1, foo;a36=1, "
"foo;a37=1, foo;a38=1, foo;a39=1, foo;a40=1, foo;a41=1, foo;a42=1, "
"foo;a43=1, foo;a44=1, foo;a45=1, foo;a46=1, foo;a47=1, foo;a48=1, "
"foo;a49=1, foo;a50=1, foo;a51=1, foo;a52=1, foo;a53=1, foo;a54=1, "
"foo;a55=1, foo;a56=1, foo;a57=1, foo;a58=1, foo;a59=1, foo;a60=1, "
"foo;a61=1, foo;a62=1, foo;a63=1, foo;a64=1, foo;a65=1, foo;a66=1, "
"foo;a67=1, foo;a68=1, foo;a69=1, foo;a70=1, foo;a71=1, foo;a72=1, "
"foo;a73=1, foo;a74=1, foo;a75=1, foo;a76=1, foo;a77=1, foo;a78=1, "
"foo;a79=1, foo;a80=1, foo;a81=1, foo;a82=1, foo;a83=1, foo;a84=1, "
"foo;a85=1, foo;a86=1, foo;a87=1, foo;a88=1, foo;a89=1, foo;a90=1, "
"foo;a91=1, foo;a92=1, foo;a93=1, foo;a94=1, foo;a95=1, foo;a96=1, "
"foo;a97=1, foo;a98=1, foo;a99=1, foo;a100=1, foo;a101=1, foo;a102=1, "
"foo;a103=1, foo;a104=1, foo;a105=1, foo;a106=1, foo;a107=1, foo;a108=1, "
"foo;a109=1, foo;a110=1, foo;a111=1, foo;a112=1, foo;a113=1, foo;a114=1, "
"foo;a115=1, foo;a116=1, foo;a117=1, foo;a118=1, foo;a119=1, foo;a120=1, "
"foo;a121=1, foo;a122=1, foo;a123=1, foo;a124=1, foo;a125=1, foo;a126=1, "
"foo;a127=1, foo;a128=1, foo;a129=1, foo;a130=1, foo;a131=1, foo;a132=1, "
"foo;a133=1, foo;a134=1, foo;a135=1, foo;a136=1, foo;a137=1, foo;a138=1, "
"foo;a139=1, foo;a140=1, foo;a141=1, foo;a142=1, foo;a143=1, foo;a144=1, "
"foo;a145=1, foo;a146=1, foo;a147=1, foo;a148=1, foo;a149=1, foo;a150=1, "
"foo;a151=1, foo;a152=1, foo;a153=1, foo;a154=1, foo;a155=1, foo;a156=1, "
"foo;a157=1, foo;a158=1, foo;a159=1, foo;a160=1, foo;a161=1, foo;a162=1, "
"foo;a163=1, foo;a164=1, foo;a165=1, foo;a166=1, foo;a167=1, foo;a168=1, "
"foo;a169=1, foo;a170=1, foo;a171=1, foo;a172=1, foo;a173=1, foo;a174=1, "
"foo;a175=1, foo;a176=1, foo;a177=1, foo;a178=1, foo;a179=1, foo;a180=1, "
"foo;a181=1, foo;a182=1, foo;a183=1, foo;a184=1, foo;a185=1, foo;a186=1, "
"foo;a187=1, foo;a188=1, foo;a189=1, foo;a190=1, foo;a191=1, foo;a192=1, "
"foo;a193=1, foo;a194=1, foo;a195=1, foo;a196=1, foo;a197=1, foo;a198=1, "
"foo;a199=1, foo;a200=1, foo;a201=1, foo;a202=1, foo;a203=1, foo;a204=1, "
"foo;a205=1, foo;a206=1, foo;a207=1, foo;a208=1, foo;a209=1, foo;a210=1, "
"foo;a211=1, foo;a212=1, foo;a213=1, foo;a214=1, foo;a215=1, foo;a216=1, "
"foo;a217=1, foo;a218=1, foo;a219=1, foo;a220=1, foo;a221=1, foo;a222=1, "
"foo;a223=1, foo;a224=1, foo;a225=1, foo;a226=1, foo;a227=1, foo;a228=1, "
"foo;a229=1, foo;a230=1, foo;a231=1, foo;a232=1, foo;a233=1, foo;a234=1, "
"foo;a235=1, foo;a236=1, foo;a237=1, foo;a238=1, foo;a239=1, foo;a240=1, "
"foo;a241=1, foo;a242=1, foo;a243=1, foo;a244=1, foo;a245=1, foo;a246=1, "
"foo;a247=1, foo;a248=1, foo;a249=1, foo;a250=1, foo;a251=1, foo;a252=1, "
"foo;a253=1, foo;a254=1, foo;a255=1, foo;a256=1, foo;a257=1, foo;a258=1, "
"foo;a259=1, foo;a260=1, foo;a261=1, foo;a262=1, foo;a263=1, foo;a264=1, "
"foo;a265=1, foo;a266=1, foo;a267=1, foo;a268=1, foo;a269=1, foo;a270=1, "
"foo;a271=1, foo;a272=1, foo;a273=1, foo;a274=1, foo;a275=1, foo;a276=1, "
"foo;a277=1, foo;a278=1, foo;a279=1, foo;a280=1, foo;a281=1, foo;a282=1, "
"foo;a283=1, foo;a284=1, foo;a285=1, foo;a286=1, foo;a287=1, foo;a288=1, "
"foo;a289=1, foo;a290=1, foo;a291=1, foo;a292=1, foo;a293=1, foo;a294=1, "
"foo;a295=1, foo;a296=1, foo;a297=1, foo;a298=1, foo;a299=1, foo;a300=1, "
"foo;a301=1, foo;a302=1, foo;a303=1, foo;a304=1, foo;a305=1, foo;a306=1, "
"foo;a307=1, foo;a308=1, foo;a309=1, foo;a310=1, foo;a311=1, foo;a312=1, "
"foo;a313=1, foo;a314=1, foo;a315=1, foo;a316=1, foo;a317=1, foo;a318=1, "
"foo;a319=1, foo;a320=1, foo;a321=1, foo;a322=1, foo;a323=1, foo;a324=1, "
"foo;a325=1, foo;a326=1, foo;a327=1, foo;a328=1, foo;a329=1, foo;a330=1, "
"foo;a331=1, foo;a332=1, foo;a333=1, foo;a334=1, foo;a335=1, foo;a336=1, "
"foo;a337=1, foo;a338=1, foo;a339=1, foo;a340=1, foo;a341=1, foo;a342=1, "
"foo;a343=1, foo;a344=1, foo;a345=1, foo;a346=1, foo;a347=1, foo;a348=1, "
"foo;a349=1, foo;a350=1, foo;a351=1, foo;a352=1, foo;a353=1, foo;a354=1, "
"foo;a355=1, foo;a356=1, foo;a357=1, foo;a358=1, foo;a359=1, foo;a360=1, "
"foo;a361=1, foo;a362=1, foo;a363=1, foo;a364=1, foo;a365=1, foo;a366=1, "
"foo;a367=1, foo;a368=1, foo;a369=1, foo;a370=1, foo;a371=1, foo;a372=1, "
"foo;a373=1, foo;a374=1, foo;a375=1, foo;a376=1, foo;a377=1, foo;a378=1, "
"foo;a379=1, foo;a380=1, foo;a381=1, foo;a382=1, foo;a383=1, foo;a384=1, "
"foo;a385=1, foo;a386=1, foo;a387=1, foo;a388=1, foo;a389=1, foo;a390=1, "
"foo;a391=1, foo;a392=1, foo;a393=1, foo;a394=1, foo;a395=1, foo;a396=1, "
"foo;a397=1, foo;a398=1, foo;a399=1, foo;a400=1, foo;a401=1, foo;a402=1, "
"foo;a403=1, foo;a404=1, foo;a405=1, foo;a406=1, foo;a407=1, foo;a408=1, "
"foo;a409=1, foo;a410=1, foo;a411=1, foo;a412=1, foo;a413=1, foo;a414=1, "
"foo;a415=1, foo;a416=1, foo;a417=1, foo;a418=1, foo;a419=1, foo;a420=1, "
"foo;a421=1, foo;a422=1, foo;a423=1, foo;a424=1, foo;a425=1, foo;a426=1, "
"foo;a427=1, foo;a428=1, foo;a429=1, foo;a430=1, foo;a431=1, foo;a432=1, "
"foo;a433=1, foo;a434=1, foo;a435=1, foo;a436=1, foo;a437=1, foo;a438=1, "
"foo;a439=1, foo;a440=1, foo;a441=1, foo;a442=1, foo;a443=1, foo;a444=1, "
"foo;a445=1, foo;a446=1, foo;a447=1, foo;a448=1, foo;a449=1, foo;a450=1, "
"foo;a451=1, foo;a452=1, foo;a453=1, foo;a454=1, foo;a455=1, foo;a456=1, "
"foo;a457=1, foo;a458=1, foo;a459=1, foo;a460=1, foo;a461=1, foo;a462=1, "
"foo;a463=1, foo;a464=1, foo;a465=1, foo;a466=1, foo;a467=1, foo;a468=1, "
"foo;a469=1, foo;a470=1, foo;a471=1, foo;a472=1, foo;a473=1, foo;a474=1, "
"foo;a475=1, foo;a476=1, foo;a477=1, foo;a478=1, foo;a479=1, foo;a480=1, "
"foo;a481=1, foo;a482=1, foo;a483=1, foo;a484=1, foo;a485=1, foo;a486=1, "
"foo;a487=1, foo;a488=1, foo;a489=1, foo;a490=1, foo;a491=1, foo;a492=1, "
"foo;a493=1, foo;a494=1, foo;a495=1, foo;a496=1, foo;a497=1, foo;a498=1, "
"foo;a499=1, foo;a500=1, foo;a501=1, foo;a502=1, foo;a503=1, foo;a504=1, "
"foo;a505=1, foo;a506=1, foo;a507=1, foo;a508=1, foo;a509=1, foo;a510=1, "
"foo;a511=1, foo;a512=1, foo;a513=1, foo;a514=1, foo;a515=1, foo;a516=1, "
"foo;a517=1, foo;a518=1, foo;a519=1, foo;a520=1, foo;a521=1, foo;a522=1, "
"foo;a523=1, foo;a524=1, foo;a525=1, foo;a526=1, foo;a527=1, foo;a528=1, "
"foo;a529=1, foo;a530=1, foo;a531=1, foo;a532=1, foo;a533=1, foo;a534=1, "
"foo;a535=1, foo;a536=1, foo;a537=1, foo;a538=1, foo;a539=1, foo;a540=1, "
"foo;a541=1, foo;a542=1, foo;a543=1, foo;a544=1, foo;a545=1, foo;a546=1, "
"foo;a547=1, foo;a548=1, foo;a549=1, foo;a550=1, foo;a551=1, foo;a552=1, "
"foo;a553=1, foo;a554=1, foo;a555=1, foo;a556=1, foo;a557=1, foo;a558=1, "
"foo;a559=1, foo;a560=1, foo;a561=1, foo;a562=1, foo;a563=1, foo;a564=1, "
"foo;a565=1, foo;a566=1, foo;a567=1, foo;a568=1, foo;a569=1, foo;a570=1, "
"foo;a571=1, foo;a572=1, foo;a573=1, foo;a574=1, foo;a575=1, foo;a576=1, "
"foo;a577=1, foo;a578=1, foo;a579=1, foo;a580=1, foo;a581=1, foo;a582=1, "
"foo;a583=1, foo;a584=1, foo;a585=1, foo;a586=1, foo;a587=1, foo;a588=1, "
"foo;a589=1, foo;a590=1, foo;a591=1, foo;a592=1, foo;a593=1, foo;a594=1, "
"foo;a595=1, foo;a596=1, foo;a597=1, foo;a598=1, foo;a599=1, foo;a600=1, "
"foo;a601=1, foo;a602=1, foo;a603=1, foo;a604=1, foo;a605=1, foo;a606=1, "
"foo;a607=1, foo;a608=1, foo;a609=1, foo;a610=1, foo;a611=1, foo;a612=1, "
"foo;a613=1, foo;a614=1, foo;a615=1, foo;a616=1, foo;a617=1, foo;a618=1, "
"foo;a619=1, foo;a620=1, foo;a621=1, foo;a622=1, foo;a623=1, foo;a624=1, "
"foo;a625=1, foo;a626=1, foo;a627=1, foo;a628=1, foo;a629=1, foo;a630=1, "
"foo;a631=1, foo;a632=1, foo;a633=1, foo;a634=1, foo;a635=1, foo;a636=1, "
"foo;a637=1, foo;a638=1, foo;a639=1, foo;a640=1, foo;a641=1, foo;a642=1, "
"foo;a643=1, foo;a644=1, foo;a645=1, foo;a646=1, foo;a647=1, foo;a648=1, "
"foo;a649=1, foo;a650=1, foo;a651=1, foo;a652=1, foo;a653=1, foo;a654=1, "
"foo;a655=1, foo;a656=1, foo;a657=1, foo;a658=1, foo;a659=1, foo;a660=1, "
"foo;a661=1, foo;a662=1, foo;a663=1, foo;a664=1, foo;a665=1, foo;a666=1, "
"foo;a667=1, foo;a668=1, foo;a669=1, foo;a670=1, foo;a671=1, foo;a672=1, "
"foo;a673=1, foo;a674=1, foo;a675=1, foo;a676=1, foo;a677=1, foo;a678=1, "
"foo;a679=1, foo;a680=1, foo;a681=1, foo;a682=1, foo;a683=1, foo;a684=1, "
"foo;a685=1, foo;a686=1, foo;a687=1, foo;a688=1, foo;a689=1, foo;a690=1, "
"foo;a691=1, foo;a692=1, foo;a693=1, foo;a694=1, foo;a695=1, foo;a696=1, "
"foo;a697=1, foo;a698=1, foo;a699=1, foo;a700=1, foo;a701=1, foo;a702=1, "
"foo;a703=1, foo;a704=1, foo;a705=1, foo;a706=1, foo;a707=1, foo;a708=1, "
"foo;a709=1, foo;a710=1, foo;a711=1, foo;a712=1, foo;a713=1, foo;a714=1, "
"foo;a715=1, foo;a716=1, foo;a717=1, foo;a718=1, foo;a719=1, foo;a720=1, "
"foo;a721=1, foo;a722=1, foo;a723=1, foo;a724=1, foo;a725=1, foo;a726=1, "
"foo;a727=1, foo;a728=1, foo;a729=1, foo;a730=1, foo;a731=1, foo;a732=1, "
"foo;a733=1, foo;a734=1, foo;a735=1, foo;a736=1, foo;a737=1, foo;a738=1, "
"foo;a739=1, foo;a740=1, foo;a741=1, foo;a742=1, foo;a743=1, foo;a744=1, "
"foo;a745=1, foo;a746=1, foo;a747=1, foo;a748=1, foo;a749=1, foo;a750=1, "
"foo;a751=1, foo;a752=1, foo;a753=1, foo;a754=1, foo;a755=1, foo;a756=1, "
"foo;a757=1, foo;a758=1, foo;a759=1, foo;a760=1, foo;a761=1, foo;a762=1, "
"foo;a763=1, foo;a764=1, foo;a765=1, foo;a766=1, foo;a767=1, foo;a768=1, "
"foo;a769=1, foo;a770=1, foo;a771=1, foo;a772=1, foo;a773=1, foo;a774=1, "
"foo;a775=1, foo;a776=1, foo;a777=1, foo;a778=1, foo;a779=1, foo;a780=1, "
"foo;a781=1, foo;a782=1, foo;a783=1, foo;a784=1, foo;a785=1, foo;a786=1, "
"foo;a787=1, foo;a788=1, foo;a789=1, foo;a790=1, foo;a791=1, foo;a792=1, "
"foo;a793=1, foo;a794=1, foo;a795=1, foo;a796=1, foo;a797=1, foo;a798=1, "
"foo;a799=1, foo;a800=1, foo;a801=1, foo;a802=1, foo;a803=1, foo;a804=1, "
"foo;a805=1, foo;a806=1, foo;a807=1, foo;a808=1, foo;a809=1, foo;a810=1, "
"foo;a811=1, foo;a812=1, foo;a813=1, foo;a814=1, foo;a815=1, foo;a816=1, "
"foo;a817=1, foo;a818=1, foo;a819=1, foo;a820=1, foo;a821=1, foo;a822=1, "
"foo;a823=1, foo;a824=1, foo;a825=1, foo;a826=1, foo;a827=1, foo;a828=1, "
"foo;a829=1, foo;a830=1, foo;a831=1, foo;a832=1, foo;a833=1, foo;a834=1, "
"foo;a835=1, foo;a836=1, foo;a837=1, foo;a838=1, foo;a839=1, foo;a840=1, "
"foo;a841=1, foo;a842=1, foo;a843=1, foo;a844=1, foo;a845=1, foo;a846=1, "
"foo;a847=1, foo;a848=1, foo;a849=1, foo;a850=1, foo;a851=1, foo;a852=1, "
"foo;a853=1, foo;a854=1, foo;a855=1, foo;a856=1, foo;a857=1, foo;a858=1, "
"foo;a859=1, foo;a860=1, foo;a861=1, foo;a862=1, foo;a863=1, foo;a864=1, "
"foo;a865=1, foo;a866=1, foo;a867=1, foo;a868=1, foo;a869=1, foo;a870=1, "
"foo;a871=1, foo;a872=1, foo;a873=1, foo;a874=1, foo;a875=1, foo;a876=1, "
"foo;a877=1, foo;a878=1, foo;a879=1, foo;a880=1, foo;a881=1, foo;a882=1, "
"foo;a883=1, foo;a884=1, foo;a885=1, foo;a886=1, foo;a887=1, foo;a888=1, "
"foo;a889=1, foo;a890=1, foo;a891=1, foo;a892=1, foo;a893=1, foo;a894=1, "
"foo;a895=1, foo;a896=1, foo;a897=1, foo;a898=1, foo;a899=1, foo;a900=1, "
"foo;a901=1, foo;a902=1, foo;a903=1, foo;a904=1, foo;a905=1, foo;a906=1, "
"foo;a907=1, foo;a908=1, foo;a909=1, foo;a910=1, foo;a911=1, foo;a912=1, "
"foo;a913=1, foo;a914=1, foo;a915=1, foo;a916=1, foo;a917=1, foo;a918=1, "
"foo;a919=1, foo;a920=1, foo;a921=1, foo;a922=1, foo;a923=1, foo;a924=1, "
"foo;a925=1, foo;a926=1, foo;a927=1, foo;a928=1, foo;a929=1, foo;a930=1, "
"foo;a931=1, foo;a932=1, foo;a933=1, foo;a934=1, foo;a935=1, foo;a936=1, "
"foo;a937=1, foo;a938=1, foo;a939=1, foo;a940=1, foo;a941=1, foo;a942=1, "
"foo;a943=1, foo;a944=1, foo;a945=1, foo;a946=1, foo;a947=1, foo;a948=1, "
"foo;a949=1, foo;a950=1, foo;a951=1, foo;a952=1, foo;a953=1, foo;a954=1, "
"foo;a955=1, foo;a956=1, foo;a957=1, foo;a958=1, foo;a959=1, foo;a960=1, "
"foo;a961=1, foo;a962=1, foo;a963=1, foo;a964=1, foo;a965=1, foo;a966=1, "
"foo;a967=1, foo;a968=1, foo;a969=1, foo;a970=1, foo;a971=1, foo;a972=1, "
"foo;a973=1, foo;a974=1, foo;a975=1, foo;a976=1, foo;a977=1, foo;a978=1, "
"foo;a979=1, foo;a980=1, foo;a981=1, foo;a982=1, foo;a983=1, foo;a984=1, "
"foo;a985=1, foo;a986=1, foo;a987=1, foo;a988=1, foo;a989=1, foo;a990=1, "
"foo;a991=1, foo;a992=1, foo;a993=1, foo;a994=1, foo;a995=1, foo;a996=1, "
"foo;a997=1, foo;a998=1, foo;a999=1, foo;a1000=1, foo;a1001=1, "
"foo;a1002=1, foo;a1003=1, foo;a1004=1, foo;a1005=1, foo;a1006=1, "
"foo;a1007=1, foo;a1008=1, foo;a1009=1, foo;a1010=1, foo;a1011=1, "
"foo;a1012=1, foo;a1013=1, foo;a1014=1, foo;a1015=1, foo;a1016=1, "
"foo;a1017=1, foo;a1018=1, foo;a1019=1, foo;a1020=1, foo;a1021=1, "
"foo;a1022=1, foo;a1023=1",
12200,
{{{Item(Item::token, "foo"), {Param("a0", 1)}},
{Item(Item::token, "foo"), {Param("a1", 1)}},
{Item(Item::token, "foo"), {Param("a2", 1)}},
{Item(Item::token, "foo"), {Param("a3", 1)}},
{Item(Item::token, "foo"), {Param("a4", 1)}},
{Item(Item::token, "foo"), {Param("a5", 1)}},
{Item(Item::token, "foo"), {Param("a6", 1)}},
{Item(Item::token, "foo"), {Param("a7", 1)}},
{Item(Item::token, "foo"), {Param("a8", 1)}},
{Item(Item::token, "foo"), {Param("a9", 1)}},
{Item(Item::token, "foo"), {Param("a10", 1)}},
{Item(Item::token, "foo"), {Param("a11", 1)}},
{Item(Item::token, "foo"), {Param("a12", 1)}},
{Item(Item::token, "foo"), {Param("a13", 1)}},
{Item(Item::token, "foo"), {Param("a14", 1)}},
{Item(Item::token, "foo"), {Param("a15", 1)}},
{Item(Item::token, "foo"), {Param("a16", 1)}},
{Item(Item::token, "foo"), {Param("a17", 1)}},
{Item(Item::token, "foo"), {Param("a18", 1)}},
{Item(Item::token, "foo"), {Param("a19", 1)}},
{Item(Item::token, "foo"), {Param("a20", 1)}},
{Item(Item::token, "foo"), {Param("a21", 1)}},
{Item(Item::token, "foo"), {Param("a22", 1)}},
{Item(Item::token, "foo"), {Param("a23", 1)}},
{Item(Item::token, "foo"), {Param("a24", 1)}},
{Item(Item::token, "foo"), {Param("a25", 1)}},
{Item(Item::token, "foo"), {Param("a26", 1)}},
{Item(Item::token, "foo"), {Param("a27", 1)}},
{Item(Item::token, "foo"), {Param("a28", 1)}},
{Item(Item::token, "foo"), {Param("a29", 1)}},
{Item(Item::token, "foo"), {Param("a30", 1)}},
{Item(Item::token, "foo"), {Param("a31", 1)}},
{Item(Item::token, "foo"), {Param("a32", 1)}},
{Item(Item::token, "foo"), {Param("a33", 1)}},
{Item(Item::token, "foo"), {Param("a34", 1)}},
{Item(Item::token, "foo"), {Param("a35", 1)}},
{Item(Item::token, "foo"), {Param("a36", 1)}},
{Item(Item::token, "foo"), {Param("a37", 1)}},
{Item(Item::token, "foo"), {Param("a38", 1)}},
{Item(Item::token, "foo"), {Param("a39", 1)}},
{Item(Item::token, "foo"), {Param("a40", 1)}},
{Item(Item::token, "foo"), {Param("a41", 1)}},
{Item(Item::token, "foo"), {Param("a42", 1)}},
{Item(Item::token, "foo"), {Param("a43", 1)}},
{Item(Item::token, "foo"), {Param("a44", 1)}},
{Item(Item::token, "foo"), {Param("a45", 1)}},
{Item(Item::token, "foo"), {Param("a46", 1)}},
{Item(Item::token, "foo"), {Param("a47", 1)}},
{Item(Item::token, "foo"), {Param("a48", 1)}},
{Item(Item::token, "foo"), {Param("a49", 1)}},
{Item(Item::token, "foo"), {Param("a50", 1)}},
{Item(Item::token, "foo"), {Param("a51", 1)}},
{Item(Item::token, "foo"), {Param("a52", 1)}},
{Item(Item::token, "foo"), {Param("a53", 1)}},
{Item(Item::token, "foo"), {Param("a54", 1)}},
{Item(Item::token, "foo"), {Param("a55", 1)}},
{Item(Item::token, "foo"), {Param("a56", 1)}},
{Item(Item::token, "foo"), {Param("a57", 1)}},
{Item(Item::token, "foo"), {Param("a58", 1)}},
{Item(Item::token, "foo"), {Param("a59", 1)}},
{Item(Item::token, "foo"), {Param("a60", 1)}},
{Item(Item::token, "foo"), {Param("a61", 1)}},
{Item(Item::token, "foo"), {Param("a62", 1)}},
{Item(Item::token, "foo"), {Param("a63", 1)}},
{Item(Item::token, "foo"), {Param("a64", 1)}},
{Item(Item::token, "foo"), {Param("a65", 1)}},
{Item(Item::token, "foo"), {Param("a66", 1)}},
{Item(Item::token, "foo"), {Param("a67", 1)}},
{Item(Item::token, "foo"), {Param("a68", 1)}},
{Item(Item::token, "foo"), {Param("a69", 1)}},
{Item(Item::token, "foo"), {Param("a70", 1)}},
{Item(Item::token, "foo"), {Param("a71", 1)}},
{Item(Item::token, "foo"), {Param("a72", 1)}},
{Item(Item::token, "foo"), {Param("a73", 1)}},
{Item(Item::token, "foo"), {Param("a74", 1)}},
{Item(Item::token, "foo"), {Param("a75", 1)}},
{Item(Item::token, "foo"), {Param("a76", 1)}},
{Item(Item::token, "foo"), {Param("a77", 1)}},
{Item(Item::token, "foo"), {Param("a78", 1)}},
{Item(Item::token, "foo"), {Param("a79", 1)}},
{Item(Item::token, "foo"), {Param("a80", 1)}},
{Item(Item::token, "foo"), {Param("a81", 1)}},
{Item(Item::token, "foo"), {Param("a82", 1)}},
{Item(Item::token, "foo"), {Param("a83", 1)}},
{Item(Item::token, "foo"), {Param("a84", 1)}},
{Item(Item::token, "foo"), {Param("a85", 1)}},
{Item(Item::token, "foo"), {Param("a86", 1)}},
{Item(Item::token, "foo"), {Param("a87", 1)}},
{Item(Item::token, "foo"), {Param("a88", 1)}},
{Item(Item::token, "foo"), {Param("a89", 1)}},
{Item(Item::token, "foo"), {Param("a90", 1)}},
{Item(Item::token, "foo"), {Param("a91", 1)}},
{Item(Item::token, "foo"), {Param("a92", 1)}},
{Item(Item::token, "foo"), {Param("a93", 1)}},
{Item(Item::token, "foo"), {Param("a94", 1)}},
{Item(Item::token, "foo"), {Param("a95", 1)}},
{Item(Item::token, "foo"), {Param("a96", 1)}},
{Item(Item::token, "foo"), {Param("a97", 1)}},
{Item(Item::token, "foo"), {Param("a98", 1)}},
{Item(Item::token, "foo"), {Param("a99", 1)}},
{Item(Item::token, "foo"), {Param("a100", 1)}},
{Item(Item::token, "foo"), {Param("a101", 1)}},
{Item(Item::token, "foo"), {Param("a102", 1)}},
{Item(Item::token, "foo"), {Param("a103", 1)}},
{Item(Item::token, "foo"), {Param("a104", 1)}},
{Item(Item::token, "foo"), {Param("a105", 1)}},
{Item(Item::token, "foo"), {Param("a106", 1)}},
{Item(Item::token, "foo"), {Param("a107", 1)}},
{Item(Item::token, "foo"), {Param("a108", 1)}},
{Item(Item::token, "foo"), {Param("a109", 1)}},
{Item(Item::token, "foo"), {Param("a110", 1)}},
{Item(Item::token, "foo"), {Param("a111", 1)}},
{Item(Item::token, "foo"), {Param("a112", 1)}},
{Item(Item::token, "foo"), {Param("a113", 1)}},
{Item(Item::token, "foo"), {Param("a114", 1)}},
{Item(Item::token, "foo"), {Param("a115", 1)}},
{Item(Item::token, "foo"), {Param("a116", 1)}},
{Item(Item::token, "foo"), {Param("a117", 1)}},
{Item(Item::token, "foo"), {Param("a118", 1)}},
{Item(Item::token, "foo"), {Param("a119", 1)}},
{Item(Item::token, "foo"), {Param("a120", 1)}},
{Item(Item::token, "foo"), {Param("a121", 1)}},
{Item(Item::token, "foo"), {Param("a122", 1)}},
{Item(Item::token, "foo"), {Param("a123", 1)}},
{Item(Item::token, "foo"), {Param("a124", 1)}},
{Item(Item::token, "foo"), {Param("a125", 1)}},
{Item(Item::token, "foo"), {Param("a126", 1)}},
{Item(Item::token, "foo"), {Param("a127", 1)}},
{Item(Item::token, "foo"), {Param("a128", 1)}},
{Item(Item::token, "foo"), {Param("a129", 1)}},
{Item(Item::token, "foo"), {Param("a130", 1)}},
{Item(Item::token, "foo"), {Param("a131", 1)}},
{Item(Item::token, "foo"), {Param("a132", 1)}},
{Item(Item::token, "foo"), {Param("a133", 1)}},
{Item(Item::token, "foo"), {Param("a134", 1)}},
{Item(Item::token, "foo"), {Param("a135", 1)}},
{Item(Item::token, "foo"), {Param("a136", 1)}},
{Item(Item::token, "foo"), {Param("a137", 1)}},
{Item(Item::token, "foo"), {Param("a138", 1)}},
{Item(Item::token, "foo"), {Param("a139", 1)}},
{Item(Item::token, "foo"), {Param("a140", 1)}},
{Item(Item::token, "foo"), {Param("a141", 1)}},
{Item(Item::token, "foo"), {Param("a142", 1)}},
{Item(Item::token, "foo"), {Param("a143", 1)}},
{Item(Item::token, "foo"), {Param("a144", 1)}},
{Item(Item::token, "foo"), {Param("a145", 1)}},
{Item(Item::token, "foo"), {Param("a146", 1)}},
{Item(Item::token, "foo"), {Param("a147", 1)}},
{Item(Item::token, "foo"), {Param("a148", 1)}},
{Item(Item::token, "foo"), {Param("a149", 1)}},
{Item(Item::token, "foo"), {Param("a150", 1)}},
{Item(Item::token, "foo"), {Param("a151", 1)}},
{Item(Item::token, "foo"), {Param("a152", 1)}},
{Item(Item::token, "foo"), {Param("a153", 1)}},
{Item(Item::token, "foo"), {Param("a154", 1)}},
{Item(Item::token, "foo"), {Param("a155", 1)}},
{Item(Item::token, "foo"), {Param("a156", 1)}},
{Item(Item::token, "foo"), {Param("a157", 1)}},
{Item(Item::token, "foo"), {Param("a158", 1)}},
{Item(Item::token, "foo"), {Param("a159", 1)}},
{Item(Item::token, "foo"), {Param("a160", 1)}},
{Item(Item::token, "foo"), {Param("a161", 1)}},
{Item(Item::token, "foo"), {Param("a162", 1)}},
{Item(Item::token, "foo"), {Param("a163", 1)}},
{Item(Item::token, "foo"), {Param("a164", 1)}},
{Item(Item::token, "foo"), {Param("a165", 1)}},
{Item(Item::token, "foo"), {Param("a166", 1)}},
{Item(Item::token, "foo"), {Param("a167", 1)}},
{Item(Item::token, "foo"), {Param("a168", 1)}},
{Item(Item::token, "foo"), {Param("a169", 1)}},
{Item(Item::token, "foo"), {Param("a170", 1)}},
{Item(Item::token, "foo"), {Param("a171", 1)}},
{Item(Item::token, "foo"), {Param("a172", 1)}},
{Item(Item::token, "foo"), {Param("a173", 1)}},
{Item(Item::token, "foo"), {Param("a174", 1)}},
{Item(Item::token, "foo"), {Param("a175", 1)}},
{Item(Item::token, "foo"), {Param("a176", 1)}},
{Item(Item::token, "foo"), {Param("a177", 1)}},
{Item(Item::token, "foo"), {Param("a178", 1)}},
{Item(Item::token, "foo"), {Param("a179", 1)}},
{Item(Item::token, "foo"), {Param("a180", 1)}},
{Item(Item::token, "foo"), {Param("a181", 1)}},
{Item(Item::token, "foo"), {Param("a182", 1)}},
{Item(Item::token, "foo"), {Param("a183", 1)}},
{Item(Item::token, "foo"), {Param("a184", 1)}},
{Item(Item::token, "foo"), {Param("a185", 1)}},
{Item(Item::token, "foo"), {Param("a186", 1)}},
{Item(Item::token, "foo"), {Param("a187", 1)}},
{Item(Item::token, "foo"), {Param("a188", 1)}},
{Item(Item::token, "foo"), {Param("a189", 1)}},
{Item(Item::token, "foo"), {Param("a190", 1)}},
{Item(Item::token, "foo"), {Param("a191", 1)}},
{Item(Item::token, "foo"), {Param("a192", 1)}},
{Item(Item::token, "foo"), {Param("a193", 1)}},
{Item(Item::token, "foo"), {Param("a194", 1)}},
{Item(Item::token, "foo"), {Param("a195", 1)}},
{Item(Item::token, "foo"), {Param("a196", 1)}},
{Item(Item::token, "foo"), {Param("a197", 1)}},
{Item(Item::token, "foo"), {Param("a198", 1)}},
{Item(Item::token, "foo"), {Param("a199", 1)}},
{Item(Item::token, "foo"), {Param("a200", 1)}},
{Item(Item::token, "foo"), {Param("a201", 1)}},
{Item(Item::token, "foo"), {Param("a202", 1)}},
{Item(Item::token, "foo"), {Param("a203", 1)}},
{Item(Item::token, "foo"), {Param("a204", 1)}},
{Item(Item::token, "foo"), {Param("a205", 1)}},
{Item(Item::token, "foo"), {Param("a206", 1)}},
{Item(Item::token, "foo"), {Param("a207", 1)}},
{Item(Item::token, "foo"), {Param("a208", 1)}},
{Item(Item::token, "foo"), {Param("a209", 1)}},
{Item(Item::token, "foo"), {Param("a210", 1)}},
{Item(Item::token, "foo"), {Param("a211", 1)}},
{Item(Item::token, "foo"), {Param("a212", 1)}},
{Item(Item::token, "foo"), {Param("a213", 1)}},
{Item(Item::token, "foo"), {Param("a214", 1)}},
{Item(Item::token, "foo"), {Param("a215", 1)}},
{Item(Item::token, "foo"), {Param("a216", 1)}},
{Item(Item::token, "foo"), {Param("a217", 1)}},
{Item(Item::token, "foo"), {Param("a218", 1)}},
{Item(Item::token, "foo"), {Param("a219", 1)}},
{Item(Item::token, "foo"), {Param("a220", 1)}},
{Item(Item::token, "foo"), {Param("a221", 1)}},
{Item(Item::token, "foo"), {Param("a222", 1)}},
{Item(Item::token, "foo"), {Param("a223", 1)}},
{Item(Item::token, "foo"), {Param("a224", 1)}},
{Item(Item::token, "foo"), {Param("a225", 1)}},
{Item(Item::token, "foo"), {Param("a226", 1)}},
{Item(Item::token, "foo"), {Param("a227", 1)}},
{Item(Item::token, "foo"), {Param("a228", 1)}},
{Item(Item::token, "foo"), {Param("a229", 1)}},
{Item(Item::token, "foo"), {Param("a230", 1)}},
{Item(Item::token, "foo"), {Param("a231", 1)}},
{Item(Item::token, "foo"), {Param("a232", 1)}},
{Item(Item::token, "foo"), {Param("a233", 1)}},
{Item(Item::token, "foo"), {Param("a234", 1)}},
{Item(Item::token, "foo"), {Param("a235", 1)}},
{Item(Item::token, "foo"), {Param("a236", 1)}},
{Item(Item::token, "foo"), {Param("a237", 1)}},
{Item(Item::token, "foo"), {Param("a238", 1)}},
{Item(Item::token, "foo"), {Param("a239", 1)}},
{Item(Item::token, "foo"), {Param("a240", 1)}},
{Item(Item::token, "foo"), {Param("a241", 1)}},
{Item(Item::token, "foo"), {Param("a242", 1)}},
{Item(Item::token, "foo"), {Param("a243", 1)}},
{Item(Item::token, "foo"), {Param("a244", 1)}},
{Item(Item::token, "foo"), {Param("a245", 1)}},
{Item(Item::token, "foo"), {Param("a246", 1)}},
{Item(Item::token, "foo"), {Param("a247", 1)}},
{Item(Item::token, "foo"), {Param("a248", 1)}},
{Item(Item::token, "foo"), {Param("a249", 1)}},
{Item(Item::token, "foo"), {Param("a250", 1)}},
{Item(Item::token, "foo"), {Param("a251", 1)}},
{Item(Item::token, "foo"), {Param("a252", 1)}},
{Item(Item::token, "foo"), {Param("a253", 1)}},
{Item(Item::token, "foo"), {Param("a254", 1)}},
{Item(Item::token, "foo"), {Param("a255", 1)}},
{Item(Item::token, "foo"), {Param("a256", 1)}},
{Item(Item::token, "foo"), {Param("a257", 1)}},
{Item(Item::token, "foo"), {Param("a258", 1)}},
{Item(Item::token, "foo"), {Param("a259", 1)}},
{Item(Item::token, "foo"), {Param("a260", 1)}},
{Item(Item::token, "foo"), {Param("a261", 1)}},
{Item(Item::token, "foo"), {Param("a262", 1)}},
{Item(Item::token, "foo"), {Param("a263", 1)}},
{Item(Item::token, "foo"), {Param("a264", 1)}},
{Item(Item::token, "foo"), {Param("a265", 1)}},
{Item(Item::token, "foo"), {Param("a266", 1)}},
{Item(Item::token, "foo"), {Param("a267", 1)}},
{Item(Item::token, "foo"), {Param("a268", 1)}},
{Item(Item::token, "foo"), {Param("a269", 1)}},
{Item(Item::token, "foo"), {Param("a270", 1)}},
{Item(Item::token, "foo"), {Param("a271", 1)}},
{Item(Item::token, "foo"), {Param("a272", 1)}},
{Item(Item::token, "foo"), {Param("a273", 1)}},
{Item(Item::token, "foo"), {Param("a274", 1)}},
{Item(Item::token, "foo"), {Param("a275", 1)}},
{Item(Item::token, "foo"), {Param("a276", 1)}},
{Item(Item::token, "foo"), {Param("a277", 1)}},
{Item(Item::token, "foo"), {Param("a278", 1)}},
{Item(Item::token, "foo"), {Param("a279", 1)}},
{Item(Item::token, "foo"), {Param("a280", 1)}},
{Item(Item::token, "foo"), {Param("a281", 1)}},
{Item(Item::token, "foo"), {Param("a282", 1)}},
{Item(Item::token, "foo"), {Param("a283", 1)}},
{Item(Item::token, "foo"), {Param("a284", 1)}},
{Item(Item::token, "foo"), {Param("a285", 1)}},
{Item(Item::token, "foo"), {Param("a286", 1)}},
{Item(Item::token, "foo"), {Param("a287", 1)}},
{Item(Item::token, "foo"), {Param("a288", 1)}},
{Item(Item::token, "foo"), {Param("a289", 1)}},
{Item(Item::token, "foo"), {Param("a290", 1)}},
{Item(Item::token, "foo"), {Param("a291", 1)}},
{Item(Item::token, "foo"), {Param("a292", 1)}},
{Item(Item::token, "foo"), {Param("a293", 1)}},
{Item(Item::token, "foo"), {Param("a294", 1)}},
{Item(Item::token, "foo"), {Param("a295", 1)}},
{Item(Item::token, "foo"), {Param("a296", 1)}},
{Item(Item::token, "foo"), {Param("a297", 1)}},
{Item(Item::token, "foo"), {Param("a298", 1)}},
{Item(Item::token, "foo"), {Param("a299", 1)}},
{Item(Item::token, "foo"), {Param("a300", 1)}},
{Item(Item::token, "foo"), {Param("a301", 1)}},
{Item(Item::token, "foo"), {Param("a302", 1)}},
{Item(Item::token, "foo"), {Param("a303", 1)}},
{Item(Item::token, "foo"), {Param("a304", 1)}},
{Item(Item::token, "foo"), {Param("a305", 1)}},
{Item(Item::token, "foo"), {Param("a306", 1)}},
{Item(Item::token, "foo"), {Param("a307", 1)}},
{Item(Item::token, "foo"), {Param("a308", 1)}},
{Item(Item::token, "foo"), {Param("a309", 1)}},
{Item(Item::token, "foo"), {Param("a310", 1)}},
{Item(Item::token, "foo"), {Param("a311", 1)}},
{Item(Item::token, "foo"), {Param("a312", 1)}},
{Item(Item::token, "foo"), {Param("a313", 1)}},
{Item(Item::token, "foo"), {Param("a314", 1)}},
{Item(Item::token, "foo"), {Param("a315", 1)}},
{Item(Item::token, "foo"), {Param("a316", 1)}},
{Item(Item::token, "foo"), {Param("a317", 1)}},
{Item(Item::token, "foo"), {Param("a318", 1)}},
{Item(Item::token, "foo"), {Param("a319", 1)}},
{Item(Item::token, "foo"), {Param("a320", 1)}},
{Item(Item::token, "foo"), {Param("a321", 1)}},
{Item(Item::token, "foo"), {Param("a322", 1)}},
{Item(Item::token, "foo"), {Param("a323", 1)}},
{Item(Item::token, "foo"), {Param("a324", 1)}},
{Item(Item::token, "foo"), {Param("a325", 1)}},
{Item(Item::token, "foo"), {Param("a326", 1)}},
{Item(Item::token, "foo"), {Param("a327", 1)}},
{Item(Item::token, "foo"), {Param("a328", 1)}},
{Item(Item::token, "foo"), {Param("a329", 1)}},
{Item(Item::token, "foo"), {Param("a330", 1)}},
{Item(Item::token, "foo"), {Param("a331", 1)}},
{Item(Item::token, "foo"), {Param("a332", 1)}},
{Item(Item::token, "foo"), {Param("a333", 1)}},
{Item(Item::token, "foo"), {Param("a334", 1)}},
{Item(Item::token, "foo"), {Param("a335", 1)}},
{Item(Item::token, "foo"), {Param("a336", 1)}},
{Item(Item::token, "foo"), {Param("a337", 1)}},
{Item(Item::token, "foo"), {Param("a338", 1)}},
{Item(Item::token, "foo"), {Param("a339", 1)}},
{Item(Item::token, "foo"), {Param("a340", 1)}},
{Item(Item::token, "foo"), {Param("a341", 1)}},
{Item(Item::token, "foo"), {Param("a342", 1)}},
{Item(Item::token, "foo"), {Param("a343", 1)}},
{Item(Item::token, "foo"), {Param("a344", 1)}},
{Item(Item::token, "foo"), {Param("a345", 1)}},
{Item(Item::token, "foo"), {Param("a346", 1)}},
{Item(Item::token, "foo"), {Param("a347", 1)}},
{Item(Item::token, "foo"), {Param("a348", 1)}},
{Item(Item::token, "foo"), {Param("a349", 1)}},
{Item(Item::token, "foo"), {Param("a350", 1)}},
{Item(Item::token, "foo"), {Param("a351", 1)}},
{Item(Item::token, "foo"), {Param("a352", 1)}},
{Item(Item::token, "foo"), {Param("a353", 1)}},
{Item(Item::token, "foo"), {Param("a354", 1)}},
{Item(Item::token, "foo"), {Param("a355", 1)}},
{Item(Item::token, "foo"), {Param("a356", 1)}},
{Item(Item::token, "foo"), {Param("a357", 1)}},
{Item(Item::token, "foo"), {Param("a358", 1)}},
{Item(Item::token, "foo"), {Param("a359", 1)}},
{Item(Item::token, "foo"), {Param("a360", 1)}},
{Item(Item::token, "foo"), {Param("a361", 1)}},
{Item(Item::token, "foo"), {Param("a362", 1)}},
{Item(Item::token, "foo"), {Param("a363", 1)}},
{Item(Item::token, "foo"), {Param("a364", 1)}},
{Item(Item::token, "foo"), {Param("a365", 1)}},
{Item(Item::token, "foo"), {Param("a366", 1)}},
{Item(Item::token, "foo"), {Param("a367", 1)}},
{Item(Item::token, "foo"), {Param("a368", 1)}},
{Item(Item::token, "foo"), {Param("a369", 1)}},
{Item(Item::token, "foo"), {Param("a370", 1)}},
{Item(Item::token, "foo"), {Param("a371", 1)}},
{Item(Item::token, "foo"), {Param("a372", 1)}},
{Item(Item::token, "foo"), {Param("a373", 1)}},
{Item(Item::token, "foo"), {Param("a374", 1)}},
{Item(Item::token, "foo"), {Param("a375", 1)}},
{Item(Item::token, "foo"), {Param("a376", 1)}},
{Item(Item::token, "foo"), {Param("a377", 1)}},
{Item(Item::token, "foo"), {Param("a378", 1)}},
{Item(Item::token, "foo"), {Param("a379", 1)}},
{Item(Item::token, "foo"), {Param("a380", 1)}},
{Item(Item::token, "foo"), {Param("a381", 1)}},
{Item(Item::token, "foo"), {Param("a382", 1)}},
{Item(Item::token, "foo"), {Param("a383", 1)}},
{Item(Item::token, "foo"), {Param("a384", 1)}},
{Item(Item::token, "foo"), {Param("a385", 1)}},
{Item(Item::token, "foo"), {Param("a386", 1)}},
{Item(Item::token, "foo"), {Param("a387", 1)}},
{Item(Item::token, "foo"), {Param("a388", 1)}},
{Item(Item::token, "foo"), {Param("a389", 1)}},
{Item(Item::token, "foo"), {Param("a390", 1)}},
{Item(Item::token, "foo"), {Param("a391", 1)}},
{Item(Item::token, "foo"), {Param("a392", 1)}},
{Item(Item::token, "foo"), {Param("a393", 1)}},
{Item(Item::token, "foo"), {Param("a394", 1)}},
{Item(Item::token, "foo"), {Param("a395", 1)}},
{Item(Item::token, "foo"), {Param("a396", 1)}},
{Item(Item::token, "foo"), {Param("a397", 1)}},
{Item(Item::token, "foo"), {Param("a398", 1)}},
{Item(Item::token, "foo"), {Param("a399", 1)}},
{Item(Item::token, "foo"), {Param("a400", 1)}},
{Item(Item::token, "foo"), {Param("a401", 1)}},
{Item(Item::token, "foo"), {Param("a402", 1)}},
{Item(Item::token, "foo"), {Param("a403", 1)}},
{Item(Item::token, "foo"), {Param("a404", 1)}},
{Item(Item::token, "foo"), {Param("a405", 1)}},
{Item(Item::token, "foo"), {Param("a406", 1)}},
{Item(Item::token, "foo"), {Param("a407", 1)}},
{Item(Item::token, "foo"), {Param("a408", 1)}},
{Item(Item::token, "foo"), {Param("a409", 1)}},
{Item(Item::token, "foo"), {Param("a410", 1)}},
{Item(Item::token, "foo"), {Param("a411", 1)}},
{Item(Item::token, "foo"), {Param("a412", 1)}},
{Item(Item::token, "foo"), {Param("a413", 1)}},
{Item(Item::token, "foo"), {Param("a414", 1)}},
{Item(Item::token, "foo"), {Param("a415", 1)}},
{Item(Item::token, "foo"), {Param("a416", 1)}},
{Item(Item::token, "foo"), {Param("a417", 1)}},
{Item(Item::token, "foo"), {Param("a418", 1)}},
{Item(Item::token, "foo"), {Param("a419", 1)}},
{Item(Item::token, "foo"), {Param("a420", 1)}},
{Item(Item::token, "foo"), {Param("a421", 1)}},
{Item(Item::token, "foo"), {Param("a422", 1)}},
{Item(Item::token, "foo"), {Param("a423", 1)}},
{Item(Item::token, "foo"), {Param("a424", 1)}},
{Item(Item::token, "foo"), {Param("a425", 1)}},
{Item(Item::token, "foo"), {Param("a426", 1)}},
{Item(Item::token, "foo"), {Param("a427", 1)}},
{Item(Item::token, "foo"), {Param("a428", 1)}},
{Item(Item::token, "foo"), {Param("a429", 1)}},
{Item(Item::token, "foo"), {Param("a430", 1)}},
{Item(Item::token, "foo"), {Param("a431", 1)}},
{Item(Item::token, "foo"), {Param("a432", 1)}},
{Item(Item::token, "foo"), {Param("a433", 1)}},
{Item(Item::token, "foo"), {Param("a434", 1)}},
{Item(Item::token, "foo"), {Param("a435", 1)}},
{Item(Item::token, "foo"), {Param("a436", 1)}},
{Item(Item::token, "foo"), {Param("a437", 1)}},
{Item(Item::token, "foo"), {Param("a438", 1)}},
{Item(Item::token, "foo"), {Param("a439", 1)}},
{Item(Item::token, "foo"), {Param("a440", 1)}},
{Item(Item::token, "foo"), {Param("a441", 1)}},
{Item(Item::token, "foo"), {Param("a442", 1)}},
{Item(Item::token, "foo"), {Param("a443", 1)}},
{Item(Item::token, "foo"), {Param("a444", 1)}},
{Item(Item::token, "foo"), {Param("a445", 1)}},
{Item(Item::token, "foo"), {Param("a446", 1)}},
{Item(Item::token, "foo"), {Param("a447", 1)}},
{Item(Item::token, "foo"), {Param("a448", 1)}},
{Item(Item::token, "foo"), {Param("a449", 1)}},
{Item(Item::token, "foo"), {Param("a450", 1)}},
{Item(Item::token, "foo"), {Param("a451", 1)}},
{Item(Item::token, "foo"), {Param("a452", 1)}},
{Item(Item::token, "foo"), {Param("a453", 1)}},
{Item(Item::token, "foo"), {Param("a454", 1)}},
{Item(Item::token, "foo"), {Param("a455", 1)}},
{Item(Item::token, "foo"), {Param("a456", 1)}},
{Item(Item::token, "foo"), {Param("a457", 1)}},
{Item(Item::token, "foo"), {Param("a458", 1)}},
{Item(Item::token, "foo"), {Param("a459", 1)}},
{Item(Item::token, "foo"), {Param("a460", 1)}},
{Item(Item::token, "foo"), {Param("a461", 1)}},
{Item(Item::token, "foo"), {Param("a462", 1)}},
{Item(Item::token, "foo"), {Param("a463", 1)}},
{Item(Item::token, "foo"), {Param("a464", 1)}},
{Item(Item::token, "foo"), {Param("a465", 1)}},
{Item(Item::token, "foo"), {Param("a466", 1)}},
{Item(Item::token, "foo"), {Param("a467", 1)}},
{Item(Item::token, "foo"), {Param("a468", 1)}},
{Item(Item::token, "foo"), {Param("a469", 1)}},
{Item(Item::token, "foo"), {Param("a470", 1)}},
{Item(Item::token, "foo"), {Param("a471", 1)}},
{Item(Item::token, "foo"), {Param("a472", 1)}},
{Item(Item::token, "foo"), {Param("a473", 1)}},
{Item(Item::token, "foo"), {Param("a474", 1)}},
{Item(Item::token, "foo"), {Param("a475", 1)}},
{Item(Item::token, "foo"), {Param("a476", 1)}},
{Item(Item::token, "foo"), {Param("a477", 1)}},
{Item(Item::token, "foo"), {Param("a478", 1)}},
{Item(Item::token, "foo"), {Param("a479", 1)}},
{Item(Item::token, "foo"), {Param("a480", 1)}},
{Item(Item::token, "foo"), {Param("a481", 1)}},
{Item(Item::token, "foo"), {Param("a482", 1)}},
{Item(Item::token, "foo"), {Param("a483", 1)}},
{Item(Item::token, "foo"), {Param("a484", 1)}},
{Item(Item::token, "foo"), {Param("a485", 1)}},
{Item(Item::token, "foo"), {Param("a486", 1)}},
{Item(Item::token, "foo"), {Param("a487", 1)}},
{Item(Item::token, "foo"), {Param("a488", 1)}},
{Item(Item::token, "foo"), {Param("a489", 1)}},
{Item(Item::token, "foo"), {Param("a490", 1)}},
{Item(Item::token, "foo"), {Param("a491", 1)}},
{Item(Item::token, "foo"), {Param("a492", 1)}},
{Item(Item::token, "foo"), {Param("a493", 1)}},
{Item(Item::token, "foo"), {Param("a494", 1)}},
{Item(Item::token, "foo"), {Param("a495", 1)}},
{Item(Item::token, "foo"), {Param("a496", 1)}},
{Item(Item::token, "foo"), {Param("a497", 1)}},
{Item(Item::token, "foo"), {Param("a498", 1)}},
{Item(Item::token, "foo"), {Param("a499", 1)}},
{Item(Item::token, "foo"), {Param("a500", 1)}},
{Item(Item::token, "foo"), {Param("a501", 1)}},
{Item(Item::token, "foo"), {Param("a502", 1)}},
{Item(Item::token, "foo"), {Param("a503", 1)}},
{Item(Item::token, "foo"), {Param("a504", 1)}},
{Item(Item::token, "foo"), {Param("a505", 1)}},
{Item(Item::token, "foo"), {Param("a506", 1)}},
{Item(Item::token, "foo"), {Param("a507", 1)}},
{Item(Item::token, "foo"), {Param("a508", 1)}},
{Item(Item::token, "foo"), {Param("a509", 1)}},
{Item(Item::token, "foo"), {Param("a510", 1)}},
{Item(Item::token, "foo"), {Param("a511", 1)}},
{Item(Item::token, "foo"), {Param("a512", 1)}},
{Item(Item::token, "foo"), {Param("a513", 1)}},
{Item(Item::token, "foo"), {Param("a514", 1)}},
{Item(Item::token, "foo"), {Param("a515", 1)}},
{Item(Item::token, "foo"), {Param("a516", 1)}},
{Item(Item::token, "foo"), {Param("a517", 1)}},
{Item(Item::token, "foo"), {Param("a518", 1)}},
{Item(Item::token, "foo"), {Param("a519", 1)}},
{Item(Item::token, "foo"), {Param("a520", 1)}},
{Item(Item::token, "foo"), {Param("a521", 1)}},
{Item(Item::token, "foo"), {Param("a522", 1)}},
{Item(Item::token, "foo"), {Param("a523", 1)}},
{Item(Item::token, "foo"), {Param("a524", 1)}},
{Item(Item::token, "foo"), {Param("a525", 1)}},
{Item(Item::token, "foo"), {Param("a526", 1)}},
{Item(Item::token, "foo"), {Param("a527", 1)}},
{Item(Item::token, "foo"), {Param("a528", 1)}},
{Item(Item::token, "foo"), {Param("a529", 1)}},
{Item(Item::token, "foo"), {Param("a530", 1)}},
{Item(Item::token, "foo"), {Param("a531", 1)}},
{Item(Item::token, "foo"), {Param("a532", 1)}},
{Item(Item::token, "foo"), {Param("a533", 1)}},
{Item(Item::token, "foo"), {Param("a534", 1)}},
{Item(Item::token, "foo"), {Param("a535", 1)}},
{Item(Item::token, "foo"), {Param("a536", 1)}},
{Item(Item::token, "foo"), {Param("a537", 1)}},
{Item(Item::token, "foo"), {Param("a538", 1)}},
{Item(Item::token, "foo"), {Param("a539", 1)}},
{Item(Item::token, "foo"), {Param("a540", 1)}},
{Item(Item::token, "foo"), {Param("a541", 1)}},
{Item(Item::token, "foo"), {Param("a542", 1)}},
{Item(Item::token, "foo"), {Param("a543", 1)}},
{Item(Item::token, "foo"), {Param("a544", 1)}},
{Item(Item::token, "foo"), {Param("a545", 1)}},
{Item(Item::token, "foo"), {Param("a546", 1)}},
{Item(Item::token, "foo"), {Param("a547", 1)}},
{Item(Item::token, "foo"), {Param("a548", 1)}},
{Item(Item::token, "foo"), {Param("a549", 1)}},
{Item(Item::token, "foo"), {Param("a550", 1)}},
{Item(Item::token, "foo"), {Param("a551", 1)}},
{Item(Item::token, "foo"), {Param("a552", 1)}},
{Item(Item::token, "foo"), {Param("a553", 1)}},
{Item(Item::token, "foo"), {Param("a554", 1)}},
{Item(Item::token, "foo"), {Param("a555", 1)}},
{Item(Item::token, "foo"), {Param("a556", 1)}},
{Item(Item::token, "foo"), {Param("a557", 1)}},
{Item(Item::token, "foo"), {Param("a558", 1)}},
{Item(Item::token, "foo"), {Param("a559", 1)}},
{Item(Item::token, "foo"), {Param("a560", 1)}},
{Item(Item::token, "foo"), {Param("a561", 1)}},
{Item(Item::token, "foo"), {Param("a562", 1)}},
{Item(Item::token, "foo"), {Param("a563", 1)}},
{Item(Item::token, "foo"), {Param("a564", 1)}},
{Item(Item::token, "foo"), {Param("a565", 1)}},
{Item(Item::token, "foo"), {Param("a566", 1)}},
{Item(Item::token, "foo"), {Param("a567", 1)}},
{Item(Item::token, "foo"), {Param("a568", 1)}},
{Item(Item::token, "foo"), {Param("a569", 1)}},
{Item(Item::token, "foo"), {Param("a570", 1)}},
{Item(Item::token, "foo"), {Param("a571", 1)}},
{Item(Item::token, "foo"), {Param("a572", 1)}},
{Item(Item::token, "foo"), {Param("a573", 1)}},
{Item(Item::token, "foo"), {Param("a574", 1)}},
{Item(Item::token, "foo"), {Param("a575", 1)}},
{Item(Item::token, "foo"), {Param("a576", 1)}},
{Item(Item::token, "foo"), {Param("a577", 1)}},
{Item(Item::token, "foo"), {Param("a578", 1)}},
{Item(Item::token, "foo"), {Param("a579", 1)}},
{Item(Item::token, "foo"), {Param("a580", 1)}},
{Item(Item::token, "foo"), {Param("a581", 1)}},
{Item(Item::token, "foo"), {Param("a582", 1)}},
{Item(Item::token, "foo"), {Param("a583", 1)}},
{Item(Item::token, "foo"), {Param("a584", 1)}},
{Item(Item::token, "foo"), {Param("a585", 1)}},
{Item(Item::token, "foo"), {Param("a586", 1)}},
{Item(Item::token, "foo"), {Param("a587", 1)}},
{Item(Item::token, "foo"), {Param("a588", 1)}},
{Item(Item::token, "foo"), {Param("a589", 1)}},
{Item(Item::token, "foo"), {Param("a590", 1)}},
{Item(Item::token, "foo"), {Param("a591", 1)}},
{Item(Item::token, "foo"), {Param("a592", 1)}},
{Item(Item::token, "foo"), {Param("a593", 1)}},
{Item(Item::token, "foo"), {Param("a594", 1)}},
{Item(Item::token, "foo"), {Param("a595", 1)}},
{Item(Item::token, "foo"), {Param("a596", 1)}},
{Item(Item::token, "foo"), {Param("a597", 1)}},
{Item(Item::token, "foo"), {Param("a598", 1)}},
{Item(Item::token, "foo"), {Param("a599", 1)}},
{Item(Item::token, "foo"), {Param("a600", 1)}},
{Item(Item::token, "foo"), {Param("a601", 1)}},
{Item(Item::token, "foo"), {Param("a602", 1)}},
{Item(Item::token, "foo"), {Param("a603", 1)}},
{Item(Item::token, "foo"), {Param("a604", 1)}},
{Item(Item::token, "foo"), {Param("a605", 1)}},
{Item(Item::token, "foo"), {Param("a606", 1)}},
{Item(Item::token, "foo"), {Param("a607", 1)}},
{Item(Item::token, "foo"), {Param("a608", 1)}},
{Item(Item::token, "foo"), {Param("a609", 1)}},
{Item(Item::token, "foo"), {Param("a610", 1)}},
{Item(Item::token, "foo"), {Param("a611", 1)}},
{Item(Item::token, "foo"), {Param("a612", 1)}},
{Item(Item::token, "foo"), {Param("a613", 1)}},
{Item(Item::token, "foo"), {Param("a614", 1)}},
{Item(Item::token, "foo"), {Param("a615", 1)}},
{Item(Item::token, "foo"), {Param("a616", 1)}},
{Item(Item::token, "foo"), {Param("a617", 1)}},
{Item(Item::token, "foo"), {Param("a618", 1)}},
{Item(Item::token, "foo"), {Param("a619", 1)}},
{Item(Item::token, "foo"), {Param("a620", 1)}},
{Item(Item::token, "foo"), {Param("a621", 1)}},
{Item(Item::token, "foo"), {Param("a622", 1)}},
{Item(Item::token, "foo"), {Param("a623", 1)}},
{Item(Item::token, "foo"), {Param("a624", 1)}},
{Item(Item::token, "foo"), {Param("a625", 1)}},
{Item(Item::token, "foo"), {Param("a626", 1)}},
{Item(Item::token, "foo"), {Param("a627", 1)}},
{Item(Item::token, "foo"), {Param("a628", 1)}},
{Item(Item::token, "foo"), {Param("a629", 1)}},
{Item(Item::token, "foo"), {Param("a630", 1)}},
{Item(Item::token, "foo"), {Param("a631", 1)}},
{Item(Item::token, "foo"), {Param("a632", 1)}},
{Item(Item::token, "foo"), {Param("a633", 1)}},
{Item(Item::token, "foo"), {Param("a634", 1)}},
{Item(Item::token, "foo"), {Param("a635", 1)}},
{Item(Item::token, "foo"), {Param("a636", 1)}},
{Item(Item::token, "foo"), {Param("a637", 1)}},
{Item(Item::token, "foo"), {Param("a638", 1)}},
{Item(Item::token, "foo"), {Param("a639", 1)}},
{Item(Item::token, "foo"), {Param("a640", 1)}},
{Item(Item::token, "foo"), {Param("a641", 1)}},
{Item(Item::token, "foo"), {Param("a642", 1)}},
{Item(Item::token, "foo"), {Param("a643", 1)}},
{Item(Item::token, "foo"), {Param("a644", 1)}},
{Item(Item::token, "foo"), {Param("a645", 1)}},
{Item(Item::token, "foo"), {Param("a646", 1)}},
{Item(Item::token, "foo"), {Param("a647", 1)}},
{Item(Item::token, "foo"), {Param("a648", 1)}},
{Item(Item::token, "foo"), {Param("a649", 1)}},
{Item(Item::token, "foo"), {Param("a650", 1)}},
{Item(Item::token, "foo"), {Param("a651", 1)}},
{Item(Item::token, "foo"), {Param("a652", 1)}},
{Item(Item::token, "foo"), {Param("a653", 1)}},
{Item(Item::token, "foo"), {Param("a654", 1)}},
{Item(Item::token, "foo"), {Param("a655", 1)}},
{Item(Item::token, "foo"), {Param("a656", 1)}},
{Item(Item::token, "foo"), {Param("a657", 1)}},
{Item(Item::token, "foo"), {Param("a658", 1)}},
{Item(Item::token, "foo"), {Param("a659", 1)}},
{Item(Item::token, "foo"), {Param("a660", 1)}},
{Item(Item::token, "foo"), {Param("a661", 1)}},
{Item(Item::token, "foo"), {Param("a662", 1)}},
{Item(Item::token, "foo"), {Param("a663", 1)}},
{Item(Item::token, "foo"), {Param("a664", 1)}},
{Item(Item::token, "foo"), {Param("a665", 1)}},
{Item(Item::token, "foo"), {Param("a666", 1)}},
{Item(Item::token, "foo"), {Param("a667", 1)}},
{Item(Item::token, "foo"), {Param("a668", 1)}},
{Item(Item::token, "foo"), {Param("a669", 1)}},
{Item(Item::token, "foo"), {Param("a670", 1)}},
{Item(Item::token, "foo"), {Param("a671", 1)}},
{Item(Item::token, "foo"), {Param("a672", 1)}},
{Item(Item::token, "foo"), {Param("a673", 1)}},
{Item(Item::token, "foo"), {Param("a674", 1)}},
{Item(Item::token, "foo"), {Param("a675", 1)}},
{Item(Item::token, "foo"), {Param("a676", 1)}},
{Item(Item::token, "foo"), {Param("a677", 1)}},
{Item(Item::token, "foo"), {Param("a678", 1)}},
{Item(Item::token, "foo"), {Param("a679", 1)}},
{Item(Item::token, "foo"), {Param("a680", 1)}},
{Item(Item::token, "foo"), {Param("a681", 1)}},
{Item(Item::token, "foo"), {Param("a682", 1)}},
{Item(Item::token, "foo"), {Param("a683", 1)}},
{Item(Item::token, "foo"), {Param("a684", 1)}},
{Item(Item::token, "foo"), {Param("a685", 1)}},
{Item(Item::token, "foo"), {Param("a686", 1)}},
{Item(Item::token, "foo"), {Param("a687", 1)}},
{Item(Item::token, "foo"), {Param("a688", 1)}},
{Item(Item::token, "foo"), {Param("a689", 1)}},
{Item(Item::token, "foo"), {Param("a690", 1)}},
{Item(Item::token, "foo"), {Param("a691", 1)}},
{Item(Item::token, "foo"), {Param("a692", 1)}},
{Item(Item::token, "foo"), {Param("a693", 1)}},
{Item(Item::token, "foo"), {Param("a694", 1)}},
{Item(Item::token, "foo"), {Param("a695", 1)}},
{Item(Item::token, "foo"), {Param("a696", 1)}},
{Item(Item::token, "foo"), {Param("a697", 1)}},
{Item(Item::token, "foo"), {Param("a698", 1)}},
{Item(Item::token, "foo"), {Param("a699", 1)}},
{Item(Item::token, "foo"), {Param("a700", 1)}},
{Item(Item::token, "foo"), {Param("a701", 1)}},
{Item(Item::token, "foo"), {Param("a702", 1)}},
{Item(Item::token, "foo"), {Param("a703", 1)}},
{Item(Item::token, "foo"), {Param("a704", 1)}},
{Item(Item::token, "foo"), {Param("a705", 1)}},
{Item(Item::token, "foo"), {Param("a706", 1)}},
{Item(Item::token, "foo"), {Param("a707", 1)}},
{Item(Item::token, "foo"), {Param("a708", 1)}},
{Item(Item::token, "foo"), {Param("a709", 1)}},
{Item(Item::token, "foo"), {Param("a710", 1)}},
{Item(Item::token, "foo"), {Param("a711", 1)}},
{Item(Item::token, "foo"), {Param("a712", 1)}},
{Item(Item::token, "foo"), {Param("a713", 1)}},
{Item(Item::token, "foo"), {Param("a714", 1)}},
{Item(Item::token, "foo"), {Param("a715", 1)}},
{Item(Item::token, "foo"), {Param("a716", 1)}},
{Item(Item::token, "foo"), {Param("a717", 1)}},
{Item(Item::token, "foo"), {Param("a718", 1)}},
{Item(Item::token, "foo"), {Param("a719", 1)}},
{Item(Item::token, "foo"), {Param("a720", 1)}},
{Item(Item::token, "foo"), {Param("a721", 1)}},
{Item(Item::token, "foo"), {Param("a722", 1)}},
{Item(Item::token, "foo"), {Param("a723", 1)}},
{Item(Item::token, "foo"), {Param("a724", 1)}},
{Item(Item::token, "foo"), {Param("a725", 1)}},
{Item(Item::token, "foo"), {Param("a726", 1)}},
{Item(Item::token, "foo"), {Param("a727", 1)}},
{Item(Item::token, "foo"), {Param("a728", 1)}},
{Item(Item::token, "foo"), {Param("a729", 1)}},
{Item(Item::token, "foo"), {Param("a730", 1)}},
{Item(Item::token, "foo"), {Param("a731", 1)}},
{Item(Item::token, "foo"), {Param("a732", 1)}},
{Item(Item::token, "foo"), {Param("a733", 1)}},
{Item(Item::token, "foo"), {Param("a734", 1)}},
{Item(Item::token, "foo"), {Param("a735", 1)}},
{Item(Item::token, "foo"), {Param("a736", 1)}},
{Item(Item::token, "foo"), {Param("a737", 1)}},
{Item(Item::token, "foo"), {Param("a738", 1)}},
{Item(Item::token, "foo"), {Param("a739", 1)}},
{Item(Item::token, "foo"), {Param("a740", 1)}},
{Item(Item::token, "foo"), {Param("a741", 1)}},
{Item(Item::token, "foo"), {Param("a742", 1)}},
{Item(Item::token, "foo"), {Param("a743", 1)}},
{Item(Item::token, "foo"), {Param("a744", 1)}},
{Item(Item::token, "foo"), {Param("a745", 1)}},
{Item(Item::token, "foo"), {Param("a746", 1)}},
{Item(Item::token, "foo"), {Param("a747", 1)}},
{Item(Item::token, "foo"), {Param("a748", 1)}},
{Item(Item::token, "foo"), {Param("a749", 1)}},
{Item(Item::token, "foo"), {Param("a750", 1)}},
{Item(Item::token, "foo"), {Param("a751", 1)}},
{Item(Item::token, "foo"), {Param("a752", 1)}},
{Item(Item::token, "foo"), {Param("a753", 1)}},
{Item(Item::token, "foo"), {Param("a754", 1)}},
{Item(Item::token, "foo"), {Param("a755", 1)}},
{Item(Item::token, "foo"), {Param("a756", 1)}},
{Item(Item::token, "foo"), {Param("a757", 1)}},
{Item(Item::token, "foo"), {Param("a758", 1)}},
{Item(Item::token, "foo"), {Param("a759", 1)}},
{Item(Item::token, "foo"), {Param("a760", 1)}},
{Item(Item::token, "foo"), {Param("a761", 1)}},
{Item(Item::token, "foo"), {Param("a762", 1)}},
{Item(Item::token, "foo"), {Param("a763", 1)}},
{Item(Item::token, "foo"), {Param("a764", 1)}},
{Item(Item::token, "foo"), {Param("a765", 1)}},
{Item(Item::token, "foo"), {Param("a766", 1)}},
{Item(Item::token, "foo"), {Param("a767", 1)}},
{Item(Item::token, "foo"), {Param("a768", 1)}},
{Item(Item::token, "foo"), {Param("a769", 1)}},
{Item(Item::token, "foo"), {Param("a770", 1)}},
{Item(Item::token, "foo"), {Param("a771", 1)}},
{Item(Item::token, "foo"), {Param("a772", 1)}},
{Item(Item::token, "foo"), {Param("a773", 1)}},
{Item(Item::token, "foo"), {Param("a774", 1)}},
{Item(Item::token, "foo"), {Param("a775", 1)}},
{Item(Item::token, "foo"), {Param("a776", 1)}},
{Item(Item::token, "foo"), {Param("a777", 1)}},
{Item(Item::token, "foo"), {Param("a778", 1)}},
{Item(Item::token, "foo"), {Param("a779", 1)}},
{Item(Item::token, "foo"), {Param("a780", 1)}},
{Item(Item::token, "foo"), {Param("a781", 1)}},
{Item(Item::token, "foo"), {Param("a782", 1)}},
{Item(Item::token, "foo"), {Param("a783", 1)}},
{Item(Item::token, "foo"), {Param("a784", 1)}},
{Item(Item::token, "foo"), {Param("a785", 1)}},
{Item(Item::token, "foo"), {Param("a786", 1)}},
{Item(Item::token, "foo"), {Param("a787", 1)}},
{Item(Item::token, "foo"), {Param("a788", 1)}},
{Item(Item::token, "foo"), {Param("a789", 1)}},
{Item(Item::token, "foo"), {Param("a790", 1)}},
{Item(Item::token, "foo"), {Param("a791", 1)}},
{Item(Item::token, "foo"), {Param("a792", 1)}},
{Item(Item::token, "foo"), {Param("a793", 1)}},
{Item(Item::token, "foo"), {Param("a794", 1)}},
{Item(Item::token, "foo"), {Param("a795", 1)}},
{Item(Item::token, "foo"), {Param("a796", 1)}},
{Item(Item::token, "foo"), {Param("a797", 1)}},
{Item(Item::token, "foo"), {Param("a798", 1)}},
{Item(Item::token, "foo"), {Param("a799", 1)}},
{Item(Item::token, "foo"), {Param("a800", 1)}},
{Item(Item::token, "foo"), {Param("a801", 1)}},
{Item(Item::token, "foo"), {Param("a802", 1)}},
{Item(Item::token, "foo"), {Param("a803", 1)}},
{Item(Item::token, "foo"), {Param("a804", 1)}},
{Item(Item::token, "foo"), {Param("a805", 1)}},
{Item(Item::token, "foo"), {Param("a806", 1)}},
{Item(Item::token, "foo"), {Param("a807", 1)}},
{Item(Item::token, "foo"), {Param("a808", 1)}},
{Item(Item::token, "foo"), {Param("a809", 1)}},
{Item(Item::token, "foo"), {Param("a810", 1)}},
{Item(Item::token, "foo"), {Param("a811", 1)}},
{Item(Item::token, "foo"), {Param("a812", 1)}},
{Item(Item::token, "foo"), {Param("a813", 1)}},
{Item(Item::token, "foo"), {Param("a814", 1)}},
{Item(Item::token, "foo"), {Param("a815", 1)}},
{Item(Item::token, "foo"), {Param("a816", 1)}},
{Item(Item::token, "foo"), {Param("a817", 1)}},
{Item(Item::token, "foo"), {Param("a818", 1)}},
{Item(Item::token, "foo"), {Param("a819", 1)}},
{Item(Item::token, "foo"), {Param("a820", 1)}},
{Item(Item::token, "foo"), {Param("a821", 1)}},
{Item(Item::token, "foo"), {Param("a822", 1)}},
{Item(Item::token, "foo"), {Param("a823", 1)}},
{Item(Item::token, "foo"), {Param("a824", 1)}},
{Item(Item::token, "foo"), {Param("a825", 1)}},
{Item(Item::token, "foo"), {Param("a826", 1)}},
{Item(Item::token, "foo"), {Param("a827", 1)}},
{Item(Item::token, "foo"), {Param("a828", 1)}},
{Item(Item::token, "foo"), {Param("a829", 1)}},
{Item(Item::token, "foo"), {Param("a830", 1)}},
{Item(Item::token, "foo"), {Param("a831", 1)}},
{Item(Item::token, "foo"), {Param("a832", 1)}},
{Item(Item::token, "foo"), {Param("a833", 1)}},
{Item(Item::token, "foo"), {Param("a834", 1)}},
{Item(Item::token, "foo"), {Param("a835", 1)}},
{Item(Item::token, "foo"), {Param("a836", 1)}},
{Item(Item::token, "foo"), {Param("a837", 1)}},
{Item(Item::token, "foo"), {Param("a838", 1)}},
{Item(Item::token, "foo"), {Param("a839", 1)}},
{Item(Item::token, "foo"), {Param("a840", 1)}},
{Item(Item::token, "foo"), {Param("a841", 1)}},
{Item(Item::token, "foo"), {Param("a842", 1)}},
{Item(Item::token, "foo"), {Param("a843", 1)}},
{Item(Item::token, "foo"), {Param("a844", 1)}},
{Item(Item::token, "foo"), {Param("a845", 1)}},
{Item(Item::token, "foo"), {Param("a846", 1)}},
{Item(Item::token, "foo"), {Param("a847", 1)}},
{Item(Item::token, "foo"), {Param("a848", 1)}},
{Item(Item::token, "foo"), {Param("a849", 1)}},
{Item(Item::token, "foo"), {Param("a850", 1)}},
{Item(Item::token, "foo"), {Param("a851", 1)}},
{Item(Item::token, "foo"), {Param("a852", 1)}},
{Item(Item::token, "foo"), {Param("a853", 1)}},
{Item(Item::token, "foo"), {Param("a854", 1)}},
{Item(Item::token, "foo"), {Param("a855", 1)}},
{Item(Item::token, "foo"), {Param("a856", 1)}},
{Item(Item::token, "foo"), {Param("a857", 1)}},
{Item(Item::token, "foo"), {Param("a858", 1)}},
{Item(Item::token, "foo"), {Param("a859", 1)}},
{Item(Item::token, "foo"), {Param("a860", 1)}},
{Item(Item::token, "foo"), {Param("a861", 1)}},
{Item(Item::token, "foo"), {Param("a862", 1)}},
{Item(Item::token, "foo"), {Param("a863", 1)}},
{Item(Item::token, "foo"), {Param("a864", 1)}},
{Item(Item::token, "foo"), {Param("a865", 1)}},
{Item(Item::token, "foo"), {Param("a866", 1)}},
{Item(Item::token, "foo"), {Param("a867", 1)}},
{Item(Item::token, "foo"), {Param("a868", 1)}},
{Item(Item::token, "foo"), {Param("a869", 1)}},
{Item(Item::token, "foo"), {Param("a870", 1)}},
{Item(Item::token, "foo"), {Param("a871", 1)}},
{Item(Item::token, "foo"), {Param("a872", 1)}},
{Item(Item::token, "foo"), {Param("a873", 1)}},
{Item(Item::token, "foo"), {Param("a874", 1)}},
{Item(Item::token, "foo"), {Param("a875", 1)}},
{Item(Item::token, "foo"), {Param("a876", 1)}},
{Item(Item::token, "foo"), {Param("a877", 1)}},
{Item(Item::token, "foo"), {Param("a878", 1)}},
{Item(Item::token, "foo"), {Param("a879", 1)}},
{Item(Item::token, "foo"), {Param("a880", 1)}},
{Item(Item::token, "foo"), {Param("a881", 1)}},
{Item(Item::token, "foo"), {Param("a882", 1)}},
{Item(Item::token, "foo"), {Param("a883", 1)}},
{Item(Item::token, "foo"), {Param("a884", 1)}},
{Item(Item::token, "foo"), {Param("a885", 1)}},
{Item(Item::token, "foo"), {Param("a886", 1)}},
{Item(Item::token, "foo"), {Param("a887", 1)}},
{Item(Item::token, "foo"), {Param("a888", 1)}},
{Item(Item::token, "foo"), {Param("a889", 1)}},
{Item(Item::token, "foo"), {Param("a890", 1)}},
{Item(Item::token, "foo"), {Param("a891", 1)}},
{Item(Item::token, "foo"), {Param("a892", 1)}},
{Item(Item::token, "foo"), {Param("a893", 1)}},
{Item(Item::token, "foo"), {Param("a894", 1)}},
{Item(Item::token, "foo"), {Param("a895", 1)}},
{Item(Item::token, "foo"), {Param("a896", 1)}},
{Item(Item::token, "foo"), {Param("a897", 1)}},
{Item(Item::token, "foo"), {Param("a898", 1)}},
{Item(Item::token, "foo"), {Param("a899", 1)}},
{Item(Item::token, "foo"), {Param("a900", 1)}},
{Item(Item::token, "foo"), {Param("a901", 1)}},
{Item(Item::token, "foo"), {Param("a902", 1)}},
{Item(Item::token, "foo"), {Param("a903", 1)}},
{Item(Item::token, "foo"), {Param("a904", 1)}},
{Item(Item::token, "foo"), {Param("a905", 1)}},
{Item(Item::token, "foo"), {Param("a906", 1)}},
{Item(Item::token, "foo"), {Param("a907", 1)}},
{Item(Item::token, "foo"), {Param("a908", 1)}},
{Item(Item::token, "foo"), {Param("a909", 1)}},
{Item(Item::token, "foo"), {Param("a910", 1)}},
{Item(Item::token, "foo"), {Param("a911", 1)}},
{Item(Item::token, "foo"), {Param("a912", 1)}},
{Item(Item::token, "foo"), {Param("a913", 1)}},
{Item(Item::token, "foo"), {Param("a914", 1)}},
{Item(Item::token, "foo"), {Param("a915", 1)}},
{Item(Item::token, "foo"), {Param("a916", 1)}},
{Item(Item::token, "foo"), {Param("a917", 1)}},
{Item(Item::token, "foo"), {Param("a918", 1)}},
{Item(Item::token, "foo"), {Param("a919", 1)}},
{Item(Item::token, "foo"), {Param("a920", 1)}},
{Item(Item::token, "foo"), {Param("a921", 1)}},
{Item(Item::token, "foo"), {Param("a922", 1)}},
{Item(Item::token, "foo"), {Param("a923", 1)}},
{Item(Item::token, "foo"), {Param("a924", 1)}},
{Item(Item::token, "foo"), {Param("a925", 1)}},
{Item(Item::token, "foo"), {Param("a926", 1)}},
{Item(Item::token, "foo"), {Param("a927", 1)}},
{Item(Item::token, "foo"), {Param("a928", 1)}},
{Item(Item::token, "foo"), {Param("a929", 1)}},
{Item(Item::token, "foo"), {Param("a930", 1)}},
{Item(Item::token, "foo"), {Param("a931", 1)}},
{Item(Item::token, "foo"), {Param("a932", 1)}},
{Item(Item::token, "foo"), {Param("a933", 1)}},
{Item(Item::token, "foo"), {Param("a934", 1)}},
{Item(Item::token, "foo"), {Param("a935", 1)}},
{Item(Item::token, "foo"), {Param("a936", 1)}},
{Item(Item::token, "foo"), {Param("a937", 1)}},
{Item(Item::token, "foo"), {Param("a938", 1)}},
{Item(Item::token, "foo"), {Param("a939", 1)}},
{Item(Item::token, "foo"), {Param("a940", 1)}},
{Item(Item::token, "foo"), {Param("a941", 1)}},
{Item(Item::token, "foo"), {Param("a942", 1)}},
{Item(Item::token, "foo"), {Param("a943", 1)}},
{Item(Item::token, "foo"), {Param("a944", 1)}},
{Item(Item::token, "foo"), {Param("a945", 1)}},
{Item(Item::token, "foo"), {Param("a946", 1)}},
{Item(Item::token, "foo"), {Param("a947", 1)}},
{Item(Item::token, "foo"), {Param("a948", 1)}},
{Item(Item::token, "foo"), {Param("a949", 1)}},
{Item(Item::token, "foo"), {Param("a950", 1)}},
{Item(Item::token, "foo"), {Param("a951", 1)}},
{Item(Item::token, "foo"), {Param("a952", 1)}},
{Item(Item::token, "foo"), {Param("a953", 1)}},
{Item(Item::token, "foo"), {Param("a954", 1)}},
{Item(Item::token, "foo"), {Param("a955", 1)}},
{Item(Item::token, "foo"), {Param("a956", 1)}},
{Item(Item::token, "foo"), {Param("a957", 1)}},
{Item(Item::token, "foo"), {Param("a958", 1)}},
{Item(Item::token, "foo"), {Param("a959", 1)}},
{Item(Item::token, "foo"), {Param("a960", 1)}},
{Item(Item::token, "foo"), {Param("a961", 1)}},
{Item(Item::token, "foo"), {Param("a962", 1)}},
{Item(Item::token, "foo"), {Param("a963", 1)}},
{Item(Item::token, "foo"), {Param("a964", 1)}},
{Item(Item::token, "foo"), {Param("a965", 1)}},
{Item(Item::token, "foo"), {Param("a966", 1)}},
{Item(Item::token, "foo"), {Param("a967", 1)}},
{Item(Item::token, "foo"), {Param("a968", 1)}},
{Item(Item::token, "foo"), {Param("a969", 1)}},
{Item(Item::token, "foo"), {Param("a970", 1)}},
{Item(Item::token, "foo"), {Param("a971", 1)}},
{Item(Item::token, "foo"), {Param("a972", 1)}},
{Item(Item::token, "foo"), {Param("a973", 1)}},
{Item(Item::token, "foo"), {Param("a974", 1)}},
{Item(Item::token, "foo"), {Param("a975", 1)}},
{Item(Item::token, "foo"), {Param("a976", 1)}},
{Item(Item::token, "foo"), {Param("a977", 1)}},
{Item(Item::token, "foo"), {Param("a978", 1)}},
{Item(Item::token, "foo"), {Param("a979", 1)}},
{Item(Item::token, "foo"), {Param("a980", 1)}},
{Item(Item::token, "foo"), {Param("a981", 1)}},
{Item(Item::token, "foo"), {Param("a982", 1)}},
{Item(Item::token, "foo"), {Param("a983", 1)}},
{Item(Item::token, "foo"), {Param("a984", 1)}},
{Item(Item::token, "foo"), {Param("a985", 1)}},
{Item(Item::token, "foo"), {Param("a986", 1)}},
{Item(Item::token, "foo"), {Param("a987", 1)}},
{Item(Item::token, "foo"), {Param("a988", 1)}},
{Item(Item::token, "foo"), {Param("a989", 1)}},
{Item(Item::token, "foo"), {Param("a990", 1)}},
{Item(Item::token, "foo"), {Param("a991", 1)}},
{Item(Item::token, "foo"), {Param("a992", 1)}},
{Item(Item::token, "foo"), {Param("a993", 1)}},
{Item(Item::token, "foo"), {Param("a994", 1)}},
{Item(Item::token, "foo"), {Param("a995", 1)}},
{Item(Item::token, "foo"), {Param("a996", 1)}},
{Item(Item::token, "foo"), {Param("a997", 1)}},
{Item(Item::token, "foo"), {Param("a998", 1)}},
{Item(Item::token, "foo"), {Param("a999", 1)}},
{Item(Item::token, "foo"), {Param("a1000", 1)}},
{Item(Item::token, "foo"), {Param("a1001", 1)}},
{Item(Item::token, "foo"), {Param("a1002", 1)}},
{Item(Item::token, "foo"), {Param("a1003", 1)}},
{Item(Item::token, "foo"), {Param("a1004", 1)}},
{Item(Item::token, "foo"), {Param("a1005", 1)}},
{Item(Item::token, "foo"), {Param("a1006", 1)}},
{Item(Item::token, "foo"), {Param("a1007", 1)}},
{Item(Item::token, "foo"), {Param("a1008", 1)}},
{Item(Item::token, "foo"), {Param("a1009", 1)}},
{Item(Item::token, "foo"), {Param("a1010", 1)}},
{Item(Item::token, "foo"), {Param("a1011", 1)}},
{Item(Item::token, "foo"), {Param("a1012", 1)}},
{Item(Item::token, "foo"), {Param("a1013", 1)}},
{Item(Item::token, "foo"), {Param("a1014", 1)}},
{Item(Item::token, "foo"), {Param("a1015", 1)}},
{Item(Item::token, "foo"), {Param("a1016", 1)}},
{Item(Item::token, "foo"), {Param("a1017", 1)}},
{Item(Item::token, "foo"), {Param("a1018", 1)}},
{Item(Item::token, "foo"), {Param("a1019", 1)}},
{Item(Item::token, "foo"), {Param("a1020", 1)}},
{Item(Item::token, "foo"), {Param("a1021", 1)}},
{Item(Item::token, "foo"), {Param("a1022", 1)}},
{Item(Item::token, "foo"), {Param("a1023", 1)}}}},
nullptr},
{"large params",
"foo;a0=1;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;a9=1;a10=1;a11=1;a12=1;"
"a13=1;a14=1;a15=1;a16=1;a17=1;a18=1;a19=1;a20=1;a21=1;a22=1;a23=1;a24=1;"
"a25=1;a26=1;a27=1;a28=1;a29=1;a30=1;a31=1;a32=1;a33=1;a34=1;a35=1;a36=1;"
"a37=1;a38=1;a39=1;a40=1;a41=1;a42=1;a43=1;a44=1;a45=1;a46=1;a47=1;a48=1;"
"a49=1;a50=1;a51=1;a52=1;a53=1;a54=1;a55=1;a56=1;a57=1;a58=1;a59=1;a60=1;"
"a61=1;a62=1;a63=1;a64=1;a65=1;a66=1;a67=1;a68=1;a69=1;a70=1;a71=1;a72=1;"
"a73=1;a74=1;a75=1;a76=1;a77=1;a78=1;a79=1;a80=1;a81=1;a82=1;a83=1;a84=1;"
"a85=1;a86=1;a87=1;a88=1;a89=1;a90=1;a91=1;a92=1;a93=1;a94=1;a95=1;a96=1;"
"a97=1;a98=1;a99=1;a100=1;a101=1;a102=1;a103=1;a104=1;a105=1;a106=1;a107="
"1;a108=1;a109=1;a110=1;a111=1;a112=1;a113=1;a114=1;a115=1;a116=1;a117=1;"
"a118=1;a119=1;a120=1;a121=1;a122=1;a123=1;a124=1;a125=1;a126=1;a127=1;"
"a128=1;a129=1;a130=1;a131=1;a132=1;a133=1;a134=1;a135=1;a136=1;a137=1;"
"a138=1;a139=1;a140=1;a141=1;a142=1;a143=1;a144=1;a145=1;a146=1;a147=1;"
"a148=1;a149=1;a150=1;a151=1;a152=1;a153=1;a154=1;a155=1;a156=1;a157=1;"
"a158=1;a159=1;a160=1;a161=1;a162=1;a163=1;a164=1;a165=1;a166=1;a167=1;"
"a168=1;a169=1;a170=1;a171=1;a172=1;a173=1;a174=1;a175=1;a176=1;a177=1;"
"a178=1;a179=1;a180=1;a181=1;a182=1;a183=1;a184=1;a185=1;a186=1;a187=1;"
"a188=1;a189=1;a190=1;a191=1;a192=1;a193=1;a194=1;a195=1;a196=1;a197=1;"
"a198=1;a199=1;a200=1;a201=1;a202=1;a203=1;a204=1;a205=1;a206=1;a207=1;"
"a208=1;a209=1;a210=1;a211=1;a212=1;a213=1;a214=1;a215=1;a216=1;a217=1;"
"a218=1;a219=1;a220=1;a221=1;a222=1;a223=1;a224=1;a225=1;a226=1;a227=1;"
"a228=1;a229=1;a230=1;a231=1;a232=1;a233=1;a234=1;a235=1;a236=1;a237=1;"
"a238=1;a239=1;a240=1;a241=1;a242=1;a243=1;a244=1;a245=1;a246=1;a247=1;"
"a248=1;a249=1;a250=1;a251=1;a252=1;a253=1;a254=1;a255=1",
1685,
{{{Item(Item::token, "foo"),
{Param("a0", 1), Param("a1", 1), Param("a2", 1),
Param("a3", 1), Param("a4", 1), Param("a5", 1),
Param("a6", 1), Param("a7", 1), Param("a8", 1),
Param("a9", 1), Param("a10", 1), Param("a11", 1),
Param("a12", 1), Param("a13", 1), Param("a14", 1),
Param("a15", 1), Param("a16", 1), Param("a17", 1),
Param("a18", 1), Param("a19", 1), Param("a20", 1),
Param("a21", 1), Param("a22", 1), Param("a23", 1),
Param("a24", 1), Param("a25", 1), Param("a26", 1),
Param("a27", 1), Param("a28", 1), Param("a29", 1),
Param("a30", 1), Param("a31", 1), Param("a32", 1),
Param("a33", 1), Param("a34", 1), Param("a35", 1),
Param("a36", 1), Param("a37", 1), Param("a38", 1),
Param("a39", 1), Param("a40", 1), Param("a41", 1),
Param("a42", 1), Param("a43", 1), Param("a44", 1),
Param("a45", 1), Param("a46", 1), Param("a47", 1),
Param("a48", 1), Param("a49", 1), Param("a50", 1),
Param("a51", 1), Param("a52", 1), Param("a53", 1),
Param("a54", 1), Param("a55", 1), Param("a56", 1),
Param("a57", 1), Param("a58", 1), Param("a59", 1),
Param("a60", 1), Param("a61", 1), Param("a62", 1),
Param("a63", 1), Param("a64", 1), Param("a65", 1),
Param("a66", 1), Param("a67", 1), Param("a68", 1),
Param("a69", 1), Param("a70", 1), Param("a71", 1),
Param("a72", 1), Param("a73", 1), Param("a74", 1),
Param("a75", 1), Param("a76", 1), Param("a77", 1),
Param("a78", 1), Param("a79", 1), Param("a80", 1),
Param("a81", 1), Param("a82", 1), Param("a83", 1),
Param("a84", 1), Param("a85", 1), Param("a86", 1),
Param("a87", 1), Param("a88", 1), Param("a89", 1),
Param("a90", 1), Param("a91", 1), Param("a92", 1),
Param("a93", 1), Param("a94", 1), Param("a95", 1),
Param("a96", 1), Param("a97", 1), Param("a98", 1),
Param("a99", 1), Param("a100", 1), Param("a101", 1),
Param("a102", 1), Param("a103", 1), Param("a104", 1),
Param("a105", 1), Param("a106", 1), Param("a107", 1),
Param("a108", 1), Param("a109", 1), Param("a110", 1),
Param("a111", 1), Param("a112", 1), Param("a113", 1),
Param("a114", 1), Param("a115", 1), Param("a116", 1),
Param("a117", 1), Param("a118", 1), Param("a119", 1),
Param("a120", 1), Param("a121", 1), Param("a122", 1),
Param("a123", 1), Param("a124", 1), Param("a125", 1),
Param("a126", 1), Param("a127", 1), Param("a128", 1),
Param("a129", 1), Param("a130", 1), Param("a131", 1),
Param("a132", 1), Param("a133", 1), Param("a134", 1),
Param("a135", 1), Param("a136", 1), Param("a137", 1),
Param("a138", 1), Param("a139", 1), Param("a140", 1),
Param("a141", 1), Param("a142", 1), Param("a143", 1),
Param("a144", 1), Param("a145", 1), Param("a146", 1),
Param("a147", 1), Param("a148", 1), Param("a149", 1),
Param("a150", 1), Param("a151", 1), Param("a152", 1),
Param("a153", 1), Param("a154", 1), Param("a155", 1),
Param("a156", 1), Param("a157", 1), Param("a158", 1),
Param("a159", 1), Param("a160", 1), Param("a161", 1),
Param("a162", 1), Param("a163", 1), Param("a164", 1),
Param("a165", 1), Param("a166", 1), Param("a167", 1),
Param("a168", 1), Param("a169", 1), Param("a170", 1),
Param("a171", 1), Param("a172", 1), Param("a173", 1),
Param("a174", 1), Param("a175", 1), Param("a176", 1),
Param("a177", 1), Param("a178", 1), Param("a179", 1),
Param("a180", 1), Param("a181", 1), Param("a182", 1),
Param("a183", 1), Param("a184", 1), Param("a185", 1),
Param("a186", 1), Param("a187", 1), Param("a188", 1),
Param("a189", 1), Param("a190", 1), Param("a191", 1),
Param("a192", 1), Param("a193", 1), Param("a194", 1),
Param("a195", 1), Param("a196", 1), Param("a197", 1),
Param("a198", 1), Param("a199", 1), Param("a200", 1),
Param("a201", 1), Param("a202", 1), Param("a203", 1),
Param("a204", 1), Param("a205", 1), Param("a206", 1),
Param("a207", 1), Param("a208", 1), Param("a209", 1),
Param("a210", 1), Param("a211", 1), Param("a212", 1),
Param("a213", 1), Param("a214", 1), Param("a215", 1),
Param("a216", 1), Param("a217", 1), Param("a218", 1),
Param("a219", 1), Param("a220", 1), Param("a221", 1),
Param("a222", 1), Param("a223", 1), Param("a224", 1),
Param("a225", 1), Param("a226", 1), Param("a227", 1),
Param("a228", 1), Param("a229", 1), Param("a230", 1),
Param("a231", 1), Param("a232", 1), Param("a233", 1),
Param("a234", 1), Param("a235", 1), Param("a236", 1),
Param("a237", 1), Param("a238", 1), Param("a239", 1),
Param("a240", 1), Param("a241", 1), Param("a242", 1),
Param("a243", 1), Param("a244", 1), Param("a245", 1),
Param("a246", 1), Param("a247", 1), Param("a248", 1),
Param("a249", 1), Param("a250", 1), Param("a251", 1),
Param("a252", 1), Param("a253", 1), Param("a254", 1),
Param("a255", 1)}}}},
nullptr},
{"large param key",
"foo;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=1",
70,
{{{Item(Item::token, "foo"),
{Param(
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1)}}}},
nullptr},
{"large inner list",
"(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 "
"27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 "
"51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 "
"75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 "
"99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 "
"117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 "
"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 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 "
"189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 "
"207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 "
"225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 "
"243 244 245 246 247 248 249 250 251 252 253 254 255)",
915,
{{{{{Integer(0), {}}, {Integer(1), {}}, {Integer(2), {}},
{Integer(3), {}}, {Integer(4), {}}, {Integer(5), {}},
{Integer(6), {}}, {Integer(7), {}}, {Integer(8), {}},
{Integer(9), {}}, {Integer(10), {}}, {Integer(11), {}},
{Integer(12), {}}, {Integer(13), {}}, {Integer(14), {}},
{Integer(15), {}}, {Integer(16), {}}, {Integer(17), {}},
{Integer(18), {}}, {Integer(19), {}}, {Integer(20), {}},
{Integer(21), {}}, {Integer(22), {}}, {Integer(23), {}},
{Integer(24), {}}, {Integer(25), {}}, {Integer(26), {}},
{Integer(27), {}}, {Integer(28), {}}, {Integer(29), {}},
{Integer(30), {}}, {Integer(31), {}}, {Integer(32), {}},
{Integer(33), {}}, {Integer(34), {}}, {Integer(35), {}},
{Integer(36), {}}, {Integer(37), {}}, {Integer(38), {}},
{Integer(39), {}}, {Integer(40), {}}, {Integer(41), {}},
{Integer(42), {}}, {Integer(43), {}}, {Integer(44), {}},
{Integer(45), {}}, {Integer(46), {}}, {Integer(47), {}},
{Integer(48), {}}, {Integer(49), {}}, {Integer(50), {}},
{Integer(51), {}}, {Integer(52), {}}, {Integer(53), {}},
{Integer(54), {}}, {Integer(55), {}}, {Integer(56), {}},
{Integer(57), {}}, {Integer(58), {}}, {Integer(59), {}},
{Integer(60), {}}, {Integer(61), {}}, {Integer(62), {}},
{Integer(63), {}}, {Integer(64), {}}, {Integer(65), {}},
{Integer(66), {}}, {Integer(67), {}}, {Integer(68), {}},
{Integer(69), {}}, {Integer(70), {}}, {Integer(71), {}},
{Integer(72), {}}, {Integer(73), {}}, {Integer(74), {}},
{Integer(75), {}}, {Integer(76), {}}, {Integer(77), {}},
{Integer(78), {}}, {Integer(79), {}}, {Integer(80), {}},
{Integer(81), {}}, {Integer(82), {}}, {Integer(83), {}},
{Integer(84), {}}, {Integer(85), {}}, {Integer(86), {}},
{Integer(87), {}}, {Integer(88), {}}, {Integer(89), {}},
{Integer(90), {}}, {Integer(91), {}}, {Integer(92), {}},
{Integer(93), {}}, {Integer(94), {}}, {Integer(95), {}},
{Integer(96), {}}, {Integer(97), {}}, {Integer(98), {}},
{Integer(99), {}}, {Integer(100), {}}, {Integer(101), {}},
{Integer(102), {}}, {Integer(103), {}}, {Integer(104), {}},
{Integer(105), {}}, {Integer(106), {}}, {Integer(107), {}},
{Integer(108), {}}, {Integer(109), {}}, {Integer(110), {}},
{Integer(111), {}}, {Integer(112), {}}, {Integer(113), {}},
{Integer(114), {}}, {Integer(115), {}}, {Integer(116), {}},
{Integer(117), {}}, {Integer(118), {}}, {Integer(119), {}},
{Integer(120), {}}, {Integer(121), {}}, {Integer(122), {}},
{Integer(123), {}}, {Integer(124), {}}, {Integer(125), {}},
{Integer(126), {}}, {Integer(127), {}}, {Integer(128), {}},
{Integer(129), {}}, {Integer(130), {}}, {Integer(131), {}},
{Integer(132), {}}, {Integer(133), {}}, {Integer(134), {}},
{Integer(135), {}}, {Integer(136), {}}, {Integer(137), {}},
{Integer(138), {}}, {Integer(139), {}}, {Integer(140), {}},
{Integer(141), {}}, {Integer(142), {}}, {Integer(143), {}},
{Integer(144), {}}, {Integer(145), {}}, {Integer(146), {}},
{Integer(147), {}}, {Integer(148), {}}, {Integer(149), {}},
{Integer(150), {}}, {Integer(151), {}}, {Integer(152), {}},
{Integer(153), {}}, {Integer(154), {}}, {Integer(155), {}},
{Integer(156), {}}, {Integer(157), {}}, {Integer(158), {}},
{Integer(159), {}}, {Integer(160), {}}, {Integer(161), {}},
{Integer(162), {}}, {Integer(163), {}}, {Integer(164), {}},
{Integer(165), {}}, {Integer(166), {}}, {Integer(167), {}},
{Integer(168), {}}, {Integer(169), {}}, {Integer(170), {}},
{Integer(171), {}}, {Integer(172), {}}, {Integer(173), {}},
{Integer(174), {}}, {Integer(175), {}}, {Integer(176), {}},
{Integer(177), {}}, {Integer(178), {}}, {Integer(179), {}},
{Integer(180), {}}, {Integer(181), {}}, {Integer(182), {}},
{Integer(183), {}}, {Integer(184), {}}, {Integer(185), {}},
{Integer(186), {}}, {Integer(187), {}}, {Integer(188), {}},
{Integer(189), {}}, {Integer(190), {}}, {Integer(191), {}},
{Integer(192), {}}, {Integer(193), {}}, {Integer(194), {}},
{Integer(195), {}}, {Integer(196), {}}, {Integer(197), {}},
{Integer(198), {}}, {Integer(199), {}}, {Integer(200), {}},
{Integer(201), {}}, {Integer(202), {}}, {Integer(203), {}},
{Integer(204), {}}, {Integer(205), {}}, {Integer(206), {}},
{Integer(207), {}}, {Integer(208), {}}, {Integer(209), {}},
{Integer(210), {}}, {Integer(211), {}}, {Integer(212), {}},
{Integer(213), {}}, {Integer(214), {}}, {Integer(215), {}},
{Integer(216), {}}, {Integer(217), {}}, {Integer(218), {}},
{Integer(219), {}}, {Integer(220), {}}, {Integer(221), {}},
{Integer(222), {}}, {Integer(223), {}}, {Integer(224), {}},
{Integer(225), {}}, {Integer(226), {}}, {Integer(227), {}},
{Integer(228), {}}, {Integer(229), {}}, {Integer(230), {}},
{Integer(231), {}}, {Integer(232), {}}, {Integer(233), {}},
{Integer(234), {}}, {Integer(235), {}}, {Integer(236), {}},
{Integer(237), {}}, {Integer(238), {}}, {Integer(239), {}},
{Integer(240), {}}, {Integer(241), {}}, {Integer(242), {}},
{Integer(243), {}}, {Integer(244), {}}, {Integer(245), {}},
{Integer(246), {}}, {Integer(247), {}}, {Integer(248), {}},
{Integer(249), {}}, {Integer(250), {}}, {Integer(251), {}},
{Integer(252), {}}, {Integer(253), {}}, {Integer(254), {}},
{Integer(255), {}}},
{}}}},
nullptr},
// list.json
{"basic list",
"1, 42",
5,
{{{Integer(1), {}}, {Integer(42), {}}}},
nullptr},
{"empty list", "", 0, {{}}, nullptr},
{"leading SP list",
" 42, 43",
8,
{{{Integer(42), {}}, {Integer(43), {}}}},
"42, 43"},
{"single item list", "42", 2, {{{Integer(42), {}}}}, nullptr},
{"no whitespace list",
"1,42",
4,
{{{Integer(1), {}}, {Integer(42), {}}}},
"1, 42"},
{"extra whitespace list",
"1 , 42",
6,
{{{Integer(1), {}}, {Integer(42), {}}}},
"1, 42"},
{"tab separated list",
"1\t,\t42",
6,
{{{Integer(1), {}}, {Integer(42), {}}}},
"1, 42"},
{"two line list",
"1, 42",
5,
{{{Integer(1), {}}, {Integer(42), {}}}},
"1, 42"},
{"trailing comma list", "1, 42,", 6, std::nullopt, nullptr},
{"empty item list", "1,,42", 5, std::nullopt, nullptr},
{"empty item list (multiple field lines)", "1, , 42", 7, std::nullopt,
nullptr},
// listlist.json
{"basic list of lists",
"(1 2), (42 43)",
14,
{{{{{Integer(1), {}}, {Integer(2), {}}}, {}},
{{{Integer(42), {}}, {Integer(43), {}}}, {}}}},
nullptr},
{"single item list of lists",
"(42)",
4,
{{{{{Integer(42), {}}}, {}}}},
nullptr},
{"empty item list of lists",
"()",
2,
{{{std::vector<ParameterizedItem>(), {}}}},
nullptr},
{"empty middle item list of lists",
"(1),(),(42)",
11,
{{{{{Integer(1), {}}}, {}},
{std::vector<ParameterizedItem>(), {}},
{{{Integer(42), {}}}, {}}}},
"(1), (), (42)"},
{"extra whitespace list of lists",
"( 1 42 )",
11,
{{{{{Integer(1), {}}, {Integer(42), {}}}, {}}}},
"(1 42)"},
{"wrong whitespace list of lists", "(1\t 42)", 7, std::nullopt, nullptr},
{"no trailing parenthesis list of lists", "(1 42", 5, std::nullopt,
nullptr},
{"no trailing parenthesis middle list of lists", "(1 2, (42 43)", 13,
std::nullopt, nullptr},
{"no spaces in inner-list", "(abc\"def\"?0123*dXZ3*xyz)", 24, std::nullopt,
nullptr},
{"no closing parenthesis", "(", 1, std::nullopt, nullptr},
{"nested inner lists", "((1))", 5, std::nullopt, nullptr},
{"dictionary in inner list", "(a=1)", 5, std::nullopt, nullptr},
// number.json
{"long integer followed by comma",
"123456789012345, 1",
18,
{{{Integer(123456789012345), {}}, {Integer(1), {}}}},
nullptr},
{"too long integer followed by comma", "1234567890123456, 1", 19,
std::nullopt, nullptr},
{"decimal, followed by comma",
"123456789012.123, 1.1",
21,
{{{Item(123456789012.123), {}}, {Item(1.1), {}}}},
nullptr},
// param-list.json
{"basic parameterised list",
"abc_123;a=1;b=2; cdef_456, ghi;q=9;r=\"+w\"",
41,
{{{Item(Item::token, "abc_123"),
{Param("a", 1), Param("b", 2), BooleanParam("cdef_456", true)}},
{Item(Item::token, "ghi"), {Param("q", 9), Param("r", "+w")}}}},
"abc_123;a=1;b=2;cdef_456, ghi;q=9;r=\"+w\""},
{"single item parameterised list",
"text/html;q=1.0",
15,
{{{Item(Item::token, "text/html"), {DoubleParam("q", 1.0)}}}},
nullptr},
{"missing parameter value parameterised list",
"text/html;a;q=1.0",
17,
{{{Item(Item::token, "text/html"),
{BooleanParam("a", true), DoubleParam("q", 1.0)}}}},
nullptr},
{"missing terminal parameter value parameterised list",
"text/html;q=1.0;a",
17,
{{{Item(Item::token, "text/html"),
{DoubleParam("q", 1.0), BooleanParam("a", true)}}}},
nullptr},
{"no whitespace parameterised list",
"text/html,text/plain;q=0.5",
26,
{{{Item(Item::token, "text/html"), {}},
{Item(Item::token, "text/plain"), {DoubleParam("q", 0.5)}}}},
"text/html, text/plain;q=0.5"},
{"whitespace before = parameterised list", "text/html, text/plain;q =0.5",
28, std::nullopt, nullptr},
{"whitespace after = parameterised list", "text/html, text/plain;q= 0.5",
28, std::nullopt, nullptr},
{"whitespace before ; parameterised list", "text/html, text/plain ;q=0.5",
28, std::nullopt, nullptr},
{"whitespace after ; parameterised list",
"text/html, text/plain; q=0.5",
28,
{{{Item(Item::token, "text/html"), {}},
{Item(Item::token, "text/plain"), {DoubleParam("q", 0.5)}}}},
"text/html, text/plain;q=0.5"},
{"extra whitespace parameterised list",
"text/html , text/plain; q=0.5; charset=utf-8",
48,
{{{Item(Item::token, "text/html"), {}},
{Item(Item::token, "text/plain"),
{DoubleParam("q", 0.5), TokenParam("charset", "utf-8")}}}},
"text/html, text/plain;q=0.5;charset=utf-8"},
{"two lines parameterised list",
"text/html, text/plain;q=0.5",
27,
{{{Item(Item::token, "text/html"), {}},
{Item(Item::token, "text/plain"), {DoubleParam("q", 0.5)}}}},
"text/html, text/plain;q=0.5"},
{"trailing comma parameterised list", "text/html,text/plain;q=0.5,", 27,
std::nullopt, nullptr},
{"empty item parameterised list", "text/html,,text/plain;q=0.5,", 28,
std::nullopt, nullptr},
{"duplicate parameter with different positions",
"a;b=1;c=2;b=3",
13,
{{{Item(Item::token, "a"), {Param("b", 3), Param("c", 2)}}}},
"a;b=3;c=2"},
{"parameter ordering",
"a;m;z;t",
7,
{{{Item(Item::token, "a"),
{BooleanParam("m", true), BooleanParam("z", true),
BooleanParam("t", true)}}}},
nullptr},
{"trailing semicolon in parameters", "a;b=1;", 6, std::nullopt, nullptr},
{"trailing semicolon and space in parameters", "a;b=1; ", 7, std::nullopt,
nullptr},
{"empty parameter key", "a;=1", 4, std::nullopt, nullptr},
{"parameter prefix only", "a;", 2, std::nullopt, nullptr},
{"parameter prefix and space only", "a; ", 3, std::nullopt, nullptr},
// param-listlist.json
{"parameterised inner list",
"(abc_123);a=1;b=2, cdef_456",
27,
{{{{{Item(Item::token, "abc_123"), {}}}, {Param("a", 1), Param("b", 2)}},
{Item(Item::token, "cdef_456"), {}}}},
nullptr},
{"parameterised inner list item",
"(abc_123;a=1;b=2;cdef_456)",
26,
{{{{{Item(Item::token, "abc_123"),
{Param("a", 1), Param("b", 2), BooleanParam("cdef_456", true)}}},
{}}}},
nullptr},
{"parameterised inner list with parameterised item",
"(abc_123;a=1;b=2);cdef_456",
26,
{{{{{Item(Item::token, "abc_123"), {Param("a", 1), Param("b", 2)}}},
{BooleanParam("cdef_456", true)}}}},
nullptr},
// token.json
{"basic token - list",
"a_b-c3/*",
8,
{{{Item(Item::token, "a_b-c3/*"), {}}}},
nullptr},
{"token with capitals - list",
"fooBar",
6,
{{{Item(Item::token, "fooBar"), {}}}},
nullptr},
{"token starting with capitals - list",
"FooBar",
6,
{{{Item(Item::token, "FooBar"), {}}}},
nullptr},
};
const struct DictionaryTestCase {
const char* name;
const char* raw;
size_t raw_len;
const std::optional<Dictionary>
expected; // nullopt if parse error is expected.
const char* canonical; // nullptr if parse error is expected, or if canonical
// format is identical to raw.
const char* known_bug = nullptr;
} dictionary_test_cases[] = {
// dictionary.json
{"basic dictionary",
"en=\"Applepie\", da=:w4ZibGV0w6ZydGUK:",
36,
{Dictionary{
{{"en", {Item(Item::string, "Applepie"), {}}},
{"da",
{Item(Item::byte_sequence, "\303\206blet\303\246rte\012"), {}}}}}},
nullptr},
{"empty dictionary", "", 0, {Dictionary{{}}}, nullptr},
{"single item dictionary",
"a=1",
3,
{Dictionary{{{"a", {Integer(1), {}}}}}},
nullptr},
{"list item dictionary",
"a=(1 2)",
7,
{Dictionary{{{"a", {{{Integer(1), {}}, {Integer(2), {}}}, {}}}}}},
nullptr},
{"single list item dictionary",
"a=(1)",
5,
{Dictionary{{{"a", {{{Integer(1), {}}}, {}}}}}},
nullptr},
{"empty list item dictionary",
"a=()",
4,
{Dictionary{{{"a", {std::vector<ParameterizedItem>(), {}}}}}},
nullptr},
{"no whitespace dictionary",
"a=1,b=2",
7,
{Dictionary{{{"a", {Integer(1), {}}}, {"b", {Integer(2), {}}}}}},
"a=1, b=2"},
{"extra whitespace dictionary",
"a=1 , b=2",
10,
{Dictionary{{{"a", {Integer(1), {}}}, {"b", {Integer(2), {}}}}}},
"a=1, b=2"},
{"tab separated dictionary",
"a=1\t,\tb=2",
9,
{Dictionary{{{"a", {Integer(1), {}}}, {"b", {Integer(2), {}}}}}},
"a=1, b=2"},
{"leading whitespace dictionary",
" a=1 , b=2",
15,
{Dictionary{{{"a", {Integer(1), {}}}, {"b", {Integer(2), {}}}}}},
"a=1, b=2"},
{"whitespace before = dictionary", "a =1, b=2", 9, std::nullopt, nullptr},
{"whitespace after = dictionary", "a=1, b= 2", 9, std::nullopt, nullptr},
{"two lines dictionary",
"a=1, b=2",
8,
{Dictionary{{{"a", {Integer(1), {}}}, {"b", {Integer(2), {}}}}}},
"a=1, b=2"},
{"missing value dictionary",
"a=1, b, c=3",
11,
{Dictionary{{{"a", {Integer(1), {}}},
{"b", {Item(true), {}}},
{"c", {Integer(3), {}}}}}},
nullptr},
{"all missing value dictionary",
"a, b, c",
7,
{Dictionary{{{"a", {Item(true), {}}},
{"b", {Item(true), {}}},
{"c", {Item(true), {}}}}}},
nullptr},
{"start missing value dictionary",
"a, b=2",
6,
{Dictionary{{{"a", {Item(true), {}}}, {"b", {Integer(2), {}}}}}},
nullptr},
{"end missing value dictionary",
"a=1, b",
6,
{Dictionary{{{"a", {Integer(1), {}}}, {"b", {Item(true), {}}}}}},
nullptr},
{"missing value with params dictionary",
"a=1, b;foo=9, c=3",
17,
{Dictionary{{{"a", {Integer(1), {}}},
{"b", {Item(true), {Param("foo", 9)}}},
{"c", {Integer(3), {}}}}}},
nullptr},
{"explicit true value with params dictionary",
"a=1, b=?1;foo=9, c=3",
20,
{Dictionary{{{"a", {Integer(1), {}}},
{"b", {Item(true), {Param("foo", 9)}}},
{"c", {Integer(3), {}}}}}},
"a=1, b;foo=9, c=3"},
{"trailing comma dictionary", "a=1, b=2,", 9, std::nullopt, nullptr},
{"empty item dictionary", "a=1,,b=2,", 9, std::nullopt, nullptr},
{"duplicate key dictionary",
"a=1,b=2,a=3",
11,
{Dictionary{{{"a", {Integer(3), {}}}, {"b", {Integer(2), {}}}}}},
"a=3, b=2"},
{"dictionary key ordering",
"m, z, t",
7,
{Dictionary{{{"m", {Item(true), {}}},
{"z", {Item(true), {}}},
{"t", {Item(true), {}}}}}},
nullptr},
{"numeric key dictionary", "a=1,1b=2,a=1", 12, std::nullopt, nullptr},
{"uppercase key dictionary", "a=1,B=2,a=1", 11, std::nullopt, nullptr},
{"bad key dictionary", "a=1,b!=2,a=1", 12, std::nullopt, nullptr},
// examples.json
{"Example-DictHeader",
"en=\"Applepie\", da=:w4ZibGV0w6ZydGU=:",
36,
{Dictionary{
{{"en", {Item(Item::string, "Applepie"), {}}},
{"da", {Item(Item::byte_sequence, "\303\206blet\303\246rte"), {}}}}}},
nullptr},
{"Example-DictHeader (boolean values)",
"a=?0, b, c; foo=bar",
19,
{Dictionary{{{"a", {Item(false), {}}},
{"b", {Item(true), {}}},
{"c", {Item(true), {TokenParam("foo", "bar")}}}}}},
"a=?0, b, c;foo=bar"},
{"Example-DictListHeader",
"rating=1.5, feelings=(joy sadness)",
34,
{Dictionary{{{"rating", {Item(1.5), {}}},
{"feelings",
{{{Item(Item::token, "joy"), {}},
{Item(Item::token, "sadness"), {}}},
{}}}}}},
nullptr},
{"Example-MixDict",
"a=(1 2), b=3, c=4;aa=bb, d=(5 6);valid",
38,
{Dictionary{{{"a", {{{Integer(1), {}}, {Integer(2), {}}}, {}}},
{"b", {Integer(3), {}}},
{"c", {Integer(4), {TokenParam("aa", "bb")}}},
{"d",
{{{Integer(5), {}}, {Integer(6), {}}},
{BooleanParam("valid", true)}}}}}},
"a=(1 2), b=3, c=4;aa=bb, d=(5 6);valid"},
{"Example-Hdr (dictionary on one line)",
"foo=1, bar=2",
12,
{Dictionary{{{"foo", {Integer(1), {}}}, {"bar", {Integer(2), {}}}}}},
nullptr},
{"Example-Hdr (dictionary on two lines)",
"foo=1, bar=2",
12,
{Dictionary{{{"foo", {Integer(1), {}}}, {"bar", {Integer(2), {}}}}}},
"foo=1, bar=2"},
// key-generated.json
{"0x00 as a single-character dictionary key", "\000=1", 3, std::nullopt,
nullptr},
{"0x01 as a single-character dictionary key", "\001=1", 3, std::nullopt,
nullptr},
{"0x02 as a single-character dictionary key", "\002=1", 3, std::nullopt,
nullptr},
{"0x03 as a single-character dictionary key", "\003=1", 3, std::nullopt,
nullptr},
{"0x04 as a single-character dictionary key", "\004=1", 3, std::nullopt,
nullptr},
{"0x05 as a single-character dictionary key", "\005=1", 3, std::nullopt,
nullptr},
{"0x06 as a single-character dictionary key", "\006=1", 3, std::nullopt,
nullptr},
{"0x07 as a single-character dictionary key", "\007=1", 3, std::nullopt,
nullptr},
{"0x08 as a single-character dictionary key", "\010=1", 3, std::nullopt,
nullptr},
{"0x09 as a single-character dictionary key", "\t=1", 3, std::nullopt,
nullptr},
{"0x0a as a single-character dictionary key", "\n=1", 3, std::nullopt,
nullptr},
{"0x0b as a single-character dictionary key", "\013=1", 3, std::nullopt,
nullptr},
{"0x0c as a single-character dictionary key", "\014=1", 3, std::nullopt,
nullptr},
{"0x0d as a single-character dictionary key", "\r=1", 3, std::nullopt,
nullptr},
{"0x0e as a single-character dictionary key", "\016=1", 3, std::nullopt,
nullptr},
{"0x0f as a single-character dictionary key", "\017=1", 3, std::nullopt,
nullptr},
{"0x10 as a single-character dictionary key", "\020=1", 3, std::nullopt,
nullptr},
{"0x11 as a single-character dictionary key", "\021=1", 3, std::nullopt,
nullptr},
{"0x12 as a single-character dictionary key", "\022=1", 3, std::nullopt,
nullptr},
{"0x13 as a single-character dictionary key", "\023=1", 3, std::nullopt,
nullptr},
{"0x14 as a single-character dictionary key", "\024=1", 3, std::nullopt,
nullptr},
{"0x15 as a single-character dictionary key", "\025=1", 3, std::nullopt,
nullptr},
{"0x16 as a single-character dictionary key", "\026=1", 3, std::nullopt,
nullptr},
{"0x17 as a single-character dictionary key", "\027=1", 3, std::nullopt,
nullptr},
{"0x18 as a single-character dictionary key", "\030=1", 3, std::nullopt,
nullptr},
{"0x19 as a single-character dictionary key", "\031=1", 3, std::nullopt,
nullptr},
{"0x1a as a single-character dictionary key", "\032=1", 3, std::nullopt,
nullptr},
{"0x1b as a single-character dictionary key", "\033=1", 3, std::nullopt,
nullptr},
{"0x1c as a single-character dictionary key", "\034=1", 3, std::nullopt,
nullptr},
{"0x1d as a single-character dictionary key", "\035=1", 3, std::nullopt,
nullptr},
{"0x1e as a single-character dictionary key", "\036=1", 3, std::nullopt,
nullptr},
{"0x1f as a single-character dictionary key", "\037=1", 3, std::nullopt,
nullptr},
{"0x20 as a single-character dictionary key", "=1", 2, std::nullopt,
nullptr},
{"0x21 as a single-character dictionary key", "!=1", 3, std::nullopt,
nullptr},
{"0x22 as a single-character dictionary key", "\"=1", 3, std::nullopt,
nullptr},
{"0x23 as a single-character dictionary key", "#=1", 3, std::nullopt,
nullptr},
{"0x24 as a single-character dictionary key", "$=1", 3, std::nullopt,
nullptr},
{"0x25 as a single-character dictionary key", "%=1", 3, std::nullopt,
nullptr},
{"0x26 as a single-character dictionary key", "&=1", 3, std::nullopt,
nullptr},
{"0x27 as a single-character dictionary key", "'=1", 3, std::nullopt,
nullptr},
{"0x28 as a single-character dictionary key", "(=1", 3, std::nullopt,
nullptr},
{"0x29 as a single-character dictionary key", ")=1", 3, std::nullopt,
nullptr},
{"0x2a as a single-character dictionary key",
"*=1",
3,
{Dictionary{{{"*", {Integer(1), {}}}}}},
nullptr},
{"0x2b as a single-character dictionary key", "+=1", 3, std::nullopt,
nullptr},
{"0x2c as a single-character dictionary key", ",=1", 3, std::nullopt,
nullptr},
{"0x2d as a single-character dictionary key", "-=1", 3, std::nullopt,
nullptr},
{"0x2e as a single-character dictionary key", ".=1", 3, std::nullopt,
nullptr},
{"0x2f as a single-character dictionary key", "/=1", 3, std::nullopt,
nullptr},
{"0x30 as a single-character dictionary key", "0=1", 3, std::nullopt,
nullptr},
{"0x31 as a single-character dictionary key", "1=1", 3, std::nullopt,
nullptr},
{"0x32 as a single-character dictionary key", "2=1", 3, std::nullopt,
nullptr},
{"0x33 as a single-character dictionary key", "3=1", 3, std::nullopt,
nullptr},
{"0x34 as a single-character dictionary key", "4=1", 3, std::nullopt,
nullptr},
{"0x35 as a single-character dictionary key", "5=1", 3, std::nullopt,
nullptr},
{"0x36 as a single-character dictionary key", "6=1", 3, std::nullopt,
nullptr},
{"0x37 as a single-character dictionary key", "7=1", 3, std::nullopt,
nullptr},
{"0x38 as a single-character dictionary key", "8=1", 3, std::nullopt,
nullptr},
{"0x39 as a single-character dictionary key", "9=1", 3, std::nullopt,
nullptr},
{"0x3a as a single-character dictionary key", ":=1", 3, std::nullopt,
nullptr},
{"0x3b as a single-character dictionary key", ";=1", 3, std::nullopt,
nullptr},
{"0x3c as a single-character dictionary key", "<=1", 3, std::nullopt,
nullptr},
{"0x3d as a single-character dictionary key", "==1", 3, std::nullopt,
nullptr},
{"0x3e as a single-character dictionary key", ">=1", 3, std::nullopt,
nullptr},
{"0x3f as a single-character dictionary key", "?=1", 3, std::nullopt,
nullptr},
{"0x40 as a single-character dictionary key", "@=1", 3, std::nullopt,
nullptr},
{"0x41 as a single-character dictionary key", "A=1", 3, std::nullopt,
nullptr},
{"0x42 as a single-character dictionary key", "B=1", 3, std::nullopt,
nullptr},
{"0x43 as a single-character dictionary key", "C=1", 3, std::nullopt,
nullptr},
{"0x44 as a single-character dictionary key", "D=1", 3, std::nullopt,
nullptr},
{"0x45 as a single-character dictionary key", "E=1", 3, std::nullopt,
nullptr},
{"0x46 as a single-character dictionary key", "F=1", 3, std::nullopt,
nullptr},
{"0x47 as a single-character dictionary key", "G=1", 3, std::nullopt,
nullptr},
{"0x48 as a single-character dictionary key", "H=1", 3, std::nullopt,
nullptr},
{"0x49 as a single-character dictionary key", "I=1", 3, std::nullopt,
nullptr},
{"0x4a as a single-character dictionary key", "J=1", 3, std::nullopt,
nullptr},
{"0x4b as a single-character dictionary key", "K=1", 3, std::nullopt,
nullptr},
{"0x4c as a single-character dictionary key", "L=1", 3, std::nullopt,
nullptr},
{"0x4d as a single-character dictionary key", "M=1", 3, std::nullopt,
nullptr},
{"0x4e as a single-character dictionary key", "N=1", 3, std::nullopt,
nullptr},
{"0x4f as a single-character dictionary key", "O=1", 3, std::nullopt,
nullptr},
{"0x50 as a single-character dictionary key", "P=1", 3, std::nullopt,
nullptr},
{"0x51 as a single-character dictionary key", "Q=1", 3, std::nullopt,
nullptr},
{"0x52 as a single-character dictionary key", "R=1", 3, std::nullopt,
nullptr},
{"0x53 as a single-character dictionary key", "S=1", 3, std::nullopt,
nullptr},
{"0x54 as a single-character dictionary key", "T=1", 3, std::nullopt,
nullptr},
{"0x55 as a single-character dictionary key", "U=1", 3, std::nullopt,
nullptr},
{"0x56 as a single-character dictionary key", "V=1", 3, std::nullopt,
nullptr},
{"0x57 as a single-character dictionary key", "W=1", 3, std::nullopt,
nullptr},
{"0x58 as a single-character dictionary key", "X=1", 3, std::nullopt,
nullptr},
{"0x59 as a single-character dictionary key", "Y=1", 3, std::nullopt,
nullptr},
{"0x5a as a single-character dictionary key", "Z=1", 3, std::nullopt,
nullptr},
{"0x5b as a single-character dictionary key", "[=1", 3, std::nullopt,
nullptr},
{"0x5c as a single-character dictionary key", "\\=1", 3, std::nullopt,
nullptr},
{"0x5d as a single-character dictionary key", "]=1", 3, std::nullopt,
nullptr},
{"0x5e as a single-character dictionary key", "^=1", 3, std::nullopt,
nullptr},
{"0x5f as a single-character dictionary key", "_=1", 3, std::nullopt,
nullptr},
{"0x60 as a single-character dictionary key", "`=1", 3, std::nullopt,
nullptr},
{"0x61 as a single-character dictionary key",
"a=1",
3,
{Dictionary{{{"a", {Integer(1), {}}}}}},
nullptr},
{"0x62 as a single-character dictionary key",
"b=1",
3,
{Dictionary{{{"b", {Integer(1), {}}}}}},
nullptr},
{"0x63 as a single-character dictionary key",
"c=1",
3,
{Dictionary{{{"c", {Integer(1), {}}}}}},
nullptr},
{"0x64 as a single-character dictionary key",
"d=1",
3,
{Dictionary{{{"d", {Integer(1), {}}}}}},
nullptr},
{"0x65 as a single-character dictionary key",
"e=1",
3,
{Dictionary{{{"e", {Integer(1), {}}}}}},
nullptr},
{"0x66 as a single-character dictionary key",
"f=1",
3,
{Dictionary{{{"f", {Integer(1), {}}}}}},
nullptr},
{"0x67 as a single-character dictionary key",
"g=1",
3,
{Dictionary{{{"g", {Integer(1), {}}}}}},
nullptr},
{"0x68 as a single-character dictionary key",
"h=1",
3,
{Dictionary{{{"h", {Integer(1), {}}}}}},
nullptr},
{"0x69 as a single-character dictionary key",
"i=1",
3,
{Dictionary{{{"i", {Integer(1), {}}}}}},
nullptr},
{"0x6a as a single-character dictionary key",
"j=1",
3,
{Dictionary{{{"j", {Integer(1), {}}}}}},
nullptr},
{"0x6b as a single-character dictionary key",
"k=1",
3,
{Dictionary{{{"k", {Integer(1), {}}}}}},
nullptr},
{"0x6c as a single-character dictionary key",
"l=1",
3,
{Dictionary{{{"l", {Integer(1), {}}}}}},
nullptr},
{"0x6d as a single-character dictionary key",
"m=1",
3,
{Dictionary{{{"m", {Integer(1), {}}}}}},
nullptr},
{"0x6e as a single-character dictionary key",
"n=1",
3,
{Dictionary{{{"n", {Integer(1), {}}}}}},
nullptr},
{"0x6f as a single-character dictionary key",
"o=1",
3,
{Dictionary{{{"o", {Integer(1), {}}}}}},
nullptr},
{"0x70 as a single-character dictionary key",
"p=1",
3,
{Dictionary{{{"p", {Integer(1), {}}}}}},
nullptr},
{"0x71 as a single-character dictionary key",
"q=1",
3,
{Dictionary{{{"q", {Integer(1), {}}}}}},
nullptr},
{"0x72 as a single-character dictionary key",
"r=1",
3,
{Dictionary{{{"r", {Integer(1), {}}}}}},
nullptr},
{"0x73 as a single-character dictionary key",
"s=1",
3,
{Dictionary{{{"s", {Integer(1), {}}}}}},
nullptr},
{"0x74 as a single-character dictionary key",
"t=1",
3,
{Dictionary{{{"t", {Integer(1), {}}}}}},
nullptr},
{"0x75 as a single-character dictionary key",
"u=1",
3,
{Dictionary{{{"u", {Integer(1), {}}}}}},
nullptr},
{"0x76 as a single-character dictionary key",
"v=1",
3,
{Dictionary{{{"v", {Integer(1), {}}}}}},
nullptr},
{"0x77 as a single-character dictionary key",
"w=1",
3,
{Dictionary{{{"w", {Integer(1), {}}}}}},
nullptr},
{"0x78 as a single-character dictionary key",
"x=1",
3,
{Dictionary{{{"x", {Integer(1), {}}}}}},
nullptr},
{"0x79 as a single-character dictionary key",
"y=1",
3,
{Dictionary{{{"y", {Integer(1), {}}}}}},
nullptr},
{"0x7a as a single-character dictionary key",
"z=1",
3,
{Dictionary{{{"z", {Integer(1), {}}}}}},
nullptr},
{"0x7b as a single-character dictionary key", "{=1", 3, std::nullopt,
nullptr},
{"0x7c as a single-character dictionary key", "|=1", 3, std::nullopt,
nullptr},
{"0x7d as a single-character dictionary key", "}=1", 3, std::nullopt,
nullptr},
{"0x7e as a single-character dictionary key", "~=1", 3, std::nullopt,
nullptr},
{"0x7f as a single-character dictionary key", "\177=1", 3, std::nullopt,
nullptr},
{"0x00 in dictionary key", "a\000a=1", 5, std::nullopt, nullptr},
{"0x01 in dictionary key", "a\001a=1", 5, std::nullopt, nullptr},
{"0x02 in dictionary key", "a\002a=1", 5, std::nullopt, nullptr},
{"0x03 in dictionary key", "a\003a=1", 5, std::nullopt, nullptr},
{"0x04 in dictionary key", "a\004a=1", 5, std::nullopt, nullptr},
{"0x05 in dictionary key", "a\005a=1", 5, std::nullopt, nullptr},
{"0x06 in dictionary key", "a\006a=1", 5, std::nullopt, nullptr},
{"0x07 in dictionary key", "a\007a=1", 5, std::nullopt, nullptr},
{"0x08 in dictionary key", "a\010a=1", 5, std::nullopt, nullptr},
{"0x09 in dictionary key", "a\ta=1", 5, std::nullopt, nullptr},
{"0x0a in dictionary key", "a\na=1", 5, std::nullopt, nullptr},
{"0x0b in dictionary key", "a\013a=1", 5, std::nullopt, nullptr},
{"0x0c in dictionary key", "a\014a=1", 5, std::nullopt, nullptr},
{"0x0d in dictionary key", "a\ra=1", 5, std::nullopt, nullptr},
{"0x0e in dictionary key", "a\016a=1", 5, std::nullopt, nullptr},
{"0x0f in dictionary key", "a\017a=1", 5, std::nullopt, nullptr},
{"0x10 in dictionary key", "a\020a=1", 5, std::nullopt, nullptr},
{"0x11 in dictionary key", "a\021a=1", 5, std::nullopt, nullptr},
{"0x12 in dictionary key", "a\022a=1", 5, std::nullopt, nullptr},
{"0x13 in dictionary key", "a\023a=1", 5, std::nullopt, nullptr},
{"0x14 in dictionary key", "a\024a=1", 5, std::nullopt, nullptr},
{"0x15 in dictionary key", "a\025a=1", 5, std::nullopt, nullptr},
{"0x16 in dictionary key", "a\026a=1", 5, std::nullopt, nullptr},
{"0x17 in dictionary key", "a\027a=1", 5, std::nullopt, nullptr},
{"0x18 in dictionary key", "a\030a=1", 5, std::nullopt, nullptr},
{"0x19 in dictionary key", "a\031a=1", 5, std::nullopt, nullptr},
{"0x1a in dictionary key", "a\032a=1", 5, std::nullopt, nullptr},
{"0x1b in dictionary key", "a\033a=1", 5, std::nullopt, nullptr},
{"0x1c in dictionary key", "a\034a=1", 5, std::nullopt, nullptr},
{"0x1d in dictionary key", "a\035a=1", 5, std::nullopt, nullptr},
{"0x1e in dictionary key", "a\036a=1", 5, std::nullopt, nullptr},
{"0x1f in dictionary key", "a\037a=1", 5, std::nullopt, nullptr},
{"0x20 in dictionary key", "a a=1", 5, std::nullopt, nullptr},
{"0x21 in dictionary key", "a!a=1", 5, std::nullopt, nullptr},
{"0x22 in dictionary key", "a\"a=1", 5, std::nullopt, nullptr},
{"0x23 in dictionary key", "a#a=1", 5, std::nullopt, nullptr},
{"0x24 in dictionary key", "a$a=1", 5, std::nullopt, nullptr},
{"0x25 in dictionary key", "a%a=1", 5, std::nullopt, nullptr},
{"0x26 in dictionary key", "a&a=1", 5, std::nullopt, nullptr},
{"0x27 in dictionary key", "a'a=1", 5, std::nullopt, nullptr},
{"0x28 in dictionary key", "a(a=1", 5, std::nullopt, nullptr},
{"0x29 in dictionary key", "a)a=1", 5, std::nullopt, nullptr},
{"0x2a in dictionary key",
"a*a=1",
5,
{Dictionary{{{"a*a", {Integer(1), {}}}}}},
nullptr},
{"0x2b in dictionary key", "a+a=1", 5, std::nullopt, nullptr},
{"0x2c in dictionary key",
"a,a=1",
5,
{Dictionary{{{"a", {Integer(1), {}}}}}},
"a=1"},
{"0x2d in dictionary key",
"a-a=1",
5,
{Dictionary{{{"a-a", {Integer(1), {}}}}}},
nullptr},
{"0x2e in dictionary key",
"a.a=1",
5,
{Dictionary{{{"a.a", {Integer(1), {}}}}}},
nullptr},
{"0x2f in dictionary key", "a/a=1", 5, std::nullopt, nullptr},
{"0x30 in dictionary key",
"a0a=1",
5,
{Dictionary{{{"a0a", {Integer(1), {}}}}}},
nullptr},
{"0x31 in dictionary key",
"a1a=1",
5,
{Dictionary{{{"a1a", {Integer(1), {}}}}}},
nullptr},
{"0x32 in dictionary key",
"a2a=1",
5,
{Dictionary{{{"a2a", {Integer(1), {}}}}}},
nullptr},
{"0x33 in dictionary key",
"a3a=1",
5,
{Dictionary{{{"a3a", {Integer(1), {}}}}}},
nullptr},
{"0x34 in dictionary key",
"a4a=1",
5,
{Dictionary{{{"a4a", {Integer(1), {}}}}}},
nullptr},
{"0x35 in dictionary key",
"a5a=1",
5,
{Dictionary{{{"a5a", {Integer(1), {}}}}}},
nullptr},
{"0x36 in dictionary key",
"a6a=1",
5,
{Dictionary{{{"a6a", {Integer(1), {}}}}}},
nullptr},
{"0x37 in dictionary key",
"a7a=1",
5,
{Dictionary{{{"a7a", {Integer(1), {}}}}}},
nullptr},
{"0x38 in dictionary key",
"a8a=1",
5,
{Dictionary{{{"a8a", {Integer(1), {}}}}}},
nullptr},
{"0x39 in dictionary key",
"a9a=1",
5,
{Dictionary{{{"a9a", {Integer(1), {}}}}}},
nullptr},
{"0x3a in dictionary key", "a:a=1", 5, std::nullopt, nullptr},
{"0x3b in dictionary key",
"a;a=1",
5,
{Dictionary{{{"a", {Item(true), {Param("a", 1)}}}}}},
nullptr},
{"0x3c in dictionary key", "a<a=1", 5, std::nullopt, nullptr},
{"0x3d in dictionary key", "a=a=1", 5, std::nullopt, nullptr},
{"0x3e in dictionary key", "a>a=1", 5, std::nullopt, nullptr},
{"0x3f in dictionary key", "a?a=1", 5, std::nullopt, nullptr},
{"0x40 in dictionary key", "a@a=1", 5, std::nullopt, nullptr},
{"0x41 in dictionary key", "aAa=1", 5, std::nullopt, nullptr},
{"0x42 in dictionary key", "aBa=1", 5, std::nullopt, nullptr},
{"0x43 in dictionary key", "aCa=1", 5, std::nullopt, nullptr},
{"0x44 in dictionary key", "aDa=1", 5, std::nullopt, nullptr},
{"0x45 in dictionary key", "aEa=1", 5, std::nullopt, nullptr},
{"0x46 in dictionary key", "aFa=1", 5, std::nullopt, nullptr},
{"0x47 in dictionary key", "aGa=1", 5, std::nullopt, nullptr},
{"0x48 in dictionary key", "aHa=1", 5, std::nullopt, nullptr},
{"0x49 in dictionary key", "aIa=1", 5, std::nullopt, nullptr},
{"0x4a in dictionary key", "aJa=1", 5, std::nullopt, nullptr},
{"0x4b in dictionary key", "aKa=1", 5, std::nullopt, nullptr},
{"0x4c in dictionary key", "aLa=1", 5, std::nullopt, nullptr},
{"0x4d in dictionary key", "aMa=1", 5, std::nullopt, nullptr},
{"0x4e in dictionary key", "aNa=1", 5, std::nullopt, nullptr},
{"0x4f in dictionary key", "aOa=1", 5, std::nullopt, nullptr},
{"0x50 in dictionary key", "aPa=1", 5, std::nullopt, nullptr},
{"0x51 in dictionary key", "aQa=1", 5, std::nullopt, nullptr},
{"0x52 in dictionary key", "aRa=1", 5, std::nullopt, nullptr},
{"0x53 in dictionary key", "aSa=1", 5, std::nullopt, nullptr},
{"0x54 in dictionary key", "aTa=1", 5, std::nullopt, nullptr},
{"0x55 in dictionary key", "aUa=1", 5, std::nullopt, nullptr},
{"0x56 in dictionary key", "aVa=1", 5, std::nullopt, nullptr},
{"0x57 in dictionary key", "aWa=1", 5, std::nullopt, nullptr},
{"0x58 in dictionary key", "aXa=1", 5, std::nullopt, nullptr},
{"0x59 in dictionary key", "aYa=1", 5, std::nullopt, nullptr},
{"0x5a in dictionary key", "aZa=1", 5, std::nullopt, nullptr},
{"0x5b in dictionary key", "a[a=1", 5, std::nullopt, nullptr},
{"0x5c in dictionary key", "a\\a=1", 5, std::nullopt, nullptr},
{"0x5d in dictionary key", "a]a=1", 5, std::nullopt, nullptr},
{"0x5e in dictionary key", "a^a=1", 5, std::nullopt, nullptr},
{"0x5f in dictionary key",
"a_a=1",
5,
{Dictionary{{{"a_a", {Integer(1), {}}}}}},
nullptr},
{"0x60 in dictionary key", "a`a=1", 5, std::nullopt, nullptr},
{"0x61 in dictionary key",
"aaa=1",
5,
{Dictionary{{{"aaa", {Integer(1), {}}}}}},
nullptr},
{"0x62 in dictionary key",
"aba=1",
5,
{Dictionary{{{"aba", {Integer(1), {}}}}}},
nullptr},
{"0x63 in dictionary key",
"aca=1",
5,
{Dictionary{{{"aca", {Integer(1), {}}}}}},
nullptr},
{"0x64 in dictionary key",
"ada=1",
5,
{Dictionary{{{"ada", {Integer(1), {}}}}}},
nullptr},
{"0x65 in dictionary key",
"aea=1",
5,
{Dictionary{{{"aea", {Integer(1), {}}}}}},
nullptr},
{"0x66 in dictionary key",
"afa=1",
5,
{Dictionary{{{"afa", {Integer(1), {}}}}}},
nullptr},
{"0x67 in dictionary key",
"aga=1",
5,
{Dictionary{{{"aga", {Integer(1), {}}}}}},
nullptr},
{"0x68 in dictionary key",
"aha=1",
5,
{Dictionary{{{"aha", {Integer(1), {}}}}}},
nullptr},
{"0x69 in dictionary key",
"aia=1",
5,
{Dictionary{{{"aia", {Integer(1), {}}}}}},
nullptr},
{"0x6a in dictionary key",
"aja=1",
5,
{Dictionary{{{"aja", {Integer(1), {}}}}}},
nullptr},
{"0x6b in dictionary key",
"aka=1",
5,
{Dictionary{{{"aka", {Integer(1), {}}}}}},
nullptr},
{"0x6c in dictionary key",
"ala=1",
5,
{Dictionary{{{"ala", {Integer(1), {}}}}}},
nullptr},
{"0x6d in dictionary key",
"ama=1",
5,
{Dictionary{{{"ama", {Integer(1), {}}}}}},
nullptr},
{"0x6e in dictionary key",
"ana=1",
5,
{Dictionary{{{"ana", {Integer(1), {}}}}}},
nullptr},
{"0x6f in dictionary key",
"aoa=1",
5,
{Dictionary{{{"aoa", {Integer(1), {}}}}}},
nullptr},
{"0x70 in dictionary key",
"apa=1",
5,
{Dictionary{{{"apa", {Integer(1), {}}}}}},
nullptr},
{"0x71 in dictionary key",
"aqa=1",
5,
{Dictionary{{{"aqa", {Integer(1), {}}}}}},
nullptr},
{"0x72 in dictionary key",
"ara=1",
5,
{Dictionary{{{"ara", {Integer(1), {}}}}}},
nullptr},
{"0x73 in dictionary key",
"asa=1",
5,
{Dictionary{{{"asa", {Integer(1), {}}}}}},
nullptr},
{"0x74 in dictionary key",
"ata=1",
5,
{Dictionary{{{"ata", {Integer(1), {}}}}}},
nullptr},
{"0x75 in dictionary key",
"aua=1",
5,
{Dictionary{{{"aua", {Integer(1), {}}}}}},
nullptr},
{"0x76 in dictionary key",
"ava=1",
5,
{Dictionary{{{"ava", {Integer(1), {}}}}}},
nullptr},
{"0x77 in dictionary key",
"awa=1",
5,
{Dictionary{{{"awa", {Integer(1), {}}}}}},
nullptr},
{"0x78 in dictionary key",
"axa=1",
5,
{Dictionary{{{"axa", {Integer(1), {}}}}}},
nullptr},
{"0x79 in dictionary key",
"aya=1",
5,
{Dictionary{{{"aya", {Integer(1), {}}}}}},
nullptr},
{"0x7a in dictionary key",
"aza=1",
5,
{Dictionary{{{"aza", {Integer(1), {}}}}}},
nullptr},
{"0x7b in dictionary key", "a{a=1", 5, std::nullopt, nullptr},
{"0x7c in dictionary key", "a|a=1", 5, std::nullopt, nullptr},
{"0x7d in dictionary key", "a}a=1", 5, std::nullopt, nullptr},
{"0x7e in dictionary key", "a~a=1", 5, std::nullopt, nullptr},
{"0x7f in dictionary key", "a\177a=1", 5, std::nullopt, nullptr},
{"0x00 starting a dictionary key", "\000a=1", 4, std::nullopt, nullptr},
{"0x01 starting a dictionary key", "\001a=1", 4, std::nullopt, nullptr},
{"0x02 starting a dictionary key", "\002a=1", 4, std::nullopt, nullptr},
{"0x03 starting a dictionary key", "\003a=1", 4, std::nullopt, nullptr},
{"0x04 starting a dictionary key", "\004a=1", 4, std::nullopt, nullptr},
{"0x05 starting a dictionary key", "\005a=1", 4, std::nullopt, nullptr},
{"0x06 starting a dictionary key", "\006a=1", 4, std::nullopt, nullptr},
{"0x07 starting a dictionary key", "\007a=1", 4, std::nullopt, nullptr},
{"0x08 starting a dictionary key", "\010a=1", 4, std::nullopt, nullptr},
{"0x09 starting a dictionary key", "\ta=1", 4, std::nullopt, nullptr},
{"0x0a starting a dictionary key", "\na=1", 4, std::nullopt, nullptr},
{"0x0b starting a dictionary key", "\013a=1", 4, std::nullopt, nullptr},
{"0x0c starting a dictionary key", "\014a=1", 4, std::nullopt, nullptr},
{"0x0d starting a dictionary key", "\ra=1", 4, std::nullopt, nullptr},
{"0x0e starting a dictionary key", "\016a=1", 4, std::nullopt, nullptr},
{"0x0f starting a dictionary key", "\017a=1", 4, std::nullopt, nullptr},
{"0x10 starting a dictionary key", "\020a=1", 4, std::nullopt, nullptr},
{"0x11 starting a dictionary key", "\021a=1", 4, std::nullopt, nullptr},
{"0x12 starting a dictionary key", "\022a=1", 4, std::nullopt, nullptr},
{"0x13 starting a dictionary key", "\023a=1", 4, std::nullopt, nullptr},
{"0x14 starting a dictionary key", "\024a=1", 4, std::nullopt, nullptr},
{"0x15 starting a dictionary key", "\025a=1", 4, std::nullopt, nullptr},
{"0x16 starting a dictionary key", "\026a=1", 4, std::nullopt, nullptr},
{"0x17 starting a dictionary key", "\027a=1", 4, std::nullopt, nullptr},
{"0x18 starting a dictionary key", "\030a=1", 4, std::nullopt, nullptr},
{"0x19 starting a dictionary key", "\031a=1", 4, std::nullopt, nullptr},
{"0x1a starting a dictionary key", "\032a=1", 4, std::nullopt, nullptr},
{"0x1b starting a dictionary key", "\033a=1", 4, std::nullopt, nullptr},
{"0x1c starting a dictionary key", "\034a=1", 4, std::nullopt, nullptr},
{"0x1d starting a dictionary key", "\035a=1", 4, std::nullopt, nullptr},
{"0x1e starting a dictionary key", "\036a=1", 4, std::nullopt, nullptr},
{"0x1f starting a dictionary key", "\037a=1", 4, std::nullopt, nullptr},
{"0x20 starting a dictionary key",
" a=1",
4,
{Dictionary{{{"a", {Integer(1), {}}}}}},
"a=1"},
{"0x21 starting a dictionary key", "!a=1", 4, std::nullopt, nullptr},
{"0x22 starting a dictionary key", "\"a=1", 4, std::nullopt, nullptr},
{"0x23 starting a dictionary key", "#a=1", 4, std::nullopt, nullptr},
{"0x24 starting a dictionary key", "$a=1", 4, std::nullopt, nullptr},
{"0x25 starting a dictionary key", "%a=1", 4, std::nullopt, nullptr},
{"0x26 starting a dictionary key", "&a=1", 4, std::nullopt, nullptr},
{"0x27 starting a dictionary key", "'a=1", 4, std::nullopt, nullptr},
{"0x28 starting a dictionary key", "(a=1", 4, std::nullopt, nullptr},
{"0x29 starting a dictionary key", ")a=1", 4, std::nullopt, nullptr},
{"0x2a starting a dictionary key",
"*a=1",
4,
{Dictionary{{{"*a", {Integer(1), {}}}}}},
nullptr},
{"0x2b starting a dictionary key", "+a=1", 4, std::nullopt, nullptr},
{"0x2c starting a dictionary key", ",a=1", 4, std::nullopt, nullptr},
{"0x2d starting a dictionary key", "-a=1", 4, std::nullopt, nullptr},
{"0x2e starting a dictionary key", ".a=1", 4, std::nullopt, nullptr},
{"0x2f starting a dictionary key", "/a=1", 4, std::nullopt, nullptr},
{"0x30 starting a dictionary key", "0a=1", 4, std::nullopt, nullptr},
{"0x31 starting a dictionary key", "1a=1", 4, std::nullopt, nullptr},
{"0x32 starting a dictionary key", "2a=1", 4, std::nullopt, nullptr},
{"0x33 starting a dictionary key", "3a=1", 4, std::nullopt, nullptr},
{"0x34 starting a dictionary key", "4a=1", 4, std::nullopt, nullptr},
{"0x35 starting a dictionary key", "5a=1", 4, std::nullopt, nullptr},
{"0x36 starting a dictionary key", "6a=1", 4, std::nullopt, nullptr},
{"0x37 starting a dictionary key", "7a=1", 4, std::nullopt, nullptr},
{"0x38 starting a dictionary key", "8a=1", 4, std::nullopt, nullptr},
{"0x39 starting a dictionary key", "9a=1", 4, std::nullopt, nullptr},
{"0x3a starting a dictionary key", ":a=1", 4, std::nullopt, nullptr},
{"0x3b starting a dictionary key", ";a=1", 4, std::nullopt, nullptr},
{"0x3c starting a dictionary key", "<a=1", 4, std::nullopt, nullptr},
{"0x3d starting a dictionary key", "=a=1", 4, std::nullopt, nullptr},
{"0x3e starting a dictionary key", ">a=1", 4, std::nullopt, nullptr},
{"0x3f starting a dictionary key", "?a=1", 4, std::nullopt, nullptr},
{"0x40 starting a dictionary key", "@a=1", 4, std::nullopt, nullptr},
{"0x41 starting a dictionary key", "Aa=1", 4, std::nullopt, nullptr},
{"0x42 starting a dictionary key", "Ba=1", 4, std::nullopt, nullptr},
{"0x43 starting a dictionary key", "Ca=1", 4, std::nullopt, nullptr},
{"0x44 starting a dictionary key", "Da=1", 4, std::nullopt, nullptr},
{"0x45 starting a dictionary key", "Ea=1", 4, std::nullopt, nullptr},
{"0x46 starting a dictionary key", "Fa=1", 4, std::nullopt, nullptr},
{"0x47 starting a dictionary key", "Ga=1", 4, std::nullopt, nullptr},
{"0x48 starting a dictionary key", "Ha=1", 4, std::nullopt, nullptr},
{"0x49 starting a dictionary key", "Ia=1", 4, std::nullopt, nullptr},
{"0x4a starting a dictionary key", "Ja=1", 4, std::nullopt, nullptr},
{"0x4b starting a dictionary key", "Ka=1", 4, std::nullopt, nullptr},
{"0x4c starting a dictionary key", "La=1", 4, std::nullopt, nullptr},
{"0x4d starting a dictionary key", "Ma=1", 4, std::nullopt, nullptr},
{"0x4e starting a dictionary key", "Na=1", 4, std::nullopt, nullptr},
{"0x4f starting a dictionary key", "Oa=1", 4, std::nullopt, nullptr},
{"0x50 starting a dictionary key", "Pa=1", 4, std::nullopt, nullptr},
{"0x51 starting a dictionary key", "Qa=1", 4, std::nullopt, nullptr},
{"0x52 starting a dictionary key", "Ra=1", 4, std::nullopt, nullptr},
{"0x53 starting a dictionary key", "Sa=1", 4, std::nullopt, nullptr},
{"0x54 starting a dictionary key", "Ta=1", 4, std::nullopt, nullptr},
{"0x55 starting a dictionary key", "Ua=1", 4, std::nullopt, nullptr},
{"0x56 starting a dictionary key", "Va=1", 4, std::nullopt, nullptr},
{"0x57 starting a dictionary key", "Wa=1", 4, std::nullopt, nullptr},
{"0x58 starting a dictionary key", "Xa=1", 4, std::nullopt, nullptr},
{"0x59 starting a dictionary key", "Ya=1", 4, std::nullopt, nullptr},
{"0x5a starting a dictionary key", "Za=1", 4, std::nullopt, nullptr},
{"0x5b starting a dictionary key", "[a=1", 4, std::nullopt, nullptr},
{"0x5c starting a dictionary key", "\\a=1", 4, std::nullopt, nullptr},
{"0x5d starting a dictionary key", "]a=1", 4, std::nullopt, nullptr},
{"0x5e starting a dictionary key", "^a=1", 4, std::nullopt, nullptr},
{"0x5f starting a dictionary key", "_a=1", 4, std::nullopt, nullptr},
{"0x60 starting a dictionary key", "`a=1", 4, std::nullopt, nullptr},
{"0x61 starting a dictionary key",
"aa=1",
4,
{Dictionary{{{"aa", {Integer(1), {}}}}}},
nullptr},
{"0x62 starting a dictionary key",
"ba=1",
4,
{Dictionary{{{"ba", {Integer(1), {}}}}}},
nullptr},
{"0x63 starting a dictionary key",
"ca=1",
4,
{Dictionary{{{"ca", {Integer(1), {}}}}}},
nullptr},
{"0x64 starting a dictionary key",
"da=1",
4,
{Dictionary{{{"da", {Integer(1), {}}}}}},
nullptr},
{"0x65 starting a dictionary key",
"ea=1",
4,
{Dictionary{{{"ea", {Integer(1), {}}}}}},
nullptr},
{"0x66 starting a dictionary key",
"fa=1",
4,
{Dictionary{{{"fa", {Integer(1), {}}}}}},
nullptr},
{"0x67 starting a dictionary key",
"ga=1",
4,
{Dictionary{{{"ga", {Integer(1), {}}}}}},
nullptr},
{"0x68 starting a dictionary key",
"ha=1",
4,
{Dictionary{{{"ha", {Integer(1), {}}}}}},
nullptr},
{"0x69 starting a dictionary key",
"ia=1",
4,
{Dictionary{{{"ia", {Integer(1), {}}}}}},
nullptr},
{"0x6a starting a dictionary key",
"ja=1",
4,
{Dictionary{{{"ja", {Integer(1), {}}}}}},
nullptr},
{"0x6b starting a dictionary key",
"ka=1",
4,
{Dictionary{{{"ka", {Integer(1), {}}}}}},
nullptr},
{"0x6c starting a dictionary key",
"la=1",
4,
{Dictionary{{{"la", {Integer(1), {}}}}}},
nullptr},
{"0x6d starting a dictionary key",
"ma=1",
4,
{Dictionary{{{"ma", {Integer(1), {}}}}}},
nullptr},
{"0x6e starting a dictionary key",
"na=1",
4,
{Dictionary{{{"na", {Integer(1), {}}}}}},
nullptr},
{"0x6f starting a dictionary key",
"oa=1",
4,
{Dictionary{{{"oa", {Integer(1), {}}}}}},
nullptr},
{"0x70 starting a dictionary key",
"pa=1",
4,
{Dictionary{{{"pa", {Integer(1), {}}}}}},
nullptr},
{"0x71 starting a dictionary key",
"qa=1",
4,
{Dictionary{{{"qa", {Integer(1), {}}}}}},
nullptr},
{"0x72 starting a dictionary key",
"ra=1",
4,
{Dictionary{{{"ra", {Integer(1), {}}}}}},
nullptr},
{"0x73 starting a dictionary key",
"sa=1",
4,
{Dictionary{{{"sa", {Integer(1), {}}}}}},
nullptr},
{"0x74 starting a dictionary key",
"ta=1",
4,
{Dictionary{{{"ta", {Integer(1), {}}}}}},
nullptr},
{"0x75 starting a dictionary key",
"ua=1",
4,
{Dictionary{{{"ua", {Integer(1), {}}}}}},
nullptr},
{"0x76 starting a dictionary key",
"va=1",
4,
{Dictionary{{{"va", {Integer(1), {}}}}}},
nullptr},
{"0x77 starting a dictionary key",
"wa=1",
4,
{Dictionary{{{"wa", {Integer(1), {}}}}}},
nullptr},
{"0x78 starting a dictionary key",
"xa=1",
4,
{Dictionary{{{"xa", {Integer(1), {}}}}}},
nullptr},
{"0x79 starting a dictionary key",
"ya=1",
4,
{Dictionary{{{"ya", {Integer(1), {}}}}}},
nullptr},
{"0x7a starting a dictionary key",
"za=1",
4,
{Dictionary{{{"za", {Integer(1), {}}}}}},
nullptr},
{"0x7b starting a dictionary key", "{a=1", 4, std::nullopt, nullptr},
{"0x7c starting a dictionary key", "|a=1", 4, std::nullopt, nullptr},
{"0x7d starting a dictionary key", "}a=1", 4, std::nullopt, nullptr},
{"0x7e starting a dictionary key", "~a=1", 4, std::nullopt, nullptr},
{"0x7f starting a dictionary key", "\177a=1", 4, std::nullopt, nullptr},
// large-generated.json
{"large dictionary",
"a0=1, a1=1, a2=1, a3=1, a4=1, a5=1, a6=1, a7=1, a8=1, a9=1, a10=1, "
"a11=1, a12=1, a13=1, a14=1, a15=1, a16=1, a17=1, a18=1, a19=1, a20=1, "
"a21=1, a22=1, a23=1, a24=1, a25=1, a26=1, a27=1, a28=1, a29=1, a30=1, "
"a31=1, a32=1, a33=1, a34=1, a35=1, a36=1, a37=1, a38=1, a39=1, a40=1, "
"a41=1, a42=1, a43=1, a44=1, a45=1, a46=1, a47=1, a48=1, a49=1, a50=1, "
"a51=1, a52=1, a53=1, a54=1, a55=1, a56=1, a57=1, a58=1, a59=1, a60=1, "
"a61=1, a62=1, a63=1, a64=1, a65=1, a66=1, a67=1, a68=1, a69=1, a70=1, "
"a71=1, a72=1, a73=1, a74=1, a75=1, a76=1, a77=1, a78=1, a79=1, a80=1, "
"a81=1, a82=1, a83=1, a84=1, a85=1, a86=1, a87=1, a88=1, a89=1, a90=1, "
"a91=1, a92=1, a93=1, a94=1, a95=1, a96=1, a97=1, a98=1, a99=1, a100=1, "
"a101=1, a102=1, a103=1, a104=1, a105=1, a106=1, a107=1, a108=1, a109=1, "
"a110=1, a111=1, a112=1, a113=1, a114=1, a115=1, a116=1, a117=1, a118=1, "
"a119=1, a120=1, a121=1, a122=1, a123=1, a124=1, a125=1, a126=1, a127=1, "
"a128=1, a129=1, a130=1, a131=1, a132=1, a133=1, a134=1, a135=1, a136=1, "
"a137=1, a138=1, a139=1, a140=1, a141=1, a142=1, a143=1, a144=1, a145=1, "
"a146=1, a147=1, a148=1, a149=1, a150=1, a151=1, a152=1, a153=1, a154=1, "
"a155=1, a156=1, a157=1, a158=1, a159=1, a160=1, a161=1, a162=1, a163=1, "
"a164=1, a165=1, a166=1, a167=1, a168=1, a169=1, a170=1, a171=1, a172=1, "
"a173=1, a174=1, a175=1, a176=1, a177=1, a178=1, a179=1, a180=1, a181=1, "
"a182=1, a183=1, a184=1, a185=1, a186=1, a187=1, a188=1, a189=1, a190=1, "
"a191=1, a192=1, a193=1, a194=1, a195=1, a196=1, a197=1, a198=1, a199=1, "
"a200=1, a201=1, a202=1, a203=1, a204=1, a205=1, a206=1, a207=1, a208=1, "
"a209=1, a210=1, a211=1, a212=1, a213=1, a214=1, a215=1, a216=1, a217=1, "
"a218=1, a219=1, a220=1, a221=1, a222=1, a223=1, a224=1, a225=1, a226=1, "
"a227=1, a228=1, a229=1, a230=1, a231=1, a232=1, a233=1, a234=1, a235=1, "
"a236=1, a237=1, a238=1, a239=1, a240=1, a241=1, a242=1, a243=1, a244=1, "
"a245=1, a246=1, a247=1, a248=1, a249=1, a250=1, a251=1, a252=1, a253=1, "
"a254=1, a255=1, a256=1, a257=1, a258=1, a259=1, a260=1, a261=1, a262=1, "
"a263=1, a264=1, a265=1, a266=1, a267=1, a268=1, a269=1, a270=1, a271=1, "
"a272=1, a273=1, a274=1, a275=1, a276=1, a277=1, a278=1, a279=1, a280=1, "
"a281=1, a282=1, a283=1, a284=1, a285=1, a286=1, a287=1, a288=1, a289=1, "
"a290=1, a291=1, a292=1, a293=1, a294=1, a295=1, a296=1, a297=1, a298=1, "
"a299=1, a300=1, a301=1, a302=1, a303=1, a304=1, a305=1, a306=1, a307=1, "
"a308=1, a309=1, a310=1, a311=1, a312=1, a313=1, a314=1, a315=1, a316=1, "
"a317=1, a318=1, a319=1, a320=1, a321=1, a322=1, a323=1, a324=1, a325=1, "
"a326=1, a327=1, a328=1, a329=1, a330=1, a331=1, a332=1, a333=1, a334=1, "
"a335=1, a336=1, a337=1, a338=1, a339=1, a340=1, a341=1, a342=1, a343=1, "
"a344=1, a345=1, a346=1, a347=1, a348=1, a349=1, a350=1, a351=1, a352=1, "
"a353=1, a354=1, a355=1, a356=1, a357=1, a358=1, a359=1, a360=1, a361=1, "
"a362=1, a363=1, a364=1, a365=1, a366=1, a367=1, a368=1, a369=1, a370=1, "
"a371=1, a372=1, a373=1, a374=1, a375=1, a376=1, a377=1, a378=1, a379=1, "
"a380=1, a381=1, a382=1, a383=1, a384=1, a385=1, a386=1, a387=1, a388=1, "
"a389=1, a390=1, a391=1, a392=1, a393=1, a394=1, a395=1, a396=1, a397=1, "
"a398=1, a399=1, a400=1, a401=1, a402=1, a403=1, a404=1, a405=1, a406=1, "
"a407=1, a408=1, a409=1, a410=1, a411=1, a412=1, a413=1, a414=1, a415=1, "
"a416=1, a417=1, a418=1, a419=1, a420=1, a421=1, a422=1, a423=1, a424=1, "
"a425=1, a426=1, a427=1, a428=1, a429=1, a430=1, a431=1, a432=1, a433=1, "
"a434=1, a435=1, a436=1, a437=1, a438=1, a439=1, a440=1, a441=1, a442=1, "
"a443=1, a444=1, a445=1, a446=1, a447=1, a448=1, a449=1, a450=1, a451=1, "
"a452=1, a453=1, a454=1, a455=1, a456=1, a457=1, a458=1, a459=1, a460=1, "
"a461=1, a462=1, a463=1, a464=1, a465=1, a466=1, a467=1, a468=1, a469=1, "
"a470=1, a471=1, a472=1, a473=1, a474=1, a475=1, a476=1, a477=1, a478=1, "
"a479=1, a480=1, a481=1, a482=1, a483=1, a484=1, a485=1, a486=1, a487=1, "
"a488=1, a489=1, a490=1, a491=1, a492=1, a493=1, a494=1, a495=1, a496=1, "
"a497=1, a498=1, a499=1, a500=1, a501=1, a502=1, a503=1, a504=1, a505=1, "
"a506=1, a507=1, a508=1, a509=1, a510=1, a511=1, a512=1, a513=1, a514=1, "
"a515=1, a516=1, a517=1, a518=1, a519=1, a520=1, a521=1, a522=1, a523=1, "
"a524=1, a525=1, a526=1, a527=1, a528=1, a529=1, a530=1, a531=1, a532=1, "
"a533=1, a534=1, a535=1, a536=1, a537=1, a538=1, a539=1, a540=1, a541=1, "
"a542=1, a543=1, a544=1, a545=1, a546=1, a547=1, a548=1, a549=1, a550=1, "
"a551=1, a552=1, a553=1, a554=1, a555=1, a556=1, a557=1, a558=1, a559=1, "
"a560=1, a561=1, a562=1, a563=1, a564=1, a565=1, a566=1, a567=1, a568=1, "
"a569=1, a570=1, a571=1, a572=1, a573=1, a574=1, a575=1, a576=1, a577=1, "
"a578=1, a579=1, a580=1, a581=1, a582=1, a583=1, a584=1, a585=1, a586=1, "
"a587=1, a588=1, a589=1, a590=1, a591=1, a592=1, a593=1, a594=1, a595=1, "
"a596=1, a597=1, a598=1, a599=1, a600=1, a601=1, a602=1, a603=1, a604=1, "
"a605=1, a606=1, a607=1, a608=1, a609=1, a610=1, a611=1, a612=1, a613=1, "
"a614=1, a615=1, a616=1, a617=1, a618=1, a619=1, a620=1, a621=1, a622=1, "
"a623=1, a624=1, a625=1, a626=1, a627=1, a628=1, a629=1, a630=1, a631=1, "
"a632=1, a633=1, a634=1, a635=1, a636=1, a637=1, a638=1, a639=1, a640=1, "
"a641=1, a642=1, a643=1, a644=1, a645=1, a646=1, a647=1, a648=1, a649=1, "
"a650=1, a651=1, a652=1, a653=1, a654=1, a655=1, a656=1, a657=1, a658=1, "
"a659=1, a660=1, a661=1, a662=1, a663=1, a664=1, a665=1, a666=1, a667=1, "
"a668=1, a669=1, a670=1, a671=1, a672=1, a673=1, a674=1, a675=1, a676=1, "
"a677=1, a678=1, a679=1, a680=1, a681=1, a682=1, a683=1, a684=1, a685=1, "
"a686=1, a687=1, a688=1, a689=1, a690=1, a691=1, a692=1, a693=1, a694=1, "
"a695=1, a696=1, a697=1, a698=1, a699=1, a700=1, a701=1, a702=1, a703=1, "
"a704=1, a705=1, a706=1, a707=1, a708=1, a709=1, a710=1, a711=1, a712=1, "
"a713=1, a714=1, a715=1, a716=1, a717=1, a718=1, a719=1, a720=1, a721=1, "
"a722=1, a723=1, a724=1, a725=1, a726=1, a727=1, a728=1, a729=1, a730=1, "
"a731=1, a732=1, a733=1, a734=1, a735=1, a736=1, a737=1, a738=1, a739=1, "
"a740=1, a741=1, a742=1, a743=1, a744=1, a745=1, a746=1, a747=1, a748=1, "
"a749=1, a750=1, a751=1, a752=1, a753=1, a754=1, a755=1, a756=1, a757=1, "
"a758=1, a759=1, a760=1, a761=1, a762=1, a763=1, a764=1, a765=1, a766=1, "
"a767=1, a768=1, a769=1, a770=1, a771=1, a772=1, a773=1, a774=1, a775=1, "
"a776=1, a777=1, a778=1, a779=1, a780=1, a781=1, a782=1, a783=1, a784=1, "
"a785=1, a786=1, a787=1, a788=1, a789=1, a790=1, a791=1, a792=1, a793=1, "
"a794=1, a795=1, a796=1, a797=1, a798=1, a799=1, a800=1, a801=1, a802=1, "
"a803=1, a804=1, a805=1, a806=1, a807=1, a808=1, a809=1, a810=1, a811=1, "
"a812=1, a813=1, a814=1, a815=1, a816=1, a817=1, a818=1, a819=1, a820=1, "
"a821=1, a822=1, a823=1, a824=1, a825=1, a826=1, a827=1, a828=1, a829=1, "
"a830=1, a831=1, a832=1, a833=1, a834=1, a835=1, a836=1, a837=1, a838=1, "
"a839=1, a840=1, a841=1, a842=1, a843=1, a844=1, a845=1, a846=1, a847=1, "
"a848=1, a849=1, a850=1, a851=1, a852=1, a853=1, a854=1, a855=1, a856=1, "
"a857=1, a858=1, a859=1, a860=1, a861=1, a862=1, a863=1, a864=1, a865=1, "
"a866=1, a867=1, a868=1, a869=1, a870=1, a871=1, a872=1, a873=1, a874=1, "
"a875=1, a876=1, a877=1, a878=1, a879=1, a880=1, a881=1, a882=1, a883=1, "
"a884=1, a885=1, a886=1, a887=1, a888=1, a889=1, a890=1, a891=1, a892=1, "
"a893=1, a894=1, a895=1, a896=1, a897=1, a898=1, a899=1, a900=1, a901=1, "
"a902=1, a903=1, a904=1, a905=1, a906=1, a907=1, a908=1, a909=1, a910=1, "
"a911=1, a912=1, a913=1, a914=1, a915=1, a916=1, a917=1, a918=1, a919=1, "
"a920=1, a921=1, a922=1, a923=1, a924=1, a925=1, a926=1, a927=1, a928=1, "
"a929=1, a930=1, a931=1, a932=1, a933=1, a934=1, a935=1, a936=1, a937=1, "
"a938=1, a939=1, a940=1, a941=1, a942=1, a943=1, a944=1, a945=1, a946=1, "
"a947=1, a948=1, a949=1, a950=1, a951=1, a952=1, a953=1, a954=1, a955=1, "
"a956=1, a957=1, a958=1, a959=1, a960=1, a961=1, a962=1, a963=1, a964=1, "
"a965=1, a966=1, a967=1, a968=1, a969=1, a970=1, a971=1, a972=1, a973=1, "
"a974=1, a975=1, a976=1, a977=1, a978=1, a979=1, a980=1, a981=1, a982=1, "
"a983=1, a984=1, a985=1, a986=1, a987=1, a988=1, a989=1, a990=1, a991=1, "
"a992=1, a993=1, a994=1, a995=1, a996=1, a997=1, a998=1, a999=1, a1000=1, "
"a1001=1, a1002=1, a1003=1, a1004=1, a1005=1, a1006=1, a1007=1, a1008=1, "
"a1009=1, a1010=1, a1011=1, a1012=1, a1013=1, a1014=1, a1015=1, a1016=1, "
"a1017=1, a1018=1, a1019=1, a1020=1, a1021=1, a1022=1, a1023=1",
8104,
{Dictionary{{{"a0", {Integer(1), {}}}, {"a1", {Integer(1), {}}},
{"a2", {Integer(1), {}}}, {"a3", {Integer(1), {}}},
{"a4", {Integer(1), {}}}, {"a5", {Integer(1), {}}},
{"a6", {Integer(1), {}}}, {"a7", {Integer(1), {}}},
{"a8", {Integer(1), {}}}, {"a9", {Integer(1), {}}},
{"a10", {Integer(1), {}}}, {"a11", {Integer(1), {}}},
{"a12", {Integer(1), {}}}, {"a13", {Integer(1), {}}},
{"a14", {Integer(1), {}}}, {"a15", {Integer(1), {}}},
{"a16", {Integer(1), {}}}, {"a17", {Integer(1), {}}},
{"a18", {Integer(1), {}}}, {"a19", {Integer(1), {}}},
{"a20", {Integer(1), {}}}, {"a21", {Integer(1), {}}},
{"a22", {Integer(1), {}}}, {"a23", {Integer(1), {}}},
{"a24", {Integer(1), {}}}, {"a25", {Integer(1), {}}},
{"a26", {Integer(1), {}}}, {"a27", {Integer(1), {}}},
{"a28", {Integer(1), {}}}, {"a29", {Integer(1), {}}},
{"a30", {Integer(1), {}}}, {"a31", {Integer(1), {}}},
{"a32", {Integer(1), {}}}, {"a33", {Integer(1), {}}},
{"a34", {Integer(1), {}}}, {"a35", {Integer(1), {}}},
{"a36", {Integer(1), {}}}, {"a37", {Integer(1), {}}},
{"a38", {Integer(1), {}}}, {"a39", {Integer(1), {}}},
{"a40", {Integer(1), {}}}, {"a41", {Integer(1), {}}},
{"a42", {Integer(1), {}}}, {"a43", {Integer(1), {}}},
{"a44", {Integer(1), {}}}, {"a45", {Integer(1), {}}},
{"a46", {Integer(1), {}}}, {"a47", {Integer(1), {}}},
{"a48", {Integer(1), {}}}, {"a49", {Integer(1), {}}},
{"a50", {Integer(1), {}}}, {"a51", {Integer(1), {}}},
{"a52", {Integer(1), {}}}, {"a53", {Integer(1), {}}},
{"a54", {Integer(1), {}}}, {"a55", {Integer(1), {}}},
{"a56", {Integer(1), {}}}, {"a57", {Integer(1), {}}},
{"a58", {Integer(1), {}}}, {"a59", {Integer(1), {}}},
{"a60", {Integer(1), {}}}, {"a61", {Integer(1), {}}},
{"a62", {Integer(1), {}}}, {"a63", {Integer(1), {}}},
{"a64", {Integer(1), {}}}, {"a65", {Integer(1), {}}},
{"a66", {Integer(1), {}}}, {"a67", {Integer(1), {}}},
{"a68", {Integer(1), {}}}, {"a69", {Integer(1), {}}},
{"a70", {Integer(1), {}}}, {"a71", {Integer(1), {}}},
{"a72", {Integer(1), {}}}, {"a73", {Integer(1), {}}},
{"a74", {Integer(1), {}}}, {"a75", {Integer(1), {}}},
{"a76", {Integer(1), {}}}, {"a77", {Integer(1), {}}},
{"a78", {Integer(1), {}}}, {"a79", {Integer(1), {}}},
{"a80", {Integer(1), {}}}, {"a81", {Integer(1), {}}},
{"a82", {Integer(1), {}}}, {"a83", {Integer(1), {}}},
{"a84", {Integer(1), {}}}, {"a85", {Integer(1), {}}},
{"a86", {Integer(1), {}}}, {"a87", {Integer(1), {}}},
{"a88", {Integer(1), {}}}, {"a89", {Integer(1), {}}},
{"a90", {Integer(1), {}}}, {"a91", {Integer(1), {}}},
{"a92", {Integer(1), {}}}, {"a93", {Integer(1), {}}},
{"a94", {Integer(1), {}}}, {"a95", {Integer(1), {}}},
{"a96", {Integer(1), {}}}, {"a97", {Integer(1), {}}},
{"a98", {Integer(1), {}}}, {"a99", {Integer(1), {}}},
{"a100", {Integer(1), {}}}, {"a101", {Integer(1), {}}},
{"a102", {Integer(1), {}}}, {"a103", {Integer(1), {}}},
{"a104", {Integer(1), {}}}, {"a105", {Integer(1), {}}},
{"a106", {Integer(1), {}}}, {"a107", {Integer(1), {}}},
{"a108", {Integer(1), {}}}, {"a109", {Integer(1), {}}},
{"a110", {Integer(1), {}}}, {"a111", {Integer(1), {}}},
{"a112", {Integer(1), {}}}, {"a113", {Integer(1), {}}},
{"a114", {Integer(1), {}}}, {"a115", {Integer(1), {}}},
{"a116", {Integer(1), {}}}, {"a117", {Integer(1), {}}},
{"a118", {Integer(1), {}}}, {"a119", {Integer(1), {}}},
{"a120", {Integer(1), {}}}, {"a121", {Integer(1), {}}},
{"a122", {Integer(1), {}}}, {"a123", {Integer(1), {}}},
{"a124", {Integer(1), {}}}, {"a125", {Integer(1), {}}},
{"a126", {Integer(1), {}}}, {"a127", {Integer(1), {}}},
{"a128", {Integer(1), {}}}, {"a129", {Integer(1), {}}},
{"a130", {Integer(1), {}}}, {"a131", {Integer(1), {}}},
{"a132", {Integer(1), {}}}, {"a133", {Integer(1), {}}},
{"a134", {Integer(1), {}}}, {"a135", {Integer(1), {}}},
{"a136", {Integer(1), {}}}, {"a137", {Integer(1), {}}},
{"a138", {Integer(1), {}}}, {"a139", {Integer(1), {}}},
{"a140", {Integer(1), {}}}, {"a141", {Integer(1), {}}},
{"a142", {Integer(1), {}}}, {"a143", {Integer(1), {}}},
{"a144", {Integer(1), {}}}, {"a145", {Integer(1), {}}},
{"a146", {Integer(1), {}}}, {"a147", {Integer(1), {}}},
{"a148", {Integer(1), {}}}, {"a149", {Integer(1), {}}},
{"a150", {Integer(1), {}}}, {"a151", {Integer(1), {}}},
{"a152", {Integer(1), {}}}, {"a153", {Integer(1), {}}},
{"a154", {Integer(1), {}}}, {"a155", {Integer(1), {}}},
{"a156", {Integer(1), {}}}, {"a157", {Integer(1), {}}},
{"a158", {Integer(1), {}}}, {"a159", {Integer(1), {}}},
{"a160", {Integer(1), {}}}, {"a161", {Integer(1), {}}},
{"a162", {Integer(1), {}}}, {"a163", {Integer(1), {}}},
{"a164", {Integer(1), {}}}, {"a165", {Integer(1), {}}},
{"a166", {Integer(1), {}}}, {"a167", {Integer(1), {}}},
{"a168", {Integer(1), {}}}, {"a169", {Integer(1), {}}},
{"a170", {Integer(1), {}}}, {"a171", {Integer(1), {}}},
{"a172", {Integer(1), {}}}, {"a173", {Integer(1), {}}},
{"a174", {Integer(1), {}}}, {"a175", {Integer(1), {}}},
{"a176", {Integer(1), {}}}, {"a177", {Integer(1), {}}},
{"a178", {Integer(1), {}}}, {"a179", {Integer(1), {}}},
{"a180", {Integer(1), {}}}, {"a181", {Integer(1), {}}},
{"a182", {Integer(1), {}}}, {"a183", {Integer(1), {}}},
{"a184", {Integer(1), {}}}, {"a185", {Integer(1), {}}},
{"a186", {Integer(1), {}}}, {"a187", {Integer(1), {}}},
{"a188", {Integer(1), {}}}, {"a189", {Integer(1), {}}},
{"a190", {Integer(1), {}}}, {"a191", {Integer(1), {}}},
{"a192", {Integer(1), {}}}, {"a193", {Integer(1), {}}},
{"a194", {Integer(1), {}}}, {"a195", {Integer(1), {}}},
{"a196", {Integer(1), {}}}, {"a197", {Integer(1), {}}},
{"a198", {Integer(1), {}}}, {"a199", {Integer(1), {}}},
{"a200", {Integer(1), {}}}, {"a201", {Integer(1), {}}},
{"a202", {Integer(1), {}}}, {"a203", {Integer(1), {}}},
{"a204", {Integer(1), {}}}, {"a205", {Integer(1), {}}},
{"a206", {Integer(1), {}}}, {"a207", {Integer(1), {}}},
{"a208", {Integer(1), {}}}, {"a209", {Integer(1), {}}},
{"a210", {Integer(1), {}}}, {"a211", {Integer(1), {}}},
{"a212", {Integer(1), {}}}, {"a213", {Integer(1), {}}},
{"a214", {Integer(1), {}}}, {"a215", {Integer(1), {}}},
{"a216", {Integer(1), {}}}, {"a217", {Integer(1), {}}},
{"a218", {Integer(1), {}}}, {"a219", {Integer(1), {}}},
{"a220", {Integer(1), {}}}, {"a221", {Integer(1), {}}},
{"a222", {Integer(1), {}}}, {"a223", {Integer(1), {}}},
{"a224", {Integer(1), {}}}, {"a225", {Integer(1), {}}},
{"a226", {Integer(1), {}}}, {"a227", {Integer(1), {}}},
{"a228", {Integer(1), {}}}, {"a229", {Integer(1), {}}},
{"a230", {Integer(1), {}}}, {"a231", {Integer(1), {}}},
{"a232", {Integer(1), {}}}, {"a233", {Integer(1), {}}},
{"a234", {Integer(1), {}}}, {"a235", {Integer(1), {}}},
{"a236", {Integer(1), {}}}, {"a237", {Integer(1), {}}},
{"a238", {Integer(1), {}}}, {"a239", {Integer(1), {}}},
{"a240", {Integer(1), {}}}, {"a241", {Integer(1), {}}},
{"a242", {Integer(1), {}}}, {"a243", {Integer(1), {}}},
{"a244", {Integer(1), {}}}, {"a245", {Integer(1), {}}},
{"a246", {Integer(1), {}}}, {"a247", {Integer(1), {}}},
{"a248", {Integer(1), {}}}, {"a249", {Integer(1), {}}},
{"a250", {Integer(1), {}}}, {"a251", {Integer(1), {}}},
{"a252", {Integer(1), {}}}, {"a253", {Integer(1), {}}},
{"a254", {Integer(1), {}}}, {"a255", {Integer(1), {}}},
{"a256", {Integer(1), {}}}, {"a257", {Integer(1), {}}},
{"a258", {Integer(1), {}}}, {"a259", {Integer(1), {}}},
{"a260", {Integer(1), {}}}, {"a261", {Integer(1), {}}},
{"a262", {Integer(1), {}}}, {"a263", {Integer(1), {}}},
{"a264", {Integer(1), {}}}, {"a265", {Integer(1), {}}},
{"a266", {Integer(1), {}}}, {"a267", {Integer(1), {}}},
{"a268", {Integer(1), {}}}, {"a269", {Integer(1), {}}},
{"a270", {Integer(1), {}}}, {"a271", {Integer(1), {}}},
{"a272", {Integer(1), {}}}, {"a273", {Integer(1), {}}},
{"a274", {Integer(1), {}}}, {"a275", {Integer(1), {}}},
{"a276", {Integer(1), {}}}, {"a277", {Integer(1), {}}},
{"a278", {Integer(1), {}}}, {"a279", {Integer(1), {}}},
{"a280", {Integer(1), {}}}, {"a281", {Integer(1), {}}},
{"a282", {Integer(1), {}}}, {"a283", {Integer(1), {}}},
{"a284", {Integer(1), {}}}, {"a285", {Integer(1), {}}},
{"a286", {Integer(1), {}}}, {"a287", {Integer(1), {}}},
{"a288", {Integer(1), {}}}, {"a289", {Integer(1), {}}},
{"a290", {Integer(1), {}}}, {"a291", {Integer(1), {}}},
{"a292", {Integer(1), {}}}, {"a293", {Integer(1), {}}},
{"a294", {Integer(1), {}}}, {"a295", {Integer(1), {}}},
{"a296", {Integer(1), {}}}, {"a297", {Integer(1), {}}},
{"a298", {Integer(1), {}}}, {"a299", {Integer(1), {}}},
{"a300", {Integer(1), {}}}, {"a301", {Integer(1), {}}},
{"a302", {Integer(1), {}}}, {"a303", {Integer(1), {}}},
{"a304", {Integer(1), {}}}, {"a305", {Integer(1), {}}},
{"a306", {Integer(1), {}}}, {"a307", {Integer(1), {}}},
{"a308", {Integer(1), {}}}, {"a309", {Integer(1), {}}},
{"a310", {Integer(1), {}}}, {"a311", {Integer(1), {}}},
{"a312", {Integer(1), {}}}, {"a313", {Integer(1), {}}},
{"a314", {Integer(1), {}}}, {"a315", {Integer(1), {}}},
{"a316", {Integer(1), {}}}, {"a317", {Integer(1), {}}},
{"a318", {Integer(1), {}}}, {"a319", {Integer(1), {}}},
{"a320", {Integer(1), {}}}, {"a321", {Integer(1), {}}},
{"a322", {Integer(1), {}}}, {"a323", {Integer(1), {}}},
{"a324", {Integer(1), {}}}, {"a325", {Integer(1), {}}},
{"a326", {Integer(1), {}}}, {"a327", {Integer(1), {}}},
{"a328", {Integer(1), {}}}, {"a329", {Integer(1), {}}},
{"a330", {Integer(1), {}}}, {"a331", {Integer(1), {}}},
{"a332", {Integer(1), {}}}, {"a333", {Integer(1), {}}},
{"a334", {Integer(1), {}}}, {"a335", {Integer(1), {}}},
{"a336", {Integer(1), {}}}, {"a337", {Integer(1), {}}},
{"a338", {Integer(1), {}}}, {"a339", {Integer(1), {}}},
{"a340", {Integer(1), {}}}, {"a341", {Integer(1), {}}},
{"a342", {Integer(1), {}}}, {"a343", {Integer(1), {}}},
{"a344", {Integer(1), {}}}, {"a345", {Integer(1), {}}},
{"a346", {Integer(1), {}}}, {"a347", {Integer(1), {}}},
{"a348", {Integer(1), {}}}, {"a349", {Integer(1), {}}},
{"a350", {Integer(1), {}}}, {"a351", {Integer(1), {}}},
{"a352", {Integer(1), {}}}, {"a353", {Integer(1), {}}},
{"a354", {Integer(1), {}}}, {"a355", {Integer(1), {}}},
{"a356", {Integer(1), {}}}, {"a357", {Integer(1), {}}},
{"a358", {Integer(1), {}}}, {"a359", {Integer(1), {}}},
{"a360", {Integer(1), {}}}, {"a361", {Integer(1), {}}},
{"a362", {Integer(1), {}}}, {"a363", {Integer(1), {}}},
{"a364", {Integer(1), {}}}, {"a365", {Integer(1), {}}},
{"a366", {Integer(1), {}}}, {"a367", {Integer(1), {}}},
{"a368", {Integer(1), {}}}, {"a369", {Integer(1), {}}},
{"a370", {Integer(1), {}}}, {"a371", {Integer(1), {}}},
{"a372", {Integer(1), {}}}, {"a373", {Integer(1), {}}},
{"a374", {Integer(1), {}}}, {"a375", {Integer(1), {}}},
{"a376", {Integer(1), {}}}, {"a377", {Integer(1), {}}},
{"a378", {Integer(1), {}}}, {"a379", {Integer(1), {}}},
{"a380", {Integer(1), {}}}, {"a381", {Integer(1), {}}},
{"a382", {Integer(1), {}}}, {"a383", {Integer(1), {}}},
{"a384", {Integer(1), {}}}, {"a385", {Integer(1), {}}},
{"a386", {Integer(1), {}}}, {"a387", {Integer(1), {}}},
{"a388", {Integer(1), {}}}, {"a389", {Integer(1), {}}},
{"a390", {Integer(1), {}}}, {"a391", {Integer(1), {}}},
{"a392", {Integer(1), {}}}, {"a393", {Integer(1), {}}},
{"a394", {Integer(1), {}}}, {"a395", {Integer(1), {}}},
{"a396", {Integer(1), {}}}, {"a397", {Integer(1), {}}},
{"a398", {Integer(1), {}}}, {"a399", {Integer(1), {}}},
{"a400", {Integer(1), {}}}, {"a401", {Integer(1), {}}},
{"a402", {Integer(1), {}}}, {"a403", {Integer(1), {}}},
{"a404", {Integer(1), {}}}, {"a405", {Integer(1), {}}},
{"a406", {Integer(1), {}}}, {"a407", {Integer(1), {}}},
{"a408", {Integer(1), {}}}, {"a409", {Integer(1), {}}},
{"a410", {Integer(1), {}}}, {"a411", {Integer(1), {}}},
{"a412", {Integer(1), {}}}, {"a413", {Integer(1), {}}},
{"a414", {Integer(1), {}}}, {"a415", {Integer(1), {}}},
{"a416", {Integer(1), {}}}, {"a417", {Integer(1), {}}},
{"a418", {Integer(1), {}}}, {"a419", {Integer(1), {}}},
{"a420", {Integer(1), {}}}, {"a421", {Integer(1), {}}},
{"a422", {Integer(1), {}}}, {"a423", {Integer(1), {}}},
{"a424", {Integer(1), {}}}, {"a425", {Integer(1), {}}},
{"a426", {Integer(1), {}}}, {"a427", {Integer(1), {}}},
{"a428", {Integer(1), {}}}, {"a429", {Integer(1), {}}},
{"a430", {Integer(1), {}}}, {"a431", {Integer(1), {}}},
{"a432", {Integer(1), {}}}, {"a433", {Integer(1), {}}},
{"a434", {Integer(1), {}}}, {"a435", {Integer(1), {}}},
{"a436", {Integer(1), {}}}, {"a437", {Integer(1), {}}},
{"a438", {Integer(1), {}}}, {"a439", {Integer(1), {}}},
{"a440", {Integer(1), {}}}, {"a441", {Integer(1), {}}},
{"a442", {Integer(1), {}}}, {"a443", {Integer(1), {}}},
{"a444", {Integer(1), {}}}, {"a445", {Integer(1), {}}},
{"a446", {Integer(1), {}}}, {"a447", {Integer(1), {}}},
{"a448", {Integer(1), {}}}, {"a449", {Integer(1), {}}},
{"a450", {Integer(1), {}}}, {"a451", {Integer(1), {}}},
{"a452", {Integer(1), {}}}, {"a453", {Integer(1), {}}},
{"a454", {Integer(1), {}}}, {"a455", {Integer(1), {}}},
{"a456", {Integer(1), {}}}, {"a457", {Integer(1), {}}},
{"a458", {Integer(1), {}}}, {"a459", {Integer(1), {}}},
{"a460", {Integer(1), {}}}, {"a461", {Integer(1), {}}},
{"a462", {Integer(1), {}}}, {"a463", {Integer(1), {}}},
{"a464", {Integer(1), {}}}, {"a465", {Integer(1), {}}},
{"a466", {Integer(1), {}}}, {"a467", {Integer(1), {}}},
{"a468", {Integer(1), {}}}, {"a469", {Integer(1), {}}},
{"a470", {Integer(1), {}}}, {"a471", {Integer(1), {}}},
{"a472", {Integer(1), {}}}, {"a473", {Integer(1), {}}},
{"a474", {Integer(1), {}}}, {"a475", {Integer(1), {}}},
{"a476", {Integer(1), {}}}, {"a477", {Integer(1), {}}},
{"a478", {Integer(1), {}}}, {"a479", {Integer(1), {}}},
{"a480", {Integer(1), {}}}, {"a481", {Integer(1), {}}},
{"a482", {Integer(1), {}}}, {"a483", {Integer(1), {}}},
{"a484", {Integer(1), {}}}, {"a485", {Integer(1), {}}},
{"a486", {Integer(1), {}}}, {"a487", {Integer(1), {}}},
{"a488", {Integer(1), {}}}, {"a489", {Integer(1), {}}},
{"a490", {Integer(1), {}}}, {"a491", {Integer(1), {}}},
{"a492", {Integer(1), {}}}, {"a493", {Integer(1), {}}},
{"a494", {Integer(1), {}}}, {"a495", {Integer(1), {}}},
{"a496", {Integer(1), {}}}, {"a497", {Integer(1), {}}},
{"a498", {Integer(1), {}}}, {"a499", {Integer(1), {}}},
{"a500", {Integer(1), {}}}, {"a501", {Integer(1), {}}},
{"a502", {Integer(1), {}}}, {"a503", {Integer(1), {}}},
{"a504", {Integer(1), {}}}, {"a505", {Integer(1), {}}},
{"a506", {Integer(1), {}}}, {"a507", {Integer(1), {}}},
{"a508", {Integer(1), {}}}, {"a509", {Integer(1), {}}},
{"a510", {Integer(1), {}}}, {"a511", {Integer(1), {}}},
{"a512", {Integer(1), {}}}, {"a513", {Integer(1), {}}},
{"a514", {Integer(1), {}}}, {"a515", {Integer(1), {}}},
{"a516", {Integer(1), {}}}, {"a517", {Integer(1), {}}},
{"a518", {Integer(1), {}}}, {"a519", {Integer(1), {}}},
{"a520", {Integer(1), {}}}, {"a521", {Integer(1), {}}},
{"a522", {Integer(1), {}}}, {"a523", {Integer(1), {}}},
{"a524", {Integer(1), {}}}, {"a525", {Integer(1), {}}},
{"a526", {Integer(1), {}}}, {"a527", {Integer(1), {}}},
{"a528", {Integer(1), {}}}, {"a529", {Integer(1), {}}},
{"a530", {Integer(1), {}}}, {"a531", {Integer(1), {}}},
{"a532", {Integer(1), {}}}, {"a533", {Integer(1), {}}},
{"a534", {Integer(1), {}}}, {"a535", {Integer(1), {}}},
{"a536", {Integer(1), {}}}, {"a537", {Integer(1), {}}},
{"a538", {Integer(1), {}}}, {"a539", {Integer(1), {}}},
{"a540", {Integer(1), {}}}, {"a541", {Integer(1), {}}},
{"a542", {Integer(1), {}}}, {"a543", {Integer(1), {}}},
{"a544", {Integer(1), {}}}, {"a545", {Integer(1), {}}},
{"a546", {Integer(1), {}}}, {"a547", {Integer(1), {}}},
{"a548", {Integer(1), {}}}, {"a549", {Integer(1), {}}},
{"a550", {Integer(1), {}}}, {"a551", {Integer(1), {}}},
{"a552", {Integer(1), {}}}, {"a553", {Integer(1), {}}},
{"a554", {Integer(1), {}}}, {"a555", {Integer(1), {}}},
{"a556", {Integer(1), {}}}, {"a557", {Integer(1), {}}},
{"a558", {Integer(1), {}}}, {"a559", {Integer(1), {}}},
{"a560", {Integer(1), {}}}, {"a561", {Integer(1), {}}},
{"a562", {Integer(1), {}}}, {"a563", {Integer(1), {}}},
{"a564", {Integer(1), {}}}, {"a565", {Integer(1), {}}},
{"a566", {Integer(1), {}}}, {"a567", {Integer(1), {}}},
{"a568", {Integer(1), {}}}, {"a569", {Integer(1), {}}},
{"a570", {Integer(1), {}}}, {"a571", {Integer(1), {}}},
{"a572", {Integer(1), {}}}, {"a573", {Integer(1), {}}},
{"a574", {Integer(1), {}}}, {"a575", {Integer(1), {}}},
{"a576", {Integer(1), {}}}, {"a577", {Integer(1), {}}},
{"a578", {Integer(1), {}}}, {"a579", {Integer(1), {}}},
{"a580", {Integer(1), {}}}, {"a581", {Integer(1), {}}},
{"a582", {Integer(1), {}}}, {"a583", {Integer(1), {}}},
{"a584", {Integer(1), {}}}, {"a585", {Integer(1), {}}},
{"a586", {Integer(1), {}}}, {"a587", {Integer(1), {}}},
{"a588", {Integer(1), {}}}, {"a589", {Integer(1), {}}},
{"a590", {Integer(1), {}}}, {"a591", {Integer(1), {}}},
{"a592", {Integer(1), {}}}, {"a593", {Integer(1), {}}},
{"a594", {Integer(1), {}}}, {"a595", {Integer(1), {}}},
{"a596", {Integer(1), {}}}, {"a597", {Integer(1), {}}},
{"a598", {Integer(1), {}}}, {"a599", {Integer(1), {}}},
{"a600", {Integer(1), {}}}, {"a601", {Integer(1), {}}},
{"a602", {Integer(1), {}}}, {"a603", {Integer(1), {}}},
{"a604", {Integer(1), {}}}, {"a605", {Integer(1), {}}},
{"a606", {Integer(1), {}}}, {"a607", {Integer(1), {}}},
{"a608", {Integer(1), {}}}, {"a609", {Integer(1), {}}},
{"a610", {Integer(1), {}}}, {"a611", {Integer(1), {}}},
{"a612", {Integer(1), {}}}, {"a613", {Integer(1), {}}},
{"a614", {Integer(1), {}}}, {"a615", {Integer(1), {}}},
{"a616", {Integer(1), {}}}, {"a617", {Integer(1), {}}},
{"a618", {Integer(1), {}}}, {"a619", {Integer(1), {}}},
{"a620", {Integer(1), {}}}, {"a621", {Integer(1), {}}},
{"a622", {Integer(1), {}}}, {"a623", {Integer(1), {}}},
{"a624", {Integer(1), {}}}, {"a625", {Integer(1), {}}},
{"a626", {Integer(1), {}}}, {"a627", {Integer(1), {}}},
{"a628", {Integer(1), {}}}, {"a629", {Integer(1), {}}},
{"a630", {Integer(1), {}}}, {"a631", {Integer(1), {}}},
{"a632", {Integer(1), {}}}, {"a633", {Integer(1), {}}},
{"a634", {Integer(1), {}}}, {"a635", {Integer(1), {}}},
{"a636", {Integer(1), {}}}, {"a637", {Integer(1), {}}},
{"a638", {Integer(1), {}}}, {"a639", {Integer(1), {}}},
{"a640", {Integer(1), {}}}, {"a641", {Integer(1), {}}},
{"a642", {Integer(1), {}}}, {"a643", {Integer(1), {}}},
{"a644", {Integer(1), {}}}, {"a645", {Integer(1), {}}},
{"a646", {Integer(1), {}}}, {"a647", {Integer(1), {}}},
{"a648", {Integer(1), {}}}, {"a649", {Integer(1), {}}},
{"a650", {Integer(1), {}}}, {"a651", {Integer(1), {}}},
{"a652", {Integer(1), {}}}, {"a653", {Integer(1), {}}},
{"a654", {Integer(1), {}}}, {"a655", {Integer(1), {}}},
{"a656", {Integer(1), {}}}, {"a657", {Integer(1), {}}},
{"a658", {Integer(1), {}}}, {"a659", {Integer(1), {}}},
{"a660", {Integer(1), {}}}, {"a661", {Integer(1), {}}},
{"a662", {Integer(1), {}}}, {"a663", {Integer(1), {}}},
{"a664", {Integer(1), {}}}, {"a665", {Integer(1), {}}},
{"a666", {Integer(1), {}}}, {"a667", {Integer(1), {}}},
{"a668", {Integer(1), {}}}, {"a669", {Integer(1), {}}},
{"a670", {Integer(1), {}}}, {"a671", {Integer(1), {}}},
{"a672", {Integer(1), {}}}, {"a673", {Integer(1), {}}},
{"a674", {Integer(1), {}}}, {"a675", {Integer(1), {}}},
{"a676", {Integer(1), {}}}, {"a677", {Integer(1), {}}},
{"a678", {Integer(1), {}}}, {"a679", {Integer(1), {}}},
{"a680", {Integer(1), {}}}, {"a681", {Integer(1), {}}},
{"a682", {Integer(1), {}}}, {"a683", {Integer(1), {}}},
{"a684", {Integer(1), {}}}, {"a685", {Integer(1), {}}},
{"a686", {Integer(1), {}}}, {"a687", {Integer(1), {}}},
{"a688", {Integer(1), {}}}, {"a689", {Integer(1), {}}},
{"a690", {Integer(1), {}}}, {"a691", {Integer(1), {}}},
{"a692", {Integer(1), {}}}, {"a693", {Integer(1), {}}},
{"a694", {Integer(1), {}}}, {"a695", {Integer(1), {}}},
{"a696", {Integer(1), {}}}, {"a697", {Integer(1), {}}},
{"a698", {Integer(1), {}}}, {"a699", {Integer(1), {}}},
{"a700", {Integer(1), {}}}, {"a701", {Integer(1), {}}},
{"a702", {Integer(1), {}}}, {"a703", {Integer(1), {}}},
{"a704", {Integer(1), {}}}, {"a705", {Integer(1), {}}},
{"a706", {Integer(1), {}}}, {"a707", {Integer(1), {}}},
{"a708", {Integer(1), {}}}, {"a709", {Integer(1), {}}},
{"a710", {Integer(1), {}}}, {"a711", {Integer(1), {}}},
{"a712", {Integer(1), {}}}, {"a713", {Integer(1), {}}},
{"a714", {Integer(1), {}}}, {"a715", {Integer(1), {}}},
{"a716", {Integer(1), {}}}, {"a717", {Integer(1), {}}},
{"a718", {Integer(1), {}}}, {"a719", {Integer(1), {}}},
{"a720", {Integer(1), {}}}, {"a721", {Integer(1), {}}},
{"a722", {Integer(1), {}}}, {"a723", {Integer(1), {}}},
{"a724", {Integer(1), {}}}, {"a725", {Integer(1), {}}},
{"a726", {Integer(1), {}}}, {"a727", {Integer(1), {}}},
{"a728", {Integer(1), {}}}, {"a729", {Integer(1), {}}},
{"a730", {Integer(1), {}}}, {"a731", {Integer(1), {}}},
{"a732", {Integer(1), {}}}, {"a733", {Integer(1), {}}},
{"a734", {Integer(1), {}}}, {"a735", {Integer(1), {}}},
{"a736", {Integer(1), {}}}, {"a737", {Integer(1), {}}},
{"a738", {Integer(1), {}}}, {"a739", {Integer(1), {}}},
{"a740", {Integer(1), {}}}, {"a741", {Integer(1), {}}},
{"a742", {Integer(1), {}}}, {"a743", {Integer(1), {}}},
{"a744", {Integer(1), {}}}, {"a745", {Integer(1), {}}},
{"a746", {Integer(1), {}}}, {"a747", {Integer(1), {}}},
{"a748", {Integer(1), {}}}, {"a749", {Integer(1), {}}},
{"a750", {Integer(1), {}}}, {"a751", {Integer(1), {}}},
{"a752", {Integer(1), {}}}, {"a753", {Integer(1), {}}},
{"a754", {Integer(1), {}}}, {"a755", {Integer(1), {}}},
{"a756", {Integer(1), {}}}, {"a757", {Integer(1), {}}},
{"a758", {Integer(1), {}}}, {"a759", {Integer(1), {}}},
{"a760", {Integer(1), {}}}, {"a761", {Integer(1), {}}},
{"a762", {Integer(1), {}}}, {"a763", {Integer(1), {}}},
{"a764", {Integer(1), {}}}, {"a765", {Integer(1), {}}},
{"a766", {Integer(1), {}}}, {"a767", {Integer(1), {}}},
{"a768", {Integer(1), {}}}, {"a769", {Integer(1), {}}},
{"a770", {Integer(1), {}}}, {"a771", {Integer(1), {}}},
{"a772", {Integer(1), {}}}, {"a773", {Integer(1), {}}},
{"a774", {Integer(1), {}}}, {"a775", {Integer(1), {}}},
{"a776", {Integer(1), {}}}, {"a777", {Integer(1), {}}},
{"a778", {Integer(1), {}}}, {"a779", {Integer(1), {}}},
{"a780", {Integer(1), {}}}, {"a781", {Integer(1), {}}},
{"a782", {Integer(1), {}}}, {"a783", {Integer(1), {}}},
{"a784", {Integer(1), {}}}, {"a785", {Integer(1), {}}},
{"a786", {Integer(1), {}}}, {"a787", {Integer(1), {}}},
{"a788", {Integer(1), {}}}, {"a789", {Integer(1), {}}},
{"a790", {Integer(1), {}}}, {"a791", {Integer(1), {}}},
{"a792", {Integer(1), {}}}, {"a793", {Integer(1), {}}},
{"a794", {Integer(1), {}}}, {"a795", {Integer(1), {}}},
{"a796", {Integer(1), {}}}, {"a797", {Integer(1), {}}},
{"a798", {Integer(1), {}}}, {"a799", {Integer(1), {}}},
{"a800", {Integer(1), {}}}, {"a801", {Integer(1), {}}},
{"a802", {Integer(1), {}}}, {"a803", {Integer(1), {}}},
{"a804", {Integer(1), {}}}, {"a805", {Integer(1), {}}},
{"a806", {Integer(1), {}}}, {"a807", {Integer(1), {}}},
{"a808", {Integer(1), {}}}, {"a809", {Integer(1), {}}},
{"a810", {Integer(1), {}}}, {"a811", {Integer(1), {}}},
{"a812", {Integer(1), {}}}, {"a813", {Integer(1), {}}},
{"a814", {Integer(1), {}}}, {"a815", {Integer(1), {}}},
{"a816", {Integer(1), {}}}, {"a817", {Integer(1), {}}},
{"a818", {Integer(1), {}}}, {"a819", {Integer(1), {}}},
{"a820", {Integer(1), {}}}, {"a821", {Integer(1), {}}},
{"a822", {Integer(1), {}}}, {"a823", {Integer(1), {}}},
{"a824", {Integer(1), {}}}, {"a825", {Integer(1), {}}},
{"a826", {Integer(1), {}}}, {"a827", {Integer(1), {}}},
{"a828", {Integer(1), {}}}, {"a829", {Integer(1), {}}},
{"a830", {Integer(1), {}}}, {"a831", {Integer(1), {}}},
{"a832", {Integer(1), {}}}, {"a833", {Integer(1), {}}},
{"a834", {Integer(1), {}}}, {"a835", {Integer(1), {}}},
{"a836", {Integer(1), {}}}, {"a837", {Integer(1), {}}},
{"a838", {Integer(1), {}}}, {"a839", {Integer(1), {}}},
{"a840", {Integer(1), {}}}, {"a841", {Integer(1), {}}},
{"a842", {Integer(1), {}}}, {"a843", {Integer(1), {}}},
{"a844", {Integer(1), {}}}, {"a845", {Integer(1), {}}},
{"a846", {Integer(1), {}}}, {"a847", {Integer(1), {}}},
{"a848", {Integer(1), {}}}, {"a849", {Integer(1), {}}},
{"a850", {Integer(1), {}}}, {"a851", {Integer(1), {}}},
{"a852", {Integer(1), {}}}, {"a853", {Integer(1), {}}},
{"a854", {Integer(1), {}}}, {"a855", {Integer(1), {}}},
{"a856", {Integer(1), {}}}, {"a857", {Integer(1), {}}},
{"a858", {Integer(1), {}}}, {"a859", {Integer(1), {}}},
{"a860", {Integer(1), {}}}, {"a861", {Integer(1), {}}},
{"a862", {Integer(1), {}}}, {"a863", {Integer(1), {}}},
{"a864", {Integer(1), {}}}, {"a865", {Integer(1), {}}},
{"a866", {Integer(1), {}}}, {"a867", {Integer(1), {}}},
{"a868", {Integer(1), {}}}, {"a869", {Integer(1), {}}},
{"a870", {Integer(1), {}}}, {"a871", {Integer(1), {}}},
{"a872", {Integer(1), {}}}, {"a873", {Integer(1), {}}},
{"a874", {Integer(1), {}}}, {"a875", {Integer(1), {}}},
{"a876", {Integer(1), {}}}, {"a877", {Integer(1), {}}},
{"a878", {Integer(1), {}}}, {"a879", {Integer(1), {}}},
{"a880", {Integer(1), {}}}, {"a881", {Integer(1), {}}},
{"a882", {Integer(1), {}}}, {"a883", {Integer(1), {}}},
{"a884", {Integer(1), {}}}, {"a885", {Integer(1), {}}},
{"a886", {Integer(1), {}}}, {"a887", {Integer(1), {}}},
{"a888", {Integer(1), {}}}, {"a889", {Integer(1), {}}},
{"a890", {Integer(1), {}}}, {"a891", {Integer(1), {}}},
{"a892", {Integer(1), {}}}, {"a893", {Integer(1), {}}},
{"a894", {Integer(1), {}}}, {"a895", {Integer(1), {}}},
{"a896", {Integer(1), {}}}, {"a897", {Integer(1), {}}},
{"a898", {Integer(1), {}}}, {"a899", {Integer(1), {}}},
{"a900", {Integer(1), {}}}, {"a901", {Integer(1), {}}},
{"a902", {Integer(1), {}}}, {"a903", {Integer(1), {}}},
{"a904", {Integer(1), {}}}, {"a905", {Integer(1), {}}},
{"a906", {Integer(1), {}}}, {"a907", {Integer(1), {}}},
{"a908", {Integer(1), {}}}, {"a909", {Integer(1), {}}},
{"a910", {Integer(1), {}}}, {"a911", {Integer(1), {}}},
{"a912", {Integer(1), {}}}, {"a913", {Integer(1), {}}},
{"a914", {Integer(1), {}}}, {"a915", {Integer(1), {}}},
{"a916", {Integer(1), {}}}, {"a917", {Integer(1), {}}},
{"a918", {Integer(1), {}}}, {"a919", {Integer(1), {}}},
{"a920", {Integer(1), {}}}, {"a921", {Integer(1), {}}},
{"a922", {Integer(1), {}}}, {"a923", {Integer(1), {}}},
{"a924", {Integer(1), {}}}, {"a925", {Integer(1), {}}},
{"a926", {Integer(1), {}}}, {"a927", {Integer(1), {}}},
{"a928", {Integer(1), {}}}, {"a929", {Integer(1), {}}},
{"a930", {Integer(1), {}}}, {"a931", {Integer(1), {}}},
{"a932", {Integer(1), {}}}, {"a933", {Integer(1), {}}},
{"a934", {Integer(1), {}}}, {"a935", {Integer(1), {}}},
{"a936", {Integer(1), {}}}, {"a937", {Integer(1), {}}},
{"a938", {Integer(1), {}}}, {"a939", {Integer(1), {}}},
{"a940", {Integer(1), {}}}, {"a941", {Integer(1), {}}},
{"a942", {Integer(1), {}}}, {"a943", {Integer(1), {}}},
{"a944", {Integer(1), {}}}, {"a945", {Integer(1), {}}},
{"a946", {Integer(1), {}}}, {"a947", {Integer(1), {}}},
{"a948", {Integer(1), {}}}, {"a949", {Integer(1), {}}},
{"a950", {Integer(1), {}}}, {"a951", {Integer(1), {}}},
{"a952", {Integer(1), {}}}, {"a953", {Integer(1), {}}},
{"a954", {Integer(1), {}}}, {"a955", {Integer(1), {}}},
{"a956", {Integer(1), {}}}, {"a957", {Integer(1), {}}},
{"a958", {Integer(1), {}}}, {"a959", {Integer(1), {}}},
{"a960", {Integer(1), {}}}, {"a961", {Integer(1), {}}},
{"a962", {Integer(1), {}}}, {"a963", {Integer(1), {}}},
{"a964", {Integer(1), {}}}, {"a965", {Integer(1), {}}},
{"a966", {Integer(1), {}}}, {"a967", {Integer(1), {}}},
{"a968", {Integer(1), {}}}, {"a969", {Integer(1), {}}},
{"a970", {Integer(1), {}}}, {"a971", {Integer(1), {}}},
{"a972", {Integer(1), {}}}, {"a973", {Integer(1), {}}},
{"a974", {Integer(1), {}}}, {"a975", {Integer(1), {}}},
{"a976", {Integer(1), {}}}, {"a977", {Integer(1), {}}},
{"a978", {Integer(1), {}}}, {"a979", {Integer(1), {}}},
{"a980", {Integer(1), {}}}, {"a981", {Integer(1), {}}},
{"a982", {Integer(1), {}}}, {"a983", {Integer(1), {}}},
{"a984", {Integer(1), {}}}, {"a985", {Integer(1), {}}},
{"a986", {Integer(1), {}}}, {"a987", {Integer(1), {}}},
{"a988", {Integer(1), {}}}, {"a989", {Integer(1), {}}},
{"a990", {Integer(1), {}}}, {"a991", {Integer(1), {}}},
{"a992", {Integer(1), {}}}, {"a993", {Integer(1), {}}},
{"a994", {Integer(1), {}}}, {"a995", {Integer(1), {}}},
{"a996", {Integer(1), {}}}, {"a997", {Integer(1), {}}},
{"a998", {Integer(1), {}}}, {"a999", {Integer(1), {}}},
{"a1000", {Integer(1), {}}}, {"a1001", {Integer(1), {}}},
{"a1002", {Integer(1), {}}}, {"a1003", {Integer(1), {}}},
{"a1004", {Integer(1), {}}}, {"a1005", {Integer(1), {}}},
{"a1006", {Integer(1), {}}}, {"a1007", {Integer(1), {}}},
{"a1008", {Integer(1), {}}}, {"a1009", {Integer(1), {}}},
{"a1010", {Integer(1), {}}}, {"a1011", {Integer(1), {}}},
{"a1012", {Integer(1), {}}}, {"a1013", {Integer(1), {}}},
{"a1014", {Integer(1), {}}}, {"a1015", {Integer(1), {}}},
{"a1016", {Integer(1), {}}}, {"a1017", {Integer(1), {}}},
{"a1018", {Integer(1), {}}}, {"a1019", {Integer(1), {}}},
{"a1020", {Integer(1), {}}}, {"a1021", {Integer(1), {}}},
{"a1022", {Integer(1), {}}}, {"a1023", {Integer(1), {}}}}}},
nullptr},
{"large dictionary key",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=1",
66,
{Dictionary{
{{"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
{Integer(1), {}}}}}},
nullptr},
// param-dict.json
{"basic parameterised dict",
"abc=123;a=1;b=2, def=456, ghi=789;q=9;r=\"+w\"",
44,
{Dictionary{{{"abc", {Integer(123), {Param("a", 1), Param("b", 2)}}},
{"def", {Integer(456), {}}},
{"ghi", {Integer(789), {Param("q", 9), Param("r", "+w")}}}}}},
nullptr},
{"single item parameterised dict",
"a=b; q=1.0",
10,
{Dictionary{{{"a", {Item(Item::token, "b"), {DoubleParam("q", 1.0)}}}}}},
"a=b;q=1.0"},
{"list item parameterised dictionary",
"a=(1 2); q=1.0",
14,
{Dictionary{
{{"a",
{{{Integer(1), {}}, {Integer(2), {}}}, {DoubleParam("q", 1.0)}}}}}},
"a=(1 2);q=1.0"},
{"missing parameter value parameterised dict",
"a=3;c;d=5",
9,
{Dictionary{
{{"a", {Integer(3), {BooleanParam("c", true), Param("d", 5)}}}}}},
nullptr},
{"terminal missing parameter value parameterised dict",
"a=3;c=5;d",
9,
{Dictionary{
{{"a", {Integer(3), {Param("c", 5), BooleanParam("d", true)}}}}}},
nullptr},
{"no whitespace parameterised dict",
"a=b;c=1,d=e;f=2",
15,
{Dictionary{{{"a", {Item(Item::token, "b"), {Param("c", 1)}}},
{"d", {Item(Item::token, "e"), {Param("f", 2)}}}}}},
"a=b;c=1, d=e;f=2"},
{"whitespace before = parameterised dict", "a=b;q =0.5", 10, std::nullopt,
nullptr},
{"whitespace after = parameterised dict", "a=b;q= 0.5", 10, std::nullopt,
nullptr},
{"whitespace before ; parameterised dict", "a=b ;q=0.5", 10, std::nullopt,
nullptr},
{"whitespace after ; parameterised dict",
"a=b; q=0.5",
10,
{Dictionary{{{"a", {Item(Item::token, "b"), {DoubleParam("q", 0.5)}}}}}},
"a=b;q=0.5"},
{"extra whitespace parameterised dict",
"a=b; c=1 , d=e; f=2; g=3",
27,
{Dictionary{
{{"a", {Item(Item::token, "b"), {Param("c", 1)}}},
{"d", {Item(Item::token, "e"), {Param("f", 2), Param("g", 3)}}}}}},
"a=b;c=1, d=e;f=2;g=3"},
{"two lines parameterised list",
"a=b;c=1, d=e;f=2",
16,
{Dictionary{{{"a", {Item(Item::token, "b"), {Param("c", 1)}}},
{"d", {Item(Item::token, "e"), {Param("f", 2)}}}}}},
"a=b;c=1, d=e;f=2"},
{"trailing comma parameterised list", "a=b; q=1.0,", 11, std::nullopt,
nullptr},
{"empty item parameterised list", "a=b; q=1.0,,c=d", 15, std::nullopt,
nullptr},
};
const struct SerializationOnlyItemTestCase {
const char* name;
const ParameterizedItem expected;
const std::optional<std::string> canonical;
} serialization_only_item_test_cases[] = {
// serialisation-tests/number.json
{"too big positive integer - serialize",
{Integer(1000000000000000), {}},
std::nullopt},
{"too big negative integer - serialize",
{Integer(-1000000000000000), {}},
std::nullopt},
{"too big positive decimal - serialize",
{Item(1000000000000.1), {}},
std::nullopt},
{"too big negative decimal - serialize",
{Item(-1000000000000.1), {}},
std::nullopt},
{"round positive odd decimal - serialize", {Item(0.0015), {}}, "0.002"},
{"round positive even decimal - serialize", {Item(0.0025), {}}, "0.002"},
{"round negative odd decimal - serialize", {Item(-0.0015), {}}, "-0.002"},
{"round negative even decimal - serialize", {Item(-0.0025), {}}, "-0.002"},
{"decimal round up to integer part - serialize",
{Item(9.9995), {}},
"10.0"},
// serialisation-tests/string-generated.json
{"0x00 in string - serialise only",
{Item(Item::string, std::string("\000", 1)), {}},
std::nullopt},
{"0x01 in string - serialise only",
{Item(Item::string, "\001"), {}},
std::nullopt},
{"0x02 in string - serialise only",
{Item(Item::string, "\002"), {}},
std::nullopt},
{"0x03 in string - serialise only",
{Item(Item::string, "\003"), {}},
std::nullopt},
{"0x04 in string - serialise only",
{Item(Item::string, "\004"), {}},
std::nullopt},
{"0x05 in string - serialise only",
{Item(Item::string, "\005"), {}},
std::nullopt},
{"0x06 in string - serialise only",
{Item(Item::string, "\006"), {}},
std::nullopt},
{"0x07 in string - serialise only",
{Item(Item::string, "\007"), {}},
std::nullopt},
{"0x08 in string - serialise only",
{Item(Item::string, "\010"), {}},
std::nullopt},
{"0x09 in string - serialise only",
{Item(Item::string, "\t"), {}},
std::nullopt},
{"0x0a in string - serialise only",
{Item(Item::string, "\n"), {}},
std::nullopt},
{"0x0b in string - serialise only",
{Item(Item::string, "\013"), {}},
std::nullopt},
{"0x0c in string - serialise only",
{Item(Item::string, "\014"), {}},
std::nullopt},
{"0x0d in string - serialise only",
{Item(Item::string, "\r"), {}},
std::nullopt},
{"0x0e in string - serialise only",
{Item(Item::string, "\016"), {}},
std::nullopt},
{"0x0f in string - serialise only",
{Item(Item::string, "\017"), {}},
std::nullopt},
{"0x10 in string - serialise only",
{Item(Item::string, "\020"), {}},
std::nullopt},
{"0x11 in string - serialise only",
{Item(Item::string, "\021"), {}},
std::nullopt},
{"0x12 in string - serialise only",
{Item(Item::string, "\022"), {}},
std::nullopt},
{"0x13 in string - serialise only",
{Item(Item::string, "\023"), {}},
std::nullopt},
{"0x14 in string - serialise only",
{Item(Item::string, "\024"), {}},
std::nullopt},
{"0x15 in string - serialise only",
{Item(Item::string, "\025"), {}},
std::nullopt},
{"0x16 in string - serialise only",
{Item(Item::string, "\026"), {}},
std::nullopt},
{"0x17 in string - serialise only",
{Item(Item::string, "\027"), {}},
std::nullopt},
{"0x18 in string - serialise only",
{Item(Item::string, "\030"), {}},
std::nullopt},
{"0x19 in string - serialise only",
{Item(Item::string, "\031"), {}},
std::nullopt},
{"0x1a in string - serialise only",
{Item(Item::string, "\032"), {}},
std::nullopt},
{"0x1b in string - serialise only",
{Item(Item::string, "\033"), {}},
std::nullopt},
{"0x1c in string - serialise only",
{Item(Item::string, "\034"), {}},
std::nullopt},
{"0x1d in string - serialise only",
{Item(Item::string, "\035"), {}},
std::nullopt},
{"0x1e in string - serialise only",
{Item(Item::string, "\036"), {}},
std::nullopt},
{"0x1f in string - serialise only",
{Item(Item::string, "\037"), {}},
std::nullopt},
{"0x7f in string - serialise only",
{Item(Item::string, "\177"), {}},
std::nullopt},
// serialisation-tests/token-generated.json
{"0x00 in token - serialise only",
{Item(Item::token, std::string("a\000a", 3)), {}},
std::nullopt},
{"0x01 in token - serialise only",
{Item(Item::token, "a\001a"), {}},
std::nullopt},
{"0x02 in token - serialise only",
{Item(Item::token, "a\002a"), {}},
std::nullopt},
{"0x03 in token - serialise only",
{Item(Item::token, "a\003a"), {}},
std::nullopt},
{"0x04 in token - serialise only",
{Item(Item::token, "a\004a"), {}},
std::nullopt},
{"0x05 in token - serialise only",
{Item(Item::token, "a\005a"), {}},
std::nullopt},
{"0x06 in token - serialise only",
{Item(Item::token, "a\006a"), {}},
std::nullopt},
{"0x07 in token - serialise only",
{Item(Item::token, "a\007a"), {}},
std::nullopt},
{"0x08 in token - serialise only",
{Item(Item::token, "a\010a"), {}},
std::nullopt},
{"0x09 in token - serialise only",
{Item(Item::token, "a\ta"), {}},
std::nullopt},
{"0x0a in token - serialise only",
{Item(Item::token, "a\na"), {}},
std::nullopt},
{"0x0b in token - serialise only",
{Item(Item::token, "a\013a"), {}},
std::nullopt},
{"0x0c in token - serialise only",
{Item(Item::token, "a\014a"), {}},
std::nullopt},
{"0x0d in token - serialise only",
{Item(Item::token, "a\ra"), {}},
std::nullopt},
{"0x0e in token - serialise only",
{Item(Item::token, "a\016a"), {}},
std::nullopt},
{"0x0f in token - serialise only",
{Item(Item::token, "a\017a"), {}},
std::nullopt},
{"0x10 in token - serialise only",
{Item(Item::token, "a\020a"), {}},
std::nullopt},
{"0x11 in token - serialise only",
{Item(Item::token, "a\021a"), {}},
std::nullopt},
{"0x12 in token - serialise only",
{Item(Item::token, "a\022a"), {}},
std::nullopt},
{"0x13 in token - serialise only",
{Item(Item::token, "a\023a"), {}},
std::nullopt},
{"0x14 in token - serialise only",
{Item(Item::token, "a\024a"), {}},
std::nullopt},
{"0x15 in token - serialise only",
{Item(Item::token, "a\025a"), {}},
std::nullopt},
{"0x16 in token - serialise only",
{Item(Item::token, "a\026a"), {}},
std::nullopt},
{"0x17 in token - serialise only",
{Item(Item::token, "a\027a"), {}},
std::nullopt},
{"0x18 in token - serialise only",
{Item(Item::token, "a\030a"), {}},
std::nullopt},
{"0x19 in token - serialise only",
{Item(Item::token, "a\031a"), {}},
std::nullopt},
{"0x1a in token - serialise only",
{Item(Item::token, "a\032a"), {}},
std::nullopt},
{"0x1b in token - serialise only",
{Item(Item::token, "a\033a"), {}},
std::nullopt},
{"0x1c in token - serialise only",
{Item(Item::token, "a\034a"), {}},
std::nullopt},
{"0x1d in token - serialise only",
{Item(Item::token, "a\035a"), {}},
std::nullopt},
{"0x1e in token - serialise only",
{Item(Item::token, "a\036a"), {}},
std::nullopt},
{"0x1f in token - serialise only",
{Item(Item::token, "a\037a"), {}},
std::nullopt},
{"0x20 in token - serialise only",
{Item(Item::token, "a a"), {}},
std::nullopt},
{"0x22 in token - serialise only",
{Item(Item::token, "a\"a"), {}},
std::nullopt},
{"0x28 in token - serialise only",
{Item(Item::token, "a(a"), {}},
std::nullopt},
{"0x29 in token - serialise only",
{Item(Item::token, "a)a"), {}},
std::nullopt},
{"0x2c in token - serialise only",
{Item(Item::token, "a,a"), {}},
std::nullopt},
{"0x3b in token - serialise only",
{Item(Item::token, "a;a"), {}},
std::nullopt},
{"0x3c in token - serialise only",
{Item(Item::token, "a<a"), {}},
std::nullopt},
{"0x3d in token - serialise only",
{Item(Item::token, "a=a"), {}},
std::nullopt},
{"0x3e in token - serialise only",
{Item(Item::token, "a>a"), {}},
std::nullopt},
{"0x3f in token - serialise only",
{Item(Item::token, "a?a"), {}},
std::nullopt},
{"0x40 in token - serialise only",
{Item(Item::token, "a@a"), {}},
std::nullopt},
{"0x5b in token - serialise only",
{Item(Item::token, "a[a"), {}},
std::nullopt},
{"0x5c in token - serialise only",
{Item(Item::token, "a\\a"), {}},
std::nullopt},
{"0x5d in token - serialise only",
{Item(Item::token, "a]a"), {}},
std::nullopt},
{"0x7b in token - serialise only",
{Item(Item::token, "a{a"), {}},
std::nullopt},
{"0x7d in token - serialise only",
{Item(Item::token, "a}a"), {}},
std::nullopt},
{"0x7f in token - serialise only",
{Item(Item::token, "a\177a"), {}},
std::nullopt},
{"0x00 starting a token - serialise only",
{Item(Item::token, std::string("\000a", 2)), {}},
std::nullopt},
{"0x01 starting a token - serialise only",
{Item(Item::token, "\001a"), {}},
std::nullopt},
{"0x02 starting a token - serialise only",
{Item(Item::token, "\002a"), {}},
std::nullopt},
{"0x03 starting a token - serialise only",
{Item(Item::token, "\003a"), {}},
std::nullopt},
{"0x04 starting a token - serialise only",
{Item(Item::token, "\004a"), {}},
std::nullopt},
{"0x05 starting a token - serialise only",
{Item(Item::token, "\005a"), {}},
std::nullopt},
{"0x06 starting a token - serialise only",
{Item(Item::token, "\006a"), {}},
std::nullopt},
{"0x07 starting a token - serialise only",
{Item(Item::token, "\007a"), {}},
std::nullopt},
{"0x08 starting a token - serialise only",
{Item(Item::token, "\010a"), {}},
std::nullopt},
{"0x09 starting a token - serialise only",
{Item(Item::token, "\ta"), {}},
std::nullopt},
{"0x0a starting a token - serialise only",
{Item(Item::token, "\na"), {}},
std::nullopt},
{"0x0b starting a token - serialise only",
{Item(Item::token, "\013a"), {}},
std::nullopt},
{"0x0c starting a token - serialise only",
{Item(Item::token, "\014a"), {}},
std::nullopt},
{"0x0d starting a token - serialise only",
{Item(Item::token, "\ra"), {}},
std::nullopt},
{"0x0e starting a token - serialise only",
{Item(Item::token, "\016a"), {}},
std::nullopt},
{"0x0f starting a token - serialise only",
{Item(Item::token, "\017a"), {}},
std::nullopt},
{"0x10 starting a token - serialise only",
{Item(Item::token, "\020a"), {}},
std::nullopt},
{"0x11 starting a token - serialise only",
{Item(Item::token, "\021a"), {}},
std::nullopt},
{"0x12 starting a token - serialise only",
{Item(Item::token, "\022a"), {}},
std::nullopt},
{"0x13 starting a token - serialise only",
{Item(Item::token, "\023a"), {}},
std::nullopt},
{"0x14 starting a token - serialise only",
{Item(Item::token, "\024a"), {}},
std::nullopt},
{"0x15 starting a token - serialise only",
{Item(Item::token, "\025a"), {}},
std::nullopt},
{"0x16 starting a token - serialise only",
{Item(Item::token, "\026a"), {}},
std::nullopt},
{"0x17 starting a token - serialise only",
{Item(Item::token, "\027a"), {}},
std::nullopt},
{"0x18 starting a token - serialise only",
{Item(Item::token, "\030a"), {}},
std::nullopt},
{"0x19 starting a token - serialise only",
{Item(Item::token, "\031a"), {}},
std::nullopt},
{"0x1a starting a token - serialise only",
{Item(Item::token, "\032a"), {}},
std::nullopt},
{"0x1b starting a token - serialise only",
{Item(Item::token, "\033a"), {}},
std::nullopt},
{"0x1c starting a token - serialise only",
{Item(Item::token, "\034a"), {}},
std::nullopt},
{"0x1d starting a token - serialise only",
{Item(Item::token, "\035a"), {}},
std::nullopt},
{"0x1e starting a token - serialise only",
{Item(Item::token, "\036a"), {}},
std::nullopt},
{"0x1f starting a token - serialise only",
{Item(Item::token, "\037a"), {}},
std::nullopt},
{"0x20 starting a token - serialise only",
{Item(Item::token, " a"), {}},
std::nullopt},
{"0x21 starting a token - serialise only",
{Item(Item::token, "!a"), {}},
std::nullopt},
{"0x22 starting a token - serialise only",
{Item(Item::token, "\"a"), {}},
std::nullopt},
{"0x23 starting a token - serialise only",
{Item(Item::token, "#a"), {}},
std::nullopt},
{"0x24 starting a token - serialise only",
{Item(Item::token, "$a"), {}},
std::nullopt},
{"0x25 starting a token - serialise only",
{Item(Item::token, "%a"), {}},
std::nullopt},
{"0x26 starting a token - serialise only",
{Item(Item::token, "&a"), {}},
std::nullopt},
{"0x27 starting a token - serialise only",
{Item(Item::token, "'a"), {}},
std::nullopt},
{"0x28 starting a token - serialise only",
{Item(Item::token, "(a"), {}},
std::nullopt},
{"0x29 starting a token - serialise only",
{Item(Item::token, ")a"), {}},
std::nullopt},
{"0x2b starting a token - serialise only",
{Item(Item::token, "+a"), {}},
std::nullopt},
{"0x2c starting a token - serialise only",
{Item(Item::token, ",a"), {}},
std::nullopt},
{"0x2d starting a token - serialise only",
{Item(Item::token, "-a"), {}},
std::nullopt},
{"0x2e starting a token - serialise only",
{Item(Item::token, ".a"), {}},
std::nullopt},
{"0x2f starting a token - serialise only",
{Item(Item::token, "/a"), {}},
std::nullopt},
{"0x30 starting a token - serialise only",
{Item(Item::token, "0a"), {}},
std::nullopt},
{"0x31 starting a token - serialise only",
{Item(Item::token, "1a"), {}},
std::nullopt},
{"0x32 starting a token - serialise only",
{Item(Item::token, "2a"), {}},
std::nullopt},
{"0x33 starting a token - serialise only",
{Item(Item::token, "3a"), {}},
std::nullopt},
{"0x34 starting a token - serialise only",
{Item(Item::token, "4a"), {}},
std::nullopt},
{"0x35 starting a token - serialise only",
{Item(Item::token, "5a"), {}},
std::nullopt},
{"0x36 starting a token - serialise only",
{Item(Item::token, "6a"), {}},
std::nullopt},
{"0x37 starting a token - serialise only",
{Item(Item::token, "7a"), {}},
std::nullopt},
{"0x38 starting a token - serialise only",
{Item(Item::token, "8a"), {}},
std::nullopt},
{"0x39 starting a token - serialise only",
{Item(Item::token, "9a"), {}},
std::nullopt},
{"0x3a starting a token - serialise only",
{Item(Item::token, ":a"), {}},
std::nullopt},
{"0x3b starting a token - serialise only",
{Item(Item::token, ";a"), {}},
std::nullopt},
{"0x3c starting a token - serialise only",
{Item(Item::token, "<a"), {}},
std::nullopt},
{"0x3d starting a token - serialise only",
{Item(Item::token, "=a"), {}},
std::nullopt},
{"0x3e starting a token - serialise only",
{Item(Item::token, ">a"), {}},
std::nullopt},
{"0x3f starting a token - serialise only",
{Item(Item::token, "?a"), {}},
std::nullopt},
{"0x40 starting a token - serialise only",
{Item(Item::token, "@a"), {}},
std::nullopt},
{"0x5b starting a token - serialise only",
{Item(Item::token, "[a"), {}},
std::nullopt},
{"0x5c starting a token - serialise only",
{Item(Item::token, "\\a"), {}},
std::nullopt},
{"0x5d starting a token - serialise only",
{Item(Item::token, "]a"), {}},
std::nullopt},
{"0x5e starting a token - serialise only",
{Item(Item::token, "^a"), {}},
std::nullopt},
{"0x5f starting a token - serialise only",
{Item(Item::token, "_a"), {}},
std::nullopt},
{"0x60 starting a token - serialise only",
{Item(Item::token, "`a"), {}},
std::nullopt},
{"0x7b starting a token - serialise only",
{Item(Item::token, "{a"), {}},
std::nullopt},
{"0x7c starting a token - serialise only",
{Item(Item::token, "|a"), {}},
std::nullopt},
{"0x7d starting a token - serialise only",
{Item(Item::token, "}a"), {}},
std::nullopt},
{"0x7e starting a token - serialise only",
{Item(Item::token, "~a"), {}},
std::nullopt},
{"0x7f starting a token - serialise only",
{Item(Item::token, "\177a"), {}},
std::nullopt},
};
const struct SerializationOnlyListTestCase {
const char* name;
const List expected;
const std::optional<std::string> canonical;
} serialization_only_list_test_cases[] = {
// serialisation-tests/key-generated.json
{"0x00 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param(std::string("a\000a", 3), 1)}}},
std::nullopt},
{"0x01 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\001a", 1)}}},
std::nullopt},
{"0x02 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\002a", 1)}}},
std::nullopt},
{"0x03 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\003a", 1)}}},
std::nullopt},
{"0x04 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\004a", 1)}}},
std::nullopt},
{"0x05 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\005a", 1)}}},
std::nullopt},
{"0x06 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\006a", 1)}}},
std::nullopt},
{"0x07 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\007a", 1)}}},
std::nullopt},
{"0x08 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\010a", 1)}}},
std::nullopt},
{"0x09 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\ta", 1)}}},
std::nullopt},
{"0x0a in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\na", 1)}}},
std::nullopt},
{"0x0b in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\013a", 1)}}},
std::nullopt},
{"0x0c in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\014a", 1)}}},
std::nullopt},
{"0x0d in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\ra", 1)}}},
std::nullopt},
{"0x0e in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\016a", 1)}}},
std::nullopt},
{"0x0f in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\017a", 1)}}},
std::nullopt},
{"0x10 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\020a", 1)}}},
std::nullopt},
{"0x11 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\021a", 1)}}},
std::nullopt},
{"0x12 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\022a", 1)}}},
std::nullopt},
{"0x13 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\023a", 1)}}},
std::nullopt},
{"0x14 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\024a", 1)}}},
std::nullopt},
{"0x15 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\025a", 1)}}},
std::nullopt},
{"0x16 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\026a", 1)}}},
std::nullopt},
{"0x17 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\027a", 1)}}},
std::nullopt},
{"0x18 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\030a", 1)}}},
std::nullopt},
{"0x19 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\031a", 1)}}},
std::nullopt},
{"0x1a in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\032a", 1)}}},
std::nullopt},
{"0x1b in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\033a", 1)}}},
std::nullopt},
{"0x1c in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\034a", 1)}}},
std::nullopt},
{"0x1d in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\035a", 1)}}},
std::nullopt},
{"0x1e in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\036a", 1)}}},
std::nullopt},
{"0x1f in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\037a", 1)}}},
std::nullopt},
{"0x20 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a a", 1)}}},
std::nullopt},
{"0x21 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a!a", 1)}}},
std::nullopt},
{"0x22 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\"a", 1)}}},
std::nullopt},
{"0x23 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a#a", 1)}}},
std::nullopt},
{"0x24 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a$a", 1)}}},
std::nullopt},
{"0x25 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a%a", 1)}}},
std::nullopt},
{"0x26 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a&a", 1)}}},
std::nullopt},
{"0x27 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a'a", 1)}}},
std::nullopt},
{"0x28 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a(a", 1)}}},
std::nullopt},
{"0x29 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a)a", 1)}}},
std::nullopt},
{"0x2b in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a+a", 1)}}},
std::nullopt},
{"0x2c in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a,a", 1)}}},
std::nullopt},
{"0x2f in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a/a", 1)}}},
std::nullopt},
{"0x3a in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a:a", 1)}}},
std::nullopt},
{"0x3b in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a;a", 1)}}},
std::nullopt},
{"0x3c in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a<a", 1)}}},
std::nullopt},
{"0x3d in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a=a", 1)}}},
std::nullopt},
{"0x3e in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a>a", 1)}}},
std::nullopt},
{"0x3f in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a?a", 1)}}},
std::nullopt},
{"0x40 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a@a", 1)}}},
std::nullopt},
{"0x41 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aAa", 1)}}},
std::nullopt},
{"0x42 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aBa", 1)}}},
std::nullopt},
{"0x43 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aCa", 1)}}},
std::nullopt},
{"0x44 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aDa", 1)}}},
std::nullopt},
{"0x45 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aEa", 1)}}},
std::nullopt},
{"0x46 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aFa", 1)}}},
std::nullopt},
{"0x47 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aGa", 1)}}},
std::nullopt},
{"0x48 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aHa", 1)}}},
std::nullopt},
{"0x49 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aIa", 1)}}},
std::nullopt},
{"0x4a in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aJa", 1)}}},
std::nullopt},
{"0x4b in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aKa", 1)}}},
std::nullopt},
{"0x4c in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aLa", 1)}}},
std::nullopt},
{"0x4d in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aMa", 1)}}},
std::nullopt},
{"0x4e in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aNa", 1)}}},
std::nullopt},
{"0x4f in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aOa", 1)}}},
std::nullopt},
{"0x50 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aPa", 1)}}},
std::nullopt},
{"0x51 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aQa", 1)}}},
std::nullopt},
{"0x52 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aRa", 1)}}},
std::nullopt},
{"0x53 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aSa", 1)}}},
std::nullopt},
{"0x54 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aTa", 1)}}},
std::nullopt},
{"0x55 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aUa", 1)}}},
std::nullopt},
{"0x56 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aVa", 1)}}},
std::nullopt},
{"0x57 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aWa", 1)}}},
std::nullopt},
{"0x58 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aXa", 1)}}},
std::nullopt},
{"0x59 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aYa", 1)}}},
std::nullopt},
{"0x5a in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("aZa", 1)}}},
std::nullopt},
{"0x5b in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a[a", 1)}}},
std::nullopt},
{"0x5c in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\\a", 1)}}},
std::nullopt},
{"0x5d in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a]a", 1)}}},
std::nullopt},
{"0x5e in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a^a", 1)}}},
std::nullopt},
{"0x60 in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a`a", 1)}}},
std::nullopt},
{"0x7b in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a{a", 1)}}},
std::nullopt},
{"0x7c in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a|a", 1)}}},
std::nullopt},
{"0x7d in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a}a", 1)}}},
std::nullopt},
{"0x7e in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a~a", 1)}}},
std::nullopt},
{"0x7f in parameterised list key - serialise only",
{{Item(Item::token, "foo"), {Param("a\177a", 1)}}},
std::nullopt},
{"0x00 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param(std::string("\000a", 2), 1)}}},
std::nullopt},
{"0x01 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\001a", 1)}}},
std::nullopt},
{"0x02 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\002a", 1)}}},
std::nullopt},
{"0x03 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\003a", 1)}}},
std::nullopt},
{"0x04 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\004a", 1)}}},
std::nullopt},
{"0x05 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\005a", 1)}}},
std::nullopt},
{"0x06 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\006a", 1)}}},
std::nullopt},
{"0x07 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\007a", 1)}}},
std::nullopt},
{"0x08 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\010a", 1)}}},
std::nullopt},
{"0x09 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\ta", 1)}}},
std::nullopt},
{"0x0a starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\na", 1)}}},
std::nullopt},
{"0x0b starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\013a", 1)}}},
std::nullopt},
{"0x0c starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\014a", 1)}}},
std::nullopt},
{"0x0d starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\ra", 1)}}},
std::nullopt},
{"0x0e starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\016a", 1)}}},
std::nullopt},
{"0x0f starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\017a", 1)}}},
std::nullopt},
{"0x10 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\020a", 1)}}},
std::nullopt},
{"0x11 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\021a", 1)}}},
std::nullopt},
{"0x12 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\022a", 1)}}},
std::nullopt},
{"0x13 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\023a", 1)}}},
std::nullopt},
{"0x14 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\024a", 1)}}},
std::nullopt},
{"0x15 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\025a", 1)}}},
std::nullopt},
{"0x16 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\026a", 1)}}},
std::nullopt},
{"0x17 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\027a", 1)}}},
std::nullopt},
{"0x18 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\030a", 1)}}},
std::nullopt},
{"0x19 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\031a", 1)}}},
std::nullopt},
{"0x1a starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\032a", 1)}}},
std::nullopt},
{"0x1b starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\033a", 1)}}},
std::nullopt},
{"0x1c starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\034a", 1)}}},
std::nullopt},
{"0x1d starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\035a", 1)}}},
std::nullopt},
{"0x1e starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\036a", 1)}}},
std::nullopt},
{"0x1f starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\037a", 1)}}},
std::nullopt},
{"0x20 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param(" a", 1)}}},
std::nullopt},
{"0x21 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("!a", 1)}}},
std::nullopt},
{"0x22 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\"a", 1)}}},
std::nullopt},
{"0x23 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("#a", 1)}}},
std::nullopt},
{"0x24 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("$a", 1)}}},
std::nullopt},
{"0x25 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("%a", 1)}}},
std::nullopt},
{"0x26 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("&a", 1)}}},
std::nullopt},
{"0x27 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("'a", 1)}}},
std::nullopt},
{"0x28 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("(a", 1)}}},
std::nullopt},
{"0x29 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param(")a", 1)}}},
std::nullopt},
{"0x2b starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("+a", 1)}}},
std::nullopt},
{"0x2c starting a parameterised list key",
{{Item(Item::token, "foo"), {Param(",a", 1)}}},
std::nullopt},
{"0x2d starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("-a", 1)}}},
std::nullopt},
{"0x2e starting a parameterised list key",
{{Item(Item::token, "foo"), {Param(".a", 1)}}},
std::nullopt},
{"0x2f starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("/a", 1)}}},
std::nullopt},
{"0x30 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("0a", 1)}}},
std::nullopt},
{"0x31 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("1a", 1)}}},
std::nullopt},
{"0x32 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("2a", 1)}}},
std::nullopt},
{"0x33 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("3a", 1)}}},
std::nullopt},
{"0x34 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("4a", 1)}}},
std::nullopt},
{"0x35 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("5a", 1)}}},
std::nullopt},
{"0x36 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("6a", 1)}}},
std::nullopt},
{"0x37 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("7a", 1)}}},
std::nullopt},
{"0x38 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("8a", 1)}}},
std::nullopt},
{"0x39 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("9a", 1)}}},
std::nullopt},
{"0x3a starting a parameterised list key",
{{Item(Item::token, "foo"), {Param(":a", 1)}}},
std::nullopt},
{"0x3b starting a parameterised list key",
{{Item(Item::token, "foo"), {Param(";a", 1)}}},
std::nullopt},
{"0x3c starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("<a", 1)}}},
std::nullopt},
{"0x3d starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("=a", 1)}}},
std::nullopt},
{"0x3e starting a parameterised list key",
{{Item(Item::token, "foo"), {Param(">a", 1)}}},
std::nullopt},
{"0x3f starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("?a", 1)}}},
std::nullopt},
{"0x40 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("@a", 1)}}},
std::nullopt},
{"0x41 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Aa", 1)}}},
std::nullopt},
{"0x42 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ba", 1)}}},
std::nullopt},
{"0x43 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ca", 1)}}},
std::nullopt},
{"0x44 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Da", 1)}}},
std::nullopt},
{"0x45 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ea", 1)}}},
std::nullopt},
{"0x46 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Fa", 1)}}},
std::nullopt},
{"0x47 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ga", 1)}}},
std::nullopt},
{"0x48 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ha", 1)}}},
std::nullopt},
{"0x49 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ia", 1)}}},
std::nullopt},
{"0x4a starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ja", 1)}}},
std::nullopt},
{"0x4b starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ka", 1)}}},
std::nullopt},
{"0x4c starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("La", 1)}}},
std::nullopt},
{"0x4d starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ma", 1)}}},
std::nullopt},
{"0x4e starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Na", 1)}}},
std::nullopt},
{"0x4f starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Oa", 1)}}},
std::nullopt},
{"0x50 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Pa", 1)}}},
std::nullopt},
{"0x51 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Qa", 1)}}},
std::nullopt},
{"0x52 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ra", 1)}}},
std::nullopt},
{"0x53 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Sa", 1)}}},
std::nullopt},
{"0x54 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ta", 1)}}},
std::nullopt},
{"0x55 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ua", 1)}}},
std::nullopt},
{"0x56 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Va", 1)}}},
std::nullopt},
{"0x57 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Wa", 1)}}},
std::nullopt},
{"0x58 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Xa", 1)}}},
std::nullopt},
{"0x59 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Ya", 1)}}},
std::nullopt},
{"0x5a starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("Za", 1)}}},
std::nullopt},
{"0x5b starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("[a", 1)}}},
std::nullopt},
{"0x5c starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\\a", 1)}}},
std::nullopt},
{"0x5d starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("]a", 1)}}},
std::nullopt},
{"0x5e starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("^a", 1)}}},
std::nullopt},
{"0x5f starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("_a", 1)}}},
std::nullopt},
{"0x60 starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("`a", 1)}}},
std::nullopt},
{"0x7b starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("{a", 1)}}},
std::nullopt},
{"0x7c starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("|a", 1)}}},
std::nullopt},
{"0x7d starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("}a", 1)}}},
std::nullopt},
{"0x7e starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("~a", 1)}}},
std::nullopt},
{"0x7f starting a parameterised list key",
{{Item(Item::token, "foo"), {Param("\177a", 1)}}},
std::nullopt},
};
const struct SerializationOnlyDictionaryTestCase {
const char* name;
const Dictionary expected;
const std::optional<std::string> canonical;
} serialization_only_dictionary_test_cases[] = {
// serialisation-tests/key-generated.json
{"0x00 in dictionary key - serialise only",
Dictionary{{{std::string("a\000a", 3), {Integer(1), {}}}}}, std::nullopt},
{"0x01 in dictionary key - serialise only",
Dictionary{{{"a\001a", {Integer(1), {}}}}}, std::nullopt},
{"0x02 in dictionary key - serialise only",
Dictionary{{{"a\002a", {Integer(1), {}}}}}, std::nullopt},
{"0x03 in dictionary key - serialise only",
Dictionary{{{"a\003a", {Integer(1), {}}}}}, std::nullopt},
{"0x04 in dictionary key - serialise only",
Dictionary{{{"a\004a", {Integer(1), {}}}}}, std::nullopt},
{"0x05 in dictionary key - serialise only",
Dictionary{{{"a\005a", {Integer(1), {}}}}}, std::nullopt},
{"0x06 in dictionary key - serialise only",
Dictionary{{{"a\006a", {Integer(1), {}}}}}, std::nullopt},
{"0x07 in dictionary key - serialise only",
Dictionary{{{"a\007a", {Integer(1), {}}}}}, std::nullopt},
{"0x08 in dictionary key - serialise only",
Dictionary{{{"a\010a", {Integer(1), {}}}}}, std::nullopt},
{"0x09 in dictionary key - serialise only",
Dictionary{{{"a\ta", {Integer(1), {}}}}}, std::nullopt},
{"0x0a in dictionary key - serialise only",
Dictionary{{{"a\na", {Integer(1), {}}}}}, std::nullopt},
{"0x0b in dictionary key - serialise only",
Dictionary{{{"a\013a", {Integer(1), {}}}}}, std::nullopt},
{"0x0c in dictionary key - serialise only",
Dictionary{{{"a\014a", {Integer(1), {}}}}}, std::nullopt},
{"0x0d in dictionary key - serialise only",
Dictionary{{{"a\ra", {Integer(1), {}}}}}, std::nullopt},
{"0x0e in dictionary key - serialise only",
Dictionary{{{"a\016a", {Integer(1), {}}}}}, std::nullopt},
{"0x0f in dictionary key - serialise only",
Dictionary{{{"a\017a", {Integer(1), {}}}}}, std::nullopt},
{"0x10 in dictionary key - serialise only",
Dictionary{{{"a\020a", {Integer(1), {}}}}}, std::nullopt},
{"0x11 in dictionary key - serialise only",
Dictionary{{{"a\021a", {Integer(1), {}}}}}, std::nullopt},
{"0x12 in dictionary key - serialise only",
Dictionary{{{"a\022a", {Integer(1), {}}}}}, std::nullopt},
{"0x13 in dictionary key - serialise only",
Dictionary{{{"a\023a", {Integer(1), {}}}}}, std::nullopt},
{"0x14 in dictionary key - serialise only",
Dictionary{{{"a\024a", {Integer(1), {}}}}}, std::nullopt},
{"0x15 in dictionary key - serialise only",
Dictionary{{{"a\025a", {Integer(1), {}}}}}, std::nullopt},
{"0x16 in dictionary key - serialise only",
Dictionary{{{"a\026a", {Integer(1), {}}}}}, std::nullopt},
{"0x17 in dictionary key - serialise only",
Dictionary{{{"a\027a", {Integer(1), {}}}}}, std::nullopt},
{"0x18 in dictionary key - serialise only",
Dictionary{{{"a\030a", {Integer(1), {}}}}}, std::nullopt},
{"0x19 in dictionary key - serialise only",
Dictionary{{{"a\031a", {Integer(1), {}}}}}, std::nullopt},
{"0x1a in dictionary key - serialise only",
Dictionary{{{"a\032a", {Integer(1), {}}}}}, std::nullopt},
{"0x1b in dictionary key - serialise only",
Dictionary{{{"a\033a", {Integer(1), {}}}}}, std::nullopt},
{"0x1c in dictionary key - serialise only",
Dictionary{{{"a\034a", {Integer(1), {}}}}}, std::nullopt},
{"0x1d in dictionary key - serialise only",
Dictionary{{{"a\035a", {Integer(1), {}}}}}, std::nullopt},
{"0x1e in dictionary key - serialise only",
Dictionary{{{"a\036a", {Integer(1), {}}}}}, std::nullopt},
{"0x1f in dictionary key - serialise only",
Dictionary{{{"a\037a", {Integer(1), {}}}}}, std::nullopt},
{"0x20 in dictionary key - serialise only",
Dictionary{{{"a a", {Integer(1), {}}}}}, std::nullopt},
{"0x21 in dictionary key - serialise only",
Dictionary{{{"a!a", {Integer(1), {}}}}}, std::nullopt},
{"0x22 in dictionary key - serialise only",
Dictionary{{{"a\"a", {Integer(1), {}}}}}, std::nullopt},
{"0x23 in dictionary key - serialise only",
Dictionary{{{"a#a", {Integer(1), {}}}}}, std::nullopt},
{"0x24 in dictionary key - serialise only",
Dictionary{{{"a$a", {Integer(1), {}}}}}, std::nullopt},
{"0x25 in dictionary key - serialise only",
Dictionary{{{"a%a", {Integer(1), {}}}}}, std::nullopt},
{"0x26 in dictionary key - serialise only",
Dictionary{{{"a&a", {Integer(1), {}}}}}, std::nullopt},
{"0x27 in dictionary key - serialise only",
Dictionary{{{"a'a", {Integer(1), {}}}}}, std::nullopt},
{"0x28 in dictionary key - serialise only",
Dictionary{{{"a(a", {Integer(1), {}}}}}, std::nullopt},
{"0x29 in dictionary key - serialise only",
Dictionary{{{"a)a", {Integer(1), {}}}}}, std::nullopt},
{"0x2b in dictionary key - serialise only",
Dictionary{{{"a+a", {Integer(1), {}}}}}, std::nullopt},
{"0x2c in dictionary key - serialise only",
Dictionary{{{"a,a", {Integer(1), {}}}}}, std::nullopt},
{"0x2f in dictionary key - serialise only",
Dictionary{{{"a/a", {Integer(1), {}}}}}, std::nullopt},
{"0x3a in dictionary key - serialise only",
Dictionary{{{"a:a", {Integer(1), {}}}}}, std::nullopt},
{"0x3b in dictionary key - serialise only",
Dictionary{{{"a;a", {Integer(1), {}}}}}, std::nullopt},
{"0x3c in dictionary key - serialise only",
Dictionary{{{"a<a", {Integer(1), {}}}}}, std::nullopt},
{"0x3d in dictionary key - serialise only",
Dictionary{{{"a=a", {Integer(1), {}}}}}, std::nullopt},
{"0x3e in dictionary key - serialise only",
Dictionary{{{"a>a", {Integer(1), {}}}}}, std::nullopt},
{"0x3f in dictionary key - serialise only",
Dictionary{{{"a?a", {Integer(1), {}}}}}, std::nullopt},
{"0x40 in dictionary key - serialise only",
Dictionary{{{"a@a", {Integer(1), {}}}}}, std::nullopt},
{"0x41 in dictionary key - serialise only",
Dictionary{{{"aAa", {Integer(1), {}}}}}, std::nullopt},
{"0x42 in dictionary key - serialise only",
Dictionary{{{"aBa", {Integer(1), {}}}}}, std::nullopt},
{"0x43 in dictionary key - serialise only",
Dictionary{{{"aCa", {Integer(1), {}}}}}, std::nullopt},
{"0x44 in dictionary key - serialise only",
Dictionary{{{"aDa", {Integer(1), {}}}}}, std::nullopt},
{"0x45 in dictionary key - serialise only",
Dictionary{{{"aEa", {Integer(1), {}}}}}, std::nullopt},
{"0x46 in dictionary key - serialise only",
Dictionary{{{"aFa", {Integer(1), {}}}}}, std::nullopt},
{"0x47 in dictionary key - serialise only",
Dictionary{{{"aGa", {Integer(1), {}}}}}, std::nullopt},
{"0x48 in dictionary key - serialise only",
Dictionary{{{"aHa", {Integer(1), {}}}}}, std::nullopt},
{"0x49 in dictionary key - serialise only",
Dictionary{{{"aIa", {Integer(1), {}}}}}, std::nullopt},
{"0x4a in dictionary key - serialise only",
Dictionary{{{"aJa", {Integer(1), {}}}}}, std::nullopt},
{"0x4b in dictionary key - serialise only",
Dictionary{{{"aKa", {Integer(1), {}}}}}, std::nullopt},
{"0x4c in dictionary key - serialise only",
Dictionary{{{"aLa", {Integer(1), {}}}}}, std::nullopt},
{"0x4d in dictionary key - serialise only",
Dictionary{{{"aMa", {Integer(1), {}}}}}, std::nullopt},
{"0x4e in dictionary key - serialise only",
Dictionary{{{"aNa", {Integer(1), {}}}}}, std::nullopt},
{"0x4f in dictionary key - serialise only",
Dictionary{{{"aOa", {Integer(1), {}}}}}, std::nullopt},
{"0x50 in dictionary key - serialise only",
Dictionary{{{"aPa", {Integer(1), {}}}}}, std::nullopt},
{"0x51 in dictionary key - serialise only",
Dictionary{{{"aQa", {Integer(1), {}}}}}, std::nullopt},
{"0x52 in dictionary key - serialise only",
Dictionary{{{"aRa", {Integer(1), {}}}}}, std::nullopt},
{"0x53 in dictionary key - serialise only",
Dictionary{{{"aSa", {Integer(1), {}}}}}, std::nullopt},
{"0x54 in dictionary key - serialise only",
Dictionary{{{"aTa", {Integer(1), {}}}}}, std::nullopt},
{"0x55 in dictionary key - serialise only",
Dictionary{{{"aUa", {Integer(1), {}}}}}, std::nullopt},
{"0x56 in dictionary key - serialise only",
Dictionary{{{"aVa", {Integer(1), {}}}}}, std::nullopt},
{"0x57 in dictionary key - serialise only",
Dictionary{{{"aWa", {Integer(1), {}}}}}, std::nullopt},
{"0x58 in dictionary key - serialise only",
Dictionary{{{"aXa", {Integer(1), {}}}}}, std::nullopt},
{"0x59 in dictionary key - serialise only",
Dictionary{{{"aYa", {Integer(1), {}}}}}, std::nullopt},
{"0x5a in dictionary key - serialise only",
Dictionary{{{"aZa", {Integer(1), {}}}}}, std::nullopt},
{"0x5b in dictionary key - serialise only",
Dictionary{{{"a[a", {Integer(1), {}}}}}, std::nullopt},
{"0x5c in dictionary key - serialise only",
Dictionary{{{"a\\a", {Integer(1), {}}}}}, std::nullopt},
{"0x5d in dictionary key - serialise only",
Dictionary{{{"a]a", {Integer(1), {}}}}}, std::nullopt},
{"0x5e in dictionary key - serialise only",
Dictionary{{{"a^a", {Integer(1), {}}}}}, std::nullopt},
{"0x60 in dictionary key - serialise only",
Dictionary{{{"a`a", {Integer(1), {}}}}}, std::nullopt},
{"0x7b in dictionary key - serialise only",
Dictionary{{{"a{a", {Integer(1), {}}}}}, std::nullopt},
{"0x7c in dictionary key - serialise only",
Dictionary{{{"a|a", {Integer(1), {}}}}}, std::nullopt},
{"0x7d in dictionary key - serialise only",
Dictionary{{{"a}a", {Integer(1), {}}}}}, std::nullopt},
{"0x7e in dictionary key - serialise only",
Dictionary{{{"a~a", {Integer(1), {}}}}}, std::nullopt},
{"0x7f in dictionary key - serialise only",
Dictionary{{{"a\177a", {Integer(1), {}}}}}, std::nullopt},
{"0x00 starting a dictionary key - serialise only",
Dictionary{{{std::string("\000a", 2), {Integer(1), {}}}}}, std::nullopt},
{"0x01 starting a dictionary key - serialise only",
Dictionary{{{"\001a", {Integer(1), {}}}}}, std::nullopt},
{"0x02 starting a dictionary key - serialise only",
Dictionary{{{"\002a", {Integer(1), {}}}}}, std::nullopt},
{"0x03 starting a dictionary key - serialise only",
Dictionary{{{"\003a", {Integer(1), {}}}}}, std::nullopt},
{"0x04 starting a dictionary key - serialise only",
Dictionary{{{"\004a", {Integer(1), {}}}}}, std::nullopt},
{"0x05 starting a dictionary key - serialise only",
Dictionary{{{"\005a", {Integer(1), {}}}}}, std::nullopt},
{"0x06 starting a dictionary key - serialise only",
Dictionary{{{"\006a", {Integer(1), {}}}}}, std::nullopt},
{"0x07 starting a dictionary key - serialise only",
Dictionary{{{"\007a", {Integer(1), {}}}}}, std::nullopt},
{"0x08 starting a dictionary key - serialise only",
Dictionary{{{"\010a", {Integer(1), {}}}}}, std::nullopt},
{"0x09 starting a dictionary key - serialise only",
Dictionary{{{"\ta", {Integer(1), {}}}}}, std::nullopt},
{"0x0a starting a dictionary key - serialise only",
Dictionary{{{"\na", {Integer(1), {}}}}}, std::nullopt},
{"0x0b starting a dictionary key - serialise only",
Dictionary{{{"\013a", {Integer(1), {}}}}}, std::nullopt},
{"0x0c starting a dictionary key - serialise only",
Dictionary{{{"\014a", {Integer(1), {}}}}}, std::nullopt},
{"0x0d starting a dictionary key - serialise only",
Dictionary{{{"\ra", {Integer(1), {}}}}}, std::nullopt},
{"0x0e starting a dictionary key - serialise only",
Dictionary{{{"\016a", {Integer(1), {}}}}}, std::nullopt},
{"0x0f starting a dictionary key - serialise only",
Dictionary{{{"\017a", {Integer(1), {}}}}}, std::nullopt},
{"0x10 starting a dictionary key - serialise only",
Dictionary{{{"\020a", {Integer(1), {}}}}}, std::nullopt},
{"0x11 starting a dictionary key - serialise only",
Dictionary{{{"\021a", {Integer(1), {}}}}}, std::nullopt},
{"0x12 starting a dictionary key - serialise only",
Dictionary{{{"\022a", {Integer(1), {}}}}}, std::nullopt},
{"0x13 starting a dictionary key - serialise only",
Dictionary{{{"\023a", {Integer(1), {}}}}}, std::nullopt},
{"0x14 starting a dictionary key - serialise only",
Dictionary{{{"\024a", {Integer(1), {}}}}}, std::nullopt},
{"0x15 starting a dictionary key - serialise only",
Dictionary{{{"\025a", {Integer(1), {}}}}}, std::nullopt},
{"0x16 starting a dictionary key - serialise only",
Dictionary{{{"\026a", {Integer(1), {}}}}}, std::nullopt},
{"0x17 starting a dictionary key - serialise only",
Dictionary{{{"\027a", {Integer(1), {}}}}}, std::nullopt},
{"0x18 starting a dictionary key - serialise only",
Dictionary{{{"\030a", {Integer(1), {}}}}}, std::nullopt},
{"0x19 starting a dictionary key - serialise only",
Dictionary{{{"\031a", {Integer(1), {}}}}}, std::nullopt},
{"0x1a starting a dictionary key - serialise only",
Dictionary{{{"\032a", {Integer(1), {}}}}}, std::nullopt},
{"0x1b starting a dictionary key - serialise only",
Dictionary{{{"\033a", {Integer(1), {}}}}}, std::nullopt},
{"0x1c starting a dictionary key - serialise only",
Dictionary{{{"\034a", {Integer(1), {}}}}}, std::nullopt},
{"0x1d starting a dictionary key - serialise only",
Dictionary{{{"\035a", {Integer(1), {}}}}}, std::nullopt},
{"0x1e starting a dictionary key - serialise only",
Dictionary{{{"\036a", {Integer(1), {}}}}}, std::nullopt},
{"0x1f starting a dictionary key - serialise only",
Dictionary{{{"\037a", {Integer(1), {}}}}}, std::nullopt},
{"0x20 starting a dictionary key - serialise only",
Dictionary{{{" a", {Integer(1), {}}}}}, std::nullopt},
{"0x21 starting a dictionary key - serialise only",
Dictionary{{{"!a", {Integer(1), {}}}}}, std::nullopt},
{"0x22 starting a dictionary key - serialise only",
Dictionary{{{"\"a", {Integer(1), {}}}}}, std::nullopt},
{"0x23 starting a dictionary key - serialise only",
Dictionary{{{"#a", {Integer(1), {}}}}}, std::nullopt},
{"0x24 starting a dictionary key - serialise only",
Dictionary{{{"$a", {Integer(1), {}}}}}, std::nullopt},
{"0x25 starting a dictionary key - serialise only",
Dictionary{{{"%a", {Integer(1), {}}}}}, std::nullopt},
{"0x26 starting a dictionary key - serialise only",
Dictionary{{{"&a", {Integer(1), {}}}}}, std::nullopt},
{"0x27 starting a dictionary key - serialise only",
Dictionary{{{"'a", {Integer(1), {}}}}}, std::nullopt},
{"0x28 starting a dictionary key - serialise only",
Dictionary{{{"(a", {Integer(1), {}}}}}, std::nullopt},
{"0x29 starting a dictionary key - serialise only",
Dictionary{{{")a", {Integer(1), {}}}}}, std::nullopt},
{"0x2b starting a dictionary key - serialise only",
Dictionary{{{"+a", {Integer(1), {}}}}}, std::nullopt},
{"0x2c starting a dictionary key - serialise only",
Dictionary{{{",a", {Integer(1), {}}}}}, std::nullopt},
{"0x2d starting a dictionary key - serialise only",
Dictionary{{{"-a", {Integer(1), {}}}}}, std::nullopt},
{"0x2e starting a dictionary key - serialise only",
Dictionary{{{".a", {Integer(1), {}}}}}, std::nullopt},
{"0x2f starting a dictionary key - serialise only",
Dictionary{{{"/a", {Integer(1), {}}}}}, std::nullopt},
{"0x30 starting a dictionary key - serialise only",
Dictionary{{{"0a", {Integer(1), {}}}}}, std::nullopt},
{"0x31 starting a dictionary key - serialise only",
Dictionary{{{"1a", {Integer(1), {}}}}}, std::nullopt},
{"0x32 starting a dictionary key - serialise only",
Dictionary{{{"2a", {Integer(1), {}}}}}, std::nullopt},
{"0x33 starting a dictionary key - serialise only",
Dictionary{{{"3a", {Integer(1), {}}}}}, std::nullopt},
{"0x34 starting a dictionary key - serialise only",
Dictionary{{{"4a", {Integer(1), {}}}}}, std::nullopt},
{"0x35 starting a dictionary key - serialise only",
Dictionary{{{"5a", {Integer(1), {}}}}}, std::nullopt},
{"0x36 starting a dictionary key - serialise only",
Dictionary{{{"6a", {Integer(1), {}}}}}, std::nullopt},
{"0x37 starting a dictionary key - serialise only",
Dictionary{{{"7a", {Integer(1), {}}}}}, std::nullopt},
{"0x38 starting a dictionary key - serialise only",
Dictionary{{{"8a", {Integer(1), {}}}}}, std::nullopt},
{"0x39 starting a dictionary key - serialise only",
Dictionary{{{"9a", {Integer(1), {}}}}}, std::nullopt},
{"0x3a starting a dictionary key - serialise only",
Dictionary{{{":a", {Integer(1), {}}}}}, std::nullopt},
{"0x3b starting a dictionary key - serialise only",
Dictionary{{{";a", {Integer(1), {}}}}}, std::nullopt},
{"0x3c starting a dictionary key - serialise only",
Dictionary{{{"<a", {Integer(1), {}}}}}, std::nullopt},
{"0x3d starting a dictionary key - serialise only",
Dictionary{{{"=a", {Integer(1), {}}}}}, std::nullopt},
{"0x3e starting a dictionary key - serialise only",
Dictionary{{{">a", {Integer(1), {}}}}}, std::nullopt},
{"0x3f starting a dictionary key - serialise only",
Dictionary{{{"?a", {Integer(1), {}}}}}, std::nullopt},
{"0x40 starting a dictionary key - serialise only",
Dictionary{{{"@a", {Integer(1), {}}}}}, std::nullopt},
{"0x41 starting a dictionary key - serialise only",
Dictionary{{{"Aa", {Integer(1), {}}}}}, std::nullopt},
{"0x42 starting a dictionary key - serialise only",
Dictionary{{{"Ba", {Integer(1), {}}}}}, std::nullopt},
{"0x43 starting a dictionary key - serialise only",
Dictionary{{{"Ca", {Integer(1), {}}}}}, std::nullopt},
{"0x44 starting a dictionary key - serialise only",
Dictionary{{{"Da", {Integer(1), {}}}}}, std::nullopt},
{"0x45 starting a dictionary key - serialise only",
Dictionary{{{"Ea", {Integer(1), {}}}}}, std::nullopt},
{"0x46 starting a dictionary key - serialise only",
Dictionary{{{"Fa", {Integer(1), {}}}}}, std::nullopt},
{"0x47 starting a dictionary key - serialise only",
Dictionary{{{"Ga", {Integer(1), {}}}}}, std::nullopt},
{"0x48 starting a dictionary key - serialise only",
Dictionary{{{"Ha", {Integer(1), {}}}}}, std::nullopt},
{"0x49 starting a dictionary key - serialise only",
Dictionary{{{"Ia", {Integer(1), {}}}}}, std::nullopt},
{"0x4a starting a dictionary key - serialise only",
Dictionary{{{"Ja", {Integer(1), {}}}}}, std::nullopt},
{"0x4b starting a dictionary key - serialise only",
Dictionary{{{"Ka", {Integer(1), {}}}}}, std::nullopt},
{"0x4c starting a dictionary key - serialise only",
Dictionary{{{"La", {Integer(1), {}}}}}, std::nullopt},
{"0x4d starting a dictionary key - serialise only",
Dictionary{{{"Ma", {Integer(1), {}}}}}, std::nullopt},
{"0x4e starting a dictionary key - serialise only",
Dictionary{{{"Na", {Integer(1), {}}}}}, std::nullopt},
{"0x4f starting a dictionary key - serialise only",
Dictionary{{{"Oa", {Integer(1), {}}}}}, std::nullopt},
{"0x50 starting a dictionary key - serialise only",
Dictionary{{{"Pa", {Integer(1), {}}}}}, std::nullopt},
{"0x51 starting a dictionary key - serialise only",
Dictionary{{{"Qa", {Integer(1), {}}}}}, std::nullopt},
{"0x52 starting a dictionary key - serialise only",
Dictionary{{{"Ra", {Integer(1), {}}}}}, std::nullopt},
{"0x53 starting a dictionary key - serialise only",
Dictionary{{{"Sa", {Integer(1), {}}}}}, std::nullopt},
{"0x54 starting a dictionary key - serialise only",
Dictionary{{{"Ta", {Integer(1), {}}}}}, std::nullopt},
{"0x55 starting a dictionary key - serialise only",
Dictionary{{{"Ua", {Integer(1), {}}}}}, std::nullopt},
{"0x56 starting a dictionary key - serialise only",
Dictionary{{{"Va", {Integer(1), {}}}}}, std::nullopt},
{"0x57 starting a dictionary key - serialise only",
Dictionary{{{"Wa", {Integer(1), {}}}}}, std::nullopt},
{"0x58 starting a dictionary key - serialise only",
Dictionary{{{"Xa", {Integer(1), {}}}}}, std::nullopt},
{"0x59 starting a dictionary key - serialise only",
Dictionary{{{"Ya", {Integer(1), {}}}}}, std::nullopt},
{"0x5a starting a dictionary key - serialise only",
Dictionary{{{"Za", {Integer(1), {}}}}}, std::nullopt},
{"0x5b starting a dictionary key - serialise only",
Dictionary{{{"[a", {Integer(1), {}}}}}, std::nullopt},
{"0x5c starting a dictionary key - serialise only",
Dictionary{{{"\\a", {Integer(1), {}}}}}, std::nullopt},
{"0x5d starting a dictionary key - serialise only",
Dictionary{{{"]a", {Integer(1), {}}}}}, std::nullopt},
{"0x5e starting a dictionary key - serialise only",
Dictionary{{{"^a", {Integer(1), {}}}}}, std::nullopt},
{"0x5f starting a dictionary key - serialise only",
Dictionary{{{"_a", {Integer(1), {}}}}}, std::nullopt},
{"0x60 starting a dictionary key - serialise only",
Dictionary{{{"`a", {Integer(1), {}}}}}, std::nullopt},
{"0x7b starting a dictionary key - serialise only",
Dictionary{{{"{a", {Integer(1), {}}}}}, std::nullopt},
{"0x7c starting a dictionary key - serialise only",
Dictionary{{{"|a", {Integer(1), {}}}}}, std::nullopt},
{"0x7d starting a dictionary key - serialise only",
Dictionary{{{"}a", {Integer(1), {}}}}}, std::nullopt},
{"0x7e starting a dictionary key - serialise only",
Dictionary{{{"~a", {Integer(1), {}}}}}, std::nullopt},
{"0x7f starting a dictionary key - serialise only",
Dictionary{{{"\177a", {Integer(1), {}}}}}, std::nullopt},
};
} // namespace
TEST(StructuredHeaderGeneratedTest, ParseItem) {
for (const auto& c : parameterized_item_test_cases) {
if (c.raw) {
SCOPED_TRACE(c.name);
std::string raw{c.raw, c.raw_len};
std::optional<ParameterizedItem> result = ParseItem(raw, /*strict=*/true);
if (c.known_bug) {
if (result == c.expected) {
ADD_FAILURE() << "Test " << c.name
<< " passed but was expected to fail (" << c.known_bug
<< "); please remove from KNOWN_BUGS";
}
} else {
EXPECT_EQ(result, c.expected);
}
}
}
}
TEST(StructuredHeaderGeneratedTest, ParseList) {
for (const auto& c : list_test_cases) {
if (c.raw) {
SCOPED_TRACE(c.name);
std::string raw{c.raw, c.raw_len};
std::optional<List> result = ParseList(raw, /*strict=*/true);
if (c.known_bug) {
if (result == c.expected) {
ADD_FAILURE() << "Test " << c.name
<< " passed but was expected to fail (" << c.known_bug
<< "); please remove from KNOWN_BUGS";
}
} else {
EXPECT_EQ(result, c.expected);
}
}
}
}
TEST(StructuredHeaderGeneratedTest, ParseDictionary) {
for (const auto& c : dictionary_test_cases) {
if (c.raw) {
SCOPED_TRACE(c.name);
std::string raw{c.raw, c.raw_len};
std::optional<Dictionary> result = ParseDictionary(raw, /*strict=*/true);
if (c.known_bug) {
if (result == c.expected) {
ADD_FAILURE() << "Test " << c.name
<< " passed but was expected to fail (" << c.known_bug
<< "); please remove from KNOWN_BUGS";
}
} else {
EXPECT_EQ(result, c.expected);
}
}
}
}
TEST(StructuredHeaderGeneratedTest, SerializeItem) {
for (const auto& c : parameterized_item_test_cases) {
SCOPED_TRACE(c.name);
if (c.expected) {
std::optional<std::string> result = SerializeItem(*c.expected);
if (c.raw || c.canonical) {
if (c.known_bug) {
if (result == std::string(c.canonical ? c.canonical : c.raw)) {
ADD_FAILURE() << "Test " << c.name
<< " passed serialization but was expected to fail ("
<< c.known_bug << "); please remove from KNOWN_BUGS";
}
} else {
EXPECT_EQ(result, std::string(c.canonical ? c.canonical : c.raw));
}
} else {
EXPECT_FALSE(result.has_value());
}
}
}
}
TEST(StructuredHeaderGeneratedTest, SerializeList) {
for (const auto& c : list_test_cases) {
SCOPED_TRACE(c.name);
if (c.expected) {
std::optional<std::string> result = SerializeList(*c.expected);
if (c.raw || c.canonical) {
if (c.known_bug) {
if (result == std::string(c.canonical ? c.canonical : c.raw)) {
ADD_FAILURE() << "Test " << c.name
<< " passed serialization but was expected to fail ("
<< c.known_bug << "); please remove from KNOWN_BUGS";
}
} else {
EXPECT_EQ(result, std::string(c.canonical ? c.canonical : c.raw));
}
} else {
EXPECT_FALSE(result.has_value());
}
}
}
}
TEST(StructuredHeaderGeneratedTest, SerializeDictionary) {
for (const auto& c : dictionary_test_cases) {
SCOPED_TRACE(c.name);
if (c.expected) {
std::optional<std::string> result = SerializeDictionary(*c.expected);
if (c.raw || c.canonical) {
if (c.known_bug) {
if (result == std::string(c.canonical ? c.canonical : c.raw)) {
ADD_FAILURE() << "Test " << c.name
<< " passed serialization but was expected to fail ("
<< c.known_bug << "); please remove from KNOWN_BUGS";
}
} else {
EXPECT_EQ(result, std::string(c.canonical ? c.canonical : c.raw));
}
} else {
EXPECT_FALSE(result.has_value());
}
}
}
}
TEST(StructuredHeaderGeneratedTest, SerializationOnlyItem) {
for (const auto& c : serialization_only_item_test_cases) {
SCOPED_TRACE(c.name);
std::optional<std::string> result = SerializeItem(c.expected);
EXPECT_EQ(result, c.canonical);
}
}
TEST(StructuredHeaderGeneratedTest, SerializationOnlyList) {
for (const auto& c : serialization_only_list_test_cases) {
SCOPED_TRACE(c.name);
std::optional<std::string> result = SerializeList(c.expected);
EXPECT_EQ(result, c.canonical);
}
}
TEST(StructuredHeaderGeneratedTest, SerializationOnlyDictionary) {
for (const auto& c : serialization_only_dictionary_test_cases) {
SCOPED_TRACE(c.name);
std::optional<std::string> result = SerializeDictionary(c.expected);
EXPECT_EQ(result, c.canonical);
}
}
} // namespace structured_headers
} // namespace quiche