about summary refs log tree commit diff
path: root/absl
diff options
context:
space:
mode:
authorAbseil Team <absl-team@google.com>2017-12-13T20·02-0800
committerTitus Winters <titus@google.com>2017-12-14T14·04-0500
commit720c017e30339fd1786ce4aac68bc8559736e53f (patch)
treee1ee954f7311f39125b93c91303828e27fc5e4cf /absl
parent5fe41affbaab5b9ad4876a6295c78f21a86d862d (diff)
Changes imported from Abseil "staging" branch:
  - a42e9b454ca8be7d021789cdb9bcada07d3e2d3e Merge pull request #57. by Derek Mauro <dmauro@google.com>
  - b1e03838f059c034a6489501804d516326246042 Move the long ostream tests into a separate source file u... by Alex Strelnikov <strel@google.com>
  - 7c56b7dbb05faa7e8653632e00be470331d79cb9 Return reference from absl::InlinedVector::emplace_back(). by Abseil Team <absl-team@google.com>
  - 85b070822b62688ff348d9ad9cc9e230a851f617 Treat \u or \U followed by Unicode surrogate character as... by Abseil Team <absl-team@google.com>

GitOrigin-RevId: a42e9b454ca8be7d021789cdb9bcada07d3e2d3e
Change-Id: I7d8fb68ffd7eb4e9e737f21fbed6d56b71985f94
Diffstat (limited to 'absl')
-rw-r--r--absl/base/config.h2
-rw-r--r--absl/container/inlined_vector.h19
-rw-r--r--absl/container/inlined_vector_test.cc13
-rw-r--r--absl/debugging/internal/stacktrace_config.h2
-rw-r--r--absl/debugging/internal/stacktrace_powerpc-inl.inc2
-rw-r--r--absl/numeric/BUILD.bazel2
-rw-r--r--absl/numeric/int128_stream_test.cc666
-rw-r--r--absl/numeric/int128_test.cc23
-rw-r--r--absl/numeric/int128_test_unsigned_ostream_cases.inc880
-rw-r--r--absl/strings/escaping.cc17
-rw-r--r--absl/strings/escaping_test.cc13
11 files changed, 720 insertions, 919 deletions
diff --git a/absl/base/config.h b/absl/base/config.h
index fc48be0b8fc1..5802b653baff 100644
--- a/absl/base/config.h
+++ b/absl/base/config.h
@@ -254,7 +254,7 @@
 // POSIX.1-2001.
 #ifdef ABSL_HAVE_MMAP
 #error ABSL_HAVE_MMAP cannot be directly set
-#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
+#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) ||   \
     defined(__ros__) || defined(__native_client__) || defined(__asmjs__) || \
     defined(__Fuchsia__)
 #define ABSL_HAVE_MMAP 1
diff --git a/absl/container/inlined_vector.h b/absl/container/inlined_vector.h
index e0bb900cbb66..4bf9c18adec4 100644
--- a/absl/container/inlined_vector.h
+++ b/absl/container/inlined_vector.h
@@ -365,13 +365,14 @@ class InlinedVector {
   // InlinedVector::emplace_back()
   //
   // Constructs and appends an object to the inlined vector.
+  //
+  // Returns a reference to the inserted element.
   template <typename... Args>
-  void emplace_back(Args&&... args) {
+  value_type& emplace_back(Args&&... args) {
     size_type s = size();
     assert(s <= capacity());
     if (ABSL_PREDICT_FALSE(s == capacity())) {
-      GrowAndEmplaceBack(std::forward<Args>(args)...);
-      return;
+      return GrowAndEmplaceBack(std::forward<Args>(args)...);
     }
     assert(s < capacity());
 
@@ -383,7 +384,7 @@ class InlinedVector {
       tag().set_inline_size(s + 1);
       space = inlined_space();
     }
-    Construct(space + s, std::forward<Args>(args)...);
+    return Construct(space + s, std::forward<Args>(args)...);
   }
 
   // InlinedVector::push_back()
@@ -703,26 +704,30 @@ class InlinedVector {
   }
 
   template <typename... Args>
-  void GrowAndEmplaceBack(Args&&... args) {
+  value_type& GrowAndEmplaceBack(Args&&... args) {
     assert(size() == capacity());
     const size_type s = size();
 
     Allocation new_allocation(allocator(), 2 * capacity());
 
-    Construct(new_allocation.buffer() + s, std::forward<Args>(args)...);
+    value_type& new_element =
+        Construct(new_allocation.buffer() + s, std::forward<Args>(args)...);
     UninitializedCopy(std::make_move_iterator(data()),
                       std::make_move_iterator(data() + s),
                       new_allocation.buffer());
 
     ResetAllocation(new_allocation, s + 1);
+
+    return new_element;
   }
 
   void InitAssign(size_type n);
   void InitAssign(size_type n, const value_type& t);
 
   template <typename... Args>
-  void Construct(pointer p, Args&&... args) {
+  value_type& Construct(pointer p, Args&&... args) {
     AllocatorTraits::construct(allocator(), p, std::forward<Args>(args)...);
+    return *p;
   }
 
   template <typename Iter>
diff --git a/absl/container/inlined_vector_test.cc b/absl/container/inlined_vector_test.cc
index 055bca983cac..8527ba1aa008 100644
--- a/absl/container/inlined_vector_test.cc
+++ b/absl/container/inlined_vector_test.cc
@@ -393,6 +393,19 @@ TEST(InlinedVectorTest, Noexcept) {
                 absl::InlinedVector<MoveCanThrow, 2>>::value));
 }
 
+TEST(InlinedVectorTest, EmplaceBack) {
+  absl::InlinedVector<std::pair<std::string, int>, 1> v;
+
+  auto& inlined_element = v.emplace_back("answer", 42);
+  EXPECT_EQ(&inlined_element, &v[0]);
+  EXPECT_EQ(inlined_element.first, "answer");
+  EXPECT_EQ(inlined_element.second, 42);
+
+  auto& allocated_element = v.emplace_back("taxicab", 1729);
+  EXPECT_EQ(&allocated_element, &v[1]);
+  EXPECT_EQ(allocated_element.first, "taxicab");
+  EXPECT_EQ(allocated_element.second, 1729);
+}
 
 TEST(IntVec, Insert) {
   for (int len = 0; len < 20; len++) {
diff --git a/absl/debugging/internal/stacktrace_config.h b/absl/debugging/internal/stacktrace_config.h
index 9bd2a2ab9e72..ed82722b91a6 100644
--- a/absl/debugging/internal/stacktrace_config.h
+++ b/absl/debugging/internal/stacktrace_config.h
@@ -26,7 +26,7 @@
 #error ABSL_STACKTRACE_INL_HEADER cannot be directly set
 #elif defined(__native_client__) || defined(__APPLE__) || \
     defined(__FreeBSD__) || defined(__ANDROID__) || defined(__myriad2__) || \
-    defined(asmjs__) || defined(__Fuchsia__)
+    defined(__asmjs__) || defined(__Fuchsia__)
 #define ABSL_STACKTRACE_INL_HEADER \
     "absl/debugging/internal/stacktrace_unimplemented-inl.inc"
 
diff --git a/absl/debugging/internal/stacktrace_powerpc-inl.inc b/absl/debugging/internal/stacktrace_powerpc-inl.inc
index 60a889a9253b..9193e2dba60e 100644
--- a/absl/debugging/internal/stacktrace_powerpc-inl.inc
+++ b/absl/debugging/internal/stacktrace_powerpc-inl.inc
@@ -48,7 +48,7 @@ static inline void *StacktracePowerPCGetLR(void **sp) {
 #elif defined(_CALL_SYSV)
   return *(sp+1);
 #elif defined(__APPLE__) || defined(__FreeBSD__) || \
-  (defined(__linux__) && defined(__PPC64__))
+    (defined(__linux__) && defined(__PPC64__))
   // This check is in case the compiler doesn't define _CALL_AIX/etc.
   return *(sp+2);
 #elif defined(__linux)
diff --git a/absl/numeric/BUILD.bazel b/absl/numeric/BUILD.bazel
index 26d04774a23c..4a24a879c0f6 100644
--- a/absl/numeric/BUILD.bazel
+++ b/absl/numeric/BUILD.bazel
@@ -27,8 +27,8 @@ cc_test(
     name = "int128_test",
     size = "small",
     srcs = [
+        "int128_stream_test.cc",
         "int128_test.cc",
-        "int128_test_unsigned_ostream_cases.inc",
     ],
     copts = ABSL_TEST_COPTS,
     deps = [
diff --git a/absl/numeric/int128_stream_test.cc b/absl/numeric/int128_stream_test.cc
new file mode 100644
index 000000000000..09efaad4e7fb
--- /dev/null
+++ b/absl/numeric/int128_stream_test.cc
@@ -0,0 +1,666 @@
+// Copyright 2017 The Abseil Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "absl/numeric/int128.h"
+
+#include <sstream>
+#include <string>
+
+#include "gtest/gtest.h"
+
+namespace {
+
+struct Uint128TestCase {
+  absl::uint128 value;
+  std::ios_base::fmtflags flags;
+  std::streamsize width;
+  const char* expected;
+};
+
+constexpr char kFill = '_';
+
+std::string StreamFormatToString(std::ios_base::fmtflags flags,
+                                 std::streamsize width) {
+  std::vector<const char*> flagstr;
+  switch (flags & std::ios::basefield) {
+    case std::ios::dec:
+      flagstr.push_back("std::ios::dec");
+      break;
+    case std::ios::oct:
+      flagstr.push_back("std::ios::oct");
+      break;
+    case std::ios::hex:
+      flagstr.push_back("std::ios::hex");
+      break;
+    default:  // basefield not specified
+      break;
+  }
+  switch (flags & std::ios::adjustfield) {
+    case std::ios::left:
+      flagstr.push_back("std::ios::left");
+      break;
+    case std::ios::internal:
+      flagstr.push_back("std::ios::internal");
+      break;
+    case std::ios::right:
+      flagstr.push_back("std::ios::right");
+      break;
+    default:  // adjustfield not specified
+      break;
+  }
+  if (flags & std::ios::uppercase) flagstr.push_back("std::ios::uppercase");
+  if (flags & std::ios::showbase) flagstr.push_back("std::ios::showbase");
+  if (flags & std::ios::showpos) flagstr.push_back("std::ios::showpos");
+
+  std::ostringstream msg;
+  msg << "\n  StreamFormatToString(test_case.flags, test_case.width)\n    "
+         "flags: ";
+  if (!flagstr.empty()) {
+    for (size_t i = 0; i < flagstr.size() - 1; ++i) msg << flagstr[i] << " | ";
+    msg << flagstr.back();
+  } else {
+    msg << "(default)";
+  }
+  msg << "\n    width: " << width << "\n    fill: '" << kFill << "'";
+  return msg.str();
+}
+
+void CheckUint128Case(const Uint128TestCase& test_case) {
+  std::ostringstream os;
+  os.flags(test_case.flags);
+  os.width(test_case.width);
+  os.fill(kFill);
+  os << test_case.value;
+  SCOPED_TRACE(StreamFormatToString(test_case.flags, test_case.width));
+  EXPECT_EQ(test_case.expected, os.str());
+}
+
+constexpr std::ios::fmtflags kDec = std::ios::dec;
+constexpr std::ios::fmtflags kOct = std::ios::oct;
+constexpr std::ios::fmtflags kHex = std::ios::hex;
+constexpr std::ios::fmtflags kLeft = std::ios::left;
+constexpr std::ios::fmtflags kInt = std::ios::internal;
+constexpr std::ios::fmtflags kRight = std::ios::right;
+constexpr std::ios::fmtflags kUpper = std::ios::uppercase;
+constexpr std::ios::fmtflags kBase = std::ios::showbase;
+constexpr std::ios::fmtflags kPos = std::ios::showpos;
+
+TEST(Uint128, OStreamValueTest) {
+  CheckUint128Case({1, kDec, /*width = */ 0, "1"});
+  CheckUint128Case({1, kOct, /*width = */ 0, "1"});
+  CheckUint128Case({1, kHex, /*width = */ 0, "1"});
+  CheckUint128Case({9, kDec, /*width = */ 0, "9"});
+  CheckUint128Case({9, kOct, /*width = */ 0, "11"});
+  CheckUint128Case({9, kHex, /*width = */ 0, "9"});
+  CheckUint128Case({12345, kDec, /*width = */ 0, "12345"});
+  CheckUint128Case({12345, kOct, /*width = */ 0, "30071"});
+  CheckUint128Case({12345, kHex, /*width = */ 0, "3039"});
+  CheckUint128Case(
+      {0x8000000000000000, kDec, /*width = */ 0, "9223372036854775808"});
+  CheckUint128Case(
+      {0x8000000000000000, kOct, /*width = */ 0, "1000000000000000000000"});
+  CheckUint128Case(
+      {0x8000000000000000, kHex, /*width = */ 0, "8000000000000000"});
+  CheckUint128Case({std::numeric_limits<uint64_t>::max(), kDec,
+                    /*width = */ 0, "18446744073709551615"});
+  CheckUint128Case({std::numeric_limits<uint64_t>::max(), kOct,
+                    /*width = */ 0, "1777777777777777777777"});
+  CheckUint128Case({std::numeric_limits<uint64_t>::max(), kHex,
+                    /*width = */ 0, "ffffffffffffffff"});
+  CheckUint128Case(
+      {absl::MakeUint128(1, 0), kDec, /*width = */ 0, "18446744073709551616"});
+  CheckUint128Case({absl::MakeUint128(1, 0), kOct, /*width = */ 0,
+                    "2000000000000000000000"});
+  CheckUint128Case(
+      {absl::MakeUint128(1, 0), kHex, /*width = */ 0, "10000000000000000"});
+  CheckUint128Case({absl::MakeUint128(0x8000000000000000, 0), kDec,
+                    /*width = */ 0, "170141183460469231731687303715884105728"});
+  CheckUint128Case({absl::MakeUint128(0x8000000000000000, 0), kOct,
+                    /*width = */ 0,
+                    "2000000000000000000000000000000000000000000"});
+  CheckUint128Case({absl::MakeUint128(0x8000000000000000, 0), kHex,
+                    /*width = */ 0, "80000000000000000000000000000000"});
+  CheckUint128Case({absl::kuint128max, kDec, /*width = */ 0,
+                    "340282366920938463463374607431768211455"});
+  CheckUint128Case({absl::kuint128max, kOct, /*width = */ 0,
+                    "3777777777777777777777777777777777777777777"});
+  CheckUint128Case({absl::kuint128max, kHex, /*width = */ 0,
+                    "ffffffffffffffffffffffffffffffff"});
+}
+
+std::vector<Uint128TestCase> GetUint128FormatCases();
+
+TEST(Uint128, OStreamFormatTest) {
+  for (const Uint128TestCase& test_case : GetUint128FormatCases()) {
+    CheckUint128Case(test_case);
+  }
+}
+
+std::vector<Uint128TestCase> GetUint128FormatCases() {
+  return {
+      {0, std::ios_base::fmtflags(), /*width = */ 0, "0"},
+      {0, std::ios_base::fmtflags(), /*width = */ 6, "_____0"},
+      {0, kPos, /*width = */ 0, "0"},
+      {0, kPos, /*width = */ 6, "_____0"},
+      {0, kBase, /*width = */ 0, "0"},
+      {0, kBase, /*width = */ 6, "_____0"},
+      {0, kBase | kPos, /*width = */ 0, "0"},
+      {0, kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kUpper, /*width = */ 0, "0"},
+      {0, kUpper, /*width = */ 6, "_____0"},
+      {0, kUpper | kPos, /*width = */ 0, "0"},
+      {0, kUpper | kPos, /*width = */ 6, "_____0"},
+      {0, kUpper | kBase, /*width = */ 0, "0"},
+      {0, kUpper | kBase, /*width = */ 6, "_____0"},
+      {0, kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kUpper | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kLeft, /*width = */ 0, "0"},
+      {0, kLeft, /*width = */ 6, "0_____"},
+      {0, kLeft | kPos, /*width = */ 0, "0"},
+      {0, kLeft | kPos, /*width = */ 6, "0_____"},
+      {0, kLeft | kBase, /*width = */ 0, "0"},
+      {0, kLeft | kBase, /*width = */ 6, "0_____"},
+      {0, kLeft | kBase | kPos, /*width = */ 0, "0"},
+      {0, kLeft | kBase | kPos, /*width = */ 6, "0_____"},
+      {0, kLeft | kUpper, /*width = */ 0, "0"},
+      {0, kLeft | kUpper, /*width = */ 6, "0_____"},
+      {0, kLeft | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kLeft | kUpper | kPos, /*width = */ 6, "0_____"},
+      {0, kLeft | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kLeft | kUpper | kBase, /*width = */ 6, "0_____"},
+      {0, kLeft | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kLeft | kUpper | kBase | kPos, /*width = */ 6, "0_____"},
+      {0, kInt, /*width = */ 0, "0"},
+      {0, kInt, /*width = */ 6, "_____0"},
+      {0, kInt | kPos, /*width = */ 0, "0"},
+      {0, kInt | kPos, /*width = */ 6, "_____0"},
+      {0, kInt | kBase, /*width = */ 0, "0"},
+      {0, kInt | kBase, /*width = */ 6, "_____0"},
+      {0, kInt | kBase | kPos, /*width = */ 0, "0"},
+      {0, kInt | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kInt | kUpper, /*width = */ 0, "0"},
+      {0, kInt | kUpper, /*width = */ 6, "_____0"},
+      {0, kInt | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kInt | kUpper | kPos, /*width = */ 6, "_____0"},
+      {0, kInt | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kInt | kUpper | kBase, /*width = */ 6, "_____0"},
+      {0, kInt | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kInt | kUpper | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kRight, /*width = */ 0, "0"},
+      {0, kRight, /*width = */ 6, "_____0"},
+      {0, kRight | kPos, /*width = */ 0, "0"},
+      {0, kRight | kPos, /*width = */ 6, "_____0"},
+      {0, kRight | kBase, /*width = */ 0, "0"},
+      {0, kRight | kBase, /*width = */ 6, "_____0"},
+      {0, kRight | kBase | kPos, /*width = */ 0, "0"},
+      {0, kRight | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kRight | kUpper, /*width = */ 0, "0"},
+      {0, kRight | kUpper, /*width = */ 6, "_____0"},
+      {0, kRight | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kRight | kUpper | kPos, /*width = */ 6, "_____0"},
+      {0, kRight | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kRight | kUpper | kBase, /*width = */ 6, "_____0"},
+      {0, kRight | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kRight | kUpper | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kDec, /*width = */ 0, "0"},
+      {0, kDec, /*width = */ 6, "_____0"},
+      {0, kDec | kPos, /*width = */ 0, "0"},
+      {0, kDec | kPos, /*width = */ 6, "_____0"},
+      {0, kDec | kBase, /*width = */ 0, "0"},
+      {0, kDec | kBase, /*width = */ 6, "_____0"},
+      {0, kDec | kBase | kPos, /*width = */ 0, "0"},
+      {0, kDec | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kDec | kUpper, /*width = */ 0, "0"},
+      {0, kDec | kUpper, /*width = */ 6, "_____0"},
+      {0, kDec | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kDec | kUpper | kPos, /*width = */ 6, "_____0"},
+      {0, kDec | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kDec | kUpper | kBase, /*width = */ 6, "_____0"},
+      {0, kDec | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kDec | kUpper | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kDec | kLeft, /*width = */ 0, "0"},
+      {0, kDec | kLeft, /*width = */ 6, "0_____"},
+      {0, kDec | kLeft | kPos, /*width = */ 0, "0"},
+      {0, kDec | kLeft | kPos, /*width = */ 6, "0_____"},
+      {0, kDec | kLeft | kBase, /*width = */ 0, "0"},
+      {0, kDec | kLeft | kBase, /*width = */ 6, "0_____"},
+      {0, kDec | kLeft | kBase | kPos, /*width = */ 0, "0"},
+      {0, kDec | kLeft | kBase | kPos, /*width = */ 6, "0_____"},
+      {0, kDec | kLeft | kUpper, /*width = */ 0, "0"},
+      {0, kDec | kLeft | kUpper, /*width = */ 6, "0_____"},
+      {0, kDec | kLeft | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kDec | kLeft | kUpper | kPos, /*width = */ 6, "0_____"},
+      {0, kDec | kLeft | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kDec | kLeft | kUpper | kBase, /*width = */ 6, "0_____"},
+      {0, kDec | kLeft | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kDec | kLeft | kUpper | kBase | kPos, /*width = */ 6, "0_____"},
+      {0, kDec | kInt, /*width = */ 0, "0"},
+      {0, kDec | kInt, /*width = */ 6, "_____0"},
+      {0, kDec | kInt | kPos, /*width = */ 0, "0"},
+      {0, kDec | kInt | kPos, /*width = */ 6, "_____0"},
+      {0, kDec | kInt | kBase, /*width = */ 0, "0"},
+      {0, kDec | kInt | kBase, /*width = */ 6, "_____0"},
+      {0, kDec | kInt | kBase | kPos, /*width = */ 0, "0"},
+      {0, kDec | kInt | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kDec | kInt | kUpper, /*width = */ 0, "0"},
+      {0, kDec | kInt | kUpper, /*width = */ 6, "_____0"},
+      {0, kDec | kInt | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kDec | kInt | kUpper | kPos, /*width = */ 6, "_____0"},
+      {0, kDec | kInt | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kDec | kInt | kUpper | kBase, /*width = */ 6, "_____0"},
+      {0, kDec | kInt | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kDec | kInt | kUpper | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kDec | kRight, /*width = */ 0, "0"},
+      {0, kDec | kRight, /*width = */ 6, "_____0"},
+      {0, kDec | kRight | kPos, /*width = */ 0, "0"},
+      {0, kDec | kRight | kPos, /*width = */ 6, "_____0"},
+      {0, kDec | kRight | kBase, /*width = */ 0, "0"},
+      {0, kDec | kRight | kBase, /*width = */ 6, "_____0"},
+      {0, kDec | kRight | kBase | kPos, /*width = */ 0, "0"},
+      {0, kDec | kRight | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kDec | kRight | kUpper, /*width = */ 0, "0"},
+      {0, kDec | kRight | kUpper, /*width = */ 6, "_____0"},
+      {0, kDec | kRight | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kDec | kRight | kUpper | kPos, /*width = */ 6, "_____0"},
+      {0, kDec | kRight | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kDec | kRight | kUpper | kBase, /*width = */ 6, "_____0"},
+      {0, kDec | kRight | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kDec | kRight | kUpper | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kOct, /*width = */ 0, "0"},
+      {0, kOct, /*width = */ 6, "_____0"},
+      {0, kOct | kPos, /*width = */ 0, "0"},
+      {0, kOct | kPos, /*width = */ 6, "_____0"},
+      {0, kOct | kBase, /*width = */ 0, "0"},
+      {0, kOct | kBase, /*width = */ 6, "_____0"},
+      {0, kOct | kBase | kPos, /*width = */ 0, "0"},
+      {0, kOct | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kOct | kUpper, /*width = */ 0, "0"},
+      {0, kOct | kUpper, /*width = */ 6, "_____0"},
+      {0, kOct | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kOct | kUpper | kPos, /*width = */ 6, "_____0"},
+      {0, kOct | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kOct | kUpper | kBase, /*width = */ 6, "_____0"},
+      {0, kOct | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kOct | kUpper | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kOct | kLeft, /*width = */ 0, "0"},
+      {0, kOct | kLeft, /*width = */ 6, "0_____"},
+      {0, kOct | kLeft | kPos, /*width = */ 0, "0"},
+      {0, kOct | kLeft | kPos, /*width = */ 6, "0_____"},
+      {0, kOct | kLeft | kBase, /*width = */ 0, "0"},
+      {0, kOct | kLeft | kBase, /*width = */ 6, "0_____"},
+      {0, kOct | kLeft | kBase | kPos, /*width = */ 0, "0"},
+      {0, kOct | kLeft | kBase | kPos, /*width = */ 6, "0_____"},
+      {0, kOct | kLeft | kUpper, /*width = */ 0, "0"},
+      {0, kOct | kLeft | kUpper, /*width = */ 6, "0_____"},
+      {0, kOct | kLeft | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kOct | kLeft | kUpper | kPos, /*width = */ 6, "0_____"},
+      {0, kOct | kLeft | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kOct | kLeft | kUpper | kBase, /*width = */ 6, "0_____"},
+      {0, kOct | kLeft | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kOct | kLeft | kUpper | kBase | kPos, /*width = */ 6, "0_____"},
+      {0, kOct | kInt, /*width = */ 0, "0"},
+      {0, kOct | kInt, /*width = */ 6, "_____0"},
+      {0, kOct | kInt | kPos, /*width = */ 0, "0"},
+      {0, kOct | kInt | kPos, /*width = */ 6, "_____0"},
+      {0, kOct | kInt | kBase, /*width = */ 0, "0"},
+      {0, kOct | kInt | kBase, /*width = */ 6, "_____0"},
+      {0, kOct | kInt | kBase | kPos, /*width = */ 0, "0"},
+      {0, kOct | kInt | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kOct | kInt | kUpper, /*width = */ 0, "0"},
+      {0, kOct | kInt | kUpper, /*width = */ 6, "_____0"},
+      {0, kOct | kInt | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kOct | kInt | kUpper | kPos, /*width = */ 6, "_____0"},
+      {0, kOct | kInt | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kOct | kInt | kUpper | kBase, /*width = */ 6, "_____0"},
+      {0, kOct | kInt | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kOct | kInt | kUpper | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kOct | kRight, /*width = */ 0, "0"},
+      {0, kOct | kRight, /*width = */ 6, "_____0"},
+      {0, kOct | kRight | kPos, /*width = */ 0, "0"},
+      {0, kOct | kRight | kPos, /*width = */ 6, "_____0"},
+      {0, kOct | kRight | kBase, /*width = */ 0, "0"},
+      {0, kOct | kRight | kBase, /*width = */ 6, "_____0"},
+      {0, kOct | kRight | kBase | kPos, /*width = */ 0, "0"},
+      {0, kOct | kRight | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kOct | kRight | kUpper, /*width = */ 0, "0"},
+      {0, kOct | kRight | kUpper, /*width = */ 6, "_____0"},
+      {0, kOct | kRight | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kOct | kRight | kUpper | kPos, /*width = */ 6, "_____0"},
+      {0, kOct | kRight | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kOct | kRight | kUpper | kBase, /*width = */ 6, "_____0"},
+      {0, kOct | kRight | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kOct | kRight | kUpper | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kHex, /*width = */ 0, "0"},
+      {0, kHex, /*width = */ 6, "_____0"},
+      {0, kHex | kPos, /*width = */ 0, "0"},
+      {0, kHex | kPos, /*width = */ 6, "_____0"},
+      {0, kHex | kBase, /*width = */ 0, "0"},
+      {0, kHex | kBase, /*width = */ 6, "_____0"},
+      {0, kHex | kBase | kPos, /*width = */ 0, "0"},
+      {0, kHex | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kHex | kUpper, /*width = */ 0, "0"},
+      {0, kHex | kUpper, /*width = */ 6, "_____0"},
+      {0, kHex | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kHex | kUpper | kPos, /*width = */ 6, "_____0"},
+      {0, kHex | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kHex | kUpper | kBase, /*width = */ 6, "_____0"},
+      {0, kHex | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kHex | kUpper | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kHex | kLeft, /*width = */ 0, "0"},
+      {0, kHex | kLeft, /*width = */ 6, "0_____"},
+      {0, kHex | kLeft | kPos, /*width = */ 0, "0"},
+      {0, kHex | kLeft | kPos, /*width = */ 6, "0_____"},
+      {0, kHex | kLeft | kBase, /*width = */ 0, "0"},
+      {0, kHex | kLeft | kBase, /*width = */ 6, "0_____"},
+      {0, kHex | kLeft | kBase | kPos, /*width = */ 0, "0"},
+      {0, kHex | kLeft | kBase | kPos, /*width = */ 6, "0_____"},
+      {0, kHex | kLeft | kUpper, /*width = */ 0, "0"},
+      {0, kHex | kLeft | kUpper, /*width = */ 6, "0_____"},
+      {0, kHex | kLeft | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kHex | kLeft | kUpper | kPos, /*width = */ 6, "0_____"},
+      {0, kHex | kLeft | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kHex | kLeft | kUpper | kBase, /*width = */ 6, "0_____"},
+      {0, kHex | kLeft | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kHex | kLeft | kUpper | kBase | kPos, /*width = */ 6, "0_____"},
+      {0, kHex | kInt, /*width = */ 0, "0"},
+      {0, kHex | kInt, /*width = */ 6, "_____0"},
+      {0, kHex | kInt | kPos, /*width = */ 0, "0"},
+      {0, kHex | kInt | kPos, /*width = */ 6, "_____0"},
+      {0, kHex | kInt | kBase, /*width = */ 0, "0"},
+      {0, kHex | kInt | kBase, /*width = */ 6, "_____0"},
+      {0, kHex | kInt | kBase | kPos, /*width = */ 0, "0"},
+      {0, kHex | kInt | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kHex | kInt | kUpper, /*width = */ 0, "0"},
+      {0, kHex | kInt | kUpper, /*width = */ 6, "_____0"},
+      {0, kHex | kInt | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kHex | kInt | kUpper | kPos, /*width = */ 6, "_____0"},
+      {0, kHex | kInt | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kHex | kInt | kUpper | kBase, /*width = */ 6, "_____0"},
+      {0, kHex | kInt | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kHex | kInt | kUpper | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kHex | kRight, /*width = */ 0, "0"},
+      {0, kHex | kRight, /*width = */ 6, "_____0"},
+      {0, kHex | kRight | kPos, /*width = */ 0, "0"},
+      {0, kHex | kRight | kPos, /*width = */ 6, "_____0"},
+      {0, kHex | kRight | kBase, /*width = */ 0, "0"},
+      {0, kHex | kRight | kBase, /*width = */ 6, "_____0"},
+      {0, kHex | kRight | kBase | kPos, /*width = */ 0, "0"},
+      {0, kHex | kRight | kBase | kPos, /*width = */ 6, "_____0"},
+      {0, kHex | kRight | kUpper, /*width = */ 0, "0"},
+      {0, kHex | kRight | kUpper, /*width = */ 6, "_____0"},
+      {0, kHex | kRight | kUpper | kPos, /*width = */ 0, "0"},
+      {0, kHex | kRight | kUpper | kPos, /*width = */ 6, "_____0"},
+      {0, kHex | kRight | kUpper | kBase, /*width = */ 0, "0"},
+      {0, kHex | kRight | kUpper | kBase, /*width = */ 6, "_____0"},
+      {0, kHex | kRight | kUpper | kBase | kPos, /*width = */ 0, "0"},
+      {0, kHex | kRight | kUpper | kBase | kPos, /*width = */ 6, "_____0"},
+      {37, std::ios_base::fmtflags(), /*width = */ 0, "37"},
+      {37, std::ios_base::fmtflags(), /*width = */ 6, "____37"},
+      {37, kPos, /*width = */ 0, "37"},
+      {37, kPos, /*width = */ 6, "____37"},
+      {37, kBase, /*width = */ 0, "37"},
+      {37, kBase, /*width = */ 6, "____37"},
+      {37, kBase | kPos, /*width = */ 0, "37"},
+      {37, kBase | kPos, /*width = */ 6, "____37"},
+      {37, kUpper, /*width = */ 0, "37"},
+      {37, kUpper, /*width = */ 6, "____37"},
+      {37, kUpper | kPos, /*width = */ 0, "37"},
+      {37, kUpper | kPos, /*width = */ 6, "____37"},
+      {37, kUpper | kBase, /*width = */ 0, "37"},
+      {37, kUpper | kBase, /*width = */ 6, "____37"},
+      {37, kUpper | kBase | kPos, /*width = */ 0, "37"},
+      {37, kUpper | kBase | kPos, /*width = */ 6, "____37"},
+      {37, kLeft, /*width = */ 0, "37"},
+      {37, kLeft, /*width = */ 6, "37____"},
+      {37, kLeft | kPos, /*width = */ 0, "37"},
+      {37, kLeft | kPos, /*width = */ 6, "37____"},
+      {37, kLeft | kBase, /*width = */ 0, "37"},
+      {37, kLeft | kBase, /*width = */ 6, "37____"},
+      {37, kLeft | kBase | kPos, /*width = */ 0, "37"},
+      {37, kLeft | kBase | kPos, /*width = */ 6, "37____"},
+      {37, kLeft | kUpper, /*width = */ 0, "37"},
+      {37, kLeft | kUpper, /*width = */ 6, "37____"},
+      {37, kLeft | kUpper | kPos, /*width = */ 0, "37"},
+      {37, kLeft | kUpper | kPos, /*width = */ 6, "37____"},
+      {37, kLeft | kUpper | kBase, /*width = */ 0, "37"},
+      {37, kLeft | kUpper | kBase, /*width = */ 6, "37____"},
+      {37, kLeft | kUpper | kBase | kPos, /*width = */ 0, "37"},
+      {37, kLeft | kUpper | kBase | kPos, /*width = */ 6, "37____"},
+      {37, kInt, /*width = */ 0, "37"},
+      {37, kInt, /*width = */ 6, "____37"},
+      {37, kInt | kPos, /*width = */ 0, "37"},
+      {37, kInt | kPos, /*width = */ 6, "____37"},
+      {37, kInt | kBase, /*width = */ 0, "37"},
+      {37, kInt | kBase, /*width = */ 6, "____37"},
+      {37, kInt | kBase | kPos, /*width = */ 0, "37"},
+      {37, kInt | kBase | kPos, /*width = */ 6, "____37"},
+      {37, kInt | kUpper, /*width = */ 0, "37"},
+      {37, kInt | kUpper, /*width = */ 6, "____37"},
+      {37, kInt | kUpper | kPos, /*width = */ 0, "37"},
+      {37, kInt | kUpper | kPos, /*width = */ 6, "____37"},
+      {37, kInt | kUpper | kBase, /*width = */ 0, "37"},
+      {37, kInt | kUpper | kBase, /*width = */ 6, "____37"},
+      {37, kInt | kUpper | kBase | kPos, /*width = */ 0, "37"},
+      {37, kInt | kUpper | kBase | kPos, /*width = */ 6, "____37"},
+      {37, kRight, /*width = */ 0, "37"},
+      {37, kRight, /*width = */ 6, "____37"},
+      {37, kRight | kPos, /*width = */ 0, "37"},
+      {37, kRight | kPos, /*width = */ 6, "____37"},
+      {37, kRight | kBase, /*width = */ 0, "37"},
+      {37, kRight | kBase, /*width = */ 6, "____37"},
+      {37, kRight | kBase | kPos, /*width = */ 0, "37"},
+      {37, kRight | kBase | kPos, /*width = */ 6, "____37"},
+      {37, kRight | kUpper, /*width = */ 0, "37"},
+      {37, kRight | kUpper, /*width = */ 6, "____37"},
+      {37, kRight | kUpper | kPos, /*width = */ 0, "37"},
+      {37, kRight | kUpper | kPos, /*width = */ 6, "____37"},
+      {37, kRight | kUpper | kBase, /*width = */ 0, "37"},
+      {37, kRight | kUpper | kBase, /*width = */ 6, "____37"},
+      {37, kRight | kUpper | kBase | kPos, /*width = */ 0, "37"},
+      {37, kRight | kUpper | kBase | kPos, /*width = */ 6, "____37"},
+      {37, kDec, /*width = */ 0, "37"},
+      {37, kDec, /*width = */ 6, "____37"},
+      {37, kDec | kPos, /*width = */ 0, "37"},
+      {37, kDec | kPos, /*width = */ 6, "____37"},
+      {37, kDec | kBase, /*width = */ 0, "37"},
+      {37, kDec | kBase, /*width = */ 6, "____37"},
+      {37, kDec | kBase | kPos, /*width = */ 0, "37"},
+      {37, kDec | kBase | kPos, /*width = */ 6, "____37"},
+      {37, kDec | kUpper, /*width = */ 0, "37"},
+      {37, kDec | kUpper, /*width = */ 6, "____37"},
+      {37, kDec | kUpper | kPos, /*width = */ 0, "37"},
+      {37, kDec | kUpper | kPos, /*width = */ 6, "____37"},
+      {37, kDec | kUpper | kBase, /*width = */ 0, "37"},
+      {37, kDec | kUpper | kBase, /*width = */ 6, "____37"},
+      {37, kDec | kUpper | kBase | kPos, /*width = */ 0, "37"},
+      {37, kDec | kUpper | kBase | kPos, /*width = */ 6, "____37"},
+      {37, kDec | kLeft, /*width = */ 0, "37"},
+      {37, kDec | kLeft, /*width = */ 6, "37____"},
+      {37, kDec | kLeft | kPos, /*width = */ 0, "37"},
+      {37, kDec | kLeft | kPos, /*width = */ 6, "37____"},
+      {37, kDec | kLeft | kBase, /*width = */ 0, "37"},
+      {37, kDec | kLeft | kBase, /*width = */ 6, "37____"},
+      {37, kDec | kLeft | kBase | kPos, /*width = */ 0, "37"},
+      {37, kDec | kLeft | kBase | kPos, /*width = */ 6, "37____"},
+      {37, kDec | kLeft | kUpper, /*width = */ 0, "37"},
+      {37, kDec | kLeft | kUpper, /*width = */ 6, "37____"},
+      {37, kDec | kLeft | kUpper | kPos, /*width = */ 0, "37"},
+      {37, kDec | kLeft | kUpper | kPos, /*width = */ 6, "37____"},
+      {37, kDec | kLeft | kUpper | kBase, /*width = */ 0, "37"},
+      {37, kDec | kLeft | kUpper | kBase, /*width = */ 6, "37____"},
+      {37, kDec | kLeft | kUpper | kBase | kPos, /*width = */ 0, "37"},
+      {37, kDec | kLeft | kUpper | kBase | kPos, /*width = */ 6, "37____"},
+      {37, kDec | kInt, /*width = */ 0, "37"},
+      {37, kDec | kInt, /*width = */ 6, "____37"},
+      {37, kDec | kInt | kPos, /*width = */ 0, "37"},
+      {37, kDec | kInt | kPos, /*width = */ 6, "____37"},
+      {37, kDec | kInt | kBase, /*width = */ 0, "37"},
+      {37, kDec | kInt | kBase, /*width = */ 6, "____37"},
+      {37, kDec | kInt | kBase | kPos, /*width = */ 0, "37"},
+      {37, kDec | kInt | kBase | kPos, /*width = */ 6, "____37"},
+      {37, kDec | kInt | kUpper, /*width = */ 0, "37"},
+      {37, kDec | kInt | kUpper, /*width = */ 6, "____37"},
+      {37, kDec | kInt | kUpper | kPos, /*width = */ 0, "37"},
+      {37, kDec | kInt | kUpper | kPos, /*width = */ 6, "____37"},
+      {37, kDec | kInt | kUpper | kBase, /*width = */ 0, "37"},
+      {37, kDec | kInt | kUpper | kBase, /*width = */ 6, "____37"},
+      {37, kDec | kInt | kUpper | kBase | kPos, /*width = */ 0, "37"},
+      {37, kDec | kInt | kUpper | kBase | kPos, /*width = */ 6, "____37"},
+      {37, kDec | kRight, /*width = */ 0, "37"},
+      {37, kDec | kRight, /*width = */ 6, "____37"},
+      {37, kDec | kRight | kPos, /*width = */ 0, "37"},
+      {37, kDec | kRight | kPos, /*width = */ 6, "____37"},
+      {37, kDec | kRight | kBase, /*width = */ 0, "37"},
+      {37, kDec | kRight | kBase, /*width = */ 6, "____37"},
+      {37, kDec | kRight | kBase | kPos, /*width = */ 0, "37"},
+      {37, kDec | kRight | kBase | kPos, /*width = */ 6, "____37"},
+      {37, kDec | kRight | kUpper, /*width = */ 0, "37"},
+      {37, kDec | kRight | kUpper, /*width = */ 6, "____37"},
+      {37, kDec | kRight | kUpper | kPos, /*width = */ 0, "37"},
+      {37, kDec | kRight | kUpper | kPos, /*width = */ 6, "____37"},
+      {37, kDec | kRight | kUpper | kBase, /*width = */ 0, "37"},
+      {37, kDec | kRight | kUpper | kBase, /*width = */ 6, "____37"},
+      {37, kDec | kRight | kUpper | kBase | kPos, /*width = */ 0, "37"},
+      {37, kDec | kRight | kUpper | kBase | kPos, /*width = */ 6, "____37"},
+      {37, kOct, /*width = */ 0, "45"},
+      {37, kOct, /*width = */ 6, "____45"},
+      {37, kOct | kPos, /*width = */ 0, "45"},
+      {37, kOct | kPos, /*width = */ 6, "____45"},
+      {37, kOct | kBase, /*width = */ 0, "045"},
+      {37, kOct | kBase, /*width = */ 6, "___045"},
+      {37, kOct | kBase | kPos, /*width = */ 0, "045"},
+      {37, kOct | kBase | kPos, /*width = */ 6, "___045"},
+      {37, kOct | kUpper, /*width = */ 0, "45"},
+      {37, kOct | kUpper, /*width = */ 6, "____45"},
+      {37, kOct | kUpper | kPos, /*width = */ 0, "45"},
+      {37, kOct | kUpper | kPos, /*width = */ 6, "____45"},
+      {37, kOct | kUpper | kBase, /*width = */ 0, "045"},
+      {37, kOct | kUpper | kBase, /*width = */ 6, "___045"},
+      {37, kOct | kUpper | kBase | kPos, /*width = */ 0, "045"},
+      {37, kOct | kUpper | kBase | kPos, /*width = */ 6, "___045"},
+      {37, kOct | kLeft, /*width = */ 0, "45"},
+      {37, kOct | kLeft, /*width = */ 6, "45____"},
+      {37, kOct | kLeft | kPos, /*width = */ 0, "45"},
+      {37, kOct | kLeft | kPos, /*width = */ 6, "45____"},
+      {37, kOct | kLeft | kBase, /*width = */ 0, "045"},
+      {37, kOct | kLeft | kBase, /*width = */ 6, "045___"},
+      {37, kOct | kLeft | kBase | kPos, /*width = */ 0, "045"},
+      {37, kOct | kLeft | kBase | kPos, /*width = */ 6, "045___"},
+      {37, kOct | kLeft | kUpper, /*width = */ 0, "45"},
+      {37, kOct | kLeft | kUpper, /*width = */ 6, "45____"},
+      {37, kOct | kLeft | kUpper | kPos, /*width = */ 0, "45"},
+      {37, kOct | kLeft | kUpper | kPos, /*width = */ 6, "45____"},
+      {37, kOct | kLeft | kUpper | kBase, /*width = */ 0, "045"},
+      {37, kOct | kLeft | kUpper | kBase, /*width = */ 6, "045___"},
+      {37, kOct | kLeft | kUpper | kBase | kPos, /*width = */ 0, "045"},
+      {37, kOct | kLeft | kUpper | kBase | kPos, /*width = */ 6, "045___"},
+      {37, kOct | kInt, /*width = */ 0, "45"},
+      {37, kOct | kInt, /*width = */ 6, "____45"},
+      {37, kOct | kInt | kPos, /*width = */ 0, "45"},
+      {37, kOct | kInt | kPos, /*width = */ 6, "____45"},
+      {37, kOct | kInt | kBase, /*width = */ 0, "045"},
+      {37, kOct | kInt | kBase, /*width = */ 6, "___045"},
+      {37, kOct | kInt | kBase | kPos, /*width = */ 0, "045"},
+      {37, kOct | kInt | kBase | kPos, /*width = */ 6, "___045"},
+      {37, kOct | kInt | kUpper, /*width = */ 0, "45"},
+      {37, kOct | kInt | kUpper, /*width = */ 6, "____45"},
+      {37, kOct | kInt | kUpper | kPos, /*width = */ 0, "45"},
+      {37, kOct | kInt | kUpper | kPos, /*width = */ 6, "____45"},
+      {37, kOct | kInt | kUpper | kBase, /*width = */ 0, "045"},
+      {37, kOct | kInt | kUpper | kBase, /*width = */ 6, "___045"},
+      {37, kOct | kInt | kUpper | kBase | kPos, /*width = */ 0, "045"},
+      {37, kOct | kInt | kUpper | kBase | kPos, /*width = */ 6, "___045"},
+      {37, kOct | kRight, /*width = */ 0, "45"},
+      {37, kOct | kRight, /*width = */ 6, "____45"},
+      {37, kOct | kRight | kPos, /*width = */ 0, "45"},
+      {37, kOct | kRight | kPos, /*width = */ 6, "____45"},
+      {37, kOct | kRight | kBase, /*width = */ 0, "045"},
+      {37, kOct | kRight | kBase, /*width = */ 6, "___045"},
+      {37, kOct | kRight | kBase | kPos, /*width = */ 0, "045"},
+      {37, kOct | kRight | kBase | kPos, /*width = */ 6, "___045"},
+      {37, kOct | kRight | kUpper, /*width = */ 0, "45"},
+      {37, kOct | kRight | kUpper, /*width = */ 6, "____45"},
+      {37, kOct | kRight | kUpper | kPos, /*width = */ 0, "45"},
+      {37, kOct | kRight | kUpper | kPos, /*width = */ 6, "____45"},
+      {37, kOct | kRight | kUpper | kBase, /*width = */ 0, "045"},
+      {37, kOct | kRight | kUpper | kBase, /*width = */ 6, "___045"},
+      {37, kOct | kRight | kUpper | kBase | kPos, /*width = */ 0, "045"},
+      {37, kOct | kRight | kUpper | kBase | kPos, /*width = */ 6, "___045"},
+      {37, kHex, /*width = */ 0, "25"},
+      {37, kHex, /*width = */ 6, "____25"},
+      {37, kHex | kPos, /*width = */ 0, "25"},
+      {37, kHex | kPos, /*width = */ 6, "____25"},
+      {37, kHex | kBase, /*width = */ 0, "0x25"},
+      {37, kHex | kBase, /*width = */ 6, "__0x25"},
+      {37, kHex | kBase | kPos, /*width = */ 0, "0x25"},
+      {37, kHex | kBase | kPos, /*width = */ 6, "__0x25"},
+      {37, kHex | kUpper, /*width = */ 0, "25"},
+      {37, kHex | kUpper, /*width = */ 6, "____25"},
+      {37, kHex | kUpper | kPos, /*width = */ 0, "25"},
+      {37, kHex | kUpper | kPos, /*width = */ 6, "____25"},
+      {37, kHex | kUpper | kBase, /*width = */ 0, "0X25"},
+      {37, kHex | kUpper | kBase, /*width = */ 6, "__0X25"},
+      {37, kHex | kUpper | kBase | kPos, /*width = */ 0, "0X25"},
+      {37, kHex | kUpper | kBase | kPos, /*width = */ 6, "__0X25"},
+      {37, kHex | kLeft, /*width = */ 0, "25"},
+      {37, kHex | kLeft, /*width = */ 6, "25____"},
+      {37, kHex | kLeft | kPos, /*width = */ 0, "25"},
+      {37, kHex | kLeft | kPos, /*width = */ 6, "25____"},
+      {37, kHex | kLeft | kBase, /*width = */ 0, "0x25"},
+      {37, kHex | kLeft | kBase, /*width = */ 6, "0x25__"},
+      {37, kHex | kLeft | kBase | kPos, /*width = */ 0, "0x25"},
+      {37, kHex | kLeft | kBase | kPos, /*width = */ 6, "0x25__"},
+      {37, kHex | kLeft | kUpper, /*width = */ 0, "25"},
+      {37, kHex | kLeft | kUpper, /*width = */ 6, "25____"},
+      {37, kHex | kLeft | kUpper | kPos, /*width = */ 0, "25"},
+      {37, kHex | kLeft | kUpper | kPos, /*width = */ 6, "25____"},
+      {37, kHex | kLeft | kUpper | kBase, /*width = */ 0, "0X25"},
+      {37, kHex | kLeft | kUpper | kBase, /*width = */ 6, "0X25__"},
+      {37, kHex | kLeft | kUpper | kBase | kPos, /*width = */ 0, "0X25"},
+      {37, kHex | kLeft | kUpper | kBase | kPos, /*width = */ 6, "0X25__"},
+      {37, kHex | kInt, /*width = */ 0, "25"},
+      {37, kHex | kInt, /*width = */ 6, "____25"},
+      {37, kHex | kInt | kPos, /*width = */ 0, "25"},
+      {37, kHex | kInt | kPos, /*width = */ 6, "____25"},
+      {37, kHex | kInt | kBase, /*width = */ 0, "0x25"},
+      {37, kHex | kInt | kBase, /*width = */ 6, "0x__25"},
+      {37, kHex | kInt | kBase | kPos, /*width = */ 0, "0x25"},
+      {37, kHex | kInt | kBase | kPos, /*width = */ 6, "0x__25"},
+      {37, kHex | kInt | kUpper, /*width = */ 0, "25"},
+      {37, kHex | kInt | kUpper, /*width = */ 6, "____25"},
+      {37, kHex | kInt | kUpper | kPos, /*width = */ 0, "25"},
+      {37, kHex | kInt | kUpper | kPos, /*width = */ 6, "____25"},
+      {37, kHex | kInt | kUpper | kBase, /*width = */ 0, "0X25"},
+      {37, kHex | kInt | kUpper | kBase, /*width = */ 6, "0X__25"},
+      {37, kHex | kInt | kUpper | kBase | kPos, /*width = */ 0, "0X25"},
+      {37, kHex | kInt | kUpper | kBase | kPos, /*width = */ 6, "0X__25"},
+      {37, kHex | kRight, /*width = */ 0, "25"},
+      {37, kHex | kRight, /*width = */ 6, "____25"},
+      {37, kHex | kRight | kPos, /*width = */ 0, "25"},
+      {37, kHex | kRight | kPos, /*width = */ 6, "____25"},
+      {37, kHex | kRight | kBase, /*width = */ 0, "0x25"},
+      {37, kHex | kRight | kBase, /*width = */ 6, "__0x25"},
+      {37, kHex | kRight | kBase | kPos, /*width = */ 0, "0x25"},
+      {37, kHex | kRight | kBase | kPos, /*width = */ 6, "__0x25"},
+      {37, kHex | kRight | kUpper, /*width = */ 0, "25"},
+      {37, kHex | kRight | kUpper, /*width = */ 6, "____25"},
+      {37, kHex | kRight | kUpper | kPos, /*width = */ 0, "25"},
+      {37, kHex | kRight | kUpper | kPos, /*width = */ 6, "____25"},
+      {37, kHex | kRight | kUpper | kBase, /*width = */ 0, "0X25"},
+      {37, kHex | kRight | kUpper | kBase, /*width = */ 6, "__0X25"},
+      {37, kHex | kRight | kUpper | kBase | kPos, /*width = */ 0, "0X25"},
+      {37, kHex | kRight | kUpper | kBase | kPos, /*width = */ 6, "__0X25"}};
+}
+
+}  // namespace
diff --git a/absl/numeric/int128_test.cc b/absl/numeric/int128_test.cc
index ce44cd4b93c1..75fd6371040a 100644
--- a/absl/numeric/int128_test.cc
+++ b/absl/numeric/int128_test.cc
@@ -17,7 +17,6 @@
 #include <algorithm>
 #include <limits>
 #include <random>
-#include <sstream>
 #include <type_traits>
 #include <utility>
 #include <vector>
@@ -427,26 +426,4 @@ TEST(Uint128, ConstexprTest) {
   EXPECT_EQ(minus_two, absl::MakeUint128(-1, -2));
 }
 
-TEST(Uint128, OStream) {
-  struct StreamCase {
-    absl::uint128 val;
-    std::ios_base::fmtflags flags;
-    std::streamsize width;
-    char fill;
-    const char* rep;
-  };
-
-  std::vector<StreamCase> cases = {
-#include "absl/numeric/int128_test_unsigned_ostream_cases.inc"
-  };
-  for (const StreamCase& test_case : cases) {
-    std::ostringstream os;
-    os.flags(test_case.flags);
-    os.width(test_case.width);
-    os.fill(test_case.fill);
-    os << test_case.val;
-    EXPECT_EQ(test_case.rep, os.str());
-  }
-}
-
 }  // namespace
diff --git a/absl/numeric/int128_test_unsigned_ostream_cases.inc b/absl/numeric/int128_test_unsigned_ostream_cases.inc
deleted file mode 100644
index 7d2fc77f1a91..000000000000
--- a/absl/numeric/int128_test_unsigned_ostream_cases.inc
+++ /dev/null
@@ -1,880 +0,0 @@
-// A small set of cases created manually for values greater than 2^64.
-
-{absl::MakeUint128(1, 0), std::ios::dec, 0, '_', "18446744073709551616"},
-{absl::MakeUint128(1, 0), std::ios::oct, 0, '_', "2000000000000000000000"},
-{absl::MakeUint128(1, 0), std::ios::hex, 0, '_', "10000000000000000"},
-{absl::MakeUint128(0x8000000000000000, 0), std::ios::dec, 0, '_', "170141183460469231731687303715884105728"},
-{absl::MakeUint128(0x8000000000000000, 0), std::ios::oct, 0, '_', "2000000000000000000000000000000000000000000"},
-{absl::MakeUint128(0x8000000000000000, 0), std::ios::hex, 0, '_', "80000000000000000000000000000000"},
-{absl::MakeUint128(-1, -1), std::ios::dec, 0, '_', "340282366920938463463374607431768211455"},
-{absl::MakeUint128(-1, -1), std::ios::oct, 0, '_', "3777777777777777777777777777777777777777777"},
-{absl::MakeUint128(-1, -1), std::ios::hex, 0, '_', "ffffffffffffffffffffffffffffffff"},
-
-// An exhaustive set of formatting cases generated with select values that fit
-// into a uint64_t so they can be compared to what was output by the standard
-// implementation.
-
-{0, std::ios::dec | std::ios::left, 0, '_', "0"},
-{0, std::ios::dec | std::ios::left, 10, '_', "0_________"},
-{0, std::ios::dec | std::ios::left | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::dec | std::ios::left | std::ios::showpos, 10, '_', "0_________"},
-{0, std::ios::dec | std::ios::left | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::dec | std::ios::left | std::ios::showbase, 10, '_', "0_________"},
-{0, std::ios::dec | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::dec | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "0_________"},
-{0, std::ios::dec | std::ios::left | std::ios::uppercase, 0, '_', "0"},
-{0, std::ios::dec | std::ios::left | std::ios::uppercase, 10, '_', "0_________"},
-{0, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "0_________"},
-{0, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "0_________"},
-{0, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0_________"},
-{0, std::ios::dec | std::ios::internal, 0, '_', "0"},
-{0, std::ios::dec | std::ios::internal, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::internal | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::dec | std::ios::internal | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::internal | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::dec | std::ios::internal | std::ios::showbase, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::dec | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::internal | std::ios::uppercase, 0, '_', "0"},
-{0, std::ios::dec | std::ios::internal | std::ios::uppercase, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::right, 0, '_', "0"},
-{0, std::ios::dec | std::ios::right, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::right | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::dec | std::ios::right | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::right | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::dec | std::ios::right | std::ios::showbase, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::dec | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::right | std::ios::uppercase, 0, '_', "0"},
-{0, std::ios::dec | std::ios::right | std::ios::uppercase, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "_________0"},
-{0, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::left, 0, '_', "0"},
-{0, std::ios::oct | std::ios::left, 10, '_', "0_________"},
-{0, std::ios::oct | std::ios::left | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::oct | std::ios::left | std::ios::showpos, 10, '_', "0_________"},
-{0, std::ios::oct | std::ios::left | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::oct | std::ios::left | std::ios::showbase, 10, '_', "0_________"},
-{0, std::ios::oct | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::oct | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "0_________"},
-{0, std::ios::oct | std::ios::left | std::ios::uppercase, 0, '_', "0"},
-{0, std::ios::oct | std::ios::left | std::ios::uppercase, 10, '_', "0_________"},
-{0, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "0_________"},
-{0, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "0_________"},
-{0, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0_________"},
-{0, std::ios::oct | std::ios::internal, 0, '_', "0"},
-{0, std::ios::oct | std::ios::internal, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::internal | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::oct | std::ios::internal | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::internal | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::oct | std::ios::internal | std::ios::showbase, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::oct | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::internal | std::ios::uppercase, 0, '_', "0"},
-{0, std::ios::oct | std::ios::internal | std::ios::uppercase, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::right, 0, '_', "0"},
-{0, std::ios::oct | std::ios::right, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::right | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::oct | std::ios::right | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::right | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::oct | std::ios::right | std::ios::showbase, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::oct | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::right | std::ios::uppercase, 0, '_', "0"},
-{0, std::ios::oct | std::ios::right | std::ios::uppercase, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "_________0"},
-{0, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::left, 0, '_', "0"},
-{0, std::ios::hex | std::ios::left, 10, '_', "0_________"},
-{0, std::ios::hex | std::ios::left | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::hex | std::ios::left | std::ios::showpos, 10, '_', "0_________"},
-{0, std::ios::hex | std::ios::left | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::hex | std::ios::left | std::ios::showbase, 10, '_', "0_________"},
-{0, std::ios::hex | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::hex | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "0_________"},
-{0, std::ios::hex | std::ios::left | std::ios::uppercase, 0, '_', "0"},
-{0, std::ios::hex | std::ios::left | std::ios::uppercase, 10, '_', "0_________"},
-{0, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "0_________"},
-{0, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "0_________"},
-{0, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0_________"},
-{0, std::ios::hex | std::ios::internal, 0, '_', "0"},
-{0, std::ios::hex | std::ios::internal, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::internal | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::hex | std::ios::internal | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::internal | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::hex | std::ios::internal | std::ios::showbase, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::hex | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::internal | std::ios::uppercase, 0, '_', "0"},
-{0, std::ios::hex | std::ios::internal | std::ios::uppercase, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::right, 0, '_', "0"},
-{0, std::ios::hex | std::ios::right, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::right | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::hex | std::ios::right | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::right | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::hex | std::ios::right | std::ios::showbase, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::hex | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::right | std::ios::uppercase, 0, '_', "0"},
-{0, std::ios::hex | std::ios::right | std::ios::uppercase, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "0"},
-{0, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "_________0"},
-{0, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0"},
-{0, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_________0"},
-{8, std::ios::dec | std::ios::left, 0, '_', "8"},
-{8, std::ios::dec | std::ios::left, 10, '_', "8_________"},
-{8, std::ios::dec | std::ios::left | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::dec | std::ios::left | std::ios::showpos, 10, '_', "8_________"},
-{8, std::ios::dec | std::ios::left | std::ios::showbase, 0, '_', "8"},
-{8, std::ios::dec | std::ios::left | std::ios::showbase, 10, '_', "8_________"},
-{8, std::ios::dec | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::dec | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "8_________"},
-{8, std::ios::dec | std::ios::left | std::ios::uppercase, 0, '_', "8"},
-{8, std::ios::dec | std::ios::left | std::ios::uppercase, 10, '_', "8_________"},
-{8, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "8_________"},
-{8, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "8"},
-{8, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "8_________"},
-{8, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "8_________"},
-{8, std::ios::dec | std::ios::internal, 0, '_', "8"},
-{8, std::ios::dec | std::ios::internal, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::internal | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::dec | std::ios::internal | std::ios::showpos, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::internal | std::ios::showbase, 0, '_', "8"},
-{8, std::ios::dec | std::ios::internal | std::ios::showbase, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::dec | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::internal | std::ios::uppercase, 0, '_', "8"},
-{8, std::ios::dec | std::ios::internal | std::ios::uppercase, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "8"},
-{8, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::right, 0, '_', "8"},
-{8, std::ios::dec | std::ios::right, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::right | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::dec | std::ios::right | std::ios::showpos, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::right | std::ios::showbase, 0, '_', "8"},
-{8, std::ios::dec | std::ios::right | std::ios::showbase, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::dec | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::right | std::ios::uppercase, 0, '_', "8"},
-{8, std::ios::dec | std::ios::right | std::ios::uppercase, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "8"},
-{8, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "_________8"},
-{8, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_________8"},
-{8, std::ios::oct | std::ios::left, 0, '_', "10"},
-{8, std::ios::oct | std::ios::left, 10, '_', "10________"},
-{8, std::ios::oct | std::ios::left | std::ios::showpos, 0, '_', "10"},
-{8, std::ios::oct | std::ios::left | std::ios::showpos, 10, '_', "10________"},
-{8, std::ios::oct | std::ios::left | std::ios::showbase, 0, '_', "010"},
-{8, std::ios::oct | std::ios::left | std::ios::showbase, 10, '_', "010_______"},
-{8, std::ios::oct | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "010"},
-{8, std::ios::oct | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "010_______"},
-{8, std::ios::oct | std::ios::left | std::ios::uppercase, 0, '_', "10"},
-{8, std::ios::oct | std::ios::left | std::ios::uppercase, 10, '_', "10________"},
-{8, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "10"},
-{8, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "10________"},
-{8, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "010"},
-{8, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "010_______"},
-{8, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "010"},
-{8, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "010_______"},
-{8, std::ios::oct | std::ios::internal, 0, '_', "10"},
-{8, std::ios::oct | std::ios::internal, 10, '_', "________10"},
-{8, std::ios::oct | std::ios::internal | std::ios::showpos, 0, '_', "10"},
-{8, std::ios::oct | std::ios::internal | std::ios::showpos, 10, '_', "________10"},
-{8, std::ios::oct | std::ios::internal | std::ios::showbase, 0, '_', "010"},
-{8, std::ios::oct | std::ios::internal | std::ios::showbase, 10, '_', "_______010"},
-{8, std::ios::oct | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "010"},
-{8, std::ios::oct | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "_______010"},
-{8, std::ios::oct | std::ios::internal | std::ios::uppercase, 0, '_', "10"},
-{8, std::ios::oct | std::ios::internal | std::ios::uppercase, 10, '_', "________10"},
-{8, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "10"},
-{8, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "________10"},
-{8, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "010"},
-{8, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "_______010"},
-{8, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "010"},
-{8, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_______010"},
-{8, std::ios::oct | std::ios::right, 0, '_', "10"},
-{8, std::ios::oct | std::ios::right, 10, '_', "________10"},
-{8, std::ios::oct | std::ios::right | std::ios::showpos, 0, '_', "10"},
-{8, std::ios::oct | std::ios::right | std::ios::showpos, 10, '_', "________10"},
-{8, std::ios::oct | std::ios::right | std::ios::showbase, 0, '_', "010"},
-{8, std::ios::oct | std::ios::right | std::ios::showbase, 10, '_', "_______010"},
-{8, std::ios::oct | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "010"},
-{8, std::ios::oct | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "_______010"},
-{8, std::ios::oct | std::ios::right | std::ios::uppercase, 0, '_', "10"},
-{8, std::ios::oct | std::ios::right | std::ios::uppercase, 10, '_', "________10"},
-{8, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "10"},
-{8, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "________10"},
-{8, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "010"},
-{8, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "_______010"},
-{8, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "010"},
-{8, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_______010"},
-{8, std::ios::hex | std::ios::left, 0, '_', "8"},
-{8, std::ios::hex | std::ios::left, 10, '_', "8_________"},
-{8, std::ios::hex | std::ios::left | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::hex | std::ios::left | std::ios::showpos, 10, '_', "8_________"},
-{8, std::ios::hex | std::ios::left | std::ios::showbase, 0, '_', "0x8"},
-{8, std::ios::hex | std::ios::left | std::ios::showbase, 10, '_', "0x8_______"},
-{8, std::ios::hex | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "0x8"},
-{8, std::ios::hex | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "0x8_______"},
-{8, std::ios::hex | std::ios::left | std::ios::uppercase, 0, '_', "8"},
-{8, std::ios::hex | std::ios::left | std::ios::uppercase, 10, '_', "8_________"},
-{8, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "8_________"},
-{8, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "0X8"},
-{8, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "0X8_______"},
-{8, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0X8"},
-{8, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0X8_______"},
-{8, std::ios::hex | std::ios::internal, 0, '_', "8"},
-{8, std::ios::hex | std::ios::internal, 10, '_', "_________8"},
-{8, std::ios::hex | std::ios::internal | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::hex | std::ios::internal | std::ios::showpos, 10, '_', "_________8"},
-{8, std::ios::hex | std::ios::internal | std::ios::showbase, 0, '_', "0x8"},
-{8, std::ios::hex | std::ios::internal | std::ios::showbase, 10, '_', "0x_______8"},
-{8, std::ios::hex | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "0x8"},
-{8, std::ios::hex | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "0x_______8"},
-{8, std::ios::hex | std::ios::internal | std::ios::uppercase, 0, '_', "8"},
-{8, std::ios::hex | std::ios::internal | std::ios::uppercase, 10, '_', "_________8"},
-{8, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "_________8"},
-{8, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "0X8"},
-{8, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "0X_______8"},
-{8, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0X8"},
-{8, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0X_______8"},
-{8, std::ios::hex | std::ios::right, 0, '_', "8"},
-{8, std::ios::hex | std::ios::right, 10, '_', "_________8"},
-{8, std::ios::hex | std::ios::right | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::hex | std::ios::right | std::ios::showpos, 10, '_', "_________8"},
-{8, std::ios::hex | std::ios::right | std::ios::showbase, 0, '_', "0x8"},
-{8, std::ios::hex | std::ios::right | std::ios::showbase, 10, '_', "_______0x8"},
-{8, std::ios::hex | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "0x8"},
-{8, std::ios::hex | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "_______0x8"},
-{8, std::ios::hex | std::ios::right | std::ios::uppercase, 0, '_', "8"},
-{8, std::ios::hex | std::ios::right | std::ios::uppercase, 10, '_', "_________8"},
-{8, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "8"},
-{8, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "_________8"},
-{8, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "0X8"},
-{8, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "_______0X8"},
-{8, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0X8"},
-{8, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_______0X8"},
-{31, std::ios::dec | std::ios::left, 0, '_', "31"},
-{31, std::ios::dec | std::ios::left, 10, '_', "31________"},
-{31, std::ios::dec | std::ios::left | std::ios::showpos, 0, '_', "31"},
-{31, std::ios::dec | std::ios::left | std::ios::showpos, 10, '_', "31________"},
-{31, std::ios::dec | std::ios::left | std::ios::showbase, 0, '_', "31"},
-{31, std::ios::dec | std::ios::left | std::ios::showbase, 10, '_', "31________"},
-{31, std::ios::dec | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "31"},
-{31, std::ios::dec | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "31________"},
-{31, std::ios::dec | std::ios::left | std::ios::uppercase, 0, '_', "31"},
-{31, std::ios::dec | std::ios::left | std::ios::uppercase, 10, '_', "31________"},
-{31, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "31"},
-{31, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "31________"},
-{31, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "31"},
-{31, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "31________"},
-{31, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "31"},
-{31, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "31________"},
-{31, std::ios::dec | std::ios::internal, 0, '_', "31"},
-{31, std::ios::dec | std::ios::internal, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::internal | std::ios::showpos, 0, '_', "31"},
-{31, std::ios::dec | std::ios::internal | std::ios::showpos, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::internal | std::ios::showbase, 0, '_', "31"},
-{31, std::ios::dec | std::ios::internal | std::ios::showbase, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "31"},
-{31, std::ios::dec | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::internal | std::ios::uppercase, 0, '_', "31"},
-{31, std::ios::dec | std::ios::internal | std::ios::uppercase, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "31"},
-{31, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "31"},
-{31, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "31"},
-{31, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::right, 0, '_', "31"},
-{31, std::ios::dec | std::ios::right, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::right | std::ios::showpos, 0, '_', "31"},
-{31, std::ios::dec | std::ios::right | std::ios::showpos, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::right | std::ios::showbase, 0, '_', "31"},
-{31, std::ios::dec | std::ios::right | std::ios::showbase, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "31"},
-{31, std::ios::dec | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::right | std::ios::uppercase, 0, '_', "31"},
-{31, std::ios::dec | std::ios::right | std::ios::uppercase, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "31"},
-{31, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "31"},
-{31, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "________31"},
-{31, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "31"},
-{31, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "________31"},
-{31, std::ios::oct | std::ios::left, 0, '_', "37"},
-{31, std::ios::oct | std::ios::left, 10, '_', "37________"},
-{31, std::ios::oct | std::ios::left | std::ios::showpos, 0, '_', "37"},
-{31, std::ios::oct | std::ios::left | std::ios::showpos, 10, '_', "37________"},
-{31, std::ios::oct | std::ios::left | std::ios::showbase, 0, '_', "037"},
-{31, std::ios::oct | std::ios::left | std::ios::showbase, 10, '_', "037_______"},
-{31, std::ios::oct | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "037"},
-{31, std::ios::oct | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "037_______"},
-{31, std::ios::oct | std::ios::left | std::ios::uppercase, 0, '_', "37"},
-{31, std::ios::oct | std::ios::left | std::ios::uppercase, 10, '_', "37________"},
-{31, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "37"},
-{31, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "37________"},
-{31, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "037"},
-{31, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "037_______"},
-{31, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "037"},
-{31, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "037_______"},
-{31, std::ios::oct | std::ios::internal, 0, '_', "37"},
-{31, std::ios::oct | std::ios::internal, 10, '_', "________37"},
-{31, std::ios::oct | std::ios::internal | std::ios::showpos, 0, '_', "37"},
-{31, std::ios::oct | std::ios::internal | std::ios::showpos, 10, '_', "________37"},
-{31, std::ios::oct | std::ios::internal | std::ios::showbase, 0, '_', "037"},
-{31, std::ios::oct | std::ios::internal | std::ios::showbase, 10, '_', "_______037"},
-{31, std::ios::oct | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "037"},
-{31, std::ios::oct | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "_______037"},
-{31, std::ios::oct | std::ios::internal | std::ios::uppercase, 0, '_', "37"},
-{31, std::ios::oct | std::ios::internal | std::ios::uppercase, 10, '_', "________37"},
-{31, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "37"},
-{31, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "________37"},
-{31, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "037"},
-{31, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "_______037"},
-{31, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "037"},
-{31, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_______037"},
-{31, std::ios::oct | std::ios::right, 0, '_', "37"},
-{31, std::ios::oct | std::ios::right, 10, '_', "________37"},
-{31, std::ios::oct | std::ios::right | std::ios::showpos, 0, '_', "37"},
-{31, std::ios::oct | std::ios::right | std::ios::showpos, 10, '_', "________37"},
-{31, std::ios::oct | std::ios::right | std::ios::showbase, 0, '_', "037"},
-{31, std::ios::oct | std::ios::right | std::ios::showbase, 10, '_', "_______037"},
-{31, std::ios::oct | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "037"},
-{31, std::ios::oct | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "_______037"},
-{31, std::ios::oct | std::ios::right | std::ios::uppercase, 0, '_', "37"},
-{31, std::ios::oct | std::ios::right | std::ios::uppercase, 10, '_', "________37"},
-{31, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "37"},
-{31, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "________37"},
-{31, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "037"},
-{31, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "_______037"},
-{31, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "037"},
-{31, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_______037"},
-{31, std::ios::hex | std::ios::left, 0, '_', "1f"},
-{31, std::ios::hex | std::ios::left, 10, '_', "1f________"},
-{31, std::ios::hex | std::ios::left | std::ios::showpos, 0, '_', "1f"},
-{31, std::ios::hex | std::ios::left | std::ios::showpos, 10, '_', "1f________"},
-{31, std::ios::hex | std::ios::left | std::ios::showbase, 0, '_', "0x1f"},
-{31, std::ios::hex | std::ios::left | std::ios::showbase, 10, '_', "0x1f______"},
-{31, std::ios::hex | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "0x1f"},
-{31, std::ios::hex | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "0x1f______"},
-{31, std::ios::hex | std::ios::left | std::ios::uppercase, 0, '_', "1F"},
-{31, std::ios::hex | std::ios::left | std::ios::uppercase, 10, '_', "1F________"},
-{31, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "1F"},
-{31, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "1F________"},
-{31, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "0X1F"},
-{31, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "0X1F______"},
-{31, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0X1F"},
-{31, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0X1F______"},
-{31, std::ios::hex | std::ios::internal, 0, '_', "1f"},
-{31, std::ios::hex | std::ios::internal, 10, '_', "________1f"},
-{31, std::ios::hex | std::ios::internal | std::ios::showpos, 0, '_', "1f"},
-{31, std::ios::hex | std::ios::internal | std::ios::showpos, 10, '_', "________1f"},
-{31, std::ios::hex | std::ios::internal | std::ios::showbase, 0, '_', "0x1f"},
-{31, std::ios::hex | std::ios::internal | std::ios::showbase, 10, '_', "0x______1f"},
-{31, std::ios::hex | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "0x1f"},
-{31, std::ios::hex | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "0x______1f"},
-{31, std::ios::hex | std::ios::internal | std::ios::uppercase, 0, '_', "1F"},
-{31, std::ios::hex | std::ios::internal | std::ios::uppercase, 10, '_', "________1F"},
-{31, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "1F"},
-{31, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "________1F"},
-{31, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "0X1F"},
-{31, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "0X______1F"},
-{31, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0X1F"},
-{31, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0X______1F"},
-{31, std::ios::hex | std::ios::right, 0, '_', "1f"},
-{31, std::ios::hex | std::ios::right, 10, '_', "________1f"},
-{31, std::ios::hex | std::ios::right | std::ios::showpos, 0, '_', "1f"},
-{31, std::ios::hex | std::ios::right | std::ios::showpos, 10, '_', "________1f"},
-{31, std::ios::hex | std::ios::right | std::ios::showbase, 0, '_', "0x1f"},
-{31, std::ios::hex | std::ios::right | std::ios::showbase, 10, '_', "______0x1f"},
-{31, std::ios::hex | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "0x1f"},
-{31, std::ios::hex | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "______0x1f"},
-{31, std::ios::hex | std::ios::right | std::ios::uppercase, 0, '_', "1F"},
-{31, std::ios::hex | std::ios::right | std::ios::uppercase, 10, '_', "________1F"},
-{31, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "1F"},
-{31, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "________1F"},
-{31, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "0X1F"},
-{31, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "______0X1F"},
-{31, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0X1F"},
-{31, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "______0X1F"},
-{12345, std::ios::dec | std::ios::left, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::left, 10, '_', "12345_____"},
-{12345, std::ios::dec | std::ios::left | std::ios::showpos, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::left | std::ios::showpos, 10, '_', "12345_____"},
-{12345, std::ios::dec | std::ios::left | std::ios::showbase, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::left | std::ios::showbase, 10, '_', "12345_____"},
-{12345, std::ios::dec | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "12345_____"},
-{12345, std::ios::dec | std::ios::left | std::ios::uppercase, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::left | std::ios::uppercase, 10, '_', "12345_____"},
-{12345, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "12345_____"},
-{12345, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "12345_____"},
-{12345, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "12345_____"},
-{12345, std::ios::dec | std::ios::internal, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::internal, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::showpos, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::showpos, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::showbase, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::showbase, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::uppercase, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::uppercase, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::right, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::right, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::showpos, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::showpos, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::showbase, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::showbase, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::uppercase, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::uppercase, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "_____12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "12345"},
-{12345, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "_____12345"},
-{12345, std::ios::oct | std::ios::left, 0, '_', "30071"},
-{12345, std::ios::oct | std::ios::left, 10, '_', "30071_____"},
-{12345, std::ios::oct | std::ios::left | std::ios::showpos, 0, '_', "30071"},
-{12345, std::ios::oct | std::ios::left | std::ios::showpos, 10, '_', "30071_____"},
-{12345, std::ios::oct | std::ios::left | std::ios::showbase, 0, '_', "030071"},
-{12345, std::ios::oct | std::ios::left | std::ios::showbase, 10, '_', "030071____"},
-{12345, std::ios::oct | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "030071"},
-{12345, std::ios::oct | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "030071____"},
-{12345, std::ios::oct | std::ios::left | std::ios::uppercase, 0, '_', "30071"},
-{12345, std::ios::oct | std::ios::left | std::ios::uppercase, 10, '_', "30071_____"},
-{12345, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "30071"},
-{12345, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "30071_____"},
-{12345, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "030071"},
-{12345, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "030071____"},
-{12345, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "030071"},
-{12345, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "030071____"},
-{12345, std::ios::oct | std::ios::internal, 0, '_', "30071"},
-{12345, std::ios::oct | std::ios::internal, 10, '_', "_____30071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::showpos, 0, '_', "30071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::showpos, 10, '_', "_____30071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::showbase, 0, '_', "030071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::showbase, 10, '_', "____030071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "030071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "____030071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::uppercase, 0, '_', "30071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::uppercase, 10, '_', "_____30071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "30071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "_____30071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "030071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "____030071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "030071"},
-{12345, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "____030071"},
-{12345, std::ios::oct | std::ios::right, 0, '_', "30071"},
-{12345, std::ios::oct | std::ios::right, 10, '_', "_____30071"},
-{12345, std::ios::oct | std::ios::right | std::ios::showpos, 0, '_', "30071"},
-{12345, std::ios::oct | std::ios::right | std::ios::showpos, 10, '_', "_____30071"},
-{12345, std::ios::oct | std::ios::right | std::ios::showbase, 0, '_', "030071"},
-{12345, std::ios::oct | std::ios::right | std::ios::showbase, 10, '_', "____030071"},
-{12345, std::ios::oct | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "030071"},
-{12345, std::ios::oct | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "____030071"},
-{12345, std::ios::oct | std::ios::right | std::ios::uppercase, 0, '_', "30071"},
-{12345, std::ios::oct | std::ios::right | std::ios::uppercase, 10, '_', "_____30071"},
-{12345, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "30071"},
-{12345, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "_____30071"},
-{12345, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "030071"},
-{12345, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "____030071"},
-{12345, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "030071"},
-{12345, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "____030071"},
-{12345, std::ios::hex | std::ios::left, 0, '_', "3039"},
-{12345, std::ios::hex | std::ios::left, 10, '_', "3039______"},
-{12345, std::ios::hex | std::ios::left | std::ios::showpos, 0, '_', "3039"},
-{12345, std::ios::hex | std::ios::left | std::ios::showpos, 10, '_', "3039______"},
-{12345, std::ios::hex | std::ios::left | std::ios::showbase, 0, '_', "0x3039"},
-{12345, std::ios::hex | std::ios::left | std::ios::showbase, 10, '_', "0x3039____"},
-{12345, std::ios::hex | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "0x3039"},
-{12345, std::ios::hex | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "0x3039____"},
-{12345, std::ios::hex | std::ios::left | std::ios::uppercase, 0, '_', "3039"},
-{12345, std::ios::hex | std::ios::left | std::ios::uppercase, 10, '_', "3039______"},
-{12345, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "3039"},
-{12345, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "3039______"},
-{12345, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "0X3039"},
-{12345, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "0X3039____"},
-{12345, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0X3039"},
-{12345, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0X3039____"},
-{12345, std::ios::hex | std::ios::internal, 0, '_', "3039"},
-{12345, std::ios::hex | std::ios::internal, 10, '_', "______3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::showpos, 0, '_', "3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::showpos, 10, '_', "______3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::showbase, 0, '_', "0x3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::showbase, 10, '_', "0x____3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "0x3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "0x____3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::uppercase, 0, '_', "3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::uppercase, 10, '_', "______3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "______3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "0X3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "0X____3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0X3039"},
-{12345, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0X____3039"},
-{12345, std::ios::hex | std::ios::right, 0, '_', "3039"},
-{12345, std::ios::hex | std::ios::right, 10, '_', "______3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::showpos, 0, '_', "3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::showpos, 10, '_', "______3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::showbase, 0, '_', "0x3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::showbase, 10, '_', "____0x3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "0x3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "____0x3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::uppercase, 0, '_', "3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::uppercase, 10, '_', "______3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "______3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "0X3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "____0X3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0X3039"},
-{12345, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "____0X3039"},
-{0x8000000000000000, std::ios::dec | std::ios::left, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::showpos, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::showpos, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::showbase, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::showbase, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::uppercase, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::uppercase, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::showpos, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::showpos, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::showbase, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::showbase, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::uppercase, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::uppercase, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::showpos, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::showpos, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::showbase, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::showbase, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::uppercase, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::uppercase, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "9223372036854775808"},
-{0x8000000000000000, std::ios::oct | std::ios::left, 0, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left, 10, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::showpos, 0, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::showpos, 10, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::showbase, 0, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::showbase, 10, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::uppercase, 0, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::uppercase, 10, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal, 0, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal, 10, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::showpos, 0, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::showpos, 10, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::showbase, 0, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::showbase, 10, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::uppercase, 0, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::uppercase, 10, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right, 0, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right, 10, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::showpos, 0, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::showpos, 10, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::showbase, 0, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::showbase, 10, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::uppercase, 0, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::uppercase, 10, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "1000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "01000000000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left, 0, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left, 10, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::showpos, 0, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::showpos, 10, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::showbase, 0, '_', "0x8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::showbase, 10, '_', "0x8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "0x8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "0x8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::uppercase, 0, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::uppercase, 10, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "0X8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "0X8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0X8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0X8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal, 0, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal, 10, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::showpos, 0, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::showpos, 10, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::showbase, 0, '_', "0x8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::showbase, 10, '_', "0x8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "0x8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "0x8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::uppercase, 0, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::uppercase, 10, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "0X8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "0X8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0X8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0X8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right, 0, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right, 10, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::showpos, 0, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::showpos, 10, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::showbase, 0, '_', "0x8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::showbase, 10, '_', "0x8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "0x8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "0x8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::uppercase, 0, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::uppercase, 10, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "0X8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "0X8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0X8000000000000000"},
-{0x8000000000000000, std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0X8000000000000000"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::showpos, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::showpos, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::showbase, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::showbase, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::uppercase, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::uppercase, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::showpos, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::showpos, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::showbase, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::showbase, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::uppercase, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::uppercase, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::showpos, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::showpos, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::showbase, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::showbase, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::uppercase, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::uppercase, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::dec | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "18446744073709551615"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left, 0, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left, 10, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::showpos, 0, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::showpos, 10, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::showbase, 0, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::showbase, 10, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::uppercase, 0, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::uppercase, 10, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal, 0, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal, 10, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::showpos, 0, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::showpos, 10, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::showbase, 0, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::showbase, 10, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::uppercase, 0, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::uppercase, 10, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right, 0, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right, 10, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::showpos, 0, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::showpos, 10, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::showbase, 0, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::showbase, 10, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::uppercase, 0, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::uppercase, 10, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "1777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::oct | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "01777777777777777777777"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left, 0, '_', "ffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left, 10, '_', "ffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::showpos, 0, '_', "ffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::showpos, 10, '_', "ffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::showbase, 0, '_', "0xffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::showbase, 10, '_', "0xffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::showbase | std::ios::showpos, 0, '_', "0xffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::showbase | std::ios::showpos, 10, '_', "0xffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::uppercase, 0, '_', "FFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::uppercase, 10, '_', "FFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showpos, 0, '_', "FFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showpos, 10, '_', "FFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase, 0, '_', "0XFFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase, 10, '_', "0XFFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0XFFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::left | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0XFFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal, 0, '_', "ffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal, 10, '_', "ffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::showpos, 0, '_', "ffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::showpos, 10, '_', "ffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::showbase, 0, '_', "0xffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::showbase, 10, '_', "0xffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::showbase | std::ios::showpos, 0, '_', "0xffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::showbase | std::ios::showpos, 10, '_', "0xffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::uppercase, 0, '_', "FFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::uppercase, 10, '_', "FFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showpos, 0, '_', "FFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showpos, 10, '_', "FFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase, 0, '_', "0XFFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase, 10, '_', "0XFFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0XFFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::internal | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0XFFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right, 0, '_', "ffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right, 10, '_', "ffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::showpos, 0, '_', "ffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::showpos, 10, '_', "ffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::showbase, 0, '_', "0xffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::showbase, 10, '_', "0xffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::showbase | std::ios::showpos, 0, '_', "0xffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::showbase | std::ios::showpos, 10, '_', "0xffffffffffffffff"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::uppercase, 0, '_', "FFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::uppercase, 10, '_', "FFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showpos, 0, '_', "FFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showpos, 10, '_', "FFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase, 0, '_', "0XFFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase, 10, '_', "0XFFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 0, '_', "0XFFFFFFFFFFFFFFFF"},
-{std::numeric_limits<uint64_t>::max(), std::ios::hex | std::ios::right | std::ios::uppercase | std::ios::showbase | std::ios::showpos, 10, '_', "0XFFFFFFFFFFFFFFFF"},
diff --git a/absl/strings/escaping.cc b/absl/strings/escaping.cc
index 7d688ac3fac7..abe9e0aaacd9 100644
--- a/absl/strings/escaping.cc
+++ b/absl/strings/escaping.cc
@@ -72,6 +72,17 @@ inline int hex_digit_to_int(char c) {
   return x & 0xf;
 }
 
+inline bool IsSurrogate(char32_t c, absl::string_view src, std::string* error) {
+  if (c >= 0xD800 && c <= 0xDFFF) {
+    if (error) {
+      *error = absl::StrCat("invalid surrogate character (0xD800-DFFF): \\",
+                            src);
+    }
+    return true;
+  }
+  return false;
+}
+
 // ----------------------------------------------------------------------
 // CUnescapeInternal()
 //    Implements both CUnescape() and CUnescapeForNullTerminatedString().
@@ -214,6 +225,9 @@ bool CUnescapeInternal(absl::string_view source, bool leave_nulls_escaped,
             d += 5;
             break;
           }
+          if (IsSurrogate(rune, absl::string_view(hex_start, 5), error)) {
+            return false;
+          }
           d += strings_internal::EncodeUTF8Char(d, rune);
           break;
         }
@@ -259,6 +273,9 @@ bool CUnescapeInternal(absl::string_view source, bool leave_nulls_escaped,
             d += 9;
             break;
           }
+          if (IsSurrogate(rune, absl::string_view(hex_start, 9), error)) {
+            return false;
+          }
           d += strings_internal::EncodeUTF8Char(d, rune);
           break;
         }
diff --git a/absl/strings/escaping_test.cc b/absl/strings/escaping_test.cc
index ecac9ca8c588..982989b8b4a4 100644
--- a/absl/strings/escaping_test.cc
+++ b/absl/strings/escaping_test.cc
@@ -160,11 +160,14 @@ TEST(Unescape, BasicFunction) {
     EXPECT_EQ(out, val.unescaped);
   }
   std::string bad[] =
-     {"\\u1",  // too short
-      "\\U1",  // too short
-      "\\Uffffff",
-      "\\777",  // exceeds 0xff
-      "\\xABCD"};  // exceeds 0xff
+     {"\\u1",         // too short
+      "\\U1",         // too short
+      "\\Uffffff",    // exceeds 0x10ffff (largest Unicode)
+      "\\U00110000",  // exceeds 0x10ffff (largest Unicode)
+      "\\uD835",      // surrogate character (D800-DFFF)
+      "\\U0000DD04",  // surrogate character (D800-DFFF)
+      "\\777",        // exceeds 0xff
+      "\\xABCD"};     // exceeds 0xff
   for (const std::string& e : bad) {
     std::string error;
     std::string out;