#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
int /*<<< orphan*/ fprintf(int /*<<< orphan*/ *, char *, ...);
void draw_start(FILE *fp, int max_x, int max_y) {
  fprintf(fp, "%%!\n");
  fprintf(fp, "/mm {72 mul 25.4 div} def\n");
  fprintf(fp, "/PageWidth  210 mm def %% const\n");
  fprintf(fp, "/PageHeight 297 mm def %% const\n");
  fprintf(fp, "/BorderWidth  7 mm def %% const\n");
  fprintf(fp, "/FontHeight     10 def %% const\n");
  fprintf(fp, "/setR {/R exch def} def\n");
  fprintf(fp, "/setr {/r exch def} def\n");
  fprintf(fp, "/setscaleX {/scaleX exch def} def\n");
  fprintf(fp, "/setscaleY {/scaleY exch def} def\n");
  fprintf(fp, "/setx {/x exch def} def\n");
  fprintf(fp, "/sety {/y exch def} def\n");
  fprintf(fp, "/setfx {/fx exch def} def\n");
  fprintf(fp, "/setfy {/fy exch def} def\n");
  fprintf(fp, "/settx {/tx exch def} def\n");
  fprintf(fp, "/setty {/ty exch def} def\n");
  fprintf(fp, "/settmp {/tmp exch def} def\n");
  fprintf(fp, "/Times-Roman findfont FontHeight scalefont setfont\n");
  fprintf(fp, "\n");
  fprintf(fp, "/rescale {                     %% stack: max_pos, max_level\n");
  fprintf(fp, "  PageHeight 2 BorderWidth mul\n");
  fprintf(
      fp,
      "  sub exch 1 add div setscaleY %% scaleY = (PH-2BW)/(max_level+1)\n");
  fprintf(fp, "  PageWidth 2 BorderWidth mul\n");
  fprintf(fp,
          "  sub exch div setscaleX       %% scaleX = (PH-2BW)/(max_pos)\n");
  fprintf(fp, "  scaleX .33 mul dup setR\n");
  fprintf(fp, "  0.25 scaleY mul gt {.2 scaleY mul setR} if\n");
  fprintf(fp, "  .6 mm setr\n");
  fprintf(fp, "  0 PageHeight translate       %% go to top of page\n");
  fprintf(fp, "  BorderWidth scaleX 2 div add\n");
  fprintf(fp, "  BorderWidth scaleY add\n");
  fprintf(fp, "  neg translate                %% go to left top of drawing\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/node {                        %% stack: (id), x, y\n");
  fprintf(fp, "  scaleY mul sety\n");
  fprintf(fp, "  scaleX mul setx\n");
  fprintf(fp, "  newpath\n");
  fprintf(fp, "  %% draw node\n");
  fprintf(fp, "  x y neg R 0 360 arc\n");
  fprintf(fp, "  %% draw then edge\n");
  fprintf(fp, "  .5 sqrt R mul settmp         %% tmp = sqrt(2) * R\n");
  fprintf(fp, "  x tmp sub setfx              %% fx = X(x) - tmp\n");
  fprintf(fp, "  y tmp add setfy              %% fy = Y(y) - sqrt 2 * R\n");
  fprintf(fp, "  x R sub settx                %% tx = X(x) - R\n");
  fprintf(fp, "  y R add setty                %% ty = Y(y) + R\n");
  fprintf(fp, "  fx fy neg moveto\n");
  fprintf(fp, "  tx ty neg lineto\n");
  fprintf(fp, "  %% draw else edge\n");
  fprintf(fp, "  x tmp add setfx              %% fx = X(x) + tmp\n");
  fprintf(fp, "  x R add settx                %% tx = X(x) + R\n");
  fprintf(fp, "  fx fy neg moveto\n");
  fprintf(fp, "  tx ty neg lineto\n");
  fprintf(fp, "  stroke\n");
  fprintf(fp, "  %% draw string\n");
  fprintf(fp, "  dup stringwidth pop\n");
  fprintf(fp, "  2 div neg x add\n");
  fprintf(fp, "  y FontHeight 3 div add\n");
  fprintf(fp, "  neg moveto show\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp,
          "/edge {                        %% stack: (polarity), fx, tx, ty\n");
  fprintf(fp, "  %% draw initial edge\n");
  fprintf(fp, "  scaleY mul R sub setty       %% ty = Y(y) - R\n");
  fprintf(fp, "  0 setfy                      %% fy = Y(0)\n");
  fprintf(fp, "  scaleX mul settx             %% tx = X(tx)\n");
  fprintf(fp, "  scaleX mul setfx             %% fx = X(fx)\n");
  fprintf(fp, "  newpath\n");
  fprintf(fp, "  fx fy neg moveto\n");
  fprintf(fp, "  0.5 scaleY mul setfy         %% fy = Y(0.5)\n");
  fprintf(fp, "  fx fy neg lineto\n");
  fprintf(fp, "  tx ty neg lineto\n");
  fprintf(fp, "  stroke\n");
  fprintf(fp, "  %% draw negation if necessary\n");
  fprintf(fp, "  (n) eq {\n");
  fprintf(fp, "    fx tx add 2 div            %% fx = (fx+tx)/2\n");
  fprintf(fp, "    fy ty add 2 div            %% fy = (fy+ty)/2\n");
  fprintf(fp, "    neg r 0 360 arc\n");
  fprintf(fp, "    0 setgray fill\n");
  fprintf(fp, "  }if\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/then { %%stack: (polarity), fx, fy, tx, ty\n");
  fprintf(fp, "  %% draw then edge\n");
  fprintf(fp, "  scaleY mul R sub setty       %% ty = Y(ty) - R\n");
  fprintf(fp, "  scaleX mul settx             %% tx = X(tx)\n");
  fprintf(fp, "  scaleY mul R add setfy       %% fy = Y(fy) + R\n");
  fprintf(fp, "  scaleX mul R sub setfx       %% fx = X(fx) - R\n");
  fprintf(fp, "  newpath\n");
  fprintf(fp, "  fx fy neg moveto\n");
  fprintf(fp, "  tx ty neg lineto\n");
  fprintf(fp, "  stroke\n");
  fprintf(fp, "  %% draw negation if necessary\n");
  fprintf(fp, "  (n) eq {\n");
  fprintf(fp, "    fx tx add 2 div            %% fx = (fx+tx)/2\n");
  fprintf(fp, "    fy ty add 2 div            %% fy = (fy+ty)/2\n");
  fprintf(fp, "    neg r 0 360 arc\n");
  fprintf(fp, "    0 setgray fill\n");
  fprintf(fp, "  }if\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/else { %%stack: (polarity), fx, fy, tx, ty\n");
  fprintf(fp, "  %% draw else edge\n");
  fprintf(fp, "  scaleY mul R sub setty       %% ty = Y(ty) - R\n");
  fprintf(fp, "  scaleX mul settx             %% tx = X(tx)\n");
  fprintf(fp, "  scaleY mul R add setfy       %% fy = Y(fy) + R\n");
  fprintf(fp, "  scaleX mul R add setfx       %% fx = X(fx) + R\n");
  fprintf(fp, "  newpath\n");
  fprintf(fp, "  fx fy neg moveto\n");
  fprintf(fp, "  tx ty neg lineto\n");
  fprintf(fp, "  stroke\n");
  fprintf(fp, "  %% draw negation if necessary\n");
  fprintf(fp, "  (n) eq {\n");
  fprintf(fp, "    fx tx add 2 div            %% fx = (fx+tx)/2\n");
  fprintf(fp, "    fy ty add 2 div            %% fy = (fy+ty)/2\n");
  fprintf(fp, "    neg r 0 360 arc\n");
  fprintf(fp, "    0 setgray fill\n");
  fprintf(fp, "  }if\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/const {                       %% stack: (const), x, y\n");
  fprintf(fp, "  scaleY mul FontHeight 2 div add\n");
  fprintf(fp, "  exch scaleX mul exch\n");
  fprintf(fp, "  newpath neg moveto dup stringwidth\n");
  fprintf(fp, "  pop 2 div neg 0 rmoveto show\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/void {                       %% stack: (void), x, y\n");
  fprintf(fp, "  scaleY mul FontHeight 2 div add\n");
  fprintf(fp, "  exch scaleX mul exch\n");
  fprintf(fp, "  newpath neg moveto dup stringwidth\n");
  fprintf(fp, "  pop 2 div neg 0 rmoveto show\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/name {                       %% stack: (name), x, y\n");
  fprintf(fp, "  scaleY mul FontHeight sub\n");
  fprintf(fp, "  exch scaleX mul exch\n");
  fprintf(fp, "  newpath neg moveto dup stringwidth\n");
  fprintf(fp, "  pop 2 div neg 0 rmoveto show\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/then_const {                  %% stack: (const), x, y\n");
  fprintf(fp, "  scaleY mul exch\n");
  fprintf(fp, "  scaleX mul exch\n");
  fprintf(fp, "  newpath neg moveto dup stringwidth pop\n");
  fprintf(fp, "  2 div R add neg              %% x = X(x) - R - fw/2\n");
  fprintf(fp, "  R 0.025 scaleY mul add\n");
  fprintf(
      fp,
      "  FontHeight add               %% y = Y(y) + R + 0.025*scaleY + FH\n");
  fprintf(fp, "  neg rmoveto show\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/else_const {                  %% stack: (const), x, y\n");
  fprintf(fp, "  scaleY mul exch\n");
  fprintf(fp, "  scaleX mul exch\n");
  fprintf(fp, "  newpath neg moveto dup stringwidth pop\n");
  fprintf(fp, "  2 div neg R add              %% x = X(x) + R - fw/2\n");
  fprintf(fp, "  R 0.025 scaleY mul add\n");
  fprintf(
      fp,
      "  FontHeight add               %% y = Y(y) + R + 0.025*scaleY + FH\n");
  fprintf(fp, "  neg rmoveto show\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "%d %d rescale\n", max_x, max_y);
}


x86 assembly (clang, -O0):
<draw_start>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    -0x8(%rbp),%rdi
lea    0xed3(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xec6(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xecf(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xede(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xeed(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xefc(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf0b(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf12(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf19(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf2a(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf3b(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf42(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf49(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf52(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf5b(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf64(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf6d(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf78(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xd92(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf88(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfb3(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfc1(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xff2(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfff(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x102c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1035(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1051(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x104d(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1070(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x107e(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1086(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xd5b(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xc96(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x108d(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10b0(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10b1(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10b2(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10ab(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10a9(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10ae(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10b1(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10d4(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10f5(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x111d(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x113c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x115b(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x115d(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x115f(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1162(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1183(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1101(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1103(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x117e(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1176(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1176(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x117b(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x117c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1184(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xb75(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xab0(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1161(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1190(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1196(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11b5(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11d0(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11ec(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xe96(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfcf(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11e4(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1201(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfad(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1028(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11df(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11ee(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11e8(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1208(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1228(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x122b(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x122d(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x9fb(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x936(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x11fe(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xda8(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1207(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1068(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1215(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1235(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xd1c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xe55(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xe57(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xed2(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1089(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1098(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1092(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10b2(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10d2(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10d5(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10d7(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x8a5(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x7e0(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x116b(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xd93(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10b1(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf12(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10bf(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x113e(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xbc6(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xcff(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xd01(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xd7c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf33(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf42(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf3c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf5c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf7c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf7f(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf81(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x74f(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x68a(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1074(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x109a(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10ab(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10b1(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10c5(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x6d1(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x60c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10af(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x101c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x102d(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1033(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1047(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x653(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x58e(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1067(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x108b(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfaf(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfb5(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfc9(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x5d5(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x510(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x103c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1062(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1063(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1064(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x107c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10a1(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10a9(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10db(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x521(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x45c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10b9(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfae(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfaf(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfb0(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x10a9(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xfed(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xff5(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x1027(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x46d(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0x3a8(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%edx
mov    -0x10(%rbp),%ecx
lea    0x106e(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<draw_start>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    %edx,0x4(%rsp)
mov    %esi,(%rsp)
mov    %rdi,%rbx
lea    0xeb4(%rip),%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xeab(%rip),%rdi
mov    $0x1a,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xead(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xebd(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xecd(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xedd(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xeed(%rip),%rdi
mov    $0x18,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xeed(%rip),%rdi
mov    $0x18,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xeed(%rip),%rdi
mov    $0x22,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xef7(%rip),%rdi
mov    $0x22,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf01(%rip),%rdi
mov    $0x18,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf01(%rip),%rdi
mov    $0x18,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf01(%rip),%rdi
mov    $0x1a,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf03(%rip),%rdi
mov    $0x1a,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf05(%rip),%rdi
mov    $0x1a,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf07(%rip),%rdi
mov    $0x1a,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf09(%rip),%rdi
mov    $0x1c,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf0d(%rip),%rdi
mov    $0x33,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0xa,%edi
mov    %rbx,%rsi
call   1030 <fputc@plt>
lea    0xf1b(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xf47(%rip),%rdi
mov    $0x1f,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf4e(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xf80(%rip),%rdi
mov    $0x1e,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf86(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xfb4(%rip),%rdi
mov    $0x1a,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xfb6(%rip),%rdi
mov    $0x2d,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xfcb(%rip),%rdi
mov    $0xd,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xfc0(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xfe4(%rip),%rdi
mov    $0x1f,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xfeb(%rip),%rdi
mov    $0x19,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xfec(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xcc2(%rip),%r15
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r15,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0xa,%edi
mov    %rbx,%rsi
call   1030 <fputc@plt>
lea    0xfef(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x1013(%rip),%rdi
mov    $0x12,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x100d(%rip),%rdi
mov    $0x12,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x1007(%rip),%r14
mov    $0xa,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xff6(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xff5(%rip),%rdi
mov    $0x16,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xff3(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xff7(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x101b(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x103d(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x1066(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x1086(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x10a6(%rip),%r12
mov    $0x13,%esi
mov    $0x1,%edx
mov    %r12,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x109e(%rip),%r13
mov    $0x13,%esi
mov    $0x1,%edx
mov    %r13,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x1096(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x109a(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x10bc(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    $0x13,%esi
mov    $0x1,%edx
mov    %r12,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x13,%esi
mov    $0x1,%edx
mov    %r13,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10b2(%rip),%rbp
mov    $0x9,%esi
mov    $0x1,%edx
mov    %rbp,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10a0(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x10a1(%rip),%rdi
mov    $0x16,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x109f(%rip),%rdi
mov    $0x12,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x1099(%rip),%rdi
mov    $0x19,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x109a(%rip),%rdi
mov    $0x12,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r15,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0xa,%edi
mov    %rbx,%rsi
call   1030 <fputc@plt>
lea    0x1072(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x10a2(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x10a9(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x10c9(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x10e5(%rip),%r15
mov    %rbx,%rdi
mov    %r15,%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x10ff(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    $0xa,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x13,%esi
mov    $0x1,%edx
mov    %r12,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10f2(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x1110(%rip),%rdi
mov    $0x13,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x13,%esi
mov    $0x1,%edx
mov    %r13,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x9,%esi
mov    $0x1,%edx
mov    %rbp,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10e1(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x10f1(%rip),%rdi
mov    $0xb,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10e4(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x1105(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x1126(%rip),%rdi
mov    $0x14,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x1122(%rip),%r13
mov    $0x13,%esi
mov    $0x1,%edx
mov    %r13,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x111a(%rip),%r12
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r12,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
lea    0x8d4(%rip),%rdi
mov    %rdi,%rbp
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0xa,%edi
mov    %rbx,%rsi
call   1030 <fputc@plt>
lea    0x10dc(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    %rbx,%rdi
lea    0xc84(%rip),%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x10e7(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    %rbx,%rdi
mov    %r15,%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x10fb(%rip),%r15
mov    %rbx,%rdi
mov    %r15,%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x1119(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    $0xa,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x13,%esi
mov    $0x1,%edx
lea    0xd2d(%rip),%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x13,%esi
mov    $0x1,%edx
lea    0xd28(%rip),%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x9,%esi
mov    $0x1,%edx
lea    0xd9c(%rip),%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    %rbx,%rdi
lea    0xf53(%rip),%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    $0xb,%esi
mov    $0x1,%edx
lea    0xf5c(%rip),%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    %rbx,%rdi
lea    0xf56(%rip),%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    %rbx,%rdi
lea    0xf77(%rip),%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    $0x14,%esi
mov    $0x1,%edx
lea    0xf91(%rip),%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x13,%esi
mov    $0x1,%edx
mov    %r13,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r12,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %rbp,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0xa,%edi
mov    %rbx,%rsi
call   1030 <fputc@plt>
lea    0x1029(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    %rbx,%rdi
lea    0xc4f(%rip),%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    %rbx,%rdi
lea    0xf6e(%rip),%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    %rbx,%rdi
lea    0xdd0(%rip),%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    %rbx,%rdi
mov    %r15,%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0x1005(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    $0xa,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x13,%esi
mov    $0x1,%edx
lea    0xbba(%rip),%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x13,%esi
mov    $0x1,%edx
lea    0xbb5(%rip),%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x9,%esi
mov    $0x1,%edx
lea    0xc29(%rip),%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    %rbx,%rdi
lea    0xde0(%rip),%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    $0xb,%esi
mov    $0x1,%edx
lea    0xde9(%rip),%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    %rbx,%rdi
lea    0xde3(%rip),%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    %rbx,%rdi
lea    0xe04(%rip),%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    $0x14,%esi
mov    $0x1,%edx
lea    0xe1e(%rip),%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x13,%esi
mov    $0x1,%edx
mov    %r13,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r12,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %rbp,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0xa,%edi
mov    %rbx,%rsi
call   1030 <fputc@plt>
lea    0xf15(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xf3c(%rip),%r13
mov    $0x22,%esi
mov    $0x1,%edx
mov    %r13,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf43(%rip),%r14
mov    $0x17,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf3f(%rip),%r15
mov    $0x25,%esi
mov    $0x1,%edx
mov    %r15,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xf49(%rip),%r12
mov    $0x1f,%esi
mov    $0x1,%edx
mov    %r12,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %rbp,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0xa,%edi
mov    %rbx,%rsi
call   1030 <fputc@plt>
lea    0xf2b(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    $0x22,%esi
mov    $0x1,%edx
mov    %r13,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x17,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x25,%esi
mov    $0x1,%edx
mov    %r15,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x1f,%esi
mov    $0x1,%edx
mov    %r12,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %rbp,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0xa,%edi
mov    %rbx,%rsi
call   1030 <fputc@plt>
lea    0xeda(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xeff(%rip),%rdi
mov    $0x1c,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x17,%esi
mov    $0x1,%edx
mov    %r14,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x25,%esi
mov    $0x1,%edx
mov    %r15,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x1f,%esi
mov    $0x1,%edx
mov    %r12,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %rbp,%rdi
mov    %rbp,%r15
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0xa,%edi
mov    %rbx,%rsi
call   1030 <fputc@plt>
lea    0xe9f(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xec6(%rip),%rdi
mov    $0x12,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xec0(%rip),%rdi
mov    $0x12,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xeba(%rip),%r12
mov    $0x29,%esi
mov    $0x1,%edx
mov    %r12,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xec8(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xeee(%rip),%r13
mov    $0x19,%esi
mov    $0x1,%edx
mov    %r13,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xeec(%rip),%r14
mov    %rbx,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
lea    0xf1c(%rip),%rbp
mov    $0x13,%esi
mov    $0x1,%edx
mov    %rbp,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r15,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0xa,%edi
mov    %rbx,%rsi
call   1030 <fputc@plt>
lea    0xef2(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    $0x12,%esi
mov    $0x1,%edx
lea    0xdde(%rip),%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x12,%esi
mov    $0x1,%edx
lea    0xdd8(%rip),%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x29,%esi
mov    $0x1,%edx
mov    %r12,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xed2(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    $0x19,%esi
mov    $0x1,%edx
mov    %r13,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    %rbx,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <fprintf@plt>
mov    $0x13,%esi
mov    $0x1,%edx
mov    %rbp,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r15,%rdi
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    $0xa,%edi
mov    %rbx,%rsi
call   1030 <fputc@plt>
lea    0xe9f(%rip),%rsi
mov    %rbx,%rdi
mov    (%rsp),%edx
mov    0x4(%rsp),%ecx
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1040 <fprintf@plt>

LLVM IR (-O0):
@.str = [5 x i8] c"%%!\0A\00"
@.str.1 = [27 x i8] c"/mm {72 mul 25.4 div} def\0A\00"
@.str.2 = [33 x i8] c"/PageWidth 210 mm def %% const\0A\00"
@.str.3 = [33 x i8] c"/PageHeight 297 mm def %% const\0A\00"
@.str.4 = [33 x i8] c"/BorderWidth 7 mm def %% const\0A\00"
@.str.5 = [33 x i8] c"/FontHeight 10 def %% const\0A\00"
@.str.6 = [25 x i8] c"/setR {/R exch def} def\0A\00"
@.str.7 = [25 x i8] c"/setr {/r exch def} def\0A\00"
@.str.8 = [35 x i8] c"/setscaleX {/scaleX exch def} def\0A\00"
@.str.9 = [35 x i8] c"/setscaleY {/scaleY exch def} def\0A\00"
@.str.10 = [25 x i8] c"/setx {/x exch def} def\0A\00"
@.str.11 = [25 x i8] c"/sety {/y exch def} def\0A\00"
@.str.12 = [27 x i8] c"/setfx {/fx exch def} def\0A\00"
@.str.13 = [27 x i8] c"/setfy {/fy exch def} def\0A\00"
@.str.14 = [27 x i8] c"/settx {/tx exch def} def\0A\00"
@.str.15 = [27 x i8] c"/setty {/ty exch def} def\0A\00"
@.str.16 = [29 x i8] c"/settmp {/tmp exch def} def\0A\00"
@.str.17 = [52 x i8] c"/Times-Roman findfont FontHeight scalefont setfont\0A\00"
@.str.18 = [2 x i8] c"\0A\00"
@.str.19 = [61 x i8] c"/rescale { %% stack: max_pos, max_level\0A\00"
@.str.20 = [32 x i8] c" PageHeight 2 BorderWidth mul\0A\00"
@.str.21 = [67 x i8] c" sub exch 1 add div setscaleY %% scaleY = (PH-2BW)/(max_level+1)\0A\00"
@.str.22 = [31 x i8] c" PageWidth 2 BorderWidth mul\0A\00"
@.str.23 = [63 x i8] c" sub exch div setscaleX %% scaleX = (PH-2BW)/(max_pos)\0A\00"
@.str.24 = [27 x i8] c" scaleX .33 mul dup setR\0A\00"
@.str.25 = [46 x i8] c" 0.25 scaleY mul gt {.2 scaleY mul setR} if\0A\00"
@.str.26 = [14 x i8] c" .6 mm setr\0A\00"
@.str.27 = [53 x i8] c" 0 PageHeight translate %% go to top of page\0A\00"
@.str.28 = [32 x i8] c" BorderWidth scaleX 2 div add\0A\00"
@.str.29 = [26 x i8] c" BorderWidth scaleY add\0A\00"
@.str.30 = [61 x i8] c" neg translate %% go to left top of drawing\0A\00"
@.str.31 = [7 x i8] c"} def\0A\00"
@.str.32 = [53 x i8] c"/node { %% stack: (id), x, y\0A\00"
@.str.33 = [19 x i8] c" scaleY mul sety\0A\00"
@.str.34 = [19 x i8] c" scaleX mul setx\0A\00"
@.str.35 = [11 x i8] c" newpath\0A\00"
@.str.36 = [16 x i8] c" %% draw node\0A\00"
@.str.37 = [23 x i8] c" x y neg R 0 360 arc\0A\00"
@.str.38 = [21 x i8] c" %% draw then edge\0A\00"
@.str.39 = [53 x i8] c" .5 sqrt R mul settmp %% tmp = sqrt(2) * R\0A\00"
@.str.40 = [51 x i8] c" x tmp sub setfx %% fx = X(x) - tmp\0A\00"
@.str.41 = [58 x i8] c" y tmp add setfy %% fy = Y(y) - sqrt 2 * R\0A\00"
@.str.42 = [49 x i8] c" x R sub settx %% tx = X(x) - R\0A\00"
@.str.43 = [49 x i8] c" y R add setty %% ty = Y(y) + R\0A\00"
@.str.44 = [20 x i8] c" fx fy neg moveto\0A\00"
@.str.45 = [20 x i8] c" tx ty neg lineto\0A\00"
@.str.46 = [21 x i8] c" %% draw else edge\0A\00"
@.str.47 = [51 x i8] c" x tmp add setfx %% fx = X(x) + tmp\0A\00"
@.str.48 = [49 x i8] c" x R add settx %% tx = X(x) + R\0A\00"
@.str.49 = [10 x i8] c" stroke\0A\00"
@.str.50 = [18 x i8] c" %% draw string\0A\00"
@.str.51 = [23 x i8] c" dup stringwidth pop\0A\00"
@.str.52 = [19 x i8] c" 2 div neg x add\0A\00"
@.str.53 = [26 x i8] c" y FontHeight 3 div add\0A\00"
@.str.54 = [19 x i8] c" neg moveto show\0A\00"
@.str.55 = [65 x i8] c"/edge { %% stack: (polarity), fx, tx, ty\0A\00"
@.str.56 = [24 x i8] c" %% draw initial edge\0A\00"
@.str.57 = [49 x i8] c" scaleY mul R sub setty %% ty = Y(y) - R\0A\00"
@.str.58 = [45 x i8] c" 0 setfy %% fy = Y(0)\0A\00"
@.str.59 = [46 x i8] c" scaleX mul settx %% tx = X(tx)\0A\00"
@.str.60 = [46 x i8] c" scaleX mul setfx %% fx = X(fx)\0A\00"
@.str.61 = [47 x i8] c" 0.5 scaleY mul setfy %% fy = Y(0.5)\0A\00"
@.str.62 = [20 x i8] c" fx fy neg lineto\0A\00"
@.str.63 = [33 x i8] c" %% draw negation if necessary\0A\00"
@.str.64 = [12 x i8] c" (n) eq {\0A\00"
@.str.65 = [50 x i8] c" fx tx add 2 div %% fx = (fx+tx)/2\0A\00"
@.str.66 = [50 x i8] c" fy ty add 2 div %% fy = (fy+ty)/2\0A\00"
@.str.67 = [21 x i8] c" neg r 0 360 arc\0A\00"
@.str.68 = [20 x i8] c" 0 setgray fill\0A\00"
@.str.69 = [7 x i8] c" }if\0A\00"
@.str.70 = [45 x i8] c"/then { %%stack: (polarity), fx, fy, tx, ty\0A\00"
@.str.71 = [50 x i8] c" scaleY mul R sub setty %% ty = Y(ty) - R\0A\00"
@.str.72 = [50 x i8] c" scaleY mul R add setfy %% fy = Y(fy) + R\0A\00"
@.str.73 = [50 x i8] c" scaleX mul R sub setfx %% fx = X(fx) - R\0A\00"
@.str.74 = [45 x i8] c"/else { %%stack: (polarity), fx, fy, tx, ty\0A\00"
@.str.75 = [50 x i8] c" scaleX mul R add setfx %% fx = X(fx) + R\0A\00"
@.str.76 = [56 x i8] c"/const { %% stack: (const), x, y\0A\00"
@.str.77 = [35 x i8] c" scaleY mul FontHeight 2 div add\0A\00"
@.str.78 = [24 x i8] c" exch scaleX mul exch\0A\00"
@.str.79 = [38 x i8] c" newpath neg moveto dup stringwidth\0A\00"
@.str.80 = [32 x i8] c" pop 2 div neg 0 rmoveto show\0A\00"
@.str.81 = [54 x i8] c"/void { %% stack: (void), x, y\0A\00"
@.str.82 = [54 x i8] c"/name { %% stack: (name), x, y\0A\00"
@.str.83 = [29 x i8] c" scaleY mul FontHeight sub\0A\00"
@.str.84 = [56 x i8] c"/then_const { %% stack: (const), x, y\0A\00"
@.str.85 = [19 x i8] c" scaleY mul exch\0A\00"
@.str.86 = [19 x i8] c" scaleX mul exch\0A\00"
@.str.87 = [42 x i8] c" newpath neg moveto dup stringwidth pop\0A\00"
@.str.88 = [55 x i8] c" 2 div R add neg %% x = X(x) - R - fw/2\0A\00"
@.str.89 = [26 x i8] c" R 0.025 scaleY mul add\0A\00"
@.str.90 = [68 x i8] c" FontHeight add %% y = Y(y) + R + 0.025*scaleY + FH\0A\00"
@.str.91 = [20 x i8] c" neg rmoveto show\0A\00"
@.str.92 = [56 x i8] c"/else_const { %% stack: (const), x, y\0A\00"
@.str.93 = [55 x i8] c" 2 div neg R add %% x = X(x) + R - fw/2\0A\00"
@.str.94 = [15 x i8] c"%d %d rescale\0A\00"
define void @draw_start(i32* %0, i32 %1, i32 %2) {
%4 = alloca i32*
%5 = alloca i32
%6 = alloca i32
store i32* %0, i32** %4
store i32 %1, i32* %5
store i32 %2, i32* %6
%7 = load i32*, i32** %4
%8 = call i32 (i32*, i8*, ...) @fprintf(i32* %7, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%9 = load i32*, i32** %4
%10 = call i32 (i32*, i8*, ...) @fprintf(i32* %9, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.1, i64 0, i64 0))
%11 = load i32*, i32** %4
%12 = call i32 (i32*, i8*, ...) @fprintf(i32* %11, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.2, i64 0, i64 0))
%13 = load i32*, i32** %4
%14 = call i32 (i32*, i8*, ...) @fprintf(i32* %13, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.3, i64 0, i64 0))
%15 = load i32*, i32** %4
%16 = call i32 (i32*, i8*, ...) @fprintf(i32* %15, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.4, i64 0, i64 0))
%17 = load i32*, i32** %4
%18 = call i32 (i32*, i8*, ...) @fprintf(i32* %17, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.5, i64 0, i64 0))
%19 = load i32*, i32** %4
%20 = call i32 (i32*, i8*, ...) @fprintf(i32* %19, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.6, i64 0, i64 0))
%21 = load i32*, i32** %4
%22 = call i32 (i32*, i8*, ...) @fprintf(i32* %21, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.7, i64 0, i64 0))
%23 = load i32*, i32** %4
%24 = call i32 (i32*, i8*, ...) @fprintf(i32* %23, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.8, i64 0, i64 0))
%25 = load i32*, i32** %4
%26 = call i32 (i32*, i8*, ...) @fprintf(i32* %25, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.9, i64 0, i64 0))
%27 = load i32*, i32** %4
%28 = call i32 (i32*, i8*, ...) @fprintf(i32* %27, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.10, i64 0, i64 0))
%29 = load i32*, i32** %4
%30 = call i32 (i32*, i8*, ...) @fprintf(i32* %29, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.11, i64 0, i64 0))
%31 = load i32*, i32** %4
%32 = call i32 (i32*, i8*, ...) @fprintf(i32* %31, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.12, i64 0, i64 0))
%33 = load i32*, i32** %4
%34 = call i32 (i32*, i8*, ...) @fprintf(i32* %33, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.13, i64 0, i64 0))
%35 = load i32*, i32** %4
%36 = call i32 (i32*, i8*, ...) @fprintf(i32* %35, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.14, i64 0, i64 0))
%37 = load i32*, i32** %4
%38 = call i32 (i32*, i8*, ...) @fprintf(i32* %37, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.15, i64 0, i64 0))
%39 = load i32*, i32** %4
%40 = call i32 (i32*, i8*, ...) @fprintf(i32* %39, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.16, i64 0, i64 0))
%41 = load i32*, i32** %4
%42 = call i32 (i32*, i8*, ...) @fprintf(i32* %41, i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.17, i64 0, i64 0))
%43 = load i32*, i32** %4
%44 = call i32 (i32*, i8*, ...) @fprintf(i32* %43, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%45 = load i32*, i32** %4
%46 = call i32 (i32*, i8*, ...) @fprintf(i32* %45, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.19, i64 0, i64 0))
%47 = load i32*, i32** %4
%48 = call i32 (i32*, i8*, ...) @fprintf(i32* %47, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.20, i64 0, i64 0))
%49 = load i32*, i32** %4
%50 = call i32 (i32*, i8*, ...) @fprintf(i32* %49, i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.21, i64 0, i64 0))
%51 = load i32*, i32** %4
%52 = call i32 (i32*, i8*, ...) @fprintf(i32* %51, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.22, i64 0, i64 0))
%53 = load i32*, i32** %4
%54 = call i32 (i32*, i8*, ...) @fprintf(i32* %53, i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.23, i64 0, i64 0))
%55 = load i32*, i32** %4
%56 = call i32 (i32*, i8*, ...) @fprintf(i32* %55, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.24, i64 0, i64 0))
%57 = load i32*, i32** %4
%58 = call i32 (i32*, i8*, ...) @fprintf(i32* %57, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.25, i64 0, i64 0))
%59 = load i32*, i32** %4
%60 = call i32 (i32*, i8*, ...) @fprintf(i32* %59, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.26, i64 0, i64 0))
%61 = load i32*, i32** %4
%62 = call i32 (i32*, i8*, ...) @fprintf(i32* %61, i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.27, i64 0, i64 0))
%63 = load i32*, i32** %4
%64 = call i32 (i32*, i8*, ...) @fprintf(i32* %63, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.28, i64 0, i64 0))
%65 = load i32*, i32** %4
%66 = call i32 (i32*, i8*, ...) @fprintf(i32* %65, i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.29, i64 0, i64 0))
%67 = load i32*, i32** %4
%68 = call i32 (i32*, i8*, ...) @fprintf(i32* %67, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.30, i64 0, i64 0))
%69 = load i32*, i32** %4
%70 = call i32 (i32*, i8*, ...) @fprintf(i32* %69, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%71 = load i32*, i32** %4
%72 = call i32 (i32*, i8*, ...) @fprintf(i32* %71, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%73 = load i32*, i32** %4
%74 = call i32 (i32*, i8*, ...) @fprintf(i32* %73, i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.32, i64 0, i64 0))
%75 = load i32*, i32** %4
%76 = call i32 (i32*, i8*, ...) @fprintf(i32* %75, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.33, i64 0, i64 0))
%77 = load i32*, i32** %4
%78 = call i32 (i32*, i8*, ...) @fprintf(i32* %77, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.34, i64 0, i64 0))
%79 = load i32*, i32** %4
%80 = call i32 (i32*, i8*, ...) @fprintf(i32* %79, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.35, i64 0, i64 0))
%81 = load i32*, i32** %4
%82 = call i32 (i32*, i8*, ...) @fprintf(i32* %81, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.36, i64 0, i64 0))
%83 = load i32*, i32** %4
%84 = call i32 (i32*, i8*, ...) @fprintf(i32* %83, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.37, i64 0, i64 0))
%85 = load i32*, i32** %4
%86 = call i32 (i32*, i8*, ...) @fprintf(i32* %85, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.38, i64 0, i64 0))
%87 = load i32*, i32** %4
%88 = call i32 (i32*, i8*, ...) @fprintf(i32* %87, i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.39, i64 0, i64 0))
%89 = load i32*, i32** %4
%90 = call i32 (i32*, i8*, ...) @fprintf(i32* %89, i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.40, i64 0, i64 0))
%91 = load i32*, i32** %4
%92 = call i32 (i32*, i8*, ...) @fprintf(i32* %91, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.41, i64 0, i64 0))
%93 = load i32*, i32** %4
%94 = call i32 (i32*, i8*, ...) @fprintf(i32* %93, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.42, i64 0, i64 0))
%95 = load i32*, i32** %4
%96 = call i32 (i32*, i8*, ...) @fprintf(i32* %95, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.43, i64 0, i64 0))
%97 = load i32*, i32** %4
%98 = call i32 (i32*, i8*, ...) @fprintf(i32* %97, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.44, i64 0, i64 0))
%99 = load i32*, i32** %4
%100 = call i32 (i32*, i8*, ...) @fprintf(i32* %99, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.45, i64 0, i64 0))
%101 = load i32*, i32** %4
%102 = call i32 (i32*, i8*, ...) @fprintf(i32* %101, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.46, i64 0, i64 0))
%103 = load i32*, i32** %4
%104 = call i32 (i32*, i8*, ...) @fprintf(i32* %103, i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.47, i64 0, i64 0))
%105 = load i32*, i32** %4
%106 = call i32 (i32*, i8*, ...) @fprintf(i32* %105, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.48, i64 0, i64 0))
%107 = load i32*, i32** %4
%108 = call i32 (i32*, i8*, ...) @fprintf(i32* %107, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.44, i64 0, i64 0))
%109 = load i32*, i32** %4
%110 = call i32 (i32*, i8*, ...) @fprintf(i32* %109, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.45, i64 0, i64 0))
%111 = load i32*, i32** %4
%112 = call i32 (i32*, i8*, ...) @fprintf(i32* %111, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.49, i64 0, i64 0))
%113 = load i32*, i32** %4
%114 = call i32 (i32*, i8*, ...) @fprintf(i32* %113, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.50, i64 0, i64 0))
%115 = load i32*, i32** %4
%116 = call i32 (i32*, i8*, ...) @fprintf(i32* %115, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.51, i64 0, i64 0))
%117 = load i32*, i32** %4
%118 = call i32 (i32*, i8*, ...) @fprintf(i32* %117, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.52, i64 0, i64 0))
%119 = load i32*, i32** %4
%120 = call i32 (i32*, i8*, ...) @fprintf(i32* %119, i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.53, i64 0, i64 0))
%121 = load i32*, i32** %4
%122 = call i32 (i32*, i8*, ...) @fprintf(i32* %121, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.54, i64 0, i64 0))
%123 = load i32*, i32** %4
%124 = call i32 (i32*, i8*, ...) @fprintf(i32* %123, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%125 = load i32*, i32** %4
%126 = call i32 (i32*, i8*, ...) @fprintf(i32* %125, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%127 = load i32*, i32** %4
%128 = call i32 (i32*, i8*, ...) @fprintf(i32* %127, i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.55, i64 0, i64 0))
%129 = load i32*, i32** %4
%130 = call i32 (i32*, i8*, ...) @fprintf(i32* %129, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.56, i64 0, i64 0))
%131 = load i32*, i32** %4
%132 = call i32 (i32*, i8*, ...) @fprintf(i32* %131, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.57, i64 0, i64 0))
%133 = load i32*, i32** %4
%134 = call i32 (i32*, i8*, ...) @fprintf(i32* %133, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.58, i64 0, i64 0))
%135 = load i32*, i32** %4
%136 = call i32 (i32*, i8*, ...) @fprintf(i32* %135, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.59, i64 0, i64 0))
%137 = load i32*, i32** %4
%138 = call i32 (i32*, i8*, ...) @fprintf(i32* %137, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.60, i64 0, i64 0))
%139 = load i32*, i32** %4
%140 = call i32 (i32*, i8*, ...) @fprintf(i32* %139, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.35, i64 0, i64 0))
%141 = load i32*, i32** %4
%142 = call i32 (i32*, i8*, ...) @fprintf(i32* %141, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.44, i64 0, i64 0))
%143 = load i32*, i32** %4
%144 = call i32 (i32*, i8*, ...) @fprintf(i32* %143, i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.61, i64 0, i64 0))
%145 = load i32*, i32** %4
%146 = call i32 (i32*, i8*, ...) @fprintf(i32* %145, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.62, i64 0, i64 0))
%147 = load i32*, i32** %4
%148 = call i32 (i32*, i8*, ...) @fprintf(i32* %147, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.45, i64 0, i64 0))
%149 = load i32*, i32** %4
%150 = call i32 (i32*, i8*, ...) @fprintf(i32* %149, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.49, i64 0, i64 0))
%151 = load i32*, i32** %4
%152 = call i32 (i32*, i8*, ...) @fprintf(i32* %151, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.63, i64 0, i64 0))
%153 = load i32*, i32** %4
%154 = call i32 (i32*, i8*, ...) @fprintf(i32* %153, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.64, i64 0, i64 0))
%155 = load i32*, i32** %4
%156 = call i32 (i32*, i8*, ...) @fprintf(i32* %155, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.65, i64 0, i64 0))
%157 = load i32*, i32** %4
%158 = call i32 (i32*, i8*, ...) @fprintf(i32* %157, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.66, i64 0, i64 0))
%159 = load i32*, i32** %4
%160 = call i32 (i32*, i8*, ...) @fprintf(i32* %159, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.67, i64 0, i64 0))
%161 = load i32*, i32** %4
%162 = call i32 (i32*, i8*, ...) @fprintf(i32* %161, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.68, i64 0, i64 0))
%163 = load i32*, i32** %4
%164 = call i32 (i32*, i8*, ...) @fprintf(i32* %163, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.69, i64 0, i64 0))
%165 = load i32*, i32** %4
%166 = call i32 (i32*, i8*, ...) @fprintf(i32* %165, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%167 = load i32*, i32** %4
%168 = call i32 (i32*, i8*, ...) @fprintf(i32* %167, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%169 = load i32*, i32** %4
%170 = call i32 (i32*, i8*, ...) @fprintf(i32* %169, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.70, i64 0, i64 0))
%171 = load i32*, i32** %4
%172 = call i32 (i32*, i8*, ...) @fprintf(i32* %171, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.38, i64 0, i64 0))
%173 = load i32*, i32** %4
%174 = call i32 (i32*, i8*, ...) @fprintf(i32* %173, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.71, i64 0, i64 0))
%175 = load i32*, i32** %4
%176 = call i32 (i32*, i8*, ...) @fprintf(i32* %175, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.59, i64 0, i64 0))
%177 = load i32*, i32** %4
%178 = call i32 (i32*, i8*, ...) @fprintf(i32* %177, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.72, i64 0, i64 0))
%179 = load i32*, i32** %4
%180 = call i32 (i32*, i8*, ...) @fprintf(i32* %179, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.73, i64 0, i64 0))
%181 = load i32*, i32** %4
%182 = call i32 (i32*, i8*, ...) @fprintf(i32* %181, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.35, i64 0, i64 0))
%183 = load i32*, i32** %4
%184 = call i32 (i32*, i8*, ...) @fprintf(i32* %183, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.44, i64 0, i64 0))
%185 = load i32*, i32** %4
%186 = call i32 (i32*, i8*, ...) @fprintf(i32* %185, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.45, i64 0, i64 0))
%187 = load i32*, i32** %4
%188 = call i32 (i32*, i8*, ...) @fprintf(i32* %187, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.49, i64 0, i64 0))
%189 = load i32*, i32** %4
%190 = call i32 (i32*, i8*, ...) @fprintf(i32* %189, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.63, i64 0, i64 0))
%191 = load i32*, i32** %4
%192 = call i32 (i32*, i8*, ...) @fprintf(i32* %191, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.64, i64 0, i64 0))
%193 = load i32*, i32** %4
%194 = call i32 (i32*, i8*, ...) @fprintf(i32* %193, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.65, i64 0, i64 0))
%195 = load i32*, i32** %4
%196 = call i32 (i32*, i8*, ...) @fprintf(i32* %195, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.66, i64 0, i64 0))
%197 = load i32*, i32** %4
%198 = call i32 (i32*, i8*, ...) @fprintf(i32* %197, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.67, i64 0, i64 0))
%199 = load i32*, i32** %4
%200 = call i32 (i32*, i8*, ...) @fprintf(i32* %199, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.68, i64 0, i64 0))
%201 = load i32*, i32** %4
%202 = call i32 (i32*, i8*, ...) @fprintf(i32* %201, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.69, i64 0, i64 0))
%203 = load i32*, i32** %4
%204 = call i32 (i32*, i8*, ...) @fprintf(i32* %203, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%205 = load i32*, i32** %4
%206 = call i32 (i32*, i8*, ...) @fprintf(i32* %205, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%207 = load i32*, i32** %4
%208 = call i32 (i32*, i8*, ...) @fprintf(i32* %207, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.74, i64 0, i64 0))
%209 = load i32*, i32** %4
%210 = call i32 (i32*, i8*, ...) @fprintf(i32* %209, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.46, i64 0, i64 0))
%211 = load i32*, i32** %4
%212 = call i32 (i32*, i8*, ...) @fprintf(i32* %211, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.71, i64 0, i64 0))
%213 = load i32*, i32** %4
%214 = call i32 (i32*, i8*, ...) @fprintf(i32* %213, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.59, i64 0, i64 0))
%215 = load i32*, i32** %4
%216 = call i32 (i32*, i8*, ...) @fprintf(i32* %215, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.72, i64 0, i64 0))
%217 = load i32*, i32** %4
%218 = call i32 (i32*, i8*, ...) @fprintf(i32* %217, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.75, i64 0, i64 0))
%219 = load i32*, i32** %4
%220 = call i32 (i32*, i8*, ...) @fprintf(i32* %219, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.35, i64 0, i64 0))
%221 = load i32*, i32** %4
%222 = call i32 (i32*, i8*, ...) @fprintf(i32* %221, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.44, i64 0, i64 0))
%223 = load i32*, i32** %4
%224 = call i32 (i32*, i8*, ...) @fprintf(i32* %223, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.45, i64 0, i64 0))
%225 = load i32*, i32** %4
%226 = call i32 (i32*, i8*, ...) @fprintf(i32* %225, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.49, i64 0, i64 0))
%227 = load i32*, i32** %4
%228 = call i32 (i32*, i8*, ...) @fprintf(i32* %227, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.63, i64 0, i64 0))
%229 = load i32*, i32** %4
%230 = call i32 (i32*, i8*, ...) @fprintf(i32* %229, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.64, i64 0, i64 0))
%231 = load i32*, i32** %4
%232 = call i32 (i32*, i8*, ...) @fprintf(i32* %231, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.65, i64 0, i64 0))
%233 = load i32*, i32** %4
%234 = call i32 (i32*, i8*, ...) @fprintf(i32* %233, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.66, i64 0, i64 0))
%235 = load i32*, i32** %4
%236 = call i32 (i32*, i8*, ...) @fprintf(i32* %235, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.67, i64 0, i64 0))
%237 = load i32*, i32** %4
%238 = call i32 (i32*, i8*, ...) @fprintf(i32* %237, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.68, i64 0, i64 0))
%239 = load i32*, i32** %4
%240 = call i32 (i32*, i8*, ...) @fprintf(i32* %239, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.69, i64 0, i64 0))
%241 = load i32*, i32** %4
%242 = call i32 (i32*, i8*, ...) @fprintf(i32* %241, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%243 = load i32*, i32** %4
%244 = call i32 (i32*, i8*, ...) @fprintf(i32* %243, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%245 = load i32*, i32** %4
%246 = call i32 (i32*, i8*, ...) @fprintf(i32* %245, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.76, i64 0, i64 0))
%247 = load i32*, i32** %4
%248 = call i32 (i32*, i8*, ...) @fprintf(i32* %247, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.77, i64 0, i64 0))
%249 = load i32*, i32** %4
%250 = call i32 (i32*, i8*, ...) @fprintf(i32* %249, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.78, i64 0, i64 0))
%251 = load i32*, i32** %4
%252 = call i32 (i32*, i8*, ...) @fprintf(i32* %251, i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.79, i64 0, i64 0))
%253 = load i32*, i32** %4
%254 = call i32 (i32*, i8*, ...) @fprintf(i32* %253, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.80, i64 0, i64 0))
%255 = load i32*, i32** %4
%256 = call i32 (i32*, i8*, ...) @fprintf(i32* %255, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%257 = load i32*, i32** %4
%258 = call i32 (i32*, i8*, ...) @fprintf(i32* %257, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%259 = load i32*, i32** %4
%260 = call i32 (i32*, i8*, ...) @fprintf(i32* %259, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.81, i64 0, i64 0))
%261 = load i32*, i32** %4
%262 = call i32 (i32*, i8*, ...) @fprintf(i32* %261, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.77, i64 0, i64 0))
%263 = load i32*, i32** %4
%264 = call i32 (i32*, i8*, ...) @fprintf(i32* %263, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.78, i64 0, i64 0))
%265 = load i32*, i32** %4
%266 = call i32 (i32*, i8*, ...) @fprintf(i32* %265, i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.79, i64 0, i64 0))
%267 = load i32*, i32** %4
%268 = call i32 (i32*, i8*, ...) @fprintf(i32* %267, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.80, i64 0, i64 0))
%269 = load i32*, i32** %4
%270 = call i32 (i32*, i8*, ...) @fprintf(i32* %269, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%271 = load i32*, i32** %4
%272 = call i32 (i32*, i8*, ...) @fprintf(i32* %271, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%273 = load i32*, i32** %4
%274 = call i32 (i32*, i8*, ...) @fprintf(i32* %273, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.82, i64 0, i64 0))
%275 = load i32*, i32** %4
%276 = call i32 (i32*, i8*, ...) @fprintf(i32* %275, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.83, i64 0, i64 0))
%277 = load i32*, i32** %4
%278 = call i32 (i32*, i8*, ...) @fprintf(i32* %277, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.78, i64 0, i64 0))
%279 = load i32*, i32** %4
%280 = call i32 (i32*, i8*, ...) @fprintf(i32* %279, i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.79, i64 0, i64 0))
%281 = load i32*, i32** %4
%282 = call i32 (i32*, i8*, ...) @fprintf(i32* %281, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.80, i64 0, i64 0))
%283 = load i32*, i32** %4
%284 = call i32 (i32*, i8*, ...) @fprintf(i32* %283, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%285 = load i32*, i32** %4
%286 = call i32 (i32*, i8*, ...) @fprintf(i32* %285, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%287 = load i32*, i32** %4
%288 = call i32 (i32*, i8*, ...) @fprintf(i32* %287, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.84, i64 0, i64 0))
%289 = load i32*, i32** %4
%290 = call i32 (i32*, i8*, ...) @fprintf(i32* %289, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.85, i64 0, i64 0))
%291 = load i32*, i32** %4
%292 = call i32 (i32*, i8*, ...) @fprintf(i32* %291, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.86, i64 0, i64 0))
%293 = load i32*, i32** %4
%294 = call i32 (i32*, i8*, ...) @fprintf(i32* %293, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.87, i64 0, i64 0))
%295 = load i32*, i32** %4
%296 = call i32 (i32*, i8*, ...) @fprintf(i32* %295, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.88, i64 0, i64 0))
%297 = load i32*, i32** %4
%298 = call i32 (i32*, i8*, ...) @fprintf(i32* %297, i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.89, i64 0, i64 0))
%299 = load i32*, i32** %4
%300 = call i32 (i32*, i8*, ...) @fprintf(i32* %299, i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.90, i64 0, i64 0))
%301 = load i32*, i32** %4
%302 = call i32 (i32*, i8*, ...) @fprintf(i32* %301, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.91, i64 0, i64 0))
%303 = load i32*, i32** %4
%304 = call i32 (i32*, i8*, ...) @fprintf(i32* %303, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%305 = load i32*, i32** %4
%306 = call i32 (i32*, i8*, ...) @fprintf(i32* %305, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%307 = load i32*, i32** %4
%308 = call i32 (i32*, i8*, ...) @fprintf(i32* %307, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.92, i64 0, i64 0))
%309 = load i32*, i32** %4
%310 = call i32 (i32*, i8*, ...) @fprintf(i32* %309, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.85, i64 0, i64 0))
%311 = load i32*, i32** %4
%312 = call i32 (i32*, i8*, ...) @fprintf(i32* %311, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.86, i64 0, i64 0))
%313 = load i32*, i32** %4
%314 = call i32 (i32*, i8*, ...) @fprintf(i32* %313, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.87, i64 0, i64 0))
%315 = load i32*, i32** %4
%316 = call i32 (i32*, i8*, ...) @fprintf(i32* %315, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.93, i64 0, i64 0))
%317 = load i32*, i32** %4
%318 = call i32 (i32*, i8*, ...) @fprintf(i32* %317, i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.89, i64 0, i64 0))
%319 = load i32*, i32** %4
%320 = call i32 (i32*, i8*, ...) @fprintf(i32* %319, i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.90, i64 0, i64 0))
%321 = load i32*, i32** %4
%322 = call i32 (i32*, i8*, ...) @fprintf(i32* %321, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.91, i64 0, i64 0))
%323 = load i32*, i32** %4
%324 = call i32 (i32*, i8*, ...) @fprintf(i32* %323, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%325 = load i32*, i32** %4
%326 = call i32 (i32*, i8*, ...) @fprintf(i32* %325, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%327 = load i32*, i32** %4
%328 = load i32, i32* %5
%329 = load i32, i32* %6
%330 = call i32 (i32*, i8*, ...) @fprintf(i32* %327, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.94, i64 0, i64 0), i32 %328, i32 %329)
ret void
}

LLVM IR (-O2):
@.str = [5 x i8] c"%%!\0A\00"
@.str.1 = [27 x i8] c"/mm {72 mul 25.4 div} def\0A\00"
@.str.2 = [33 x i8] c"/PageWidth 210 mm def %% const\0A\00"
@.str.3 = [33 x i8] c"/PageHeight 297 mm def %% const\0A\00"
@.str.4 = [33 x i8] c"/BorderWidth 7 mm def %% const\0A\00"
@.str.5 = [33 x i8] c"/FontHeight 10 def %% const\0A\00"
@.str.6 = [25 x i8] c"/setR {/R exch def} def\0A\00"
@.str.7 = [25 x i8] c"/setr {/r exch def} def\0A\00"
@.str.8 = [35 x i8] c"/setscaleX {/scaleX exch def} def\0A\00"
@.str.9 = [35 x i8] c"/setscaleY {/scaleY exch def} def\0A\00"
@.str.10 = [25 x i8] c"/setx {/x exch def} def\0A\00"
@.str.11 = [25 x i8] c"/sety {/y exch def} def\0A\00"
@.str.12 = [27 x i8] c"/setfx {/fx exch def} def\0A\00"
@.str.13 = [27 x i8] c"/setfy {/fy exch def} def\0A\00"
@.str.14 = [27 x i8] c"/settx {/tx exch def} def\0A\00"
@.str.15 = [27 x i8] c"/setty {/ty exch def} def\0A\00"
@.str.16 = [29 x i8] c"/settmp {/tmp exch def} def\0A\00"
@.str.17 = [52 x i8] c"/Times-Roman findfont FontHeight scalefont setfont\0A\00"
@.str.19 = [61 x i8] c"/rescale { %% stack: max_pos, max_level\0A\00"
@.str.20 = [32 x i8] c" PageHeight 2 BorderWidth mul\0A\00"
@.str.21 = [67 x i8] c" sub exch 1 add div setscaleY %% scaleY = (PH-2BW)/(max_level+1)\0A\00"
@.str.22 = [31 x i8] c" PageWidth 2 BorderWidth mul\0A\00"
@.str.23 = [63 x i8] c" sub exch div setscaleX %% scaleX = (PH-2BW)/(max_pos)\0A\00"
@.str.24 = [27 x i8] c" scaleX .33 mul dup setR\0A\00"
@.str.25 = [46 x i8] c" 0.25 scaleY mul gt {.2 scaleY mul setR} if\0A\00"
@.str.26 = [14 x i8] c" .6 mm setr\0A\00"
@.str.27 = [53 x i8] c" 0 PageHeight translate %% go to top of page\0A\00"
@.str.28 = [32 x i8] c" BorderWidth scaleX 2 div add\0A\00"
@.str.29 = [26 x i8] c" BorderWidth scaleY add\0A\00"
@.str.30 = [61 x i8] c" neg translate %% go to left top of drawing\0A\00"
@.str.31 = [7 x i8] c"} def\0A\00"
@.str.32 = [53 x i8] c"/node { %% stack: (id), x, y\0A\00"
@.str.33 = [19 x i8] c" scaleY mul sety\0A\00"
@.str.34 = [19 x i8] c" scaleX mul setx\0A\00"
@.str.35 = [11 x i8] c" newpath\0A\00"
@.str.36 = [16 x i8] c" %% draw node\0A\00"
@.str.37 = [23 x i8] c" x y neg R 0 360 arc\0A\00"
@.str.38 = [21 x i8] c" %% draw then edge\0A\00"
@.str.39 = [53 x i8] c" .5 sqrt R mul settmp %% tmp = sqrt(2) * R\0A\00"
@.str.40 = [51 x i8] c" x tmp sub setfx %% fx = X(x) - tmp\0A\00"
@.str.41 = [58 x i8] c" y tmp add setfy %% fy = Y(y) - sqrt 2 * R\0A\00"
@.str.42 = [49 x i8] c" x R sub settx %% tx = X(x) - R\0A\00"
@.str.43 = [49 x i8] c" y R add setty %% ty = Y(y) + R\0A\00"
@.str.44 = [20 x i8] c" fx fy neg moveto\0A\00"
@.str.45 = [20 x i8] c" tx ty neg lineto\0A\00"
@.str.46 = [21 x i8] c" %% draw else edge\0A\00"
@.str.47 = [51 x i8] c" x tmp add setfx %% fx = X(x) + tmp\0A\00"
@.str.48 = [49 x i8] c" x R add settx %% tx = X(x) + R\0A\00"
@.str.49 = [10 x i8] c" stroke\0A\00"
@.str.50 = [18 x i8] c" %% draw string\0A\00"
@.str.51 = [23 x i8] c" dup stringwidth pop\0A\00"
@.str.52 = [19 x i8] c" 2 div neg x add\0A\00"
@.str.53 = [26 x i8] c" y FontHeight 3 div add\0A\00"
@.str.54 = [19 x i8] c" neg moveto show\0A\00"
@.str.55 = [65 x i8] c"/edge { %% stack: (polarity), fx, tx, ty\0A\00"
@.str.56 = [24 x i8] c" %% draw initial edge\0A\00"
@.str.57 = [49 x i8] c" scaleY mul R sub setty %% ty = Y(y) - R\0A\00"
@.str.58 = [45 x i8] c" 0 setfy %% fy = Y(0)\0A\00"
@.str.59 = [46 x i8] c" scaleX mul settx %% tx = X(tx)\0A\00"
@.str.60 = [46 x i8] c" scaleX mul setfx %% fx = X(fx)\0A\00"
@.str.61 = [47 x i8] c" 0.5 scaleY mul setfy %% fy = Y(0.5)\0A\00"
@.str.62 = [20 x i8] c" fx fy neg lineto\0A\00"
@.str.63 = [33 x i8] c" %% draw negation if necessary\0A\00"
@.str.64 = [12 x i8] c" (n) eq {\0A\00"
@.str.65 = [50 x i8] c" fx tx add 2 div %% fx = (fx+tx)/2\0A\00"
@.str.66 = [50 x i8] c" fy ty add 2 div %% fy = (fy+ty)/2\0A\00"
@.str.67 = [21 x i8] c" neg r 0 360 arc\0A\00"
@.str.68 = [20 x i8] c" 0 setgray fill\0A\00"
@.str.69 = [7 x i8] c" }if\0A\00"
@.str.70 = [45 x i8] c"/then { %%stack: (polarity), fx, fy, tx, ty\0A\00"
@.str.71 = [50 x i8] c" scaleY mul R sub setty %% ty = Y(ty) - R\0A\00"
@.str.72 = [50 x i8] c" scaleY mul R add setfy %% fy = Y(fy) + R\0A\00"
@.str.73 = [50 x i8] c" scaleX mul R sub setfx %% fx = X(fx) - R\0A\00"
@.str.74 = [45 x i8] c"/else { %%stack: (polarity), fx, fy, tx, ty\0A\00"
@.str.75 = [50 x i8] c" scaleX mul R add setfx %% fx = X(fx) + R\0A\00"
@.str.76 = [56 x i8] c"/const { %% stack: (const), x, y\0A\00"
@.str.77 = [35 x i8] c" scaleY mul FontHeight 2 div add\0A\00"
@.str.78 = [24 x i8] c" exch scaleX mul exch\0A\00"
@.str.79 = [38 x i8] c" newpath neg moveto dup stringwidth\0A\00"
@.str.80 = [32 x i8] c" pop 2 div neg 0 rmoveto show\0A\00"
@.str.81 = [54 x i8] c"/void { %% stack: (void), x, y\0A\00"
@.str.82 = [54 x i8] c"/name { %% stack: (name), x, y\0A\00"
@.str.83 = [29 x i8] c" scaleY mul FontHeight sub\0A\00"
@.str.84 = [56 x i8] c"/then_const { %% stack: (const), x, y\0A\00"
@.str.85 = [19 x i8] c" scaleY mul exch\0A\00"
@.str.86 = [19 x i8] c" scaleX mul exch\0A\00"
@.str.87 = [42 x i8] c" newpath neg moveto dup stringwidth pop\0A\00"
@.str.88 = [55 x i8] c" 2 div R add neg %% x = X(x) - R - fw/2\0A\00"
@.str.89 = [26 x i8] c" R 0.025 scaleY mul add\0A\00"
@.str.90 = [68 x i8] c" FontHeight add %% y = Y(y) + R + 0.025*scaleY + FH\0A\00"
@.str.91 = [20 x i8] c" neg rmoveto show\0A\00"
@.str.92 = [56 x i8] c"/else_const { %% stack: (const), x, y\0A\00"
@.str.93 = [55 x i8] c" 2 div neg R add %% x = X(x) + R - fw/2\0A\00"
@.str.94 = [15 x i8] c"%d %d rescale\0A\00"
define void @draw_start(i32* %0, i32 %1, i32 %2) {
%4 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%5 = tail call i64 @fwrite(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.1, i64 0, i64 0), i64 26, i64 1, i32* %0)
%6 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.2, i64 0, i64 0))
%7 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.3, i64 0, i64 0))
%8 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.4, i64 0, i64 0))
%9 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.5, i64 0, i64 0))
%10 = tail call i64 @fwrite(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.6, i64 0, i64 0), i64 24, i64 1, i32* %0)
%11 = tail call i64 @fwrite(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.7, i64 0, i64 0), i64 24, i64 1, i32* %0)
%12 = tail call i64 @fwrite(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.8, i64 0, i64 0), i64 34, i64 1, i32* %0)
%13 = tail call i64 @fwrite(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.9, i64 0, i64 0), i64 34, i64 1, i32* %0)
%14 = tail call i64 @fwrite(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.10, i64 0, i64 0), i64 24, i64 1, i32* %0)
%15 = tail call i64 @fwrite(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.11, i64 0, i64 0), i64 24, i64 1, i32* %0)
%16 = tail call i64 @fwrite(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.12, i64 0, i64 0), i64 26, i64 1, i32* %0)
%17 = tail call i64 @fwrite(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.13, i64 0, i64 0), i64 26, i64 1, i32* %0)
%18 = tail call i64 @fwrite(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.14, i64 0, i64 0), i64 26, i64 1, i32* %0)
%19 = tail call i64 @fwrite(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.15, i64 0, i64 0), i64 26, i64 1, i32* %0)
%20 = tail call i64 @fwrite(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.16, i64 0, i64 0), i64 28, i64 1, i32* %0)
%21 = tail call i64 @fwrite(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.17, i64 0, i64 0), i64 51, i64 1, i32* %0)
%22 = tail call i32 @fputc(i32 10, i32* %0)
%23 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.19, i64 0, i64 0))
%24 = tail call i64 @fwrite(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.20, i64 0, i64 0), i64 31, i64 1, i32* %0)
%25 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.21, i64 0, i64 0))
%26 = tail call i64 @fwrite(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.22, i64 0, i64 0), i64 30, i64 1, i32* %0)
%27 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.23, i64 0, i64 0))
%28 = tail call i64 @fwrite(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.24, i64 0, i64 0), i64 26, i64 1, i32* %0)
%29 = tail call i64 @fwrite(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.25, i64 0, i64 0), i64 45, i64 1, i32* %0)
%30 = tail call i64 @fwrite(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.26, i64 0, i64 0), i64 13, i64 1, i32* %0)
%31 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.27, i64 0, i64 0))
%32 = tail call i64 @fwrite(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.28, i64 0, i64 0), i64 31, i64 1, i32* %0)
%33 = tail call i64 @fwrite(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.29, i64 0, i64 0), i64 25, i64 1, i32* %0)
%34 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.30, i64 0, i64 0))
%35 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i64 6, i64 1, i32* %0)
%36 = tail call i32 @fputc(i32 10, i32* %0)
%37 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.32, i64 0, i64 0))
%38 = tail call i64 @fwrite(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.33, i64 0, i64 0), i64 18, i64 1, i32* %0)
%39 = tail call i64 @fwrite(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.34, i64 0, i64 0), i64 18, i64 1, i32* %0)
%40 = tail call i64 @fwrite(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.35, i64 0, i64 0), i64 10, i64 1, i32* %0)
%41 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.36, i64 0, i64 0))
%42 = tail call i64 @fwrite(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.37, i64 0, i64 0), i64 22, i64 1, i32* %0)
%43 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.38, i64 0, i64 0))
%44 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.39, i64 0, i64 0))
%45 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.40, i64 0, i64 0))
%46 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.41, i64 0, i64 0))
%47 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.42, i64 0, i64 0))
%48 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.43, i64 0, i64 0))
%49 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.44, i64 0, i64 0), i64 19, i64 1, i32* %0)
%50 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.45, i64 0, i64 0), i64 19, i64 1, i32* %0)
%51 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.46, i64 0, i64 0))
%52 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.47, i64 0, i64 0))
%53 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.48, i64 0, i64 0))
%54 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.44, i64 0, i64 0), i64 19, i64 1, i32* %0)
%55 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.45, i64 0, i64 0), i64 19, i64 1, i32* %0)
%56 = tail call i64 @fwrite(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.49, i64 0, i64 0), i64 9, i64 1, i32* %0)
%57 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.50, i64 0, i64 0))
%58 = tail call i64 @fwrite(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.51, i64 0, i64 0), i64 22, i64 1, i32* %0)
%59 = tail call i64 @fwrite(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.52, i64 0, i64 0), i64 18, i64 1, i32* %0)
%60 = tail call i64 @fwrite(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.53, i64 0, i64 0), i64 25, i64 1, i32* %0)
%61 = tail call i64 @fwrite(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.54, i64 0, i64 0), i64 18, i64 1, i32* %0)
%62 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i64 6, i64 1, i32* %0)
%63 = tail call i32 @fputc(i32 10, i32* %0)
%64 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.55, i64 0, i64 0))
%65 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.56, i64 0, i64 0))
%66 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.57, i64 0, i64 0))
%67 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.58, i64 0, i64 0))
%68 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.59, i64 0, i64 0))
%69 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.60, i64 0, i64 0))
%70 = tail call i64 @fwrite(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.35, i64 0, i64 0), i64 10, i64 1, i32* %0)
%71 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.44, i64 0, i64 0), i64 19, i64 1, i32* %0)
%72 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.61, i64 0, i64 0))
%73 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.62, i64 0, i64 0), i64 19, i64 1, i32* %0)
%74 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.45, i64 0, i64 0), i64 19, i64 1, i32* %0)
%75 = tail call i64 @fwrite(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.49, i64 0, i64 0), i64 9, i64 1, i32* %0)
%76 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.63, i64 0, i64 0))
%77 = tail call i64 @fwrite(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.64, i64 0, i64 0), i64 11, i64 1, i32* %0)
%78 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.65, i64 0, i64 0))
%79 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.66, i64 0, i64 0))
%80 = tail call i64 @fwrite(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.67, i64 0, i64 0), i64 20, i64 1, i32* %0)
%81 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.68, i64 0, i64 0), i64 19, i64 1, i32* %0)
%82 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.69, i64 0, i64 0), i64 6, i64 1, i32* %0)
%83 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i64 6, i64 1, i32* %0)
%84 = tail call i32 @fputc(i32 10, i32* %0)
%85 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.70, i64 0, i64 0))
%86 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.38, i64 0, i64 0))
%87 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.71, i64 0, i64 0))
%88 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.59, i64 0, i64 0))
%89 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.72, i64 0, i64 0))
%90 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.73, i64 0, i64 0))
%91 = tail call i64 @fwrite(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.35, i64 0, i64 0), i64 10, i64 1, i32* %0)
%92 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.44, i64 0, i64 0), i64 19, i64 1, i32* %0)
%93 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.45, i64 0, i64 0), i64 19, i64 1, i32* %0)
%94 = tail call i64 @fwrite(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.49, i64 0, i64 0), i64 9, i64 1, i32* %0)
%95 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.63, i64 0, i64 0))
%96 = tail call i64 @fwrite(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.64, i64 0, i64 0), i64 11, i64 1, i32* %0)
%97 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.65, i64 0, i64 0))
%98 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.66, i64 0, i64 0))
%99 = tail call i64 @fwrite(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.67, i64 0, i64 0), i64 20, i64 1, i32* %0)
%100 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.68, i64 0, i64 0), i64 19, i64 1, i32* %0)
%101 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.69, i64 0, i64 0), i64 6, i64 1, i32* %0)
%102 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i64 6, i64 1, i32* %0)
%103 = tail call i32 @fputc(i32 10, i32* %0)
%104 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.74, i64 0, i64 0))
%105 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.46, i64 0, i64 0))
%106 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.71, i64 0, i64 0))
%107 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.59, i64 0, i64 0))
%108 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.72, i64 0, i64 0))
%109 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.75, i64 0, i64 0))
%110 = tail call i64 @fwrite(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.35, i64 0, i64 0), i64 10, i64 1, i32* %0)
%111 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.44, i64 0, i64 0), i64 19, i64 1, i32* %0)
%112 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.45, i64 0, i64 0), i64 19, i64 1, i32* %0)
%113 = tail call i64 @fwrite(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.49, i64 0, i64 0), i64 9, i64 1, i32* %0)
%114 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.63, i64 0, i64 0))
%115 = tail call i64 @fwrite(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.64, i64 0, i64 0), i64 11, i64 1, i32* %0)
%116 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.65, i64 0, i64 0))
%117 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.66, i64 0, i64 0))
%118 = tail call i64 @fwrite(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.67, i64 0, i64 0), i64 20, i64 1, i32* %0)
%119 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.68, i64 0, i64 0), i64 19, i64 1, i32* %0)
%120 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.69, i64 0, i64 0), i64 6, i64 1, i32* %0)
%121 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i64 6, i64 1, i32* %0)
%122 = tail call i32 @fputc(i32 10, i32* %0)
%123 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.76, i64 0, i64 0))
%124 = tail call i64 @fwrite(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.77, i64 0, i64 0), i64 34, i64 1, i32* %0)
%125 = tail call i64 @fwrite(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.78, i64 0, i64 0), i64 23, i64 1, i32* %0)
%126 = tail call i64 @fwrite(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.79, i64 0, i64 0), i64 37, i64 1, i32* %0)
%127 = tail call i64 @fwrite(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.80, i64 0, i64 0), i64 31, i64 1, i32* %0)
%128 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i64 6, i64 1, i32* %0)
%129 = tail call i32 @fputc(i32 10, i32* %0)
%130 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.81, i64 0, i64 0))
%131 = tail call i64 @fwrite(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.77, i64 0, i64 0), i64 34, i64 1, i32* %0)
%132 = tail call i64 @fwrite(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.78, i64 0, i64 0), i64 23, i64 1, i32* %0)
%133 = tail call i64 @fwrite(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.79, i64 0, i64 0), i64 37, i64 1, i32* %0)
%134 = tail call i64 @fwrite(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.80, i64 0, i64 0), i64 31, i64 1, i32* %0)
%135 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i64 6, i64 1, i32* %0)
%136 = tail call i32 @fputc(i32 10, i32* %0)
%137 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.82, i64 0, i64 0))
%138 = tail call i64 @fwrite(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.83, i64 0, i64 0), i64 28, i64 1, i32* %0)
%139 = tail call i64 @fwrite(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.78, i64 0, i64 0), i64 23, i64 1, i32* %0)
%140 = tail call i64 @fwrite(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.79, i64 0, i64 0), i64 37, i64 1, i32* %0)
%141 = tail call i64 @fwrite(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.80, i64 0, i64 0), i64 31, i64 1, i32* %0)
%142 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i64 6, i64 1, i32* %0)
%143 = tail call i32 @fputc(i32 10, i32* %0)
%144 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.84, i64 0, i64 0))
%145 = tail call i64 @fwrite(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.85, i64 0, i64 0), i64 18, i64 1, i32* %0)
%146 = tail call i64 @fwrite(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.86, i64 0, i64 0), i64 18, i64 1, i32* %0)
%147 = tail call i64 @fwrite(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.87, i64 0, i64 0), i64 41, i64 1, i32* %0)
%148 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.88, i64 0, i64 0))
%149 = tail call i64 @fwrite(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.89, i64 0, i64 0), i64 25, i64 1, i32* %0)
%150 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.90, i64 0, i64 0))
%151 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.91, i64 0, i64 0), i64 19, i64 1, i32* %0)
%152 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i64 6, i64 1, i32* %0)
%153 = tail call i32 @fputc(i32 10, i32* %0)
%154 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.92, i64 0, i64 0))
%155 = tail call i64 @fwrite(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.85, i64 0, i64 0), i64 18, i64 1, i32* %0)
%156 = tail call i64 @fwrite(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.86, i64 0, i64 0), i64 18, i64 1, i32* %0)
%157 = tail call i64 @fwrite(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.87, i64 0, i64 0), i64 41, i64 1, i32* %0)
%158 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.93, i64 0, i64 0))
%159 = tail call i64 @fwrite(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.89, i64 0, i64 0), i64 25, i64 1, i32* %0)
%160 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.90, i64 0, i64 0))
%161 = tail call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.91, i64 0, i64 0), i64 19, i64 1, i32* %0)
%162 = tail call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0), i64 6, i64 1, i32* %0)
%163 = tail call i32 @fputc(i32 10, i32* %0)
%164 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.94, i64 0, i64 0), i32 %1, i32 %2)
ret void
}