// File: halfflat[P]tinyopt/test/googletest/googletest/src/gtest.cc
// Function: testing::internal::XmlUnitTestResultPrinter::PrintXmlTestSuite(std::ostream*, testing::TestSuite const&)
void XmlUnitTestResultPrinter::PrintXmlTestSuite(std::ostream* stream,
                                                 const TestSuite& test_suite) {
  const std::string kTestsuite = "testsuite";
  *stream << "  <" << kTestsuite;
  OutputXmlAttribute(stream, kTestsuite, "name", test_suite.name());
  OutputXmlAttribute(stream, kTestsuite, "tests",
                     StreamableToString(test_suite.reportable_test_count()));
  if (!GTEST_FLAG_GET(list_tests)) {
    OutputXmlAttribute(stream, kTestsuite, "failures",
                       StreamableToString(test_suite.failed_test_count()));
    OutputXmlAttribute(
        stream, kTestsuite, "disabled",
        StreamableToString(test_suite.reportable_disabled_test_count()));
    OutputXmlAttribute(stream, kTestsuite, "skipped",
                       StreamableToString(test_suite.skipped_test_count()));

    OutputXmlAttribute(stream, kTestsuite, "errors", "0");

    OutputXmlAttribute(stream, kTestsuite, "time",
                       FormatTimeInMillisAsSeconds(test_suite.elapsed_time()));
    OutputXmlAttribute(
        stream, kTestsuite, "timestamp",
        FormatEpochTimeInMillisAsIso8601(test_suite.start_timestamp()));
    *stream << TestPropertiesAsXmlAttributes(test_suite.ad_hoc_test_result());
  }
  *stream << ">\n";
  for (int i = 0; i < test_suite.total_test_count(); ++i) {
    if (test_suite.GetTestInfo(i)->is_reportable())
      OutputXmlTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i));
  }
  *stream << "  </" << kTestsuite << ">\n";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x410, %rsp            # imm = 0x410
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x2e8(%rbp)
callq 0x10e10
movq -0x2e8(%rbp), %rdx
leaq 0x3bee7(%rip), %rsi     # 0xcee98
leaq -0x30(%rbp), %rdi
callq 0x1d070
jmp 0x92fbc
leaq -0x31(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rdi
leaq 0x3c037(%rip), %rsi     # 0xcf007
callq 0x10720
movq %rax, -0x2f0(%rbp)
jmp 0x92fde
movq -0x2f0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x10680
jmp 0x92ff0
movq -0x8(%rbp), %rax
movq %rax, -0x300(%rbp)
leaq -0x69(%rbp), %rdi
movq %rdi, -0x2f8(%rbp)
callq 0x10e10
movq -0x2f8(%rbp), %rdx
leaq 0x3beea(%rip), %rsi     # 0xcef03
leaq -0x68(%rbp), %rdi
callq 0x1d070
jmp 0x93024
movq -0x10(%rbp), %rdi
callq 0xa8fe0
movq %rax, -0x308(%rbp)
jmp 0x93036
leaq -0x91(%rbp), %rdi
movq %rdi, -0x310(%rbp)
callq 0x10e10
movq -0x308(%rbp), %rsi
movq -0x310(%rbp), %rdx
leaq -0x90(%rbp), %rdi
callq 0x1d070
jmp 0x93065
movq -0x300(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x68(%rbp), %rdx
leaq -0x90(%rbp), %rcx
callq 0x8fd80
jmp 0x93082
leaq -0x90(%rbp), %rdi
callq 0x10fc8
leaq -0x91(%rbp), %rdi
callq 0x10810
leaq -0x68(%rbp), %rdi
callq 0x10fc8
leaq -0x69(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rax
movq %rax, -0x320(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x318(%rbp)
callq 0x10e10
movq -0x318(%rbp), %rdx
leaq 0x3aef0(%rip), %rsi     # 0xcdfc8
leaq -0xb8(%rbp), %rdi
callq 0x1d070
jmp 0x930e6
movq -0x10(%rbp), %rdi
callq 0x83fc0
movl %eax, -0x324(%rbp)
jmp 0x930f7
movl -0x324(%rbp), %eax
movl %eax, -0xe4(%rbp)
leaq -0xe0(%rbp), %rdi
leaq -0xe4(%rbp), %rsi
callq 0xa2c60
jmp 0x93118
movq -0x320(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0xb8(%rbp), %rdx
leaq -0xe0(%rbp), %rcx
callq 0x8fd80
jmp 0x93138
leaq -0xe0(%rbp), %rdi
callq 0x10fc8
leaq -0xb8(%rbp), %rdi
callq 0x10fc8
leaq -0xb9(%rbp), %rdi
callq 0x10810
testb $0x1, 0x849b6(%rip)     # 0x117b19
jne 0x938c4
movq -0x8(%rbp), %rax
movq %rax, -0x338(%rbp)
leaq -0x109(%rbp), %rdi
movq %rdi, -0x330(%rbp)
callq 0x10e10
movq -0x330(%rbp), %rdx
leaq 0x3c7cc(%rip), %rsi     # 0xcf961
leaq -0x108(%rbp), %rdi
callq 0x1d070
jmp 0x931a3
movq -0x10(%rbp), %rdi
callq 0x83e70
movl %eax, -0x33c(%rbp)
jmp 0x931b4
movl -0x33c(%rbp), %eax
movl %eax, -0x134(%rbp)
leaq -0x130(%rbp), %rdi
leaq -0x134(%rbp), %rsi
callq 0xa2c60
jmp 0x931d5
movq -0x338(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x108(%rbp), %rdx
leaq -0x130(%rbp), %rcx
callq 0x8fd80
jmp 0x931f5
leaq -0x130(%rbp), %rdi
callq 0x10fc8
leaq -0x108(%rbp), %rdi
callq 0x10fc8
leaq -0x109(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rax
movq %rax, -0x350(%rbp)
leaq -0x159(%rbp), %rdi
movq %rdi, -0x348(%rbp)
callq 0x10e10
movq -0x348(%rbp), %rdx
leaq 0x3bc71(%rip), %rsi     # 0xceeb6
leaq -0x158(%rbp), %rdi
callq 0x1d070
jmp 0x93253
movq -0x10(%rbp), %rdi
callq 0x83ee0
movl %eax, -0x354(%rbp)
jmp 0x93264
movl -0x354(%rbp), %eax
movl %eax, -0x184(%rbp)
leaq -0x180(%rbp), %rdi
leaq -0x184(%rbp), %rsi
callq 0xa2c60
jmp 0x93285
movq -0x350(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x158(%rbp), %rdx
leaq -0x180(%rbp), %rcx
callq 0x8fd80
jmp 0x932a5
leaq -0x180(%rbp), %rdi
callq 0x10fc8
leaq -0x158(%rbp), %rdi
callq 0x10fc8
leaq -0x159(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rax
movq %rax, -0x368(%rbp)
leaq -0x1a9(%rbp), %rdi
movq %rdi, -0x360(%rbp)
callq 0x10e10
movq -0x360(%rbp), %rdx
leaq 0x3bbca(%rip), %rsi     # 0xceebf
leaq -0x1a8(%rbp), %rdi
callq 0x1d070
jmp 0x93303
movq -0x10(%rbp), %rdi
callq 0x83e00
movl %eax, -0x36c(%rbp)
jmp 0x93314
movl -0x36c(%rbp), %eax
movl %eax, -0x1d4(%rbp)
leaq -0x1d0(%rbp), %rdi
leaq -0x1d4(%rbp), %rsi
callq 0xa2c60
jmp 0x93335
movq -0x368(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x1a8(%rbp), %rdx
leaq -0x1d0(%rbp), %rcx
callq 0x8fd80
jmp 0x93355
leaq -0x1d0(%rbp), %rdi
callq 0x10fc8
leaq -0x1a8(%rbp), %rdi
callq 0x10fc8
leaq -0x1a9(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rax
movq %rax, -0x380(%rbp)
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x378(%rbp)
callq 0x10e10
movq -0x378(%rbp), %rdx
leaq 0x3bb22(%rip), %rsi     # 0xceec7
leaq -0x1f8(%rbp), %rdi
callq 0x1d070
jmp 0x933b3
leaq -0x221(%rbp), %rdi
movq %rdi, -0x388(%rbp)
callq 0x10e10
movq -0x388(%rbp), %rdx
leaq 0x3c39a(%rip), %rsi     # 0xcf76e
leaq -0x220(%rbp), %rdi
callq 0x1d070
jmp 0x933e2
movq -0x380(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x1f8(%rbp), %rdx
leaq -0x220(%rbp), %rcx
callq 0x8fd80
jmp 0x93402
leaq -0x220(%rbp), %rdi
callq 0x10fc8
leaq -0x221(%rbp), %rdi
callq 0x10810
leaq -0x1f8(%rbp), %rdi
callq 0x10fc8
leaq -0x1f9(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rax
movq %rax, -0x398(%rbp)
leaq -0x249(%rbp), %rdi
movq %rdi, -0x390(%rbp)
callq 0x10e10
movq -0x390(%rbp), %rdx
leaq 0x3abd0(%rip), %rsi     # 0xce02e
leaq -0x248(%rbp), %rdi
callq 0x1d070
jmp 0x9346c
movq -0x10(%rbp), %rdi
callq 0xa9170
movq %rax, -0x3a0(%rbp)
jmp 0x9347e
movq -0x3a0(%rbp), %rsi
leaq -0x270(%rbp), %rdi
callq 0x8f590
jmp 0x93493
movq -0x398(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x248(%rbp), %rdx
leaq -0x270(%rbp), %rcx
callq 0x8fd80
jmp 0x934b3
leaq -0x270(%rbp), %rdi
callq 0x10fc8
leaq -0x248(%rbp), %rdi
callq 0x10fc8
leaq -0x249(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rax
movq %rax, -0x3b0(%rbp)
leaq -0x291(%rbp), %rdi
movq %rdi, -0x3a8(%rbp)
callq 0x10e10
movq -0x3a8(%rbp), %rdx
leaq 0x3b9cb(%rip), %rsi     # 0xceece
leaq -0x290(%rbp), %rdi
callq 0x1d070
jmp 0x93511
movq -0x10(%rbp), %rdi
callq 0xa97e0
movq %rax, -0x3b8(%rbp)
jmp 0x93523
movq -0x3b8(%rbp), %rsi
leaq -0x2b8(%rbp), %rdi
callq 0x8f720
jmp 0x93538
movq -0x3b0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x290(%rbp), %rdx
leaq -0x2b8(%rbp), %rcx
callq 0x8fd80
jmp 0x93558
leaq -0x2b8(%rbp), %rdi
callq 0x10fc8
leaq -0x290(%rbp), %rdi
callq 0x10fc8
leaq -0x291(%rbp), %rdi
callq 0x10810
movq -0x8(%rbp), %rax
movq %rax, -0x3c8(%rbp)
movq -0x10(%rbp), %rdi
callq 0xa8f00
movq %rax, -0x3c0(%rbp)
jmp 0x93599
movq -0x3c0(%rbp), %rsi
leaq -0x2d8(%rbp), %rdi
callq 0x93a20
jmp 0x935ae
movq -0x3c8(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x10680
jmp 0x935c3
leaq -0x2d8(%rbp), %rdi
callq 0x10fc8
jmp 0x938c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0x10810
jmp 0x93a08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x939ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x93656
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x9364d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x93641
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x10fc8
leaq -0x91(%rbp), %rdi
callq 0x10810
leaq -0x68(%rbp), %rdi
callq 0x10fc8
leaq -0x69(%rbp), %rdi
callq 0x10810
jmp 0x939ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x936a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x93698
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x10fc8
leaq -0xb8(%rbp), %rdi
callq 0x10fc8
leaq -0xb9(%rbp), %rdi
callq 0x10810
jmp 0x939ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x936f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x936e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x10fc8
leaq -0x108(%rbp), %rdi
callq 0x10fc8
leaq -0x109(%rbp), %rdi
callq 0x10810
jmp 0x939ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x93746
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x9373a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x10fc8
leaq -0x158(%rbp), %rdi
callq 0x10fc8
leaq -0x159(%rbp), %rdi
callq 0x10810
jmp 0x939ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x93797
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x9378b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x10fc8
leaq -0x1a8(%rbp), %rdi
callq 0x10fc8
leaq -0x1a9(%rbp), %rdi
callq 0x10810
jmp 0x939ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x937f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x937dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x10fc8
leaq -0x221(%rbp), %rdi
callq 0x10810
leaq -0x1f8(%rbp), %rdi
callq 0x10fc8
leaq -0x1f9(%rbp), %rdi
callq 0x10810
jmp 0x939ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x93845
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x93839
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x10fc8
leaq -0x248(%rbp), %rdi
callq 0x10fc8
leaq -0x249(%rbp), %rdi
callq 0x10810
jmp 0x939ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x93896
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x9388a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x2b8(%rbp), %rdi
callq 0x10fc8
leaq -0x290(%rbp), %rdi
callq 0x10fc8
leaq -0x291(%rbp), %rdi
callq 0x10810
jmp 0x939ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0x10fc8
jmp 0x939ff
movq -0x8(%rbp), %rdi
leaq 0x3b667(%rip), %rsi     # 0xcef36
callq 0x10720
jmp 0x938d6
movl $0x0, -0x2dc(%rbp)
movl -0x2dc(%rbp), %eax
movl %eax, -0x3cc(%rbp)
movq -0x10(%rbp), %rdi
callq 0x84030
movl %eax, %ecx
movl -0x3cc(%rbp), %eax
cmpl %ecx, %eax
jge 0x939a6
movq -0x10(%rbp), %rdi
movl -0x2dc(%rbp), %esi
callq 0x8a9b0
movq %rax, -0x3d8(%rbp)
jmp 0x9391d
movq -0x3d8(%rbp), %rdi
callq 0xa9800
movb %al, -0x3d9(%rbp)
jmp 0x93931
movb -0x3d9(%rbp), %al
testb $0x1, %al
jne 0x9393d
jmp 0x93990
movq -0x8(%rbp), %rax
movq %rax, -0x3f0(%rbp)
movq -0x10(%rbp), %rdi
callq 0xa8fe0
movq %rax, -0x3e8(%rbp)
jmp 0x9395a
movq -0x10(%rbp), %rdi
movl -0x2dc(%rbp), %esi
callq 0x8a9b0
movq %rax, -0x3f8(%rbp)
jmp 0x93972
movq -0x3f8(%rbp), %rdx
movq -0x3e8(%rbp), %rsi
movq -0x3f0(%rbp), %rdi
callq 0x91df0
jmp 0x9398e
jmp 0x93990
jmp 0x93992
movl -0x2dc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2dc(%rbp)
jmp 0x938e0
movq -0x8(%rbp), %rdi
leaq 0x3b66f(%rip), %rsi     # 0xcf020
callq 0x10720
movq %rax, -0x400(%rbp)
jmp 0x939bf
movq -0x400(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x10680
movq %rax, -0x408(%rbp)
jmp 0x939d8
movq -0x408(%rbp), %rdi
leaq 0x3b550(%rip), %rsi     # 0xcef36
callq 0x10720
jmp 0x939ed
leaq -0x30(%rbp), %rdi
callq 0x10fc8
addq $0x410, %rsp            # imm = 0x410
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x10fc8
movq -0x40(%rbp), %rdi
callq 0x10e00
nopw %cs:(%rax,%rax)