aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2025-03-26 18:10:41 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2025-03-26 18:10:41 +0200
commit6d88dce5ebbc6fdb91054e5ffc3f8843d20b2b97 (patch)
tree1132b7dde6612df38eb83f1c9f9b18eb3af5a8e8
downloadejit-prospero-6d88dce5ebbc6fdb91054e5ffc3f8843d20b2b97.tar.gz
ejit-prospero-6d88dce5ebbc6fdb91054e5ffc3f8843d20b2b97.zip
initial commit
-rw-r--r--.gitignore3
-rw-r--r--.gitmodules3
-rw-r--r--Makefile12
-rw-r--r--README.md130
m---------deps/ejit0
-rw-r--r--prospero.vm7867
-rw-r--r--src/main.c434
7 files changed, 8449 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..48f0c20
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+out.ppm
+deps.mk
+prospero
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..d535068
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "deps/ejit"]
+ path = deps/ejit
+ url = https://metanimi.dy.fi/git/ejit
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..74d2c10
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,12 @@
+all: prospero
+
+prospero: src/main.c deps/ejit/libejit.a
+ $(CC) -Wall -Wextra -O2 -g -flto=auto -g -Ideps/ejit/include src/main.c deps/ejit/libejit.a -o prospero -lm
+
+deps/ejit/libejit.a:
+ $(MAKE) RELEASE=1 LTO=1 -C deps/ejit
+
+.PHONY: clean
+clean:
+ $(MAKE) -C deps/ejit clean
+ $(RM) prospero
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..081ccaf
--- /dev/null
+++ b/README.md
@@ -0,0 +1,130 @@
+# Prospero challenge with `ejit`
+
+This is my implementation of the
+[prospero](https://www.mattkeeter.com/projects/prospero/) challenge using
+[`ejit`](https://metanimi.dy.fi/cgit/ejit/).
+
+As a quick introduction, here's an excerpt from the `ejit` README:
+
+> `ejit` is a generic JIT/bytecode interpreter with a
+> strong focus on compilation speed and portability. It's built on top of the
+> excellent [`lightening`](https://gitlab.com/wingo/lightening) pure JIT library,
+> but adds a bytecode layer for systems that `lightening` doesn't support. The
+> bytecode layer also grants some QoL improvements, such as an (effectively)
+> unlimited number of virtual registers and a register allocator for mapping
+> theses virtual registers down to physical registers and a slightly easier to use
+> API (at least IMO).
+
+`ejit` is primarily inteded to be used as the main execution engine for
+experimental/toy scripting languages, so the **prospero** challenge is arguably
+a bit outside the intended use case of relatively heavy computation. Still,
+this was a good opportunity to see just how well/poorly the library can handle
+such tasks.
+
+## Running
+
+```
+git submodule update --init --recursive
+make
+```
+
+The produced binary has a few command line parameters:
+
+> usage: prospero [-j threads] [-r resolution] [-c]
+> -j how many threads to run
+> -r length of one side
+> -c enable JIT
+
+By default, the binary runs a single worker thread, produces an image of size
+1024x1024 and does not enable the JIT part of `ejit`.
+
+## Results
+
+Here are some runtime results for when the JIT compiler is enabled:
+
+| Params | Runtime for JIT (s) |
+|---------|---------------------|
+| -j1 -c | 8.943 |
+| -j2 -c | 4.357 |
+| -j6 -c | 1.678 |
+| -j12 -c | 1.617 |
+
+I have an AMD Ryzen 5 5600X with 6 cores and 12 threads. I was kind of surprised
+that `-j12` wasn't any faster than `-j6`, but if I had to guess as to why,
+presumably there are only so many physical floating point units (FPUs) and when
+more than 6 threads start running, they have to start sharing FPUs and threads
+start stalling each other. Maybe, I haven't looked into the pipeline of my
+processor to know for sure.
+
+I was also curious to see how the bytecode interpreter fared, since the main
+focus of `ejit` is for the JIT to be efficient, and the bytecode is mainly as a
+backup for more obscure hardware. Here's are some runtime results for when the
+JIT compiler is disabled:
+
+| Params | Runtime for bytecode (s) |
+|--------|--------------------------|
+| -j1 | 35.311 |
+| -j2 | 18.514 |
+| -j6 | 6.155 |
+| -j12 | 3.760 |
+
+In this case, I'm guessing that there's enough overhead during interpretation
+that adding threads beyond the number of physical cores still improves
+performance. Interpretation is something mainly done with integer ALUs, which I
+guess my CPU has more of than FPUs?
+
+Still, very interesting results. For reference, I ran [Aviva
+Ruben](https://whtwnd.com/aviva.gay/3ll5dbskg3v26)'s Cranelift implementation
+which finished in `0.241` seconds when using all threads (I believe
+`into_par_iter()` uses threads, anyway...). Very impressive! Cranelift is
+particularly cool in that it exposes SIMD instructions, which `ejit` does not
+have.
+
+To roughly compare the compilation speed of `ejit` with JIT enabled vs.
+Cranelift, setting the resolution of the generated image to 1 gives the
+following table:
+
+| Framework | Total runtime (s) |
+|-----------|-------------------|
+| Cranelift | 0.088 |
+| `ejit` | 0.004 |
+
+This runtime is not quite the same as the compilation time, but the compilation
+should be the dominating factor in this case. There's a fairly obvious tradeoff
+here, Cranelift can produce much faster code (especially if you can take advantage
+of SIMD operations), whereas `ejit` can produce machine code much faster. This
+is what I was expecting, but it's nice to see some (semi)hard numbers.
+
+## Limitations of `ejit` for this particular challenge
+
+As previously stated, not having SIMD instructions hurts performance
+significantly. I've been thinking about how SIMD could be implemented, but
+nothing concrete yet. There's a lot more variability in SIMD implementations than
+base ISAs, and it seems to be rather difficult to be generic over any large-ish
+portion of them. [`sljit`](https://github.com/zherczeg/sljit) takes the approach
+that the user can place custom instructions into the instruction stream and
+implement SIMD for specific platforms, which is cool, but is kind of at
+odds with the 'portability' aspect of `ejit` that I would like to maintain as
+far as possible.
+
+`ejit` also has at least so far had less of a focus on floating point
+instructions, and `max`/`min` were implemented with branches because `ejit`
+simply doesn't have any built-in equivalent instructions. `sqrt` I had implement
+as a function call to `libm`, which seems kind of silly if we're going for top
+performance. Square roots seem to be fairly common in `prospero.vm` as well,
+probably compounding the problem. Then again, these operations are rather
+mathematical and I'm not sure how useful they are for 'typical' scripting
+languages, which, again, is more what `ejit` is aimed towards. I'm not in a huge
+rush to start implementing these operations as built-ins quite yet, but
+definitely something to think about.
+
+I also noticed that in `prospero.vm` a lot of variables are only used once. The
+current register allocator in `ejit` assigns a variable to a register 'forever',
+meaning that the vast majority of all variables in `prospero.vm` get placed on
+the stack. This is unfortunate, but would require something like [Static Single
+Assignment (SSA)](https://en.wikipedia.org/wiki/Static_single-assignment_form)
+to properly tackle, which I suspect would increase compilation times
+dramatically. It might be possible to get by with some kind of simple lifetime
+tracking scheme which would save on compilation time, but I'm not convinced the
+register allocations would be significantly better than the current scheme.
+Something to keep in mind for the future, though.
diff --git a/deps/ejit b/deps/ejit
new file mode 160000
+Subproject 826e3929a1d467edf2d2aea4c85b5d0f940ad1a
diff --git a/prospero.vm b/prospero.vm
new file mode 100644
index 0000000..b70cca3
--- /dev/null
+++ b/prospero.vm
@@ -0,0 +1,7867 @@
+# Text of a monologue from The Tempest
+_0 const 2.95
+_1 var-x
+_2 const 8.13008
+_3 mul _1 _2
+_4 add _0 _3
+_5 const 3.675
+_6 add _5 _3
+_7 neg _6
+_8 max _4 _7
+_9 const 0.175
+_a neg _4
+_b square _a
+_c const 6.025
+_d var-y
+_e mul _d _2
+_f add _c _e
+_10 square _f
+_11 add _b _10
+_12 sqrt _11
+_13 sub _9 _12
+_14 max _8 _13
+_15 const 0.275
+_16 sub _12 _15
+_17 max _14 _16
+_18 const 5.3
+_19 add _18 _e
+_1a max _17 _19
+_1b const 6.3
+_1c add _1b _e
+_1d neg _1c
+_1e max _1a _1d
+_1f const 4.025
+_20 add _1f _3
+_21 const 4.125
+_22 add _21 _3
+_23 neg _22
+_24 max _20 _23
+_25 max _24 _19
+_26 max _25 _1d
+_27 min _1e _26
+_28 const 4.275
+_29 add _28 _3
+_2a const 4.375
+_2b add _2a _3
+_2c neg _2b
+_2d max _29 _2c
+_2e max _2d _19
+_2f max _2e _1d
+_30 min _27 _2f
+_31 const 5.5
+_32 add _31 _e
+_33 const 5.75
+_34 add _33 _e
+_35 neg _34
+_36 max _32 _35
+_37 const 4.5
+_38 add _37 _3
+_39 max _36 _38
+_3a const 4.6
+_3b add _3a _3
+_3c neg _3b
+_3d max _39 _3c
+_3e min _30 _3d
+_3f const 5.4
+_40 add _3f _e
+_41 neg _40
+_42 const 4.7
+_43 add _42 _3
+_44 max _41 _43
+_45 const 5.2
+_46 add _45 _3
+_47 neg _46
+_48 max _44 _47
+_49 max _48 _19
+_4a min _3e _49
+_4b max _43 _47
+_4c const 6.2
+_4d add _4c _e
+_4e max _4b _4d
+_4f max _4e _1d
+_50 min _4a _4f
+_51 const 4.9
+_52 add _51 _3
+_53 const 5
+_54 add _53 _3
+_55 neg _54
+_56 max _52 _55
+_57 max _56 _19
+_58 max _57 _1d
+_59 min _50 _58
+_5a const 4.2
+_5b add _5a _e
+_5c const 5.2
+_5d add _5c _e
+_5e neg _5d
+_5f max _5b _5e
+_60 const 5.7205
+_61 sub _60 _3
+_62 max _5f _61
+_63 const 5.8205
+_64 sub _3 _63
+_65 max _62 _64
+_66 min _59 _65
+_67 const 4.65
+_68 add _67 _e
+_69 const 4.75
+_6a add _69 _e
+_6b neg _6a
+_6c max _68 _6b
+_6d const 5.54551
+_6e sub _6d _3
+_6f max _6c _6e
+_70 const 5.7205
+_71 sub _3 _70
+_72 max _6f _71
+_73 min _66 _72
+_74 max _5e _6e
+_75 max _74 _71
+_76 const 5.1
+_77 add _76 _e
+_78 max _75 _77
+_79 min _73 _78
+_7a const 1.53565
+_7b const 2.84553
+_7c mul _d _7b
+_7d add _7a _7c
+_7e const 4.47154
+_7f mul _1 _7e
+_80 sub _7d _7f
+_81 const 0.90565
+_82 const 2.03252
+_83 mul _d _82
+_84 add _81 _83
+_85 sub _7f _84
+_86 max _80 _85
+_87 const 0.575
+_88 const 0.813008
+_89 mul _d _88
+_8a add _87 _89
+_8b neg _8a
+_8c max _86 _8b
+_8d min _79 _8c
+_8e const 2.24435
+_8f add _83 _8e
+_90 add _8f _7f
+_91 neg _90
+_92 const 2.81935
+_93 add _92 _7c
+_94 add _93 _7f
+_95 max _91 _94
+_96 const 0.63
+_97 const 0.813008
+_98 mul _d _97
+_99 add _96 _98
+_9a neg _99
+_9b max _95 _9a
+_9c min _8d _9b
+_9d const 2.81935
+_9e add _9d _7c
+_9f add _9e _7f
+_a0 neg _9f
+_a1 max _90 _a0
+_a2 max _a1 _99
+_a3 min _9c _a2
+_a4 const 2.18935
+_a5 add _83 _a4
+_a6 add _a5 _7f
+_a7 max _a0 _a6
+_a8 max _a7 _8a
+_a9 min _a3 _a8
+_aa neg _a6
+_ab max _94 _aa
+_ac max _ab _8b
+_ad min _a9 _ac
+_ae const 1.842
+_af add _ae _3
+_b0 square _af
+_b1 add _b0 _10
+_b2 sqrt _b1
+_b3 sub _9 _b2
+_b4 sub _b2 _15
+_b5 max _b3 _b4
+_b6 min _ad _b5
+_b7 const 2.475
+_b8 add _b7 _3
+_b9 const 2.575
+_ba add _b9 _3
+_bb neg _ba
+_bc max _b8 _bb
+_bd max _bc _34
+_be max _bd _1d
+_bf min _b6 _be
+_c0 const 3.12857
+_c1 const 11.6144
+_c2 mul _1 _c1
+_c3 add _c0 _c2
+_c4 const 3.67857
+_c5 add _c4 _c2
+_c6 neg _c5
+_c7 max _c3 _c6
+_c8 const 0.45
+_c9 square _1c
+_ca const 3.91072
+_cb const 14.518
+_cc mul _1 _cb
+_cd add _ca _cc
+_ce square _cd
+_cf add _c9 _ce
+_d0 sqrt _cf
+_d1 sub _c8 _d0
+_d2 max _c7 _d1
+_d3 square _c3
+_d4 add _c9 _d3
+_d5 sqrt _d4
+_d6 const 0.55
+_d7 sub _d5 _d6
+_d8 max _d2 _d7
+_d9 max _d8 _34
+_da max _d9 _1d
+_db min _bf _da
+_dc const 2.775
+_dd add _dc _3
+_de neg _dd
+_df const 2.675
+_e0 add _df _3
+_e1 max _de _e0
+_e2 max _e1 _19
+_e3 max _e2 _1d
+_e4 min _db _e3
+_e5 max _dd _a
+_e6 max _e5 _34
+_e7 const 5.85
+_e8 add _e7 _e
+_e9 neg _e8
+_ea max _e6 _e9
+_eb min _e4 _ea
+_ec max _e5 _4d
+_ed max _ec _1d
+_ee min _eb _ed
+_ef const 1.33245
+_f0 const 3.61337
+_f1 mul _1 _f0
+_f2 sub _ef _f1
+_f3 square _f2
+_f4 const 4.815
+_f5 add _f4 _e
+_f6 neg _f5
+_f7 square _f6
+_f8 add _f3 _f7
+_f9 sqrt _f8
+_fa const 0.0625
+_fb sub _f9 _fa
+_fc const 4.975
+_fd add _fc _e
+_fe neg _fd
+_ff const 4.8125
+_100 add _ff _e
+_101 max _fe _100
+_102 const 2.00117
+_103 const 5.42005
+_104 mul _1 _103
+_105 sub _102 _104
+_106 max _101 _105
+_107 const 2.16367
+_108 sub _104 _107
+_109 max _106 _108
+_10a min _fb _109
+_10b neg _10a
+_10c const 4.8125
+_10d add _10c _e
+_10e neg _10d
+_10f square _10e
+_110 square _105
+_111 add _10f _110
+_112 sqrt _111
+_113 const 0.1625
+_114 sub _112 _113
+_115 max _10b _114
+_116 min _ee _115
+_117 const 5.0375
+_118 add _117 _e
+_119 neg _118
+_11a const 2.00117
+_11b sub _104 _11a
+_11c max _119 _11b
+_11d const 1.83867
+_11e sub _11d _104
+_11f max _11c _11e
+_120 const 4.875
+_121 add _120 _e
+_122 max _11f _121
+_123 const 5.035
+_124 add _123 _e
+_125 square _124
+_126 const 1.33578
+_127 sub _f1 _126
+_128 square _127
+_129 add _125 _128
+_12a sqrt _129
+_12b sub _12a _fa
+_12c min _122 _12b
+_12d neg _12c
+_12e const 5.0375
+_12f add _12e _e
+_130 square _12f
+_131 square _11b
+_132 add _130 _131
+_133 sqrt _132
+_134 sub _133 _113
+_135 max _12d _134
+_136 min _116 _135
+_137 const 4.95
+_138 add _137 _e
+_139 neg _138
+_13a max _5b _139
+_13b const 1.808
+_13c sub _3 _13b
+_13d max _13a _13c
+_13e const 1.708
+_13f sub _13e _3
+_140 max _13d _13f
+_141 min _136 _140
+_142 const 4.55
+_143 add _142 _e
+_144 neg _68
+_145 max _143 _144
+_146 const 1.958
+_147 sub _3 _146
+_148 max _145 _147
+_149 const 1.558
+_14a sub _149 _3
+_14b max _148 _14a
+_14c min _141 _14b
+_14d max _5e _138
+_14e max _14d _147
+_14f max _14e _14a
+_150 const 0.15
+_151 square _138
+_152 square _147
+_153 add _151 _152
+_154 sqrt _153
+_155 sub _150 _154
+_156 max _14f _155
+_157 const 0.25
+_158 sub _154 _157
+_159 max _156 _158
+_15a min _14c _159
+_15b const 4.8205
+_15c sub _15b _3
+_15d max _5f _15c
+_15e const 5.5455
+_15f sub _3 _15e
+_160 max _15d _15f
+_161 const 4.925
+_162 add _161 _e
+_163 square _162
+_164 square _6e
+_165 add _163 _164
+_166 sqrt _165
+_167 sub _9 _166
+_168 max _160 _167
+_169 sub _166 _15
+_16a max _168 _169
+_16b min _15a _16a
+_16c max _5e _121
+_16d const 5.1955
+_16e sub _3 _16d
+_16f max _16c _16e
+_170 const 5.0955
+_171 sub _170 _3
+_172 max _16f _171
+_173 min _16b _172
+_174 max _5e _68
+_175 const 4.7455
+_176 sub _3 _175
+_177 max _174 _176
+_178 const 4.6455
+_179 sub _178 _3
+_17a max _177 _179
+_17b min _173 _17a
+_17c max _68 _16e
+_17d max _17c _179
+_17e neg _121
+_17f max _17d _17e
+_180 const 4.9205
+_181 sub _3 _180
+_182 square _181
+_183 add _163 _182
+_184 sqrt _183
+_185 sub _9 _184
+_186 max _17f _185
+_187 sub _184 _15
+_188 max _186 _187
+_189 min _17b _188
+_18a const 4.5455
+_18b sub _3 _18a
+_18c max _174 _18b
+_18d const 4.4455
+_18e sub _18d _3
+_18f max _18c _18e
+_190 min _189 _18f
+_191 const 4.925
+_192 add _191 _e
+_193 neg _192
+_194 max _68 _193
+_195 const 4.0955
+_196 sub _3 _195
+_197 max _194 _196
+_198 const 3.9955
+_199 sub _198 _3
+_19a max _197 _199
+_19b min _190 _19a
+_19c max _5e _162
+_19d max _19c _18b
+_19e max _19d _199
+_19f const 4.2705
+_1a0 sub _3 _19f
+_1a1 square _1a0
+_1a2 add _163 _1a1
+_1a3 sqrt _1a2
+_1a4 sub _9 _1a3
+_1a5 max _19e _1a4
+_1a6 sub _1a3 _15
+_1a7 max _1a5 _1a6
+_1a8 min _19b _1a7
+_1a9 const 3.6205
+_1aa sub _3 _1a9
+_1ab square _1aa
+_1ac add _163 _1ab
+_1ad sqrt _1ac
+_1ae sub _9 _1ad
+_1af sub _1ad _15
+_1b0 max _1ae _1af
+_1b1 min _1a8 _1b0
+_1b2 const 0.142001
+_1b3 add _1b2 _3
+_1b4 max _5e _1b3
+_1b5 const 0.242001
+_1b6 add _1b5 _3
+_1b7 neg _1b6
+_1b8 max _1b4 _1b7
+_1b9 const 4.85
+_1ba add _1b9 _e
+_1bb max _1b8 _1ba
+_1bc min _1b1 _1bb
+_1bd const 0.392001
+_1be add _1bd _3
+_1bf max _5e _1be
+_1c0 const 0.492001
+_1c1 add _1c0 _3
+_1c2 neg _1c1
+_1c3 max _1bf _1c2
+_1c4 const 4.675
+_1c5 add _1c4 _e
+_1c6 max _1c3 _1c5
+_1c7 min _1bc _1c6
+_1c8 max _143 _1c2
+_1c9 const 0.157999
+_1ca sub _3 _1c9
+_1cb max _1c8 _1ca
+_1cc const 0.075
+_1cd const 0.0670004
+_1ce add _1cd _3
+_1cf square _1ce
+_1d0 square _1ba
+_1d1 add _1cf _1d0
+_1d2 sqrt _1d1
+_1d3 sub _1cc _1d2
+_1d4 sub _1d2 _9
+_1d5 max _1d3 _1d4
+_1d6 const 0.317
+_1d7 add _1d6 _3
+_1d8 square _1d7
+_1d9 add _1d8 _1d0
+_1da sqrt _1d9
+_1db sub _1cc _1da
+_1dc sub _1da _9
+_1dd max _1db _1dc
+_1de min _1d5 _1dd
+_1df max _1cb _1de
+_1e0 const 4.85
+_1e1 add _1e0 _e
+_1e2 neg _1e1
+_1e3 max _1df _1e2
+_1e4 min _1c7 _1e3
+_1e5 const 0.592
+_1e6 add _1e5 _3
+_1e7 max _174 _1e6
+_1e8 const 0.692001
+_1e9 add _1e8 _3
+_1ea neg _1e9
+_1eb max _1e7 _1ea
+_1ec min _1e4 _1eb
+_1ed const 1.042
+_1ee add _1ed _3
+_1ef max _194 _1ee
+_1f0 const 1.142
+_1f1 add _1f0 _3
+_1f2 neg _1f1
+_1f3 max _1ef _1f2
+_1f4 min _1ec _1f3
+_1f5 max _19c _1e6
+_1f6 max _1f5 _1f2
+_1f7 const 0.867001
+_1f8 add _1f7 _3
+_1f9 square _1f8
+_1fa add _163 _1f9
+_1fb sqrt _1fa
+_1fc sub _9 _1fb
+_1fd max _1f6 _1fc
+_1fe sub _1fb _15
+_1ff max _1fd _1fe
+_200 min _1f4 _1ff
+_201 const 1.267
+_202 add _201 _3
+_203 max _5f _202
+_204 const 1.367
+_205 add _204 _3
+_206 neg _205
+_207 max _203 _206
+_208 min _200 _207
+_209 const 5.575
+_20a add _209 _e
+_20b neg _20a
+_20c max _68 _20b
+_20d const 1.942
+_20e add _20d _3
+_20f max _20c _20e
+_210 const 2.042
+_211 add _210 _3
+_212 neg _211
+_213 max _20f _212
+_214 min _208 _213
+_215 const 4.885
+_216 add _215 _e
+_217 const 4.975
+_218 add _217 _e
+_219 neg _218
+_21a max _216 _219
+_21b const 1.458
+_21c sub _3 _21b
+_21d max _21a _21c
+_21e const 0.958001
+_21f sub _21e _3
+_220 max _21d _21f
+_221 const 1.183
+_222 sub _3 _221
+_223 square _222
+_224 add _163 _223
+_225 sqrt _224
+_226 sub _225 _15
+_227 const 3.20125
+_228 const 5.28455
+_229 mul _d _228
+_22a add _227 _229
+_22b const 2.23577
+_22c mul _1 _22b
+_22d const 1.1947
+_22e const 1.21951
+_22f mul _d _22e
+_230 add _22d _22f
+_231 sub _22c _230
+_232 max _22a _231
+_233 const 2.1853
+_234 add _233 _22c
+_235 const 4.06504
+_236 mul _d _235
+_237 add _234 _236
+_238 neg _237
+_239 max _232 _238
+_23a const 2.1853
+_23b add _23a _22c
+_23c add _23b _236
+_23d sub _230 _22c
+_23e max _23c _23d
+_23f neg _22a
+_240 max _23e _23f
+_241 min _239 _240
+_242 neg _241
+_243 max _226 _242
+_244 sub _9 _225
+_245 max _243 _244
+_246 min _220 _245
+_247 max _226 _246
+_248 min _214 _247
+_249 max _5e _1ba
+_24a const 0.808001
+_24b sub _3 _24a
+_24c max _249 _24b
+_24d const 0.708
+_24e sub _24d _3
+_24f max _24c _24e
+_250 min _248 _24f
+_251 const 0.558001
+_252 sub _3 _251
+_253 max _249 _252
+_254 const 0.458
+_255 sub _254 _3
+_256 max _253 _255
+_257 min _250 _256
+_258 max _5e _1c5
+_259 const 0.308001
+_25a sub _3 _259
+_25b max _258 _25a
+_25c const 0.208
+_25d sub _25c _3
+_25e max _25b _25d
+_25f min _257 _25e
+_260 max _143 _25d
+_261 max _260 _1e2
+_262 const 0.858
+_263 sub _3 _262
+_264 max _261 _263
+_265 const 0.633
+_266 sub _3 _265
+_267 square _266
+_268 add _1d0 _267
+_269 sqrt _268
+_26a sub _1cc _269
+_26b sub _269 _9
+_26c max _26a _26b
+_26d const 0.383
+_26e sub _3 _26d
+_26f square _26e
+_270 add _1d0 _26f
+_271 sqrt _270
+_272 sub _1cc _271
+_273 sub _271 _9
+_274 max _272 _273
+_275 min _26c _274
+_276 max _264 _275
+_277 min _25f _276
+_278 const 0.108
+_279 sub _3 _278
+_27a max _249 _279
+_27b const 0.00799942
+_27c sub _27b _3
+_27d max _27a _27c
+_27e min _277 _27d
+_27f const 1.767
+_280 add _27f _3
+_281 square _280
+_282 add _163 _281
+_283 sqrt _282
+_284 sub _9 _283
+_285 sub _283 _15
+_286 max _284 _285
+_287 min _27e _286
+_288 const 4.13
+_289 add _7c _288
+_28a add _289 _7f
+_28b const 0.52
+_28c add _28b _98
+_28d neg _28c
+_28e max _28a _28d
+_28f const 3.665
+_290 add _83 _28f
+_291 add _290 _7f
+_292 neg _291
+_293 max _28e _292
+_294 min _287 _293
+_295 neg _28a
+_296 max _295 _28c
+_297 max _296 _291
+_298 min _294 _297
+_299 const 3.61
+_29a add _83 _299
+_29b add _29a _7f
+_29c max _295 _29b
+_29d const 0.465
+_29e add _29d _89
+_29f max _29c _29e
+_2a0 min _298 _29f
+_2a1 neg _29b
+_2a2 max _28a _2a1
+_2a3 neg _29e
+_2a4 max _2a2 _2a3
+_2a5 min _2a0 _2a4
+_2a6 add _67 _3
+_2a7 max _21a _2a6
+_2a8 const 5.15
+_2a9 add _2a8 _3
+_2aa neg _2a9
+_2ab max _2a7 _2aa
+_2ac const 4.925
+_2ad add _2ac _3
+_2ae square _2ad
+_2af add _163 _2ae
+_2b0 sqrt _2af
+_2b1 sub _2b0 _15
+_2b2 const 0.485
+_2b3 add _2b2 _22c
+_2b4 sub _2b3 _22f
+_2b5 max _22a _2b4
+_2b6 const 3.865
+_2b7 add _22c _2b6
+_2b8 add _2b7 _236
+_2b9 neg _2b8
+_2ba max _2b5 _2b9
+_2bb const 3.865
+_2bc add _22c _2bb
+_2bd add _2bc _236
+_2be max _23f _2bd
+_2bf sub _22f _2b3
+_2c0 max _2be _2bf
+_2c1 min _2ba _2c0
+_2c2 neg _2c1
+_2c3 max _2b1 _2c2
+_2c4 sub _9 _2b0
+_2c5 max _2c3 _2c4
+_2c6 min _2ab _2c5
+_2c7 max _2b1 _2c6
+_2c8 min _2a5 _2c7
+_2c9 const 3.1
+_2ca add _2c9 _e
+_2cb const 4.1
+_2cc add _2cb _e
+_2cd neg _2cc
+_2ce max _2ca _2cd
+_2cf const 7.531
+_2d0 sub _2cf _3
+_2d1 max _2ce _2d0
+_2d2 const 7.631
+_2d3 sub _3 _2d2
+_2d4 max _2d1 _2d3
+_2d5 min _2c8 _2d4
+_2d6 const 3.55
+_2d7 add _2d6 _e
+_2d8 const 3.65
+_2d9 add _2d8 _e
+_2da neg _2d9
+_2db max _2d7 _2da
+_2dc const 7.35601
+_2dd sub _2dc _3
+_2de max _2db _2dd
+_2df const 7.531
+_2e0 sub _3 _2df
+_2e1 max _2de _2e0
+_2e2 min _2d5 _2e1
+_2e3 max _2cd _2dd
+_2e4 max _2e3 _2e0
+_2e5 const 4
+_2e6 add _2e5 _e
+_2e7 max _2e4 _2e6
+_2e8 min _2e2 _2e7
+_2e9 const 6.631
+_2ea sub _2e9 _3
+_2eb max _2ce _2ea
+_2ec const 7.356
+_2ed sub _3 _2ec
+_2ee max _2eb _2ed
+_2ef const 3.825
+_2f0 add _2ef _e
+_2f1 square _2f0
+_2f2 square _2dd
+_2f3 add _2f1 _2f2
+_2f4 sqrt _2f3
+_2f5 sub _9 _2f4
+_2f6 max _2ee _2f5
+_2f7 sub _2f4 _15
+_2f8 max _2f6 _2f7
+_2f9 min _2e8 _2f8
+_2fa add _2c9 _3
+_2fb max _174 _2fa
+_2fc const 3.2
+_2fd add _2fc _3
+_2fe neg _2fd
+_2ff max _2fb _2fe
+_300 min _2f9 _2ff
+_301 const 4.02143
+_302 add _301 _c2
+_303 max _174 _302
+_304 const 4.57143
+_305 add _304 _c2
+_306 neg _305
+_307 max _303 _306
+_308 square _5d
+_309 const 5.02679
+_30a add _309 _cc
+_30b square _30a
+_30c add _308 _30b
+_30d sqrt _30c
+_30e sub _c8 _30d
+_30f max _307 _30e
+_310 square _302
+_311 add _308 _310
+_312 sqrt _311
+_313 sub _312 _d6
+_314 max _30f _313
+_315 min _300 _314
+_316 const 3.3
+_317 add _316 _3
+_318 max _21a _317
+_319 const 3.8
+_31a add _319 _3
+_31b neg _31a
+_31c max _318 _31b
+_31d const 3.575
+_31e add _31d _3
+_31f square _31e
+_320 add _163 _31f
+_321 sqrt _320
+_322 sub _321 _15
+_323 const 0.11375
+_324 add _323 _22c
+_325 sub _324 _22f
+_326 max _22a _325
+_327 const 3.49375
+_328 add _22c _327
+_329 add _328 _236
+_32a neg _329
+_32b max _326 _32a
+_32c const 3.49375
+_32d add _22c _32c
+_32e add _32d _236
+_32f max _23f _32e
+_330 sub _22f _324
+_331 max _32f _330
+_332 min _32b _331
+_333 neg _332
+_334 max _322 _333
+_335 sub _9 _321
+_336 max _334 _335
+_337 min _31c _336
+_338 max _322 _337
+_339 min _315 _338
+_33a const 1.01
+_33b add _33a _7f
+_33c sub _33b _83
+_33d max _28d _33c
+_33e const 0.545
+_33f add _33e _7f
+_340 sub _7c _33f
+_341 max _33d _340
+_342 min _339 _341
+_343 sub _33f _7c
+_344 max _28c _343
+_345 sub _83 _33b
+_346 max _344 _345
+_347 min _342 _346
+_348 max _343 _29e
+_349 const 1.065
+_34a add _349 _7f
+_34b sub _83 _34a
+_34c max _348 _34b
+_34d min _347 _34c
+_34e sub _34a _83
+_34f max _340 _34e
+_350 max _34f _2a3
+_351 min _34d _350
+_352 const 6.225
+_353 add _352 _e
+_354 square _353
+_355 const 5.733
+_356 sub _3 _355
+_357 square _356
+_358 add _354 _357
+_359 sqrt _358
+_35a sub _359 _1cc
+_35b min _351 _35a
+_35c const 2.65
+_35d add _35c _236
+_35e mul _1 _235
+_35f const 2.829
+_360 sub _35e _35f
+_361 max _35d _360
+_362 const 0.0709989
+_363 add _1 _d
+_364 mul _363 _235
+_365 add _362 _364
+_366 neg _365
+_367 max _361 _366
+_368 sub _35f _35e
+_369 max _365 _368
+_36a neg _35d
+_36b max _369 _36a
+_36c min _367 _36b
+_36d const 0.813008
+_36e mul _d _36d
+_36f const 6.188
+_370 add _36e _36f
+_371 sub _3 _370
+_372 const 0.0706995
+_373 const 2.60163
+_374 mul _d _373
+_375 add _372 _374
+_376 mul _1 _7b
+_377 add _375 _376
+_378 neg _377
+_379 max _371 _378
+_37a const 3.41463
+_37b mul _d _37a
+_37c const 5.9037
+_37d add _37b _37c
+_37e mul _1 _228
+_37f sub _37d _37e
+_380 max _379 _37f
+_381 min _36c _380
+_382 const 5.9037
+_383 add _37b _382
+_384 sub _37e _383
+_385 const 0.0706992
+_386 add _385 _374
+_387 add _386 _376
+_388 max _384 _387
+_389 sub _370 _3
+_38a max _388 _389
+_38b min _381 _38a
+_38c const 1.728
+_38d const 2.19512
+_38e mul _d _38d
+_38f add _38c _38e
+_390 neg _38f
+_391 const 1.8053
+_392 sub _391 _376
+_393 max _390 _392
+_394 add _38e _376
+_395 const 0.171801
+_396 sub _394 _395
+_397 max _393 _396
+_398 min _38b _397
+_399 sub _395 _394
+_39a max _38f _399
+_39b sub _376 _391
+_39c max _39a _39b
+_39d min _398 _39c
+_39e const 2.12
+_39f const 3.25203
+_3a0 mul _d _39f
+_3a1 add _39e _3a0
+_3a2 const 5.1769
+_3a3 add _3a0 _3a2
+_3a4 sub _7f _3a3
+_3a5 max _3a1 _3a4
+_3a6 const 2.8369
+_3a7 sub _3a6 _7f
+_3a8 max _3a5 _3a7
+_3a9 min _39d _3a8
+_3aa sub _7f _3a6
+_3ab sub _3a3 _7f
+_3ac max _3aa _3ab
+_3ad neg _3a1
+_3ae max _3ac _3ad
+_3af min _3a9 _3ae
+_3b0 neg _3af
+_3b1 max _3b0 _19
+_3b2 max _3b1 _1d
+_3b3 const 5.558
+_3b4 sub _3 _3b3
+_3b5 max _3b2 _3b4
+_3b6 const 5.058
+_3b7 sub _3b6 _3
+_3b8 max _3b5 _3b7
+_3b9 min _35b _3b8
+_3ba const 4.683
+_3bb sub _3 _3ba
+_3bc square _3bb
+_3bd add _10 _3bc
+_3be sqrt _3bd
+_3bf sub _9 _3be
+_3c0 sub _3be _15
+_3c1 max _3bf _3c0
+_3c2 min _3b9 _3c1
+_3c3 const 4.033
+_3c4 sub _3 _3c3
+_3c5 square _3c4
+_3c6 add _10 _3c5
+_3c7 sqrt _3c6
+_3c8 sub _9 _3c7
+_3c9 sub _3c7 _15
+_3ca max _3c8 _3c9
+_3cb min _3c2 _3ca
+_3cc const 3.233
+_3cd sub _3 _3cc
+_3ce const 3.133
+_3cf sub _3ce _3
+_3d0 max _3cd _3cf
+_3d1 max _3d0 _19
+_3d2 max _3d1 _1d
+_3d3 min _3cb _3d2
+_3d4 max _34 _e9
+_3d5 const 3.408
+_3d6 sub _3 _3d5
+_3d7 max _3d4 _3d6
+_3d8 const 3.233
+_3d9 sub _3d8 _3
+_3da max _3d7 _3d9
+_3db min _3d3 _3da
+_3dc max _3d6 _3d9
+_3dd max _3dc _4d
+_3de max _3dd _1d
+_3df min _3db _3de
+_3e0 const 4.133
+_3e1 sub _3 _3e0
+_3e2 const 3.408
+_3e3 sub _3e2 _3
+_3e4 max _3e1 _3e3
+_3e5 square _3d6
+_3e6 add _10 _3e5
+_3e7 sqrt _3e6
+_3e8 sub _9 _3e7
+_3e9 max _3e4 _3e8
+_3ea sub _3e7 _15
+_3eb max _3e9 _3ea
+_3ec max _3eb _19
+_3ed max _3ec _1d
+_3ee min _3df _3ed
+_3ef const 0.685
+_3f0 add _3ef _98
+_3f1 neg _3f0
+_3f2 const 1.82927
+_3f3 mul _d _3f2
+_3f4 const 2.5769
+_3f5 add _3f3 _3f4
+_3f6 sub _7f _3f5
+_3f7 max _3f1 _3f6
+_3f8 const 2.64228
+_3f9 mul _d _3f8
+_3fa const 3.2069
+_3fb add _3f9 _3fa
+_3fc sub _3fb _7f
+_3fd max _3f7 _3fc
+_3fe min _3ee _3fd
+_3ff sub _7f _3fb
+_400 max _3f0 _3ff
+_401 sub _3f5 _7f
+_402 max _400 _401
+_403 min _3fe _402
+_404 const 1.083
+_405 sub _404 _3
+_406 const 5.65
+_407 add _406 _e
+_408 max _405 _407
+_409 const 5.95
+_40a add _409 _e
+_40b neg _40a
+_40c max _408 _40b
+_40d const 1.733
+_40e sub _3 _40d
+_40f max _40c _40e
+_410 const 5.95
+_411 add _410 _e
+_412 square _411
+_413 const 1.508
+_414 sub _3 _413
+_415 square _414
+_416 add _412 _415
+_417 sqrt _416
+_418 sub _1cc _417
+_419 sub _417 _9
+_41a max _418 _419
+_41b const 1.258
+_41c sub _3 _41b
+_41d square _41c
+_41e add _412 _41d
+_41f sqrt _41e
+_420 sub _1cc _41f
+_421 sub _41f _9
+_422 max _420 _421
+_423 min _41a _422
+_424 max _40f _423
+_425 min _403 _424
+_426 const 5.975
+_427 add _426 _e
+_428 max _1d _427
+_429 const 0.282999
+_42a sub _3 _429
+_42b max _428 _42a
+_42c const 0.182999
+_42d sub _42c _3
+_42e max _42b _42d
+_42f min _425 _42e
+_430 max _34 _1d
+_431 const 0.167001
+_432 add _431 _3
+_433 max _430 _432
+_434 const 0.267001
+_435 add _434 _3
+_436 neg _435
+_437 max _433 _436
+_438 min _42f _437
+_439 max _34 _42a
+_43a max _439 _436
+_43b neg _427
+_43c max _43a _43b
+_43d const 0.00799847
+_43e sub _3 _43d
+_43f square _43e
+_440 add _10 _43f
+_441 sqrt _440
+_442 sub _9 _441
+_443 max _43c _442
+_444 sub _441 _15
+_445 max _443 _444
+_446 min _438 _445
+_447 const 1.23565
+_448 add _447 _83
+_449 sub _7f _448
+_44a const 1.81065
+_44b add _44a _7c
+_44c sub _44b _7f
+_44d max _449 _44c
+_44e max _44d _9a
+_44f min _446 _44e
+_450 sub _7f _44b
+_451 sub _448 _7f
+_452 max _450 _451
+_453 max _452 _99
+_454 min _44f _453
+_455 const 1.18065
+_456 add _455 _83
+_457 sub _456 _7f
+_458 max _450 _457
+_459 max _458 _8a
+_45a min _454 _459
+_45b sub _7f _456
+_45c max _44c _45b
+_45d max _45c _8b
+_45e min _45a _45d
+_45f const 1.96935
+_460 add _45f _83
+_461 add _460 _7f
+_462 neg _461
+_463 const 2.54435
+_464 add _463 _7c
+_465 add _464 _7f
+_466 max _462 _465
+_467 max _466 _9a
+_468 min _45e _467
+_469 neg _465
+_46a max _461 _469
+_46b max _46a _99
+_46c min _468 _46b
+_46d const 1.91435
+_46e add _46d _83
+_46f add _46e _7f
+_470 max _469 _46f
+_471 max _470 _8a
+_472 min _46c _471
+_473 neg _46f
+_474 max _465 _473
+_475 max _474 _8b
+_476 min _472 _475
+_477 const 0.96065
+_478 add _477 _83
+_479 sub _7f _478
+_47a max _479 _80
+_47b max _47a _9a
+_47c min _476 _47b
+_47d const 1.53565
+_47e add _47d _7c
+_47f sub _7f _47e
+_480 sub _478 _7f
+_481 max _47f _480
+_482 max _481 _99
+_483 min _47c _482
+_484 sub _84 _7f
+_485 max _47f _484
+_486 max _485 _8a
+_487 min _483 _486
+_488 const 0.63
+_489 add _488 _89
+_48a max _3ff _489
+_48b const 2.5219
+_48c add _3f3 _48b
+_48d sub _48c _7f
+_48e max _48a _48d
+_48f min _487 _48e
+_490 sub _7f _48c
+_491 max _3fc _490
+_492 neg _489
+_493 max _491 _492
+_494 min _48f _493
+_495 max _3f6 _9a
+_496 const 3.1519
+_497 add _3f9 _496
+_498 sub _497 _7f
+_499 max _495 _498
+_49a min _494 _499
+_49b max _401 _99
+_49c sub _7f _497
+_49d max _49b _49c
+_49e min _49a _49d
+_49f max _48d _49c
+_4a0 max _49f _8a
+_4a1 min _49e _4a0
+_4a2 max _490 _498
+_4a3 max _4a2 _8b
+_4a4 min _4a1 _4a3
+_4a5 const 0.3131
+_4a6 add _4a5 _3f3
+_4a7 add _4a6 _7f
+_4a8 neg _4a7
+_4a9 max _9a _4a8
+_4aa const 0.8881
+_4ab add _4aa _3f9
+_4ac add _4ab _7f
+_4ad max _4a9 _4ac
+_4ae min _4a4 _4ad
+_4af max _99 _4a7
+_4b0 neg _4ac
+_4b1 max _4af _4b0
+_4b2 min _4ae _4b1
+_4b3 max _8a _4b0
+_4b4 const 0.2581
+_4b5 add _4b4 _3f3
+_4b6 add _4b5 _7f
+_4b7 max _4b3 _4b6
+_4b8 min _4b2 _4b7
+_4b9 max _8b _4ac
+_4ba neg _4b6
+_4bb max _4b9 _4ba
+_4bc min _4b8 _4bb
+_4bd max _1d _411
+_4be const 1.683
+_4bf sub _3 _4be
+_4c0 max _4bd _4bf
+_4c1 const 1.583
+_4c2 sub _4c1 _3
+_4c3 max _4c0 _4c2
+_4c4 min _4bc _4c3
+_4c5 const 1.433
+_4c6 sub _3 _4c5
+_4c7 max _4bd _4c6
+_4c8 const 1.333
+_4c9 sub _4c8 _3
+_4ca max _4c7 _4c9
+_4cb min _4c4 _4ca
+_4cc const 5.775
+_4cd add _4cc _e
+_4ce max _1d _4cd
+_4cf max _4ce _222
+_4d0 max _4cf _405
+_4d1 min _4cb _4d0
+_4d2 const 2.65
+_4d3 add _4d2 _e
+_4d4 const 1.498
+_4d5 sub _3 _4d4
+_4d6 max _4d3 _4d5
+_4d7 const 1.398
+_4d8 sub _4d7 _3
+_4d9 max _4d6 _4d8
+_4da const 3
+_4db add _4da _e
+_4dc neg _4db
+_4dd max _4d9 _4dc
+_4de min _4d1 _4dd
+_4df const 1.248
+_4e0 sub _3 _4df
+_4e1 max _4d3 _4e0
+_4e2 const 1.148
+_4e3 sub _4e2 _3
+_4e4 max _4e1 _4e3
+_4e5 max _4e4 _4dc
+_4e6 min _4de _4e5
+_4e7 const 2.475
+_4e8 add _4e7 _e
+_4e9 const 0.998001
+_4ea sub _3 _4e9
+_4eb max _4e8 _4ea
+_4ec const 0.898001
+_4ed sub _4ec _3
+_4ee max _4eb _4ed
+_4ef max _4ee _4dc
+_4f0 min _4e6 _4ef
+_4f1 const 2.65
+_4f2 add _4f1 _e
+_4f3 neg _4f2
+_4f4 max _4ed _4f3
+_4f5 const 1.548
+_4f6 sub _3 _4f5
+_4f7 max _4f4 _4f6
+_4f8 square _4d3
+_4f9 const 1.323
+_4fa sub _3 _4f9
+_4fb square _4fa
+_4fc add _4f8 _4fb
+_4fd sqrt _4fc
+_4fe sub _1cc _4fd
+_4ff sub _4fd _9
+_500 max _4fe _4ff
+_501 const 1.073
+_502 sub _3 _501
+_503 square _502
+_504 add _4f8 _503
+_505 sqrt _504
+_506 sub _1cc _505
+_507 sub _505 _9
+_508 max _506 _507
+_509 min _500 _508
+_50a max _4f7 _509
+_50b const 2.35
+_50c add _50b _e
+_50d max _50a _50c
+_50e min _4f0 _50d
+_50f const 0.523
+_510 sub _3 _50f
+_511 square _510
+_512 const 2.725
+_513 add _512 _e
+_514 square _513
+_515 add _511 _514
+_516 sqrt _515
+_517 sub _9 _516
+_518 sub _516 _15
+_519 max _517 _518
+_51a min _50e _519
+_51b const 0.0979996
+_51c sub _3 _51b
+_51d const 0.00200015
+_51e add _51d _3
+_51f neg _51e
+_520 max _51c _51f
+_521 max _520 _4dc
+_522 max _521 _513
+_523 min _51a _522
+_524 const 0.352
+_525 add _524 _3
+_526 const 0.452
+_527 add _526 _3
+_528 neg _527
+_529 max _525 _528
+_52a max _529 _4dc
+_52b const 2
+_52c add _52b _e
+_52d max _52a _52c
+_52e min _523 _52d
+_52f max _51c _528
+_530 const 0.177
+_531 add _530 _3
+_532 square _531
+_533 add _532 _514
+_534 sqrt _533
+_535 sub _9 _534
+_536 max _52f _535
+_537 sub _534 _15
+_538 max _536 _537
+_539 const 2.45
+_53a add _539 _e
+_53b max _538 _53a
+_53c const 2.725
+_53d add _53c _e
+_53e neg _53d
+_53f max _53b _53e
+_540 min _52e _53f
+_541 const 3.4105
+_542 sub _3 _541
+_543 square _542
+_544 add _543 _514
+_545 sqrt _544
+_546 sub _9 _545
+_547 sub _545 _15
+_548 max _546 _547
+_549 max _548 _53a
+_54a const 3.6855
+_54b sub _3 _54a
+_54c max _549 _54b
+_54d const 3.1355
+_54e sub _54d _3
+_54f max _54c _54e
+_550 const 2.675
+_551 add _550 _e
+_552 neg _551
+_553 max _54f _552
+_554 min _540 _553
+_555 const 3.0105
+_556 sub _3 _555
+_557 const 2.9105
+_558 sub _557 _3
+_559 max _556 _558
+_55a max _559 _4dc
+_55b max _55a _53a
+_55c min _554 _55b
+_55d const 2.3
+_55e add _55d _e
+_55f square _55e
+_560 const 2.9605
+_561 sub _3 _560
+_562 square _561
+_563 add _55f _562
+_564 sqrt _563
+_565 sub _564 _1cc
+_566 min _55c _565
+_567 const 2.775
+_568 add _567 _e
+_569 neg _568
+_56a const 2.6125
+_56b add _56a _e
+_56c max _569 _56b
+_56d const 1.22783
+_56e sub _56d _104
+_56f max _56c _56e
+_570 const 1.39033
+_571 sub _104 _570
+_572 max _56f _571
+_573 const 2.615
+_574 add _573 _e
+_575 neg _574
+_576 square _575
+_577 const 0.81689
+_578 sub _577 _f1
+_579 square _578
+_57a add _576 _579
+_57b sqrt _57a
+_57c sub _57b _fa
+_57d min _572 _57c
+_57e neg _57d
+_57f const 2.6125
+_580 add _57f _e
+_581 neg _580
+_582 square _581
+_583 square _56e
+_584 add _582 _583
+_585 sqrt _584
+_586 sub _585 _113
+_587 max _57e _586
+_588 min _566 _587
+_589 const 2.8375
+_58a add _589 _e
+_58b neg _58a
+_58c const 1.22783
+_58d sub _104 _58c
+_58e max _58b _58d
+_58f const 1.06533
+_590 sub _58f _104
+_591 max _58e _590
+_592 const 2.675
+_593 add _592 _e
+_594 max _591 _593
+_595 const 2.835
+_596 add _595 _e
+_597 square _596
+_598 const 0.820223
+_599 sub _f1 _598
+_59a square _599
+_59b add _597 _59a
+_59c sqrt _59b
+_59d sub _59c _fa
+_59e min _594 _59d
+_59f neg _59e
+_5a0 const 2.8375
+_5a1 add _5a0 _e
+_5a2 square _5a1
+_5a3 square _58d
+_5a4 add _5a2 _5a3
+_5a5 sqrt _5a4
+_5a6 sub _5a5 _113
+_5a7 max _59f _5a6
+_5a8 min _588 _5a7
+_5a9 const 3.207
+_5aa add _5a9 _3
+_5ab square _5aa
+_5ac add _5ab _514
+_5ad sqrt _5ac
+_5ae sub _9 _5ad
+_5af sub _5ad _15
+_5b0 max _5ae _5af
+_5b1 const 2.932
+_5b2 add _5b1 _3
+_5b3 max _5b0 _5b2
+_5b4 const 3.482
+_5b5 add _5b4 _3
+_5b6 neg _5b5
+_5b7 max _5b3 _5b6
+_5b8 max _5b7 _53a
+_5b9 max _5b8 _552
+_5ba min _5a8 _5b9
+_5bb const 3.607
+_5bc add _5bb _3
+_5bd const 3.707
+_5be add _5bd _3
+_5bf neg _5be
+_5c0 max _5bc _5bf
+_5c1 max _5c0 _4dc
+_5c2 max _5c1 _53a
+_5c3 min _5ba _5c2
+_5c4 const 3.657
+_5c5 add _5c4 _3
+_5c6 square _5c5
+_5c7 add _55f _5c6
+_5c8 sqrt _5c7
+_5c9 sub _5c8 _1cc
+_5ca min _5c3 _5c9
+_5cb const 3.852
+_5cc add _5cb _3
+_5cd max _4d3 _5cc
+_5ce const 3.952
+_5cf add _5ce _3
+_5d0 neg _5cf
+_5d1 max _5cd _5d0
+_5d2 max _5d1 _4dc
+_5d3 min _5ca _5d2
+_5d4 const 3.35486
+_5d5 add _5d4 _3
+_5d6 const 2.32288
+_5d7 mul _d _5d6
+_5d8 sub _5d5 _5d7
+_5d9 square _5d8
+_5da add _5d9 _514
+_5db sqrt _5da
+_5dc sub _9 _5db
+_5dd sub _5db _15
+_5de max _5dc _5dd
+_5df min _5d3 _5de
+_5e0 const 4.662
+_5e1 add _5e0 _3
+_5e2 const 4.762
+_5e3 add _5e2 _3
+_5e4 neg _5e3
+_5e5 max _5e1 _5e4
+_5e6 max _5e5 _52c
+_5e7 const 2.75
+_5e8 add _5e7 _e
+_5e9 neg _5e8
+_5ea max _5e6 _5e9
+_5eb min _5df _5ea
+_5ec const 4.512
+_5ed add _5ec _3
+_5ee const 4.912
+_5ef add _5ee _3
+_5f0 neg _5ef
+_5f1 max _5ed _5f0
+_5f2 max _5f1 _50c
+_5f3 const 2.45
+_5f4 add _5f3 _e
+_5f5 neg _5f4
+_5f6 max _5f2 _5f5
+_5f7 min _5eb _5f6
+_5f8 square _5ed
+_5f9 square _5e8
+_5fa add _5f8 _5f9
+_5fb sqrt _5fa
+_5fc sub _150 _5fb
+_5fd max _5f1 _5fc
+_5fe sub _5fb _157
+_5ff max _5fd _5fe
+_600 max _5ff _4dc
+_601 max _600 _5e8
+_602 min _5f7 _601
+_603 const 5.27
+_604 add _603 _3
+_605 const 5.37
+_606 add _605 _3
+_607 neg _606
+_608 max _604 _607
+_609 max _608 _4dc
+_60a max _609 _53a
+_60b min _602 _60a
+_60c const 0.702
+_60d add _60c _3
+_60e const 0.802
+_60f add _60e _3
+_610 neg _60f
+_611 max _60d _610
+_612 max _611 _52c
+_613 max _612 _5e9
+_614 min _60b _613
+_615 const 0.552
+_616 add _615 _3
+_617 const 0.952
+_618 add _617 _3
+_619 neg _618
+_61a max _616 _619
+_61b max _61a _50c
+_61c max _61b _5f5
+_61d min _614 _61c
+_61e square _616
+_61f add _61e _5f9
+_620 sqrt _61f
+_621 sub _150 _620
+_622 max _61a _621
+_623 sub _620 _157
+_624 max _622 _623
+_625 max _624 _4dc
+_626 max _625 _5e8
+_627 min _61d _626
+_628 const 1.072
+_629 add _628 _3
+_62a max _4d3 _629
+_62b const 1.172
+_62c add _62b _3
+_62d neg _62c
+_62e max _62a _62d
+_62f max _62e _4dc
+_630 min _627 _62f
+_631 const 0.574857
+_632 add _631 _3
+_633 sub _632 _5d7
+_634 square _633
+_635 add _634 _514
+_636 sqrt _635
+_637 sub _9 _636
+_638 sub _636 _15
+_639 max _637 _638
+_63a min _630 _639
+_63b const 2.25
+_63c add _63b _e
+_63d const 1.882
+_63e add _63d _3
+_63f max _63c _63e
+_640 const 1.982
+_641 add _640 _3
+_642 neg _641
+_643 max _63f _642
+_644 max _643 _4dc
+_645 min _63a _644
+_646 const 2.55
+_647 add _646 _e
+_648 neg _647
+_649 const 1.732
+_64a add _649 _3
+_64b max _648 _64a
+_64c const 2.132
+_64d add _64c _3
+_64e neg _64d
+_64f max _64b _64e
+_650 max _64f _53a
+_651 min _645 _650
+_652 max _64a _64e
+_653 neg _63c
+_654 max _652 _653
+_655 square _63c
+_656 square _64a
+_657 add _655 _656
+_658 sqrt _657
+_659 sub _150 _658
+_65a max _654 _659
+_65b sub _658 _157
+_65c max _65a _65b
+_65d max _65c _52c
+_65e min _651 _65d
+_65f const 3.032
+_660 add _65f _3
+_661 neg _660
+_662 max _5b2 _661
+_663 max _662 _4dc
+_664 max _663 _593
+_665 min _65e _664
+_666 const 3.382
+_667 add _666 _3
+_668 max _667 _5b6
+_669 max _668 _4dc
+_66a max _669 _53a
+_66b min _665 _66a
+_66c const 1.25
+_66d add _66c _e
+_66e const 1.35
+_66f add _66e _e
+_670 neg _66f
+_671 max _66d _670
+_672 const 6.6385
+_673 sub _3 _672
+_674 max _671 _673
+_675 const 6.2385
+_676 sub _675 _3
+_677 max _674 _676
+_678 min _66b _677
+_679 max _673 _676
+_67a const 1.9
+_67b add _67a _e
+_67c neg _67b
+_67d max _679 _67c
+_67e const 1.65
+_67f add _67e _e
+_680 square _67f
+_681 square _673
+_682 add _680 _681
+_683 sqrt _682
+_684 sub _150 _683
+_685 max _67d _684
+_686 sub _683 _157
+_687 max _685 _686
+_688 max _687 _67f
+_689 min _678 _688
+_68a const 1.35
+_68b add _68a _e
+_68c max _67c _68b
+_68d const 6.1135
+_68e sub _3 _68d
+_68f max _68c _68e
+_690 const 6.0135
+_691 sub _690 _3
+_692 max _68f _691
+_693 min _689 _692
+_694 const 1.2
+_695 add _694 _e
+_696 square _695
+_697 const 6.0635
+_698 sub _3 _697
+_699 square _698
+_69a add _696 _699
+_69b sqrt _69a
+_69c sub _69b _1cc
+_69d min _693 _69c
+_69e const 0.245
+_69f add _69e _98
+_6a0 neg _69f
+_6a1 const 3.15743
+_6a2 add _3f3 _6a1
+_6a3 sub _7f _6a2
+_6a4 max _6a0 _6a3
+_6a5 const 3.34743
+_6a6 add _3f9 _6a5
+_6a7 sub _6a6 _7f
+_6a8 max _6a4 _6a7
+_6a9 min _69d _6a8
+_6aa const 3.34743
+_6ab add _3f9 _6aa
+_6ac sub _7f _6ab
+_6ad max _69f _6ac
+_6ae sub _6a2 _7f
+_6af max _6ad _6ae
+_6b0 min _6a9 _6af
+_6b1 const 0.19
+_6b2 add _6b1 _89
+_6b3 max _6ac _6b2
+_6b4 const 3.10243
+_6b5 add _3f3 _6b4
+_6b6 sub _6b5 _7f
+_6b7 max _6b3 _6b6
+_6b8 min _6b0 _6b7
+_6b9 sub _7f _6b5
+_6ba max _6a7 _6b9
+_6bb neg _6b2
+_6bc max _6ba _6bb
+_6bd min _6b8 _6bc
+_6be add _6b1 _98
+_6bf neg _6be
+_6c0 max _6a3 _6bf
+_6c1 const 3.29243
+_6c2 add _3f9 _6c1
+_6c3 sub _6c2 _7f
+_6c4 max _6c0 _6c3
+_6c5 min _6bd _6c4
+_6c6 max _6ae _6be
+_6c7 sub _7f _6c2
+_6c8 max _6c6 _6c7
+_6c9 min _6c5 _6c8
+_6ca max _6b6 _6c7
+_6cb const 0.135
+_6cc add _6cb _89
+_6cd max _6ca _6cc
+_6ce min _6c9 _6cd
+_6cf max _6b9 _6c3
+_6d0 neg _6cc
+_6d1 max _6cf _6d0
+_6d2 min _6ce _6d1
+_6d3 const 2.24743
+_6d4 add _3f3 _7f
+_6d5 sub _6d3 _6d4
+_6d6 max _6bf _6d5
+_6d7 add _3f9 _7f
+_6d8 const 2.11243
+_6d9 sub _6d7 _6d8
+_6da max _6d6 _6d9
+_6db min _6d2 _6da
+_6dc const 7.12143
+_6dd add _6dc _c2
+_6de const 7.67143
+_6df add _6de _c2
+_6e0 neg _6df
+_6e1 max _6dd _6e0
+_6e2 square _4db
+_6e3 const 8.90179
+_6e4 add _6e3 _cc
+_6e5 square _6e4
+_6e6 add _6e2 _6e5
+_6e7 sqrt _6e6
+_6e8 sub _c8 _6e7
+_6e9 max _6e1 _6e8
+_6ea square _6dd
+_6eb add _6e2 _6ea
+_6ec sqrt _6eb
+_6ed sub _6ec _d6
+_6ee max _6e9 _6ed
+_6ef max _6ee _4dc
+_6f0 max _6ef _53a
+_6f1 min _6db _6f0
+_6f2 const 5.47
+_6f3 add _6f2 _3
+_6f4 const 5.97
+_6f5 add _6f4 _3
+_6f6 neg _6f5
+_6f7 max _6f3 _6f6
+_6f8 const 2.685
+_6f9 add _6f8 _e
+_6fa max _6f7 _6f9
+_6fb const 2.775
+_6fc add _6fb _e
+_6fd neg _6fc
+_6fe max _6fa _6fd
+_6ff const 5.745
+_700 add _6ff _3
+_701 square _700
+_702 add _701 _514
+_703 sqrt _702
+_704 sub _703 _15
+_705 const 1.0405
+_706 add _705 _22c
+_707 sub _706 _22f
+_708 const 2.9905
+_709 add _22c _708
+_70a add _709 _236
+_70b neg _70a
+_70c max _707 _70b
+_70d const 1.77125
+_70e add _70d _229
+_70f max _70c _70e
+_710 const 2.9905
+_711 add _22c _710
+_712 add _711 _236
+_713 sub _22f _706
+_714 max _712 _713
+_715 neg _70e
+_716 max _714 _715
+_717 min _70f _716
+_718 neg _717
+_719 max _704 _718
+_71a sub _9 _703
+_71b max _719 _71a
+_71c min _6fe _71b
+_71d max _704 _71c
+_71e min _6f1 _71d
+_71f mul _d _22b
+_720 const 1.02163
+_721 const 2.27642
+_722 mul _1 _721
+_723 add _720 _722
+_724 sub _71f _723
+_725 const 3.35775
+_726 const 4.5122
+_727 mul _1 _726
+_728 add _725 _727
+_729 max _724 _728
+_72a mul _363 _22b
+_72b const 2.48875
+_72c add _72a _72b
+_72d neg _72c
+_72e max _729 _72d
+_72f const 2.48875
+_730 add _72a _72f
+_731 neg _728
+_732 max _730 _731
+_733 const 1.02162
+_734 add _733 _722
+_735 sub _734 _71f
+_736 max _732 _735
+_737 min _72e _736
+_738 neg _737
+_739 const 6.325
+_73a add _739 _3
+_73b square _73a
+_73c add _73b _514
+_73d sqrt _73c
+_73e sub _9 _73d
+_73f max _738 _73e
+_740 sub _73d _15
+_741 max _73f _740
+_742 min _71e _741
+_743 const 0.9
+_744 add _743 _e
+_745 neg _67f
+_746 max _744 _745
+_747 const 6.4885
+_748 sub _3 _747
+_749 max _746 _748
+_74a const 6.3885
+_74b sub _74a _3
+_74c max _749 _74b
+_74d min _742 _74c
+_74e max _67c _744
+_74f const 1.625
+_750 add _74f _e
+_751 square _750
+_752 const 3.1805
+_753 sub _3 _752
+_754 square _753
+_755 add _751 _754
+_756 sqrt _755
+_757 sub _9 _756
+_758 max _74e _757
+_759 sub _756 _15
+_75a max _758 _759
+_75b const 3.9055
+_75c sub _3 _75b
+_75d max _75a _75c
+_75e const 3.1805
+_75f sub _75e _3
+_760 max _75d _75f
+_761 min _74d _760
+_762 const 2.84553
+_763 mul _1 _762
+_764 const 0.880675
+_765 add _89 _764
+_766 sub _763 _765
+_767 const 0.590637
+_768 const 1.82927
+_769 mul _1 _768
+_76a add _767 _769
+_76b add _76a _236
+_76c neg _76b
+_76d max _766 _76c
+_76e const 1.27381
+_76f const 4.87805
+_770 mul _d _76f
+_771 add _76e _770
+_772 const 1.01626
+_773 mul _1 _772
+_774 sub _771 _773
+_775 max _76d _774
+_776 const 1.27381
+_777 add _776 _770
+_778 sub _773 _777
+_779 max _76b _778
+_77a sub _765 _763
+_77b max _779 _77a
+_77c min _775 _77b
+_77d neg _77c
+_77e const 1.825
+_77f add _77e _e
+_780 max _77d _77f
+_781 const 2.05
+_782 add _781 _e
+_783 neg _782
+_784 max _780 _783
+_785 const 2.0805
+_786 sub _3 _785
+_787 max _784 _786
+_788 const 1.9305
+_789 sub _788 _3
+_78a max _787 _789
+_78b const 0.608333
+_78c const 2.71003
+_78d mul _d _78c
+_78e add _78b _78d
+_78f square _78e
+_790 const 2.0055
+_791 sub _3 _790
+_792 square _791
+_793 add _78f _792
+_794 sqrt _793
+_795 sub _794 _1cc
+_796 max _78a _795
+_797 min _761 _796
+_798 square _77f
+_799 const 2.0305
+_79a sub _3 _799
+_79b square _79a
+_79c add _798 _79b
+_79d sqrt _79c
+_79e sub _79d _1cc
+_79f min _797 _79e
+_7a0 const 1.15
+_7a1 add _7a0 _e
+_7a2 max _67c _7a1
+_7a3 const 1.6805
+_7a4 sub _3 _7a3
+_7a5 max _7a2 _7a4
+_7a6 const 1.5805
+_7a7 sub _7a6 _3
+_7a8 max _7a5 _7a7
+_7a9 min _79f _7a8
+_7aa const 1.8305
+_7ab sub _3 _7aa
+_7ac max _68b _7ab
+_7ad const 1.4305
+_7ae sub _7ad _3
+_7af max _7ac _7ae
+_7b0 const 1.45
+_7b1 add _7b0 _e
+_7b2 neg _7b1
+_7b3 max _7af _7b2
+_7b4 min _7a9 _7b3
+_7b5 max _744 _7ab
+_7b6 max _7b5 _7ae
+_7b7 neg _7a1
+_7b8 max _7b6 _7b7
+_7b9 square _7a1
+_7ba square _7ab
+_7bb add _7b9 _7ba
+_7bc sqrt _7bb
+_7bd sub _150 _7bc
+_7be max _7b8 _7bd
+_7bf sub _7bc _157
+_7c0 max _7be _7bf
+_7c1 min _7b4 _7c0
+_7c2 const 1.1805
+_7c3 sub _3 _7c2
+_7c4 max _7a2 _7c3
+_7c5 const 1.0805
+_7c6 sub _7c5 _3
+_7c7 max _7c4 _7c6
+_7c8 min _7c1 _7c7
+_7c9 sub _6d8 _6d7
+_7ca max _6be _7c9
+_7cb sub _6d4 _6d3
+_7cc max _7ca _7cb
+_7cd min _7c8 _7cc
+_7ce max _6cc _7c9
+_7cf const 2.30243
+_7d0 sub _6d4 _7cf
+_7d1 max _7ce _7d0
+_7d2 min _7cd _7d1
+_7d3 max _6d0 _6d9
+_7d4 sub _7cf _6d4
+_7d5 max _7d3 _7d4
+_7d6 min _7d2 _7d5
+_7d7 const 4.2805
+_7d8 sub _3 _7d7
+_7d9 max _68c _7d8
+_7da const 4.1805
+_7db sub _7da _3
+_7dc max _7d9 _7db
+_7dd min _7d6 _7dc
+_7de const 6.52214
+_7df sub _c2 _7de
+_7e0 max _68c _7df
+_7e1 const 5.97215
+_7e2 sub _7e1 _c2
+_7e3 max _7e0 _7e2
+_7e4 square _67b
+_7e5 const 8.15268
+_7e6 sub _cc _7e5
+_7e7 square _7e6
+_7e8 add _7e4 _7e7
+_7e9 sqrt _7e8
+_7ea sub _c8 _7e9
+_7eb max _7e3 _7ea
+_7ec square _7df
+_7ed add _7e4 _7ec
+_7ee sqrt _7ed
+_7ef sub _7ee _d6
+_7f0 max _7eb _7ef
+_7f1 min _7dd _7f0
+_7f2 const 4.0805
+_7f3 sub _3 _7f2
+_7f4 max _68c _7f3
+_7f5 const 3.9805
+_7f6 sub _7f5 _3
+_7f7 max _7f4 _7f6
+_7f8 min _7f1 _7f7
+_7f9 const 1.625
+_7fa add _7f9 _e
+_7fb neg _7fa
+_7fc max _68b _7fb
+_7fd const 3.6305
+_7fe sub _3 _7fd
+_7ff max _7fc _7fe
+_800 const 3.5305
+_801 sub _800 _3
+_802 max _7ff _801
+_803 min _7f8 _802
+_804 max _67c _7f3
+_805 max _804 _801
+_806 max _805 _750
+_807 const 3.8055
+_808 sub _3 _807
+_809 square _808
+_80a add _751 _809
+_80b sqrt _80a
+_80c sub _9 _80b
+_80d max _806 _80c
+_80e sub _80b _15
+_80f max _80d _80e
+_810 min _803 _80f
+_811 const 3.0055
+_812 sub _3 _811
+_813 max _74e _812
+_814 const 2.9055
+_815 sub _814 _3
+_816 max _813 _815
+_817 min _810 _816
+_818 max _68b _7b2
+_819 max _818 _753
+_81a const 3.0055
+_81b sub _81a _3
+_81c max _819 _81b
+_81d min _817 _81c
+_81e max _67c _753
+_81f max _81e _81b
+_820 const 1.8
+_821 add _820 _e
+_822 max _81f _821
+_823 min _81d _822
+_824 const 5.57243
+_825 add _5d7 _824
+_826 sub _3 _825
+_827 square _826
+_828 add _2f1 _827
+_829 sqrt _828
+_82a sub _9 _829
+_82b sub _829 _15
+_82c max _82a _82b
+_82d min _823 _82c
+_82e max _2cd _2f0
+_82f const 4.051
+_830 sub _3 _82f
+_831 max _82e _830
+_832 const 3.951
+_833 sub _832 _3
+_834 max _831 _833
+_835 min _82d _834
+_836 const 3.601
+_837 sub _3 _836
+_838 max _2ce _837
+_839 const 3.501
+_83a sub _839 _3
+_83b max _838 _83a
+_83c min _835 _83b
+_83d max _2d7 _830
+_83e max _83d _83a
+_83f const 3.825
+_840 add _83f _e
+_841 neg _840
+_842 max _83e _841
+_843 const 3.776
+_844 sub _3 _843
+_845 square _844
+_846 add _2f1 _845
+_847 sqrt _846
+_848 sub _9 _847
+_849 max _842 _848
+_84a sub _847 _15
+_84b max _849 _84a
+_84c min _83c _84b
+_84d const 3.85
+_84e add _84d _e
+_84f neg _84e
+_850 max _2ca _84f
+_851 const 3.251
+_852 sub _3 _851
+_853 max _850 _852
+_854 const 3.151
+_855 sub _854 _3
+_856 max _853 _855
+_857 min _84c _856
+_858 const 3.45
+_859 add _858 _e
+_85a const 3.55
+_85b add _85a _e
+_85c neg _85b
+_85d max _859 _85c
+_85e const 3.401
+_85f sub _3 _85e
+_860 max _85d _85f
+_861 const 3.001
+_862 sub _861 _3
+_863 max _860 _862
+_864 min _857 _863
+_865 max _2cd _84e
+_866 max _865 _85f
+_867 max _866 _862
+_868 square _84e
+_869 square _85f
+_86a add _868 _869
+_86b sqrt _86a
+_86c sub _150 _86b
+_86d max _867 _86c
+_86e sub _86b _157
+_86f max _86d _86e
+_870 min _864 _86f
+_871 max _2cd _2d7
+_872 const 1.943
+_873 sub _3 _872
+_874 max _871 _873
+_875 const 1.843
+_876 sub _875 _3
+_877 max _874 _876
+_878 min _870 _877
+_879 const 3.18286
+_87a sub _c2 _879
+_87b max _871 _87a
+_87c const 2.63286
+_87d sub _87c _c2
+_87e max _87b _87d
+_87f square _2cc
+_880 const 3.97857
+_881 sub _cc _880
+_882 square _881
+_883 add _87f _882
+_884 sqrt _883
+_885 sub _c8 _884
+_886 max _87e _885
+_887 square _87a
+_888 add _87f _887
+_889 sqrt _888
+_88a sub _889 _d6
+_88b max _886 _88a
+_88c min _878 _88b
+_88d const 6.981
+_88e sub _3 _88d
+_88f max _871 _88e
+_890 const 6.881
+_891 sub _890 _3
+_892 max _88f _891
+_893 min _88c _892
+_894 const 3.4
+_895 add _894 _e
+_896 square _895
+_897 const 6.931
+_898 sub _3 _897
+_899 square _898
+_89a add _896 _899
+_89b sqrt _89a
+_89c sub _89b _1cc
+_89d min _893 _89c
+_89e const 6.656
+_89f sub _89e _3
+_8a0 max _2ce _89f
+_8a1 const 6.756
+_8a2 sub _3 _8a1
+_8a3 max _8a0 _8a2
+_8a4 min _89d _8a3
+_8a5 const 6.48101
+_8a6 sub _8a5 _3
+_8a7 max _2db _8a6
+_8a8 const 6.656
+_8a9 sub _3 _8a8
+_8aa max _8a7 _8a9
+_8ab min _8a4 _8aa
+_8ac max _2cd _2e6
+_8ad max _8ac _8a6
+_8ae max _8ad _8a9
+_8af min _8ab _8ae
+_8b0 const 5.756
+_8b1 sub _8b0 _3
+_8b2 max _2ce _8b1
+_8b3 const 6.481
+_8b4 sub _3 _8b3
+_8b5 max _8b2 _8b4
+_8b6 square _8a6
+_8b7 add _2f1 _8b6
+_8b8 sqrt _8b7
+_8b9 sub _9 _8b8
+_8ba max _8b5 _8b9
+_8bb sub _8b8 _15
+_8bc max _8ba _8bb
+_8bd min _8af _8bc
+_8be const 3.775
+_8bf add _8be _e
+_8c0 max _2cd _8bf
+_8c1 const 5.431
+_8c2 sub _3 _8c1
+_8c3 max _8c0 _8c2
+_8c4 const 5.331
+_8c5 sub _8c4 _3
+_8c6 max _8c3 _8c5
+_8c7 min _8bd _8c6
+_8c8 const 4.981
+_8c9 sub _3 _8c8
+_8ca max _871 _8c9
+_8cb const 4.881
+_8cc sub _8cb _3
+_8cd max _8ca _8cc
+_8ce min _8c7 _8cd
+_8cf max _2d7 _8c2
+_8d0 max _8cf _8cc
+_8d1 const 3.775
+_8d2 add _8d1 _e
+_8d3 neg _8d2
+_8d4 max _8d0 _8d3
+_8d5 const 5.156
+_8d6 sub _3 _8d5
+_8d7 square _8d6
+_8d8 add _2f1 _8d7
+_8d9 sqrt _8d8
+_8da sub _9 _8d9
+_8db max _8d4 _8da
+_8dc sub _8d9 _15
+_8dd max _8db _8dc
+_8de min _8ce _8dd
+_8df const 3.75
+_8e0 add _8df _e
+_8e1 max _2cd _8e0
+_8e2 const 4.761
+_8e3 sub _3 _8e2
+_8e4 max _8e1 _8e3
+_8e5 const 4.661
+_8e6 sub _8e5 _3
+_8e7 max _8e4 _8e6
+_8e8 min _8de _8e7
+_8e9 const 0.167999
+_8ea sub _3 _8e9
+_8eb square _8ea
+_8ec add _2f1 _8eb
+_8ed sqrt _8ec
+_8ee sub _9 _8ed
+_8ef sub _8ed _15
+_8f0 max _8ee _8ef
+_8f1 const 2.48625
+_8f2 add _8f1 _229
+_8f3 const 0.750575
+_8f4 add _8f3 _22f
+_8f5 sub _22c _8f4
+_8f6 max _8f2 _8f5
+_8f7 const 1.91443
+_8f8 add _8f7 _22c
+_8f9 add _8f8 _236
+_8fa neg _8f9
+_8fb max _8f6 _8fa
+_8fc neg _8f2
+_8fd const 1.91443
+_8fe add _8fd _22c
+_8ff add _8fe _236
+_900 max _8fc _8ff
+_901 sub _8f4 _22c
+_902 max _900 _901
+_903 min _8fb _902
+_904 neg _903
+_905 max _8f0 _904
+_906 const 3.785
+_907 add _906 _e
+_908 const 3.875
+_909 add _908 _e
+_90a neg _909
+_90b max _907 _90a
+_90c const 0.443
+_90d sub _3 _90c
+_90e max _90b _90d
+_90f const 0.0570004
+_910 add _90f _3
+_911 neg _910
+_912 max _90e _911
+_913 min _905 _912
+_914 max _913 _8ef
+_915 min _8e8 _914
+_916 const 0.207
+_917 add _916 _3
+_918 const 0.707
+_919 add _918 _3
+_91a neg _919
+_91b max _917 _91a
+_91c max _91b _907
+_91d max _91c _90a
+_91e const 0.482
+_91f add _91e _3
+_920 square _91f
+_921 add _2f1 _920
+_922 sqrt _921
+_923 sub _922 _15
+_924 const 0.571825
+_925 add _924 _22f
+_926 sub _22c _925
+_927 const 2.09318
+_928 add _927 _22c
+_929 add _928 _236
+_92a neg _929
+_92b max _926 _92a
+_92c max _92b _8f2
+_92d sub _925 _22c
+_92e max _929 _92d
+_92f max _92e _8fc
+_930 min _92c _92f
+_931 neg _930
+_932 max _923 _931
+_933 sub _9 _922
+_934 max _932 _933
+_935 min _91d _934
+_936 max _923 _935
+_937 min _915 _936
+_938 const 0.957
+_939 add _938 _3
+_93a neg _939
+_93b max _2ce _93a
+_93c const 0.857
+_93d add _93c _3
+_93e max _93b _93d
+_93f min _937 _93e
+_940 const 1.132
+_941 add _940 _3
+_942 neg _941
+_943 max _2db _942
+_944 const 0.957
+_945 add _944 _3
+_946 max _943 _945
+_947 min _93f _946
+_948 max _8ac _942
+_949 max _948 _945
+_94a min _947 _949
+_94b const 1.857
+_94c add _94b _3
+_94d neg _94c
+_94e max _2ce _94d
+_94f const 1.132
+_950 add _94f _3
+_951 max _94e _950
+_952 square _942
+_953 add _2f1 _952
+_954 sqrt _953
+_955 sub _9 _954
+_956 max _951 _955
+_957 sub _954 _15
+_958 max _956 _957
+_959 min _94a _958
+_95a const 2.282
+_95b add _95a _3
+_95c neg _95b
+_95d max _2ce _95c
+_95e const 2.182
+_95f add _95e _3
+_960 max _95d _95f
+_961 min _959 _960
+_962 max _2db _95b
+_963 const 2.457
+_964 add _963 _3
+_965 neg _964
+_966 max _962 _965
+_967 min _961 _966
+_968 max _8ac _95b
+_969 max _968 _965
+_96a min _967 _969
+_96b const 1.743
+_96c sub _3 _96b
+_96d max _90b _96c
+_96e const 1.243
+_96f sub _96e _3
+_970 max _96d _96f
+_971 const 1.468
+_972 sub _3 _971
+_973 square _972
+_974 add _2f1 _973
+_975 sqrt _974
+_976 sub _975 _15
+_977 const 1.10808
+_978 add _977 _22f
+_979 sub _22c _978
+_97a max _8f2 _979
+_97b const 1.55693
+_97c add _97b _22c
+_97d add _97c _236
+_97e neg _97d
+_97f max _97a _97e
+_980 const 1.55693
+_981 add _980 _22c
+_982 add _981 _236
+_983 sub _978 _22c
+_984 max _982 _983
+_985 max _984 _8fc
+_986 min _97f _985
+_987 neg _986
+_988 max _976 _987
+_989 sub _9 _975
+_98a max _988 _989
+_98b min _970 _98a
+_98c max _976 _98b
+_98d min _96a _98c
+_98e const 4.475
+_98f add _98e _e
+_990 neg _98f
+_991 max _2d7 _990
+_992 const 0.643001
+_993 sub _3 _992
+_994 max _991 _993
+_995 const 0.543
+_996 sub _995 _3
+_997 max _994 _996
+_998 min _98d _997
+_999 const 0.818
+_99a sub _3 _999
+_99b square _99a
+_99c add _2f1 _99b
+_99d sqrt _99c
+_99e sub _9 _99d
+_99f sub _99d _15
+_9a0 max _99e _99f
+_9a1 min _998 _9a0
+_9a2 const 4.937
+_9a3 add _9a2 _3
+_9a4 square _9a3
+_9a5 const 1.34167
+_9a6 add _9a5 _78d
+_9a7 square _9a6
+_9a8 add _9a4 _9a7
+_9a9 sqrt _9a8
+_9aa sub _9a9 _1cc
+_9ab const 1.3292
+_9ac add _9ab _763
+_9ad sub _9ac _89
+_9ae const 3.2527
+_9af add _769 _9ae
+_9b0 add _9af _236
+_9b1 neg _9b0
+_9b2 max _9ad _9b1
+_9b3 const 1.726
+_9b4 add _9b3 _770
+_9b5 sub _9b4 _773
+_9b6 max _9b2 _9b5
+_9b7 sub _773 _9b4
+_9b8 const 3.2527
+_9b9 add _769 _9b8
+_9ba add _9b9 _236
+_9bb max _9b7 _9ba
+_9bc sub _89 _9ac
+_9bd max _9bb _9bc
+_9be min _9b6 _9bd
+_9bf neg _9be
+_9c0 max _9aa _9bf
+_9c1 add _1f _e
+_9c2 max _9c0 _9c1
+_9c3 const 4.25
+_9c4 add _9c3 _e
+_9c5 neg _9c4
+_9c6 max _9c2 _9c5
+_9c7 const 4.862
+_9c8 add _9c7 _3
+_9c9 max _9c6 _9c8
+_9ca const 5.012
+_9cb add _9ca _3
+_9cc neg _9cb
+_9cd max _9c9 _9cc
+_9ce min _9a1 _9cd
+_9cf square _9c1
+_9d0 const 4.912
+_9d1 add _9d0 _3
+_9d2 square _9d1
+_9d3 add _9cf _9d2
+_9d4 sqrt _9d3
+_9d5 sub _9d4 _1cc
+_9d6 min _9ce _9d5
+_9d7 const 5.162
+_9d8 add _9d7 _3
+_9d9 max _82e _9d8
+_9da const 5.262
+_9db add _9da _3
+_9dc neg _9db
+_9dd max _9d9 _9dc
+_9de min _9d6 _9dd
+_9df const 5.612
+_9e0 add _9df _3
+_9e1 max _2ce _9e0
+_9e2 const 5.712
+_9e3 add _9e2 _3
+_9e4 neg _9e3
+_9e5 max _9e1 _9e4
+_9e6 min _9de _9e5
+_9e7 max _2d7 _841
+_9e8 max _9e7 _9d8
+_9e9 max _9e8 _9e4
+_9ea const 5.437
+_9eb add _9ea _3
+_9ec square _9eb
+_9ed add _2f1 _9ec
+_9ee sqrt _9ed
+_9ef sub _9 _9ee
+_9f0 max _9e9 _9ef
+_9f1 sub _9ee _15
+_9f2 max _9f0 _9f1
+_9f3 min _9e6 _9f2
+_9f4 const 5.962
+_9f5 add _9f4 _3
+_9f6 max _850 _9f5
+_9f7 const 6.062
+_9f8 add _9f7 _3
+_9f9 neg _9f8
+_9fa max _9f6 _9f9
+_9fb min _9f3 _9fa
+_9fc const 5.812
+_9fd add _9fc _3
+_9fe max _85d _9fd
+_9ff const 6.212
+_a00 add _9ff _3
+_a01 neg _a00
+_a02 max _9fe _a01
+_a03 min _9fb _a02
+_a04 max _865 _9fd
+_a05 max _a04 _a01
+_a06 square _9fd
+_a07 add _868 _a06
+_a08 sqrt _a07
+_a09 sub _150 _a08
+_a0a max _a05 _a09
+_a0b sub _a08 _157
+_a0c max _a0a _a0b
+_a0d min _a03 _a0c
+_a0e const 6.57
+_a0f add _a0e _3
+_a10 max _871 _a0f
+_a11 const 6.67
+_a12 add _a11 _3
+_a13 neg _a12
+_a14 max _a10 _a13
+_a15 min _a0d _a14
+_a16 max _2ce _964
+_a17 const 3.182
+_a18 add _a17 _3
+_a19 neg _a18
+_a1a max _a16 _a19
+_a1b square _965
+_a1c add _2f1 _a1b
+_a1d sqrt _a1c
+_a1e sub _9 _a1d
+_a1f max _a1a _a1e
+_a20 sub _a1d _15
+_a21 max _a1f _a20
+_a22 min _a15 _a21
+_a23 const 2.807
+_a24 add _a23 _3
+_a25 max _8c0 _a24
+_a26 const 2.907
+_a27 add _a26 _3
+_a28 neg _a27
+_a29 max _a25 _a28
+_a2a min _a22 _a29
+_a2b const 3.257
+_a2c add _a2b _3
+_a2d max _871 _a2c
+_a2e const 3.357
+_a2f add _a2e _3
+_a30 neg _a2f
+_a31 max _a2d _a30
+_a32 min _a2a _a31
+_a33 max _2d7 _8d3
+_a34 max _a33 _a24
+_a35 max _a34 _a30
+_a36 const 3.082
+_a37 add _a36 _3
+_a38 square _a37
+_a39 add _2f1 _a38
+_a3a sqrt _a39
+_a3b sub _9 _a3a
+_a3c max _a35 _a3b
+_a3d sub _a3a _15
+_a3e max _a3c _a3d
+_a3f min _a32 _a3e
+_a40 const 3.477
+_a41 add _a40 _3
+_a42 max _8e1 _a41
+_a43 const 3.577
+_a44 add _a43 _3
+_a45 neg _a44
+_a46 max _a42 _a45
+_a47 min _a3f _a46
+_a48 const 2.66557
+_a49 add _a48 _3
+_a4a sub _a49 _5d7
+_a4b square _a4a
+_a4c add _2f1 _a4b
+_a4d sqrt _a4c
+_a4e sub _9 _a4d
+_a4f sub _a4d _15
+_a50 max _a4e _a4f
+_a51 min _a47 _a50
+_a52 const 5.9605
+_a53 sub _3 _a52
+_a54 square _a53
+_a55 add _514 _a54
+_a56 sqrt _a55
+_a57 sub _a56 _15
+_a58 const 2.17851
+_a59 add _22f _a58
+_a5a sub _22c _a59
+_a5b max _70e _a5a
+_a5c const 0.228514
+_a5d add _22c _236
+_a5e sub _a5c _a5d
+_a5f max _a5b _a5e
+_a60 sub _a5d _a5c
+_a61 sub _a59 _22c
+_a62 max _a60 _a61
+_a63 max _a62 _715
+_a64 min _a5f _a63
+_a65 neg _a64
+_a66 max _a57 _a65
+_a67 sub _9 _a56
+_a68 max _a66 _a67
+_a69 max _6f9 _6fd
+_a6a const 6.23551
+_a6b sub _3 _a6a
+_a6c max _a69 _a6b
+_a6d const 5.73551
+_a6e sub _a6d _3
+_a6f max _a6c _a6e
+_a70 min _a68 _a6f
+_a71 max _a70 _a57
+_a72 min _a51 _a71
+_a73 const 5.5355
+_a74 sub _3 _a73
+_a75 max _4dc _a74
+_a76 const 5.4355
+_a77 sub _a76 _3
+_a78 max _a75 _a77
+_a79 max _a78 _513
+_a7a min _a72 _a79
+_a7b max _4dc _52c
+_a7c const 5.0855
+_a7d sub _3 _a7c
+_a7e max _a7b _a7d
+_a7f const 4.9855
+_a80 sub _a7f _3
+_a81 max _a7e _a80
+_a82 min _a7a _a81
+_a83 max _a74 _a80
+_a84 max _a83 _53a
+_a85 max _a84 _53e
+_a86 const 5.2605
+_a87 sub _3 _a86
+_a88 square _a87
+_a89 add _a88 _514
+_a8a sqrt _a89
+_a8b sub _9 _a8a
+_a8c max _a85 _a8b
+_a8d sub _a8a _15
+_a8e max _a8c _a8d
+_a8f min _a82 _a8e
+_a90 max _52c _5e9
+_a91 const 4.7355
+_a92 sub _3 _a91
+_a93 max _a90 _a92
+_a94 const 4.6355
+_a95 sub _a94 _3
+_a96 max _a93 _a95
+_a97 min _a8f _a96
+_a98 max _50c _5f5
+_a99 const 4.8855
+_a9a sub _3 _a99
+_a9b max _a98 _a9a
+_a9c const 4.4855
+_a9d sub _a9c _3
+_a9e max _a9b _a9d
+_a9f min _a97 _a9e
+_aa0 max _4dc _5e8
+_aa1 max _aa0 _a9a
+_aa2 max _aa1 _a9d
+_aa3 square _a9a
+_aa4 add _5f9 _aa3
+_aa5 sqrt _aa4
+_aa6 sub _150 _aa5
+_aa7 max _aa2 _aa6
+_aa8 sub _aa5 _157
+_aa9 max _aa7 _aa8
+_aaa min _a9f _aa9
+_aab max _4dc _593
+_aac max _aab _54b
+_aad const 3.5855
+_aae sub _aad _3
+_aaf max _aac _aae
+_ab0 min _aaa _aaf
+_ab1 max _4dc _53a
+_ab2 const 3.2355
+_ab3 sub _3 _ab2
+_ab4 max _ab1 _ab3
+_ab5 max _ab4 _54e
+_ab6 min _ab0 _ab5
+_ab7 const 8.97857
+_ab8 add _ab7 _c2
+_ab9 max _871 _ab8
+_aba const 9.52857
+_abb add _aba _c2
+_abc neg _abb
+_abd max _ab9 _abc
+_abe const 11.2232
+_abf add _abe _cc
+_ac0 square _abf
+_ac1 add _87f _ac0
+_ac2 sqrt _ac1
+_ac3 sub _c8 _ac2
+_ac4 max _abd _ac3
+_ac5 square _ab8
+_ac6 add _87f _ac5
+_ac7 sqrt _ac6
+_ac8 sub _ac7 _d6
+_ac9 max _ac4 _ac8
+_aca min _ab6 _ac9
+_acb const 6.79
+_acc add _acb _3
+_acd max _8e1 _acc
+_ace const 6.89
+_acf add _ace _3
+_ad0 neg _acf
+_ad1 max _acd _ad0
+_ad2 min _aca _ad1
+_ad3 const 5.97857
+_ad4 add _ad3 _3
+_ad5 sub _ad4 _5d7
+_ad6 square _ad5
+_ad7 add _2f1 _ad6
+_ad8 sqrt _ad7
+_ad9 sub _9 _ad8
+_ada sub _ad8 _15
+_adb max _ad9 _ada
+_adc min _ad2 _adb
+_add const 7.45
+_ade add _add _3
+_adf max _90b _ade
+_ae0 const 7.95
+_ae1 add _ae0 _3
+_ae2 neg _ae1
+_ae3 max _adf _ae2
+_ae4 const 7.725
+_ae5 add _ae4 _3
+_ae6 square _ae5
+_ae7 add _2f1 _ae6
+_ae8 sqrt _ae7
+_ae9 sub _ae8 _15
+_aea const 1.42
+_aeb add _aea _22c
+_aec sub _aeb _22f
+_aed max _8f2 _aec
+_aee const 4.085
+_aef add _a5d _aee
+_af0 neg _aef
+_af1 max _aed _af0
+_af2 const 4.085
+_af3 add _a5d _af2
+_af4 max _8fc _af3
+_af5 sub _22f _aeb
+_af6 max _af4 _af5
+_af7 min _af1 _af6
+_af8 neg _af7
+_af9 max _ae9 _af8
+_afa sub _9 _ae8
+_afb max _af9 _afa
+_afc min _ae3 _afb
+_afd max _ae9 _afc
+_afe min _adc _afd
+_aff const 1.44223
+_b00 add _aff _7f
+_b01 sub _3f3 _b00
+_b02 const 1.30723
+_b03 add _b02 _7f
+_b04 sub _b03 _3f9
+_b05 max _b01 _b04
+_b06 const 0.08
+_b07 add _b06 _89
+_b08 max _b05 _b07
+_b09 min _afe _b08
+_b0a sub _b00 _3f3
+_b0b neg _b07
+_b0c max _b0a _b0b
+_b0d sub _3f9 _b03
+_b0e max _b0c _b0d
+_b0f min _b09 _b0e
+_b10 add _b06 _98
+_b11 neg _b10
+_b12 const 1.36223
+_b13 add _b12 _7f
+_b14 sub _3f9 _b13
+_b15 max _b11 _b14
+_b16 const 1.38723
+_b17 add _b16 _7f
+_b18 sub _b17 _3f3
+_b19 max _b15 _b18
+_b1a min _b0f _b19
+_b1b sub _b13 _3f9
+_b1c max _b10 _b1b
+_b1d sub _3f3 _b17
+_b1e max _b1c _b1d
+_b1f min _b1a _b1e
+_b20 max _b01 _b1b
+_b21 const 0.025
+_b22 add _b21 _89
+_b23 max _b20 _b22
+_b24 min _b1f _b23
+_b25 max _b0a _b14
+_b26 neg _b22
+_b27 max _b25 _b26
+_b28 min _b24 _b27
+_b29 const 1.80223
+_b2a add _b29 _3f3
+_b2b add _b2a _7f
+_b2c neg _b2b
+_b2d max _b11 _b2c
+_b2e const 1.82723
+_b2f add _b2e _3f9
+_b30 add _b2f _7f
+_b31 max _b2d _b30
+_b32 min _b28 _b31
+_b33 max _b10 _b2b
+_b34 neg _b30
+_b35 max _b33 _b34
+_b36 min _b32 _b35
+_b37 max _b22 _b34
+_b38 const 1.74723
+_b39 add _b38 _3f3
+_b3a add _b39 _7f
+_b3b max _b37 _b3a
+_b3c min _b36 _b3b
+_b3d max _b26 _b30
+_b3e neg _b3a
+_b3f max _b3d _b3e
+_b40 min _b3c _b3f
+_b41 const 3.5325
+_b42 add _b41 _3
+_b43 const 3.6325
+_b44 add _b43 _3
+_b45 neg _b44
+_b46 max _b42 _b45
+_b47 const 0.25
+_b48 add _b47 _e
+_b49 max _b46 _b48
+_b4a const 0.8
+_b4b add _b4a _e
+_b4c neg _b4b
+_b4d max _b49 _b4c
+_b4e min _b40 _b4d
+_b4f const 4.63929
+_b50 add _b4f _c2
+_b51 const 5.18929
+_b52 add _b51 _c2
+_b53 neg _b52
+_b54 max _b50 _b53
+_b55 const 5.79911
+_b56 add _b55 _cc
+_b57 square _b56
+_b58 square _b4b
+_b59 add _b57 _b58
+_b5a sqrt _b59
+_b5b sub _c8 _b5a
+_b5c max _b54 _b5b
+_b5d square _b50
+_b5e add _b5d _b58
+_b5f sqrt _b5e
+_b60 sub _b5f _d6
+_b61 max _b5c _b60
+_b62 max _b61 _b48
+_b63 max _b62 _b4c
+_b64 min _b4e _b63
+_b65 const 3.7575
+_b66 add _b65 _3
+_b67 const 3.8575
+_b68 add _b67 _3
+_b69 neg _b68
+_b6a max _b66 _b69
+_b6b max _b6a _b48
+_b6c max _b6b _b4c
+_b6d min _b64 _b6c
+_b6e const 3.8075
+_b6f add _b6e _3
+_b70 square _b6f
+_b71 const 0.0999999
+_b72 add _b71 _e
+_b73 square _b72
+_b74 add _b70 _b73
+_b75 sqrt _b74
+_b76 sub _b75 _1cc
+_b77 min _b6d _b76
+_b78 const 4.0025
+_b79 add _b78 _3
+_b7a const 4.1025
+_b7b add _b7a _3
+_b7c neg _b7b
+_b7d max _b79 _b7c
+_b7e max _b7d _b4c
+_b7f const 0.45
+_b80 add _b7f _e
+_b81 max _b7e _b80
+_b82 min _b77 _b81
+_b83 const 0.0154991
+_b84 sub _3 _b83
+_b85 const 0.084501
+_b86 add _b85 _3
+_b87 neg _b86
+_b88 max _b84 _b87
+_b89 max _b88 _b4c
+_b8a max _b89 _b80
+_b8b min _b82 _b8a
+_b8c const 0.11593
+_b8d add _b8c _3
+_b8e sub _b8d _5d7
+_b8f square _b8e
+_b90 const 0.525
+_b91 add _b90 _e
+_b92 square _b91
+_b93 add _b8f _b92
+_b94 sqrt _b93
+_b95 sub _9 _b94
+_b96 sub _b94 _15
+_b97 max _b95 _b96
+_b98 min _b8b _b97
+_b99 const 0.6945
+_b9a add _b99 _3
+_b9b const 0.794501
+_b9c add _b9b _3
+_b9d neg _b9c
+_b9e max _b9a _b9d
+_b9f max _b9e _b91
+_ba0 max _b9f _b4c
+_ba1 min _b98 _ba0
+_ba2 const 1.1445
+_ba3 add _ba2 _3
+_ba4 const 1.2445
+_ba5 add _ba4 _3
+_ba6 neg _ba5
+_ba7 max _ba3 _ba6
+_ba8 const 0.2
+_ba9 sub _e _ba8
+_baa max _ba7 _ba9
+_bab max _baa _b4c
+_bac min _ba1 _bab
+_bad max _b9a _ba6
+_bae const 0.525
+_baf add _bae _e
+_bb0 neg _baf
+_bb1 max _bad _bb0
+_bb2 const 0.969501
+_bb3 add _bb2 _3
+_bb4 square _bb3
+_bb5 add _bb4 _b92
+_bb6 sqrt _bb5
+_bb7 sub _9 _bb6
+_bb8 max _bb1 _bb7
+_bb9 sub _bb6 _15
+_bba max _bb8 _bb9
+_bbb max _bba _b48
+_bbc min _bac _bbb
+_bbd const 0.289485
+_bbe add _bbd _722
+_bbf sub _71f _bbe
+_bc0 const 0.707348
+_bc1 add _bc0 _727
+_bc2 max _bbf _bc1
+_bc3 const 0.570488
+_bc4 add _bc3 _72a
+_bc5 neg _bc4
+_bc6 max _bc2 _bc5
+_bc7 neg _bc1
+_bc8 max _bc4 _bc7
+_bc9 sub _bbe _71f
+_bca max _bc8 _bc9
+_bcb min _bc6 _bca
+_bcc neg _bcb
+_bcd const 1.5495
+_bce add _bcd _3
+_bcf square _bce
+_bd0 add _bcf _b92
+_bd1 sqrt _bd0
+_bd2 sub _9 _bd1
+_bd3 max _bcc _bd2
+_bd4 sub _bd1 _15
+_bd5 max _bd3 _bd4
+_bd6 min _bbc _bd5
+_bd7 const 0.135
+_bd8 add _bd7 _98
+_bd9 neg _bd8
+_bda max _bd9 _b18
+_bdb max _bda _b0d
+_bdc min _bd6 _bdb
+_bdd max _bd8 _b04
+_bde max _bdd _b1d
+_bdf min _bdc _bde
+_be0 const 6.25
+_be1 add _be0 _3
+_be2 max _bb0 _be1
+_be3 const 6.8
+_be4 add _be3 _3
+_be5 neg _be4
+_be6 max _be2 _be5
+_be7 const 6.525
+_be8 add _be7 _3
+_be9 square _be8
+_bea add _be9 _b92
+_beb sqrt _bea
+_bec sub _9 _beb
+_bed max _be6 _bec
+_bee sub _beb _15
+_bef max _bed _bee
+_bf0 max _bef _b48
+_bf1 min _bdf _bf0
+_bf2 const 0.55
+_bf3 add _bf2 _e
+_bf4 neg _bf3
+_bf5 const 7.05
+_bf6 add _bf5 _3
+_bf7 max _bf4 _bf6
+_bf8 const 7.15
+_bf9 add _bf8 _3
+_bfa neg _bf9
+_bfb max _bf7 _bfa
+_bfc max _bfb _ba9
+_bfd min _bf1 _bfc
+_bfe const 6.9
+_bff add _bfe _3
+_c00 const 7.3
+_c01 add _c00 _3
+_c02 neg _c01
+_c03 max _bff _c02
+_c04 const 0.25
+_c05 add _c04 _e
+_c06 neg _c05
+_c07 max _c03 _c06
+_c08 const 0.15
+_c09 add _c08 _e
+_c0a max _c07 _c09
+_c0b min _bfd _c0a
+_c0c max _bf3 _bff
+_c0d max _c0c _c02
+_c0e square _bf3
+_c0f square _bff
+_c10 add _c0e _c0f
+_c11 sqrt _c10
+_c12 sub _150 _c11
+_c13 max _c0d _c12
+_c14 sub _c11 _157
+_c15 max _c13 _c14
+_c16 max _c15 _b4c
+_c17 min _c0b _c16
+_c18 const 1.3
+_c19 sub _e _c18
+_c1a const 0.55
+_c1b sub _c1a _e
+_c1c max _c19 _c1b
+_c1d const 7.72551
+_c1e sub _3 _c1d
+_c1f max _c1c _c1e
+_c20 const 7.62551
+_c21 sub _c20 _3
+_c22 max _c1f _c21
+_c23 min _c17 _c22
+_c24 const 0.95
+_c25 sub _e _c24
+_c26 const 0.85
+_c27 sub _c26 _e
+_c28 max _c25 _c27
+_c29 const 7.87551
+_c2a sub _3 _c29
+_c2b max _c28 _c2a
+_c2c const 7.47551
+_c2d sub _c2c _3
+_c2e max _c2b _c2d
+_c2f min _c23 _c2e
+_c30 max _c2a _c2d
+_c31 sub _e _c1a
+_c32 max _c30 _c31
+_c33 const 0.3
+_c34 sub _c33 _e
+_c35 max _c32 _c34
+_c36 square _c31
+_c37 square _c2a
+_c38 add _c36 _c37
+_c39 sqrt _c38
+_c3a sub _150 _c39
+_c3b max _c35 _c3a
+_c3c sub _c39 _157
+_c3d max _c3b _c3c
+_c3e min _c2f _c3d
+_c3f const 0.65
+_c40 sub _e _c3f
+_c41 max _c34 _c40
+_c42 const 7.35551
+_c43 sub _3 _c42
+_c44 max _c41 _c43
+_c45 const 7.25551
+_c46 sub _c45 _3
+_c47 max _c44 _c46
+_c48 min _c3e _c47
+_c49 const 0.575
+_c4a sub _e _c49
+_c4b square _c4a
+_c4c const 6.90979
+_c4d add _5d7 _c4c
+_c4e sub _3 _c4d
+_c4f square _c4e
+_c50 add _c4b _c4f
+_c51 sqrt _c50
+_c52 sub _9 _c51
+_c53 sub _c51 _15
+_c54 max _c52 _c53
+_c55 min _c48 _c54
+_c56 const 4.13393
+_c57 add _c56 _3
+_c58 sub _c57 _5d7
+_c59 square _c58
+_c5a add _c59 _b92
+_c5b sqrt _c5a
+_c5c sub _9 _c5b
+_c5d sub _c5b _15
+_c5e max _c5c _c5d
+_c5f min _c55 _c5e
+_c60 const 3.7375
+_c61 add _c60 _104
+_c62 neg _c61
+_c63 const 3.575
+_c64 add _c63 _104
+_c65 max _c62 _c64
+_c66 const 0.575
+_c67 add _c66 _e
+_c68 neg _c67
+_c69 max _c65 _c68
+_c6a const 0.4125
+_c6b add _c6a _e
+_c6c max _c69 _c6b
+_c6d const 2.49333
+_c6e add _c6d _f1
+_c6f neg _c6e
+_c70 square _c6f
+_c71 const 0.415
+_c72 add _c71 _e
+_c73 neg _c72
+_c74 square _c73
+_c75 add _c70 _c74
+_c76 sqrt _c75
+_c77 sub _c76 _fa
+_c78 min _c6c _c77
+_c79 neg _c78
+_c7a square _c62
+_c7b const 0.4125
+_c7c add _c7b _e
+_c7d neg _c7c
+_c7e square _c7d
+_c7f add _c7a _c7e
+_c80 sqrt _c7f
+_c81 sub _c80 _113
+_c82 max _c79 _c81
+_c83 min _c5f _c82
+_c84 const 3.7375
+_c85 add _c84 _104
+_c86 const 3.9
+_c87 add _c86 _104
+_c88 neg _c87
+_c89 max _c85 _c88
+_c8a const 0.475
+_c8b add _c8a _e
+_c8c max _c89 _c8b
+_c8d const 0.6375
+_c8e add _c8d _e
+_c8f neg _c8e
+_c90 max _c8c _c8f
+_c91 const 2.49
+_c92 add _c91 _f1
+_c93 square _c92
+_c94 const 0.635
+_c95 add _c94 _e
+_c96 square _c95
+_c97 add _c93 _c96
+_c98 sqrt _c97
+_c99 sub _c98 _fa
+_c9a min _c90 _c99
+_c9b neg _c9a
+_c9c square _c85
+_c9d const 0.6375
+_c9e add _c9d _e
+_c9f square _c9e
+_ca0 add _c9c _c9f
+_ca1 sqrt _ca0
+_ca2 sub _ca1 _113
+_ca3 max _c9b _ca2
+_ca4 min _c83 _ca3
+_ca5 const 6.075
+_ca6 add _ca5 _3
+_ca7 neg _ca6
+_ca8 const 5.975
+_ca9 add _ca8 _3
+_caa max _ca7 _ca9
+_cab max _caa _b48
+_cac max _cab _b4c
+_cad min _ca4 _cac
+_cae const 6.025
+_caf add _cae _3
+_cb0 square _caf
+_cb1 add _cb0 _b73
+_cb2 sqrt _cb1
+_cb3 sub _cb2 _1cc
+_cb4 min _cad _cb3
+_cb5 const 6.35
+_cb6 add _cb5 _3
+_cb7 neg _cb6
+_cb8 max _be1 _cb7
+_cb9 max _cb8 _b91
+_cba max _cb9 _b4c
+_cbb min _cb4 _cba
+_cbc const 6.7
+_cbd add _cbc _3
+_cbe max _cbd _be5
+_cbf max _cbe _ba9
+_cc0 max _cbf _b4c
+_cc1 min _cbb _cc0
+_cc2 sub _e _29d
+_cc3 square _cc2
+_cc4 const 2.02467
+_cc5 sub _f1 _cc4
+_cc6 square _cc5
+_cc7 add _cc3 _cc6
+_cc8 sqrt _cc7
+_cc9 sub _cc8 _fa
+_cca const 0.625
+_ccb sub _e _cca
+_ccc const 0.4625
+_ccd sub _ccc _e
+_cce max _ccb _ccd
+_ccf const 3.0345
+_cd0 sub _104 _ccf
+_cd1 max _cce _cd0
+_cd2 const 2.872
+_cd3 sub _cd2 _104
+_cd4 max _cd1 _cd3
+_cd5 min _cc9 _cd4
+_cd6 neg _cd5
+_cd7 const 0.4625
+_cd8 sub _e _cd7
+_cd9 square _cd8
+_cda square _cd0
+_cdb add _cd9 _cda
+_cdc sqrt _cdb
+_cdd sub _cdc _113
+_cde max _cd6 _cdd
+_cdf min _cc1 _cde
+_ce0 const 0.615
+_ce1 sub _e _ce0
+_ce2 const 0.525
+_ce3 sub _ce2 _e
+_ce4 max _ce1 _ce3
+_ce5 const 4.208
+_ce6 sub _3 _ce5
+_ce7 max _ce4 _ce6
+_ce8 const 3.708
+_ce9 sub _ce8 _3
+_cea max _ce7 _ce9
+_ceb const 3.933
+_cec sub _3 _ceb
+_ced square _cec
+_cee add _c4b _ced
+_cef sqrt _cee
+_cf0 sub _cef _15
+_cf1 const 0.37375
+_cf2 sub _229 _cf1
+_cf3 const 1.12595
+_cf4 add _cf3 _22f
+_cf5 sub _22c _cf4
+_cf6 max _cf2 _cf5
+_cf7 const 1.32095
+_cf8 sub _cf7 _a5d
+_cf9 max _cf6 _cf8
+_cfa sub _a5d _cf7
+_cfb sub _cf4 _22c
+_cfc max _cfa _cfb
+_cfd sub _cf1 _229
+_cfe max _cfc _cfd
+_cff min _cf9 _cfe
+_d00 neg _cff
+_d01 max _cf0 _d00
+_d02 sub _9 _cef
+_d03 max _d01 _d02
+_d04 min _cea _d03
+_d05 max _cf0 _d04
+_d06 min _cdf _d05
+_d07 const 2.2095
+_d08 sub _d07 _104
+_d09 const 2.372
+_d0a sub _104 _d09
+_d0b max _d08 _d0a
+_d0c const 0.525
+_d0d sub _d0c _e
+_d0e max _d0b _d0d
+_d0f const 0.6875
+_d10 sub _e _d0f
+_d11 max _d0e _d10
+_d12 const 1.47133
+_d13 sub _d12 _f1
+_d14 square _d13
+_d15 const 0.685
+_d16 sub _d15 _e
+_d17 square _d16
+_d18 add _d14 _d17
+_d19 sqrt _d18
+_d1a sub _d19 _fa
+_d1b min _d11 _d1a
+_d1c neg _d1b
+_d1d square _d08
+_d1e const 0.6875
+_d1f sub _d1e _e
+_d20 square _d1f
+_d21 add _d1d _d20
+_d22 sqrt _d21
+_d23 sub _d22 _113
+_d24 max _d1c _d23
+_d25 min _d06 _d24
+_d26 max _c34 _c4a
+_d27 const 6.6455
+_d28 sub _3 _d27
+_d29 max _d26 _d28
+_d2a const 6.5455
+_d2b sub _d2a _3
+_d2c max _d29 _d2b
+_d2d min _d25 _d2c
+_d2e max _c19 _c34
+_d2f const 6.19551
+_d30 sub _3 _d2f
+_d31 max _d2e _d30
+_d32 const 6.0955
+_d33 sub _d32 _3
+_d34 max _d31 _d33
+_d35 min _d2d _d34
+_d36 max _d28 _d33
+_d37 const 0.85
+_d38 sub _e _d37
+_d39 max _d36 _d38
+_d3a sub _87 _e
+_d3b max _d39 _d3a
+_d3c const 6.3705
+_d3d sub _3 _d3c
+_d3e square _d3d
+_d3f add _c4b _d3e
+_d40 sqrt _d3f
+_d41 sub _9 _d40
+_d42 max _d3b _d41
+_d43 sub _d40 _15
+_d44 max _d42 _d43
+_d45 min _d35 _d44
+_d46 const 5.8455
+_d47 sub _3 _d46
+_d48 max _c1c _d47
+_d49 const 5.7455
+_d4a sub _d49 _3
+_d4b max _d48 _d4a
+_d4c min _d45 _d4b
+_d4d const 5.9955
+_d4e sub _3 _d4d
+_d4f max _c28 _d4e
+_d50 const 5.5955
+_d51 sub _d50 _3
+_d52 max _d4f _d51
+_d53 min _d4c _d52
+_d54 max _c31 _c34
+_d55 max _d54 _d4e
+_d56 max _d55 _d51
+_d57 square _d4e
+_d58 add _c36 _d57
+_d59 sqrt _d58
+_d5a sub _150 _d59
+_d5b max _d56 _d5a
+_d5c sub _d59 _157
+_d5d max _d5b _d5c
+_d5e min _d53 _d5d
+_d5f max _d0d _d10
+_d60 const 3.0345
+_d61 sub _d60 _104
+_d62 max _d5f _d61
+_d63 const 3.197
+_d64 sub _104 _d63
+_d65 max _d62 _d64
+_d66 const 2.02133
+_d67 sub _d66 _f1
+_d68 square _d67
+_d69 add _d17 _d68
+_d6a sqrt _d69
+_d6b sub _d6a _fa
+_d6c min _d65 _d6b
+_d6d neg _d6c
+_d6e square _d61
+_d6f add _d20 _d6e
+_d70 sqrt _d6f
+_d71 sub _d70 _113
+_d72 max _d6d _d71
+_d73 min _d5e _d72
+_d74 const 0.788667
+_d75 sub _d74 _104
+_d76 max _cce _d75
+_d77 const 0.951167
+_d78 sub _104 _d77
+_d79 max _d76 _d78
+_d7a const 0.635778
+_d7b sub _f1 _d7a
+_d7c square _d7b
+_d7d add _cc3 _d7c
+_d7e sqrt _d7d
+_d7f sub _d7e _fa
+_d80 min _d79 _d7f
+_d81 neg _d80
+_d82 square _d78
+_d83 add _cd9 _d82
+_d84 sqrt _d83
+_d85 sub _d84 _113
+_d86 max _d81 _d85
+_d87 min _d73 _d86
+_d88 max _c34 _d38
+_d89 const 0.125
+_d8a sub _3 _d89
+_d8b max _d88 _d8a
+_d8c const 0.0249996
+_d8d sub _d8c _3
+_d8e max _d8b _d8d
+_d8f min _d87 _d8e
+_d90 const 0.585714
+_d91 sub _c2 _d90
+_d92 max _d88 _d91
+_d93 const 0.0357141
+_d94 sub _d93 _c2
+_d95 max _d92 _d94
+_d96 sub _e _c33
+_d97 square _d96
+_d98 const 0.732143
+_d99 sub _cc _d98
+_d9a square _d99
+_d9b add _d97 _d9a
+_d9c sqrt _d9b
+_d9d sub _c8 _d9c
+_d9e max _d95 _d9d
+_d9f square _d91
+_da0 add _d97 _d9f
+_da1 sqrt _da0
+_da2 sub _da1 _d6
+_da3 max _d9e _da2
+_da4 min _d8f _da3
+_da5 const 0.1
+_da6 add _da5 _3
+_da7 max _d88 _da6
+_da8 const 0.2
+_da9 add _da8 _3
+_daa neg _da9
+_dab max _da7 _daa
+_dac min _da4 _dab
+_dad const 1
+_dae sub _e _dad
+_daf square _dae
+_db0 const 0.150001
+_db1 add _db0 _3
+_db2 square _db1
+_db3 add _daf _db2
+_db4 sqrt _db3
+_db5 sub _db4 _1cc
+_db6 min _dac _db5
+_db7 const 0.325
+_db8 add _db7 _3
+_db9 max _ce4 _db8
+_dba const 0.825
+_dbb add _dba _3
+_dbc neg _dbb
+_dbd max _db9 _dbc
+_dbe const 0.6
+_dbf add _dbe _3
+_dc0 square _dbf
+_dc1 add _c4b _dc0
+_dc2 sqrt _dc1
+_dc3 sub _dc2 _15
+_dc4 const 0.120625
+_dc5 add _dc4 _22c
+_dc6 sub _dc5 _22f
+_dc7 max _cf2 _dc6
+_dc8 const 0.0743749
+_dc9 sub _dc8 _a5d
+_dca max _dc7 _dc9
+_dcb sub _a5d _dc8
+_dcc max _cfd _dcb
+_dcd sub _22f _dc5
+_dce max _dcc _dcd
+_dcf min _dca _dce
+_dd0 neg _dcf
+_dd1 max _dc3 _dd0
+_dd2 sub _9 _dc2
+_dd3 max _dd1 _dd2
+_dd4 min _dbd _dd3
+_dd5 max _dc3 _dd4
+_dd6 min _db6 _dd5
+_dd7 const 2.2095
+_dd8 sub _104 _dd7
+_dd9 const 2.047
+_dda sub _dd9 _104
+_ddb max _dd8 _dda
+_ddc max _ddb _ccb
+_ddd max _ddc _ccd
+_dde const 1.47467
+_ddf sub _f1 _dde
+_de0 square _ddf
+_de1 add _cc3 _de0
+_de2 sqrt _de1
+_de3 sub _de2 _fa
+_de4 min _ddd _de3
+_de5 neg _de4
+_de6 square _dd8
+_de7 add _cd9 _de6
+_de8 sqrt _de7
+_de9 sub _de8 _113
+_dea max _de5 _de9
+_deb min _dd6 _dea
+_dec max _c34 _ccb
+_ded const 2.9705
+_dee sub _3 _ded
+_def max _dec _dee
+_df0 const 2.8705
+_df1 sub _df0 _3
+_df2 max _def _df1
+_df3 min _deb _df2
+_df4 const 2.5205
+_df5 sub _3 _df4
+_df6 max _d88 _df5
+_df7 const 2.4205
+_df8 sub _df7 _3
+_df9 max _df6 _df8
+_dfa min _df3 _df9
+_dfb max _d38 _dee
+_dfc max _dfb _df8
+_dfd const 0.625
+_dfe sub _dfd _e
+_dff max _dfc _dfe
+_e00 const 2.6955
+_e01 sub _3 _e00
+_e02 square _e01
+_e03 add _c4b _e02
+_e04 sqrt _e03
+_e05 sub _9 _e04
+_e06 max _dff _e05
+_e07 sub _e04 _15
+_e08 max _e06 _e07
+_e09 min _dfa _e08
+_e0a const 2.3205
+_e0b sub _3 _e0a
+_e0c max _ce4 _e0b
+_e0d const 1.8205
+_e0e sub _e0d _3
+_e0f max _e0c _e0e
+_e10 const 2.0455
+_e11 sub _3 _e10
+_e12 square _e11
+_e13 add _c4b _e12
+_e14 sqrt _e13
+_e15 sub _e14 _15
+_e16 const 0.606888
+_e17 add _e16 _22f
+_e18 sub _22c _e17
+_e19 max _cf2 _e18
+_e1a const 0.801888
+_e1b sub _e1a _a5d
+_e1c max _e19 _e1b
+_e1d sub _a5d _e1a
+_e1e max _cfd _e1d
+_e1f const 0.606888
+_e20 add _e1f _22f
+_e21 sub _e20 _22c
+_e22 max _e1e _e21
+_e23 min _e1c _e22
+_e24 neg _e23
+_e25 max _e15 _e24
+_e26 sub _9 _e14
+_e27 max _e25 _e26
+_e28 min _e0f _e27
+_e29 max _e15 _e28
+_e2a min _e09 _e29
+_e2b const 0.951167
+_e2c sub _e2b _104
+_e2d max _d5f _e2c
+_e2e const 1.11367
+_e2f sub _104 _e2e
+_e30 max _e2d _e2f
+_e31 const 0.632445
+_e32 sub _e31 _f1
+_e33 square _e32
+_e34 add _d17 _e33
+_e35 sqrt _e34
+_e36 sub _e35 _fa
+_e37 min _e30 _e36
+_e38 neg _e37
+_e39 square _e2c
+_e3a add _d20 _e39
+_e3b sqrt _e3a
+_e3c sub _e3b _113
+_e3d max _e38 _e3c
+_e3e min _e2a _e3d
+_e3f const 1.5125
+_e40 add _e3f _e
+_e41 neg _e40
+_e42 square _e41
+_e43 const 0.3955
+_e44 add _e43 _104
+_e45 neg _e44
+_e46 square _e45
+_e47 add _e42 _e46
+_e48 sqrt _e47
+_e49 sub _e48 _113
+_e4a const 1.675
+_e4b add _e4a _e
+_e4c neg _e4b
+_e4d const 1.5125
+_e4e add _e4d _e
+_e4f max _e4c _e4e
+_e50 max _e4f _e45
+_e51 const 0.233001
+_e52 add _e51 _104
+_e53 max _e50 _e52
+_e54 const 1.515
+_e55 add _e54 _e
+_e56 neg _e55
+_e57 square _e56
+_e58 const 0.265334
+_e59 add _e58 _f1
+_e5a neg _e59
+_e5b square _e5a
+_e5c add _e57 _e5b
+_e5d sqrt _e5c
+_e5e sub _e5d _fa
+_e5f min _e53 _e5e
+_e60 neg _e5f
+_e61 max _e49 _e60
+_e62 min _e3e _e61
+_e63 const 1.575
+_e64 add _e63 _e
+_e65 const 1.7375
+_e66 add _e65 _e
+_e67 neg _e66
+_e68 max _e64 _e67
+_e69 const 0.395501
+_e6a add _e69 _104
+_e6b max _e68 _e6a
+_e6c add _251 _104
+_e6d neg _e6c
+_e6e max _e6b _e6d
+_e6f const 1.735
+_e70 add _e6f _e
+_e71 square _e70
+_e72 const 0.262
+_e73 add _e72 _f1
+_e74 square _e73
+_e75 add _e71 _e74
+_e76 sqrt _e75
+_e77 sub _e76 _fa
+_e78 min _e6e _e77
+_e79 neg _e78
+_e7a const 1.7375
+_e7b add _e7a _e
+_e7c square _e7b
+_e7d square _e6a
+_e7e add _e7c _e7d
+_e7f sqrt _e7e
+_e80 sub _e7f _113
+_e81 max _e79 _e80
+_e82 min _e62 _e81
+_e83 const 0.596601
+_e84 add _e83 _7f
+_e85 sub _e84 _3f3
+_e86 max _6a0 _e85
+_e87 const 0.4066
+_e88 add _e87 _7f
+_e89 sub _3f9 _e88
+_e8a max _e86 _e89
+_e8b min _e82 _e8a
+_e8c sub _e88 _3f9
+_e8d max _69f _e8c
+_e8e sub _3f3 _e84
+_e8f max _e8d _e8e
+_e90 min _e8b _e8f
+_e91 max _6b2 _e8c
+_e92 const 0.6516
+_e93 add _e92 _7f
+_e94 sub _3f3 _e93
+_e95 max _e91 _e94
+_e96 min _e90 _e95
+_e97 max _6bb _e89
+_e98 sub _e93 _3f3
+_e99 max _e97 _e98
+_e9a min _e96 _e99
+_e9b const 0.5966
+_e9c add _e9b _7f
+_e9d sub _e9c _3f3
+_e9e max _6bf _e9d
+_e9f const 0.461601
+_ea0 add _e9f _7f
+_ea1 sub _3f9 _ea0
+_ea2 max _e9e _ea1
+_ea3 min _e9a _ea2
+_ea4 max _6be _e8e
+_ea5 sub _ea0 _3f9
+_ea6 max _ea4 _ea5
+_ea7 min _ea3 _ea6
+_ea8 max _6cc _e94
+_ea9 max _ea8 _ea5
+_eaa min _ea7 _ea9
+_eab max _6d0 _e98
+_eac max _eab _ea1
+_ead min _eaa _eac
+_eae const 1.5066
+_eaf add _eae _3f3
+_eb0 add _eaf _7f
+_eb1 neg _eb0
+_eb2 max _6bf _eb1
+_eb3 const 1.6416
+_eb4 add _eb3 _3f9
+_eb5 add _eb4 _7f
+_eb6 max _eb2 _eb5
+_eb7 min _ead _eb6
+_eb8 neg _eb5
+_eb9 max _6be _eb8
+_eba const 1.5066
+_ebb add _eba _3f3
+_ebc add _ebb _7f
+_ebd max _eb9 _ebc
+_ebe min _eb7 _ebd
+_ebf max _6cc _eb8
+_ec0 const 1.4516
+_ec1 add _ec0 _3f3
+_ec2 add _ec1 _7f
+_ec3 max _ebf _ec2
+_ec4 min _ebe _ec3
+_ec5 max _6d0 _eb5
+_ec6 neg _ec2
+_ec7 max _ec5 _ec6
+_ec8 min _ec4 _ec7
+_ec9 const 1.3305
+_eca sub _3 _ec9
+_ecb max _818 _eca
+_ecc const 0.9305
+_ecd sub _ecc _3
+_ece max _ecb _ecd
+_ecf min _ec8 _ece
+_ed0 max _744 _7b7
+_ed1 max _ed0 _eca
+_ed2 max _ed1 _ecd
+_ed3 square _eca
+_ed4 add _7b9 _ed3
+_ed5 sqrt _ed4
+_ed6 sub _150 _ed5
+_ed7 max _ed2 _ed6
+_ed8 sub _ed5 _157
+_ed9 max _ed7 _ed8
+_eda min _ecf _ed9
+_edb const 1.55
+_edc add _edb _e
+_edd max _67c _edc
+_ede const 0.8105
+_edf sub _3 _ede
+_ee0 max _edd _edf
+_ee1 const 0.7105
+_ee2 sub _ee1 _3
+_ee3 max _ee0 _ee2
+_ee4 min _eda _ee3
+_ee5 const 0.993357
+_ee6 add _ee5 _5d7
+_ee7 sub _3 _ee6
+_ee8 square _ee7
+_ee9 add _751 _ee8
+_eea sqrt _ee9
+_eeb sub _9 _eea
+_eec sub _eea _15
+_eed max _eeb _eec
+_eee min _ee4 _eed
+_eef const 0.000499725
+_ef0 sub _3 _eef
+_ef1 max _746 _ef0
+_ef2 const 0.0995007
+_ef3 add _ef2 _3
+_ef4 neg _ef3
+_ef5 max _ef1 _ef4
+_ef6 min _eee _ef5
+_ef7 const 0.150499
+_ef8 sub _3 _ef7
+_ef9 max _671 _ef8
+_efa const 0.249501
+_efb add _efa _3
+_efc neg _efb
+_efd max _ef9 _efc
+_efe min _ef6 _efd
+_eff max _67c _67f
+_f00 max _eff _ef8
+_f01 max _f00 _efc
+_f02 square _ef8
+_f03 add _680 _f02
+_f04 sqrt _f03
+_f05 sub _150 _f04
+_f06 max _f01 _f05
+_f07 sub _f04 _157
+_f08 max _f06 _f07
+_f09 min _efe _f08
+_f0a const 1.66785
+_f0b add _f0a _7f
+_f0c sub _f0b _3a0
+_f0d const 2.24785
+_f0e add _f0d _7f
+_f0f neg _f0e
+_f10 max _f0c _f0f
+_f11 const 0.36
+_f12 add _f11 _3a0
+_f13 max _f10 _f12
+_f14 sub _3a0 _f0b
+_f15 max _f0e _f14
+_f16 neg _f12
+_f17 max _f15 _f16
+_f18 min _f13 _f17
+_f19 add _b7f _236
+_f1a const 1.7935
+_f1b add _f1a _35e
+_f1c max _f19 _f1b
+_f1d const 2.4935
+_f1e add _f1d _364
+_f1f neg _f1e
+_f20 max _f1c _f1f
+_f21 min _f18 _f20
+_f22 neg _f1b
+_f23 max _f1e _f22
+_f24 neg _f19
+_f25 max _f23 _f24
+_f26 min _f21 _f25
+_f27 const 3.497
+_f28 add _f27 _3
+_f29 sub _f28 _36e
+_f2a const 1.89845
+_f2b add _f2a _374
+_f2c add _f2b _376
+_f2d neg _f2c
+_f2e max _f29 _f2d
+_f2f const 1.95355
+_f30 add _f2f _37e
+_f31 sub _37b _f30
+_f32 max _f2e _f31
+_f33 min _f26 _f32
+_f34 sub _f30 _37b
+_f35 const 1.89845
+_f36 add _f35 _374
+_f37 add _f36 _376
+_f38 max _f34 _f37
+_f39 sub _36e _f28
+_f3a max _f38 _f39
+_f3b min _f33 _f3a
+_f3c const 0.54
+_f3d add _f3c _38e
+_f3e neg _f3d
+_f3f const 1.43045
+_f40 add _f3f _376
+_f41 neg _f40
+_f42 max _f3e _f41
+_f43 const 1.87595
+_f44 add _f43 _38e
+_f45 add _f44 _376
+_f46 max _f42 _f45
+_f47 min _f3b _f46
+_f48 max _f3d _f40
+_f49 neg _f45
+_f4a max _f48 _f49
+_f4b min _f47 _f4a
+_f4c neg _f4b
+_f4d max _74e _f4c
+_f4e const 3.687
+_f4f add _f4e _3
+_f50 max _f4d _f4f
+_f51 const 4.187
+_f52 add _f51 _3
+_f53 neg _f52
+_f54 max _f50 _f53
+_f55 min _f09 _f54
+_f56 const 4.307
+_f57 add _f56 _3
+_f58 max _edd _f57
+_f59 const 4.407
+_f5a add _f59 _3
+_f5b neg _f5a
+_f5c max _f58 _f5b
+_f5d min _f55 _f5c
+_f5e const 4.12414
+_f5f add _f5e _3
+_f60 sub _f5f _5d7
+_f61 square _f60
+_f62 add _751 _f61
+_f63 sqrt _f62
+_f64 sub _9 _f63
+_f65 sub _f63 _15
+_f66 max _f64 _f65
+_f67 min _f5d _f66
+_f68 const 1.585
+_f69 add _f68 _e
+_f6a const 1.675
+_f6b add _f6a _e
+_f6c neg _f6b
+_f6d max _f69 _f6c
+_f6e const 4.967
+_f6f add _f6e _3
+_f70 max _f6d _f6f
+_f71 const 5.467
+_f72 add _f71 _3
+_f73 neg _f72
+_f74 max _f70 _f73
+_f75 const 5.242
+_f76 add _f75 _3
+_f77 square _f76
+_f78 add _751 _f77
+_f79 sqrt _f78
+_f7a sub _f79 _15
+_f7b const 1.05625
+_f7c add _f7b _229
+_f7d const 1.06718
+_f7e add _f7d _22c
+_f7f sub _f7e _22f
+_f80 max _f7c _f7f
+_f81 const 2.30217
+_f82 add _22c _f81
+_f83 add _f82 _236
+_f84 neg _f83
+_f85 max _f80 _f84
+_f86 sub _22f _f7e
+_f87 max _f83 _f86
+_f88 neg _f7c
+_f89 max _f87 _f88
+_f8a min _f85 _f89
+_f8b neg _f8a
+_f8c max _f7a _f8b
+_f8d sub _9 _f79
+_f8e max _f8c _f8d
+_f8f min _f74 _f8e
+_f90 max _f7a _f8f
+_f91 min _f67 _f90
+_f92 const 5.875
+_f93 add _f92 _3
+_f94 max _68c _f93
+_f95 neg _ca9
+_f96 max _f94 _f95
+_f97 min _f91 _f96
+_f98 const 2.287
+_f99 add _f98 _3
+_f9a max _67c _f99
+_f9b const 2.387
+_f9c add _f9b _3
+_f9d neg _f9c
+_f9e max _f9a _f9d
+_f9f max _f9e _edc
+_fa0 min _f97 _f9f
+_fa1 const 2.537
+_fa2 add _fa1 _3
+_fa3 max _edd _fa2
+_fa4 const 2.637
+_fa5 add _fa4 _3
+_fa6 neg _fa5
+_fa7 max _fa3 _fa6
+_fa8 min _fa0 _fa7
+_fa9 const 1.375
+_faa add _fa9 _e
+_fab max _67c _faa
+_fac const 2.787
+_fad add _fac _3
+_fae max _fab _fad
+_faf const 2.887
+_fb0 add _faf _3
+_fb1 neg _fb0
+_fb2 max _fae _fb1
+_fb3 min _fa8 _fb2
+_fb4 max _66d _fb1
+_fb5 const 1.55
+_fb6 add _fb5 _e
+_fb7 neg _fb6
+_fb8 max _fb4 _fb7
+_fb9 const 2.237
+_fba add _fb9 _3
+_fbb max _fb8 _fba
+_fbc square _edc
+_fbd const 2.462
+_fbe add _fbd _3
+_fbf square _fbe
+_fc0 add _fbc _fbf
+_fc1 sqrt _fc0
+_fc2 sub _1cc _fc1
+_fc3 sub _fc1 _9
+_fc4 max _fc2 _fc3
+_fc5 const 2.712
+_fc6 add _fc5 _3
+_fc7 square _fc6
+_fc8 add _fbc _fc7
+_fc9 sqrt _fc8
+_fca sub _1cc _fc9
+_fcb sub _fc9 _9
+_fcc max _fca _fcb
+_fcd min _fc4 _fcc
+_fce max _fbb _fcd
+_fcf min _fb3 _fce
+_fd0 const 1.89365
+_fd1 add _89 _fd0
+_fd2 sub _763 _fd1
+_fd3 const 0.681276
+_fd4 add _769 _236
+_fd5 sub _fd3 _fd4
+_fd6 max _fd2 _fd5
+_fd7 const 1.01488
+_fd8 add _fd7 _770
+_fd9 sub _fd8 _773
+_fda max _fd6 _fd9
+_fdb const 1.01488
+_fdc add _fdb _770
+_fdd sub _773 _fdc
+_fde sub _fd4 _fd3
+_fdf max _fdd _fde
+_fe0 sub _fd1 _763
+_fe1 max _fdf _fe0
+_fe2 min _fda _fe1
+_fe3 neg _fe2
+_fe4 const 0.725
+_fe5 add _fe4 _e
+_fe6 max _fe3 _fe5
+_fe7 const 0.95
+_fe8 add _fe7 _e
+_fe9 neg _fe8
+_fea max _fe6 _fe9
+_feb const 5.289
+_fec sub _3 _feb
+_fed max _fea _fec
+_fee const 5.139
+_fef sub _fee _3
+_ff0 max _fed _fef
+_ff1 const 0.241667
+_ff2 add _ff1 _78d
+_ff3 square _ff2
+_ff4 const 5.214
+_ff5 sub _3 _ff4
+_ff6 square _ff5
+_ff7 add _ff3 _ff6
+_ff8 sqrt _ff7
+_ff9 sub _ff8 _1cc
+_ffa max _ff0 _ff9
+_ffb min _fcf _ffa
+_ffc square _fe5
+_ffd const 5.239
+_ffe sub _3 _ffd
+_fff square _ffe
+_1000 add _ffc _fff
+_1001 sqrt _1000
+_1002 sub _1001 _1cc
+_1003 min _ffb _1002
+_1004 const 4.781
+_1005 sub _3 _1004
+_1006 max _b48 _1005
+_1007 const 4.681
+_1008 sub _1007 _3
+_1009 max _1006 _1008
+_100a max _1009 _b4c
+_100b min _1003 _100a
+_100c const 7.23715
+_100d sub _c2 _100c
+_100e max _b48 _100d
+_100f const 6.68715
+_1010 sub _100f _c2
+_1011 max _100e _1010
+_1012 const 9.04643
+_1013 sub _cc _1012
+_1014 square _1013
+_1015 add _b58 _1014
+_1016 sqrt _1015
+_1017 sub _c8 _1016
+_1018 max _1011 _1017
+_1019 square _100d
+_101a add _b58 _1019
+_101b sqrt _101a
+_101c sub _101b _d6
+_101d max _1018 _101c
+_101e max _101d _b4c
+_101f min _100b _101e
+_1020 const 4.306
+_1021 sub _3 _1020
+_1022 square _1021
+_1023 add _b92 _1022
+_1024 sqrt _1023
+_1025 sub _9 _1024
+_1026 sub _1024 _15
+_1027 max _1025 _1026
+_1028 min _101f _1027
+_1029 const 7.98571
+_102a add _1029 _c2
+_102b max _68c _102a
+_102c const 8.53571
+_102d add _102c _c2
+_102e neg _102d
+_102f max _102b _102e
+_1030 const 9.98214
+_1031 add _1030 _cc
+_1032 square _1031
+_1033 add _7e4 _1032
+_1034 sqrt _1033
+_1035 sub _c8 _1034
+_1036 max _102f _1035
+_1037 square _102a
+_1038 add _7e4 _1037
+_1039 sqrt _1038
+_103a sub _1039 _d6
+_103b max _1036 _103a
+_103c min _1028 _103b
+_103d const 6.5
+_103e add _103d _3
+_103f max _74e _103e
+_1040 const 6.6
+_1041 add _1040 _3
+_1042 neg _1041
+_1043 max _103f _1042
+_1044 min _103c _1043
+_1045 max _68b _73a
+_1046 max _1045 _7b2
+_1047 neg _103e
+_1048 max _1046 _1047
+_1049 min _1044 _1048
+_104a max _67c _73a
+_104b max _104a _821
+_104c max _104b _1047
+_104d min _1049 _104c
+_104e const 5.6
+_104f add _104e _3
+_1050 max _74e _104f
+_1051 neg _73a
+_1052 max _1050 _1051
+_1053 add _73b _751
+_1054 sqrt _1053
+_1055 sub _9 _1054
+_1056 max _1052 _1055
+_1057 sub _1054 _15
+_1058 max _1056 _1057
+_1059 min _104d _1058
+_105a max _ba9 _b4c
+_105b const 7.28901
+_105c sub _3 _105b
+_105d max _105a _105c
+_105e const 7.18901
+_105f sub _105e _3
+_1060 max _105d _105f
+_1061 min _1059 _1060
+_1062 const 7.03901
+_1063 sub _3 _1062
+_1064 max _105a _1063
+_1065 const 6.93901
+_1066 sub _1065 _3
+_1067 max _1064 _1066
+_1068 min _1061 _1067
+_1069 const 4.76837e-07
+_106a sub _e _1069
+_106b max _106a _c06
+_106c const 6.81401
+_106d sub _3 _106c
+_106e max _106b _106d
+_106f const 6.71401
+_1070 sub _106f _3
+_1071 max _106e _1070
+_1072 min _1068 _1071
+_1073 const 0.1
+_1074 sub _1073 _e
+_1075 max _ba9 _1074
+_1076 const 6.61401
+_1077 sub _3 _1076
+_1078 max _1075 _1077
+_1079 const 6.11401
+_107a sub _1079 _3
+_107b max _1078 _107a
+_107c min _1072 _107b
+_107d max _b4c _1077
+_107e max _107d _107a
+_107f const 0.7
+_1080 add _107f _e
+_1081 max _107e _1080
+_1082 min _107c _1081
+_1083 const 6.41401
+_1084 sub _3 _1083
+_1085 max _105a _1084
+_1086 const 6.314
+_1087 sub _1086 _3
+_1088 max _1085 _1087
+_1089 min _1082 _1088
+_108a max _b48 _b4c
+_108b const 2.1185
+_108c sub _3 _108b
+_108d max _108a _108c
+_108e const 2.0185
+_108f sub _108e _3
+_1090 max _108d _108f
+_1091 min _1089 _1090
+_1092 const 2.0685
+_1093 sub _3 _1092
+_1094 square _1093
+_1095 add _b73 _1094
+_1096 sqrt _1095
+_1097 sub _1096 _1cc
+_1098 min _1091 _1097
+_1099 max _b4c _b80
+_109a const 1.1935
+_109b sub _3 _109a
+_109c max _1099 _109b
+_109d const 1.0935
+_109e sub _109d _3
+_109f max _109c _109e
+_10a0 min _1098 _109f
+_10a1 const 0.943501
+_10a2 sub _3 _10a1
+_10a3 max _1099 _10a2
+_10a4 const 0.8435
+_10a5 sub _10a4 _3
+_10a6 max _10a3 _10a5
+_10a7 min _10a0 _10a6
+_10a8 const 0.275
+_10a9 add _10a8 _e
+_10aa max _b4c _10a9
+_10ab const 0.693501
+_10ac sub _3 _10ab
+_10ad max _10aa _10ac
+_10ae const 0.5935
+_10af sub _10ae _3
+_10b0 max _10ad _10af
+_10b1 min _10a7 _10b0
+_10b2 max _10af _c09
+_10b3 const 0.45
+_10b4 add _10b3 _e
+_10b5 neg _10b4
+_10b6 max _10b2 _10b5
+_10b7 const 1.2435
+_10b8 sub _3 _10b7
+_10b9 max _10b6 _10b8
+_10ba square _b80
+_10bb const 1.0185
+_10bc sub _3 _10bb
+_10bd square _10bc
+_10be add _10ba _10bd
+_10bf sqrt _10be
+_10c0 sub _1cc _10bf
+_10c1 sub _10bf _9
+_10c2 max _10c0 _10c1
+_10c3 const 0.7685
+_10c4 sub _3 _10c3
+_10c5 square _10c4
+_10c6 add _10ba _10c5
+_10c7 sqrt _10c6
+_10c8 sub _1cc _10c7
+_10c9 sub _10c7 _9
+_10ca max _10c8 _10c9
+_10cb min _10c2 _10ca
+_10cc max _10b9 _10cb
+_10cd min _10b1 _10cc
+_10ce const 0.2355
+_10cf sub _3 _10ce
+_10d0 max _108a _10cf
+_10d1 const 0.1355
+_10d2 sub _10d1 _3
+_10d3 max _10d0 _10d2
+_10d4 min _10cd _10d3
+_10d5 const 0.0499997
+_10d6 add _10d5 _e
+_10d7 const 3.781
+_10d8 sub _3 _10d7
+_10d9 max _10d6 _10d8
+_10da max _10d9 _b4c
+_10db const 3.681
+_10dc sub _10db _3
+_10dd max _10da _10dc
+_10de min _10d4 _10dd
+_10df const 0.35
+_10e0 add _10df _e
+_10e1 neg _10e0
+_10e2 max _b48 _10e1
+_10e3 const 3.931
+_10e4 sub _3 _10e3
+_10e5 max _10e2 _10e4
+_10e6 const 3.531
+_10e7 sub _10e6 _3
+_10e8 max _10e5 _10e7
+_10e9 min _10de _10e8
+_10ea max _ba9 _10e4
+_10eb max _10ea _10e7
+_10ec neg _10d6
+_10ed max _10eb _10ec
+_10ee square _10d6
+_10ef square _10e4
+_10f0 add _10ee _10ef
+_10f1 sqrt _10f0
+_10f2 sub _150 _10f1
+_10f3 max _10ed _10f2
+_10f4 sub _10f1 _157
+_10f5 max _10f3 _10f4
+_10f6 min _10e9 _10f5
+_10f7 max _c68 _c6b
+_10f8 const 1.65817
+_10f9 sub _10f8 _104
+_10fa max _10f7 _10f9
+_10fb const 1.82067
+_10fc sub _104 _10fb
+_10fd max _10fa _10fc
+_10fe const 1.10378
+_10ff sub _10fe _f1
+_1100 square _10ff
+_1101 add _c74 _1100
+_1102 sqrt _1101
+_1103 sub _1102 _fa
+_1104 min _10fd _1103
+_1105 neg _1104
+_1106 square _10f9
+_1107 add _c7e _1106
+_1108 sqrt _1107
+_1109 sub _1108 _113
+_110a max _1105 _1109
+_110b min _10f6 _110a
+_110c max _c8b _c8f
+_110d const 1.65817
+_110e sub _104 _110d
+_110f max _110c _110e
+_1110 const 1.49567
+_1111 sub _1110 _104
+_1112 max _110f _1111
+_1113 const 1.10711
+_1114 sub _f1 _1113
+_1115 square _1114
+_1116 add _c96 _1115
+_1117 sqrt _1116
+_1118 sub _1117 _fa
+_1119 min _1112 _1118
+_111a neg _1119
+_111b square _110e
+_111c add _c9f _111b
+_111d sqrt _111c
+_111e sub _111d _113
+_111f max _111a _111e
+_1120 min _110b _111f
+_1121 const 0.743571
+_1122 sub _c2 _1121
+_1123 max _108a _1122
+_1124 const 0.193571
+_1125 sub _1124 _c2
+_1126 max _1123 _1125
+_1127 const 0.929465
+_1128 sub _cc _1127
+_1129 square _1128
+_112a add _b58 _1129
+_112b sqrt _112a
+_112c sub _c8 _112b
+_112d max _1126 _112c
+_112e square _1122
+_112f add _b58 _112e
+_1130 sqrt _112f
+_1131 sub _1130 _d6
+_1132 max _112d _1131
+_1133 min _1120 _1132
+_1134 const 1e+08
+_1135 min _1133 _1134
+_1136 const 2.815
+_1137 sub _e _1136
+_1138 sub _53c _e
+_1139 max _1137 _1138
+_113a const 7.40251
+_113b sub _3 _113a
+_113c max _1139 _113b
+_113d const 6.90251
+_113e sub _113d _3
+_113f max _113c _113e
+_1140 const 7.12751
+_1141 sub _3 _1140
+_1142 square _1141
+_1143 sub _e _6fb
+_1144 square _1143
+_1145 add _1142 _1144
+_1146 sqrt _1145
+_1147 sub _1146 _15
+_1148 const 1.80375
+_1149 sub _229 _1148
+_114a const 1.67444
+_114b add _22f _114a
+_114c sub _22c _114b
+_114d max _1149 _114c
+_114e const 3.29944
+_114f sub _114e _a5d
+_1150 max _114d _114f
+_1151 sub _a5d _114e
+_1152 sub _114b _22c
+_1153 max _1151 _1152
+_1154 sub _1148 _229
+_1155 max _1153 _1154
+_1156 min _1150 _1155
+_1157 neg _1156
+_1158 max _1147 _1157
+_1159 sub _9 _1146
+_115a max _1158 _1159
+_115b min _113f _115a
+_115c max _1147 _115b
+_115d min _1135 _115c
+_115e const 0.25
+_115f sub _115e _98
+_1160 const 2.95138
+_1161 add _83 _1160
+_1162 sub _7f _1161
+_1163 max _115f _1162
+_1164 const 2.64638
+_1165 add _1164 _7c
+_1166 sub _1165 _7f
+_1167 max _1163 _1166
+_1168 min _115d _1167
+_1169 sub _7f _1165
+_116a sub _1161 _7f
+_116b max _1169 _116a
+_116c sub _98 _115e
+_116d max _116b _116c
+_116e min _1168 _116d
+_116f const 0.305
+_1170 sub _89 _116f
+_1171 max _1169 _1170
+_1172 const 2.89638
+_1173 add _83 _1172
+_1174 sub _1173 _7f
+_1175 max _1171 _1174
+_1176 min _116e _1175
+_1177 sub _7f _1173
+_1178 max _1166 _1177
+_1179 sub _116f _89
+_117a max _1178 _1179
+_117b min _1176 _117a
+_117c const 4.14638
+_117d add _83 _7f
+_117e sub _117c _117d
+_117f max _115f _117e
+_1180 add _7c _7f
+_1181 const 4.45138
+_1182 sub _1180 _1181
+_1183 max _117f _1182
+_1184 min _117b _1183
+_1185 sub _1181 _1180
+_1186 max _116c _1185
+_1187 sub _117d _117c
+_1188 max _1186 _1187
+_1189 min _1184 _1188
+_118a max _1170 _1185
+_118b const 4.20138
+_118c sub _117d _118b
+_118d max _118a _118c
+_118e min _1189 _118d
+_118f max _1179 _1182
+_1190 sub _118b _117d
+_1191 max _118f _1190
+_1192 min _118e _1191
+_1193 const 2.8125
+_1194 add _83 _1193
+_1195 add _1194 _7f
+_1196 neg _1195
+_1197 const 2.6175
+_1198 add _1197 _7c
+_1199 add _1198 _7f
+_119a max _1196 _1199
+_119b const 0.14
+_119c sub _119b _98
+_119d max _119a _119c
+_119e min _1192 _119d
+_119f neg _1199
+_11a0 max _1195 _119f
+_11a1 sub _98 _119b
+_11a2 max _11a0 _11a1
+_11a3 min _119e _11a2
+_11a4 const 2.7575
+_11a5 add _83 _11a4
+_11a6 add _11a5 _7f
+_11a7 max _119f _11a6
+_11a8 const 0.195
+_11a9 sub _89 _11a8
+_11aa max _11a7 _11a9
+_11ab min _11a3 _11aa
+_11ac neg _11a6
+_11ad max _1199 _11ac
+_11ae sub _11a8 _89
+_11af max _11ad _11ae
+_11b0 min _11ab _11af
+_11b1 const 6.375
+_11b2 add _11b1 _3
+_11b3 square _11b2
+_11b4 const 1.675
+_11b5 sub _e _11b4
+_11b6 square _11b5
+_11b7 add _11b3 _11b6
+_11b8 sqrt _11b7
+_11b9 sub _9 _11b8
+_11ba sub _11b8 _15
+_11bb max _11b9 _11ba
+_11bc min _11b0 _11bb
+_11bd const 6.75
+_11be add _11bd _3
+_11bf const 6.85
+_11c0 add _11bf _3
+_11c1 neg _11c0
+_11c2 max _11be _11c1
+_11c3 const 1.725
+_11c4 sub _e _11c3
+_11c5 max _11c2 _11c4
+_11c6 const 1.4
+_11c7 sub _11c6 _e
+_11c8 max _11c5 _11c7
+_11c9 min _11bc _11c8
+_11ca const 7.2
+_11cb add _11ca _3
+_11cc max _c02 _11cb
+_11cd max _11cc _11c7
+_11ce const 1.95
+_11cf sub _e _11ce
+_11d0 max _11cd _11cf
+_11d1 min _11c9 _11d0
+_11d2 max _c02 _11be
+_11d3 const 7.025
+_11d4 add _11d3 _3
+_11d5 square _11d4
+_11d6 add _11d5 _11b6
+_11d7 sqrt _11d6
+_11d8 sub _9 _11d7
+_11d9 max _11d2 _11d8
+_11da sub _11d7 _15
+_11db max _11d9 _11da
+_11dc const 1.725
+_11dd sub _11dc _e
+_11de max _11db _11dd
+_11df max _11de _11cf
+_11e0 min _11d1 _11df
+_11e1 const 2.825
+_11e2 sub _e _11e1
+_11e3 const 2.5
+_11e4 sub _11e3 _e
+_11e5 max _11e2 _11e4
+_11e6 const 8.05251
+_11e7 sub _3 _11e6
+_11e8 max _11e5 _11e7
+_11e9 const 7.95251
+_11ea sub _11e9 _3
+_11eb max _11e8 _11ea
+_11ec min _11e0 _11eb
+_11ed const 3.05
+_11ee sub _e _11ed
+_11ef max _11e4 _11ee
+_11f0 const 7.60251
+_11f1 sub _3 _11f0
+_11f2 max _11ef _11f1
+_11f3 const 7.50251
+_11f4 sub _11f3 _3
+_11f5 max _11f2 _11f4
+_11f6 min _11ec _11f5
+_11f7 max _11e7 _11ee
+_11f8 max _11f7 _11f4
+_11f9 sub _11e1 _e
+_11fa max _11f8 _11f9
+_11fb const 7.77751
+_11fc sub _3 _11fb
+_11fd square _11fc
+_11fe add _1144 _11fd
+_11ff sqrt _11fe
+_1200 sub _9 _11ff
+_1201 max _11fa _1200
+_1202 sub _11ff _15
+_1203 max _1201 _1202
+_1204 min _11f6 _1203
+_1205 max _11e4 _1143
+_1206 const 3.1225
+_1207 sub _3 _1206
+_1208 max _1205 _1207
+_1209 const 3.0225
+_120a sub _1209 _3
+_120b max _1208 _120a
+_120c min _1204 _120b
+_120d const 2.6725
+_120e sub _3 _120d
+_120f max _11e4 _120e
+_1210 const 2.5725
+_1211 sub _1210 _3
+_1212 max _120f _1211
+_1213 const 3.5
+_1214 sub _e _1213
+_1215 max _1212 _1214
+_1216 min _120c _1215
+_1217 max _11ee _1211
+_1218 const 2.8475
+_1219 sub _3 _1218
+_121a square _1219
+_121b add _1144 _121a
+_121c sqrt _121b
+_121d sub _9 _121c
+_121e max _1217 _121d
+_121f sub _121c _15
+_1220 max _121e _121f
+_1221 sub _6fb _e
+_1222 max _1220 _1221
+_1223 max _1222 _1207
+_1224 min _1216 _1223
+_1225 const 0.597376
+_1226 add _1225 _83
+_1227 sub _7f _1226
+_1228 max _115f _1227
+_1229 const 0.292376
+_122a add _1229 _7c
+_122b sub _122a _7f
+_122c max _1228 _122b
+_122d min _1224 _122c
+_122e sub _7f _122a
+_122f max _116c _122e
+_1230 sub _1226 _7f
+_1231 max _122f _1230
+_1232 min _122d _1231
+_1233 max _1170 _122e
+_1234 const 0.542376
+_1235 add _1234 _83
+_1236 sub _1235 _7f
+_1237 max _1233 _1236
+_1238 min _1232 _1237
+_1239 max _1179 _122b
+_123a sub _7f _1235
+_123b max _1239 _123a
+_123c min _1238 _123b
+_123d const 1.79238
+_123e sub _123d _117d
+_123f max _115f _123e
+_1240 const 2.09738
+_1241 sub _1180 _1240
+_1242 max _123f _1241
+_1243 min _123c _1242
+_1244 sub _1240 _1180
+_1245 max _116c _1244
+_1246 sub _117d _123d
+_1247 max _1245 _1246
+_1248 min _1243 _1247
+_1249 max _1170 _1244
+_124a const 1.84738
+_124b sub _117d _124a
+_124c max _1249 _124b
+_124d min _1248 _124c
+_124e max _1179 _1241
+_124f sub _124a _117d
+_1250 max _124e _124f
+_1251 min _124d _1250
+_1252 const 0.322376
+_1253 add _1252 _83
+_1254 sub _7f _1253
+_1255 max _115f _1254
+_1256 const 0.0173756
+_1257 add _1256 _7c
+_1258 sub _1257 _7f
+_1259 max _1255 _1258
+_125a min _1251 _1259
+_125b sub _7f _1257
+_125c max _116c _125b
+_125d sub _1253 _7f
+_125e max _125c _125d
+_125f min _125a _125e
+_1260 max _1170 _125b
+_1261 const 0.267376
+_1262 add _1261 _83
+_1263 sub _1262 _7f
+_1264 max _1260 _1263
+_1265 min _125f _1264
+_1266 max _1179 _1258
+_1267 sub _7f _1262
+_1268 max _1266 _1267
+_1269 min _1265 _1268
+_126a const 1.51738
+_126b sub _126a _117d
+_126c max _115f _126b
+_126d const 1.82238
+_126e sub _1180 _126d
+_126f max _126c _126e
+_1270 min _1269 _126f
+_1271 sub _126d _1180
+_1272 max _116c _1271
+_1273 sub _117d _126a
+_1274 max _1272 _1273
+_1275 min _1270 _1274
+_1276 max _1170 _1271
+_1277 const 1.57238
+_1278 sub _117d _1277
+_1279 max _1276 _1278
+_127a min _1275 _1279
+_127b max _1179 _126e
+_127c sub _1277 _117d
+_127d max _127b _127c
+_127e min _127a _127d
+_127f const 6.0525
+_1280 sub _3 _127f
+_1281 max _1139 _1280
+_1282 const 5.5525
+_1283 sub _1282 _3
+_1284 max _1281 _1283
+_1285 const 5.7775
+_1286 sub _3 _1285
+_1287 square _1286
+_1288 add _1287 _1144
+_1289 sqrt _1288
+_128a sub _1289 _15
+_128b const 1.30319
+_128c add _22f _128b
+_128d sub _22c _128c
+_128e max _1149 _128d
+_128f const 2.92819
+_1290 sub _128f _a5d
+_1291 max _128e _1290
+_1292 sub _a5d _128f
+_1293 max _1154 _1292
+_1294 const 1.30319
+_1295 add _22f _1294
+_1296 sub _1295 _22c
+_1297 max _1293 _1296
+_1298 min _1291 _1297
+_1299 neg _1298
+_129a max _128a _1299
+_129b sub _9 _1289
+_129c max _129a _129b
+_129d min _1284 _129c
+_129e max _128a _129d
+_129f min _127e _129e
+_12a0 const 4.6525
+_12a1 sub _3 _12a0
+_12a2 max _1205 _12a1
+_12a3 const 4.5525
+_12a4 sub _12a3 _3
+_12a5 max _12a2 _12a4
+_12a6 min _129f _12a5
+_12a7 max _11e4 _1214
+_12a8 const 4.2025
+_12a9 sub _3 _12a8
+_12aa max _12a7 _12a9
+_12ab const 4.1025
+_12ac sub _12ab _3
+_12ad max _12aa _12ac
+_12ae min _12a6 _12ad
+_12af max _11ee _12a1
+_12b0 max _12af _12ac
+_12b1 max _12b0 _1221
+_12b2 const 4.3775
+_12b3 sub _3 _12b2
+_12b4 square _12b3
+_12b5 add _1144 _12b4
+_12b6 sqrt _12b5
+_12b7 sub _9 _12b6
+_12b8 max _12b1 _12b7
+_12b9 sub _12b6 _15
+_12ba max _12b8 _12b9
+_12bb min _12ae _12ba
+_12bc const 0.300176
+_12bd add _12bc _71f
+_12be sub _12bd _722
+_12bf const 2.26024
+_12c0 sub _727 _12bf
+_12c1 max _12be _12c0
+_12c2 const 1.80744
+_12c3 sub _12c2 _72a
+_12c4 max _12c1 _12c3
+_12c5 sub _72a _12c2
+_12c6 sub _12bf _727
+_12c7 max _12c5 _12c6
+_12c8 const 0.300176
+_12c9 add _12c8 _71f
+_12ca sub _722 _12c9
+_12cb max _12c7 _12ca
+_12cc min _12c4 _12cb
+_12cd neg _12cc
+_12ce const 3.7975
+_12cf sub _3 _12ce
+_12d0 square _12cf
+_12d1 add _1144 _12d0
+_12d2 sqrt _12d1
+_12d3 sub _9 _12d2
+_12d4 max _12cd _12d3
+_12d5 sub _12d2 _15
+_12d6 max _12d4 _12d5
+_12d7 min _12bb _12d6
+_12d8 const 3.3975
+_12d9 sub _3 _12d8
+_12da max _11ef _12d9
+_12db const 3.2975
+_12dc sub _12db _3
+_12dd max _12da _12dc
+_12de min _12d7 _12dd
+_12df const 3.2
+_12e0 sub _e _12df
+_12e1 square _12e0
+_12e2 const 3.3475
+_12e3 sub _3 _12e2
+_12e4 square _12e3
+_12e5 add _12e1 _12e4
+_12e6 sqrt _12e5
+_12e7 sub _12e6 _1cc
+_12e8 min _12de _12e7
+_12e9 const 2.8875
+_12ea sub _e _12e9
+_12eb max _1138 _12ea
+_12ec const 0.5175
+_12ed add _12ec _104
+_12ee neg _12ed
+_12ef max _12eb _12ee
+_12f0 const 0.355
+_12f1 add _12f0 _104
+_12f2 max _12ef _12f1
+_12f3 const 2.885
+_12f4 sub _12f3 _e
+_12f5 square _12f4
+_12f6 const 0.346667
+_12f7 add _12f6 _f1
+_12f8 neg _12f7
+_12f9 square _12f8
+_12fa add _12f5 _12f9
+_12fb sqrt _12fa
+_12fc sub _12fb _fa
+_12fd min _12f2 _12fc
+_12fe neg _12fd
+_12ff sub _12e9 _e
+_1300 square _12ff
+_1301 square _12ee
+_1302 add _1300 _1301
+_1303 sqrt _1302
+_1304 sub _1303 _113
+_1305 max _12fe _1304
+_1306 min _12e8 _1305
+_1307 const 2.6625
+_1308 sub _1307 _e
+_1309 max _11e2 _1308
+_130a const 0.5175
+_130b add _130a _104
+_130c max _1309 _130b
+_130d const 0.68
+_130e add _130d _104
+_130f neg _130e
+_1310 max _130c _130f
+_1311 const 2.665
+_1312 sub _e _1311
+_1313 square _1312
+_1314 const 0.343334
+_1315 add _1314 _f1
+_1316 square _1315
+_1317 add _1313 _1316
+_1318 sqrt _1317
+_1319 sub _1318 _fa
+_131a min _1310 _1319
+_131b neg _131a
+_131c sub _e _1307
+_131d square _131c
+_131e square _130b
+_131f add _131d _131e
+_1320 sqrt _131f
+_1321 sub _1320 _113
+_1322 max _131b _1321
+_1323 min _1306 _1322
+_1324 const 1.12
+_1325 add _1324 _3
+_1326 max _11ef _1325
+_1327 const 1.22
+_1328 add _1327 _3
+_1329 neg _1328
+_132a max _1326 _1329
+_132b min _1323 _132a
+_132c max _11ee _1221
+_132d const 1.57
+_132e add _132d _3
+_132f max _132c _132e
+_1330 const 1.67
+_1331 add _1330 _3
+_1332 neg _1331
+_1333 max _132f _1332
+_1334 min _132b _1333
+_1335 max _1205 _1325
+_1336 max _1335 _1332
+_1337 const 1.395
+_1338 add _1337 _3
+_1339 square _1338
+_133a add _1144 _1339
+_133b sqrt _133a
+_133c sub _9 _133b
+_133d max _1336 _133c
+_133e sub _133b _15
+_133f max _133d _133e
+_1340 min _1334 _133f
+_1341 const 2.85
+_1342 sub _e _1341
+_1343 max _11e4 _1342
+_1344 const 1.77
+_1345 add _1344 _3
+_1346 max _1343 _1345
+_1347 const 1.87
+_1348 add _1347 _3
+_1349 neg _1348
+_134a max _1346 _1349
+_134b min _1340 _134a
+_134c const 2.02
+_134d add _134c _3
+_134e max _1343 _134d
+_134f add _39e _3
+_1350 neg _134f
+_1351 max _134e _1350
+_1352 min _134b _1351
+_1353 const 0.0958748
+_1354 add _1353 _763
+_1355 sub _1354 _89
+_1356 const 1.26444
+_1357 sub _1356 _fd4
+_1358 max _1355 _1357
+_1359 const 1.55781
+_135a add _773 _1359
+_135b sub _770 _135a
+_135c max _1358 _135b
+_135d sub _135a _770
+_135e const 1.26444
+_135f sub _fd4 _135e
+_1360 max _135d _135f
+_1361 const 0.095875
+_1362 add _1361 _763
+_1363 sub _89 _1362
+_1364 max _1360 _1363
+_1365 min _135c _1364
+_1366 neg _1365
+_1367 const 2.575
+_1368 sub _e _1367
+_1369 max _1366 _1368
+_136a const 2.35
+_136b sub _136a _e
+_136c max _1369 _136b
+_136d const 0.5475
+_136e sub _3 _136d
+_136f max _136c _136e
+_1370 const 0.3975
+_1371 sub _1370 _3
+_1372 max _136f _1371
+_1373 const 0.858333
+_1374 sub _78d _1373
+_1375 square _1374
+_1376 const 0.4725
+_1377 sub _3 _1376
+_1378 square _1377
+_1379 add _1375 _1378
+_137a sqrt _1379
+_137b sub _137a _1cc
+_137c max _1372 _137b
+_137d min _1352 _137c
+_137e square _1368
+_137f const 0.4975
+_1380 sub _3 _137f
+_1381 square _1380
+_1382 add _137e _1381
+_1383 sqrt _1382
+_1384 sub _1383 _1cc
+_1385 min _137d _1384
+_1386 const 0.737225
+_1387 add _1386 _722
+_1388 sub _71f _1387
+_1389 const 0.203962
+_138a sub _727 _1389
+_138b max _1388 _138a
+_138c const 0.788562
+_138d sub _138c _72a
+_138e max _138b _138d
+_138f sub _72a _138c
+_1390 sub _1389 _727
+_1391 max _138f _1390
+_1392 const 0.737225
+_1393 add _1392 _722
+_1394 sub _1393 _71f
+_1395 max _1391 _1394
+_1396 min _138e _1395
+_1397 neg _1396
+_1398 const 0.0924997
+_1399 sub _3 _1398
+_139a square _1399
+_139b add _1144 _139a
+_139c sqrt _139b
+_139d sub _9 _139c
+_139e max _1397 _139d
+_139f sub _139c _15
+_13a0 max _139e _139f
+_13a1 min _1385 _13a0
+_13a2 const 0.3075
+_13a3 add _13a2 _3
+_13a4 max _11ef _13a3
+_13a5 const 0.4075
+_13a6 add _13a5 _3
+_13a7 neg _13a6
+_13a8 max _13a4 _13a7
+_13a9 min _13a1 _13a8
+_13aa const 0.357501
+_13ab add _13aa _3
+_13ac square _13ab
+_13ad add _12e1 _13ac
+_13ae sqrt _13ad
+_13af sub _13ae _1cc
+_13b0 min _13a9 _13af
+_13b1 const 3.845
+_13b2 add _13b1 _3
+_13b3 max _12a7 _13b2
+_13b4 const 3.945
+_13b5 add _13b4 _3
+_13b6 neg _13b5
+_13b7 max _13b3 _13b6
+_13b8 min _13b0 _13b7
+_13b9 const 4.07
+_13ba add _13b9 _3
+_13bb max _11e5 _13ba
+_13bc const 4.17
+_13bd add _13bc _3
+_13be neg _13bd
+_13bf max _13bb _13be
+_13c0 min _13b8 _13bf
+_13c1 const 4.52
+_13c2 add _13c1 _3
+_13c3 max _11ef _13c2
+_13c4 const 4.62
+_13c5 add _13c4 _3
+_13c6 neg _13c5
+_13c7 max _13c3 _13c6
+_13c8 min _13c0 _13c7
+_13c9 max _11ee _11f9
+_13ca max _13c9 _13ba
+_13cb max _13ca _13c6
+_13cc const 4.345
+_13cd add _13cc _3
+_13ce square _13cd
+_13cf add _1144 _13ce
+_13d0 sqrt _13cf
+_13d1 sub _9 _13d0
+_13d2 max _13cb _13d1
+_13d3 sub _13d0 _15
+_13d4 max _13d2 _13d3
+_13d5 min _13c8 _13d4
+_13d6 const 4.72
+_13d7 add _13d6 _3
+_13d8 max _1139 _13d7
+_13d9 const 5.22
+_13da add _13d9 _3
+_13db neg _13da
+_13dc max _13d8 _13db
+_13dd const 4.995
+_13de add _13dd _3
+_13df square _13de
+_13e0 add _1144 _13df
+_13e1 sqrt _13e0
+_13e2 sub _13e1 _15
+_13e3 const 1.65925
+_13e4 add _13e3 _22c
+_13e5 sub _13e4 _22f
+_13e6 max _1149 _13e5
+_13e7 const 0.03425
+_13e8 add _13e7 _22c
+_13e9 add _13e8 _236
+_13ea neg _13e9
+_13eb max _13e6 _13ea
+_13ec max _1154 _13e9
+_13ed sub _22f _13e4
+_13ee max _13ec _13ed
+_13ef min _13eb _13ee
+_13f0 neg _13ef
+_13f1 max _13e2 _13f0
+_13f2 sub _9 _13e1
+_13f3 max _13f1 _13f2
+_13f4 min _13dc _13f3
+_13f5 max _13e2 _13f4
+_13f6 min _13d5 _13f5
+_13f7 const 3.716
+_13f8 add _13f7 _7f
+_13f9 sub _13f8 _83
+_13fa max _115f _13f9
+_13fb const 4.021
+_13fc add _13fb _7f
+_13fd sub _7c _13fc
+_13fe max _13fa _13fd
+_13ff min _13f6 _13fe
+_1400 sub _13fc _7c
+_1401 max _116c _1400
+_1402 sub _83 _13f8
+_1403 max _1401 _1402
+_1404 min _13ff _1403
+_1405 max _1170 _1400
+_1406 const 3.771
+_1407 add _1406 _7f
+_1408 sub _83 _1407
+_1409 max _1405 _1408
+_140a min _1404 _1409
+_140b max _1179 _13fd
+_140c sub _1407 _83
+_140d max _140b _140c
+_140e min _140a _140d
+_140f const 2.521
+_1410 add _83 _140f
+_1411 add _1410 _7f
+_1412 neg _1411
+_1413 max _115f _1412
+_1414 const 2.216
+_1415 add _1414 _7c
+_1416 add _1415 _7f
+_1417 max _1413 _1416
+_1418 min _140e _1417
+_1419 const 3.025
+_141a sub _e _1419
+_141b max _11e4 _141a
+_141c const 2.27
+_141d add _141c _3
+_141e max _141b _141d
+_141f const 2.37
+_1420 add _141f _3
+_1421 neg _1420
+_1422 max _141e _1421
+_1423 min _1418 _1422
+_1424 const 3.15
+_1425 sub _e _1424
+_1426 max _1421 _1425
+_1427 sub _1341 _e
+_1428 max _1426 _1427
+_1429 const 1.72
+_142a add _1429 _3
+_142b max _1428 _142a
+_142c square _1342
+_142d const 1.945
+_142e add _142d _3
+_142f square _142e
+_1430 add _142c _142f
+_1431 sqrt _1430
+_1432 sub _1cc _1431
+_1433 sub _1431 _9
+_1434 max _1432 _1433
+_1435 const 2.195
+_1436 add _1435 _3
+_1437 square _1436
+_1438 add _142c _1437
+_1439 sqrt _1438
+_143a sub _1cc _1439
+_143b sub _1439 _9
+_143c max _143a _143b
+_143d min _1434 _143c
+_143e max _142b _143d
+_143f min _1423 _143e
+_1440 const 0.195
+_1441 sub _1440 _98
+_1442 const 2.42975
+_1443 add _1442 _7f
+_1444 sub _1443 _3f3
+_1445 max _1441 _1444
+_1446 const 2.67975
+_1447 add _1446 _7f
+_1448 sub _3f9 _1447
+_1449 max _1445 _1448
+_144a min _143f _1449
+_144b sub _1447 _3f9
+_144c sub _3f3 _1443
+_144d max _144b _144c
+_144e sub _98 _1440
+_144f max _144d _144e
+_1450 min _144a _144f
+_1451 const 0.25
+_1452 sub _89 _1451
+_1453 max _144b _1452
+_1454 const 2.48475
+_1455 add _1454 _7f
+_1456 sub _3f3 _1455
+_1457 max _1453 _1456
+_1458 min _1450 _1457
+_1459 sub _1455 _3f3
+_145a max _1448 _1459
+_145b sub _1451 _89
+_145c max _145a _145b
+_145d min _1458 _145c
+_145e max _115f _1444
+_145f const 2.73475
+_1460 add _145f _7f
+_1461 sub _3f9 _1460
+_1462 max _145e _1461
+_1463 min _145d _1462
+_1464 max _116c _144c
+_1465 sub _1460 _3f9
+_1466 max _1464 _1465
+_1467 min _1463 _1466
+_1468 max _1170 _1456
+_1469 max _1468 _1465
+_146a min _1467 _1469
+_146b max _1179 _1459
+_146c max _146b _1461
+_146d min _146a _146c
+_146e const 1.35975
+_146f add _146e _3f3
+_1470 add _146f _7f
+_1471 neg _1470
+_1472 max _115f _1471
+_1473 const 1.05475
+_1474 add _1473 _3f9
+_1475 add _1474 _7f
+_1476 max _1472 _1475
+_1477 min _146d _1476
+_1478 max _116c _1470
+_1479 neg _1475
+_147a max _1478 _1479
+_147b min _1477 _147a
+_147c max _1170 _1479
+_147d const 1.30475
+_147e add _147d _3f3
+_147f add _147e _7f
+_1480 max _147c _147f
+_1481 min _147b _1480
+_1482 max _1179 _1475
+_1483 neg _147f
+_1484 max _1482 _1483
+_1485 min _1481 _1484
+_1486 const 4.725
+_1487 add _1486 _3
+_1488 neg _1487
+_1489 max _d38 _1488
+_148a const 0.0749998
+_148b add _148a _e
+_148c neg _148b
+_148d max _1489 _148c
+_148e const 4.625
+_148f add _148e _3
+_1490 max _148d _148f
+_1491 min _1485 _1490
+_1492 const 4.45
+_1493 add _1492 _3
+_1494 square _1493
+_1495 add _c4b _1494
+_1496 sqrt _1495
+_1497 sub _9 _1496
+_1498 sub _1496 _15
+_1499 max _1497 _1498
+_149a min _1491 _1499
+_149b const 4.825
+_149c add _149b _3
+_149d max _d88 _149c
+_149e neg _2ad
+_149f max _149d _149e
+_14a0 min _149a _149f
+_14a1 max _d38 _d3a
+_14a2 const 5.275
+_14a3 add _14a2 _3
+_14a4 max _14a1 _14a3
+_14a5 const 5.375
+_14a6 add _14a5 _3
+_14a7 neg _14a6
+_14a8 max _14a4 _14a7
+_14a9 min _14a0 _14a8
+_14aa max _d26 _149c
+_14ab max _14aa _14a7
+_14ac const 5.1
+_14ad add _14ac _3
+_14ae square _14ad
+_14af add _c4b _14ae
+_14b0 sqrt _14af
+_14b1 sub _9 _14b0
+_14b2 max _14ab _14b1
+_14b3 sub _14b0 _15
+_14b4 max _14b2 _14b3
+_14b5 min _14a9 _14b4
+_14b6 const 6.275
+_14b7 add _14b6 _3
+_14b8 neg _14b7
+_14b9 max _d2e _14b8
+_14ba const 6.175
+_14bb add _14ba _3
+_14bc max _14b9 _14bb
+_14bd min _14b5 _14bc
+_14be const 0.75
+_14bf sub _14be _e
+_14c0 max _d38 _14bf
+_14c1 const 6.45
+_14c2 add _14c1 _3
+_14c3 neg _14c2
+_14c4 max _14c0 _14c3
+_14c5 const 6.275
+_14c6 add _14c5 _3
+_14c7 max _14c4 _14c6
+_14c8 min _14bd _14c7
+_14c9 max _c34 _14c3
+_14ca max _14c9 _14c6
+_14cb const 0.4
+_14cc sub _e _14cb
+_14cd max _14ca _14cc
+_14ce min _14c8 _14cd
+_14cf max _d2e _14c2
+_14d0 const 7.175
+_14d1 add _14d0 _3
+_14d2 neg _14d1
+_14d3 max _14cf _14d2
+_14d4 square _14c3
+_14d5 add _c4b _14d4
+_14d6 sqrt _14d5
+_14d7 sub _9 _14d6
+_14d8 max _14d3 _14d7
+_14d9 sub _14d6 _15
+_14da max _14d8 _14d9
+_14db min _14ce _14da
+_14dc max _c34 _be4
+_14dd max _14dc _ccb
+_14de neg _bff
+_14df max _14dd _14de
+_14e0 min _14db _14df
+_14e1 const 7.25
+_14e2 add _14e1 _3
+_14e3 max _d88 _14e2
+_14e4 const 7.35
+_14e5 add _14e4 _3
+_14e6 neg _14e5
+_14e7 max _14e3 _14e6
+_14e8 min _14e0 _14e7
+_14e9 const 1.025
+_14ea add _14e9 _3
+_14eb max _d26 _14ea
+_14ec const 1.125
+_14ed add _14ec _3
+_14ee neg _14ed
+_14ef max _14eb _14ee
+_14f0 min _14e8 _14ef
+_14f1 const 1.475
+_14f2 add _14f1 _3
+_14f3 max _d2e _14f2
+_14f4 const 1.575
+_14f5 add _14f4 _3
+_14f6 neg _14f5
+_14f7 max _14f3 _14f6
+_14f8 min _14f0 _14f7
+_14f9 max _14a1 _14ea
+_14fa max _14f9 _14f6
+_14fb add _c18 _3
+_14fc square _14fb
+_14fd add _c4b _14fc
+_14fe sqrt _14fd
+_14ff sub _9 _14fe
+_1500 max _14fa _14ff
+_1501 sub _14fe _15
+_1502 max _1500 _1501
+_1503 min _14f8 _1502
+_1504 const 1.825
+_1505 add _1504 _3
+_1506 max _c1c _1505
+_1507 const 1.925
+_1508 add _1507 _3
+_1509 neg _1508
+_150a max _1506 _1509
+_150b min _1503 _150a
+_150c add _11b4 _3
+_150d max _c28 _150c
+_150e const 2.075
+_150f add _150e _3
+_1510 neg _150f
+_1511 max _150d _1510
+_1512 min _150b _1511
+_1513 max _d54 _150c
+_1514 max _1513 _1510
+_1515 square _150c
+_1516 add _c36 _1515
+_1517 sqrt _1516
+_1518 sub _150 _1517
+_1519 max _1514 _1518
+_151a sub _1517 _157
+_151b max _1519 _151a
+_151c min _1512 _151b
+_151d const 2.875
+_151e add _151d _3
+_151f max _dec _151e
+_1520 const 2.975
+_1521 add _1520 _3
+_1522 neg _1521
+_1523 max _151f _1522
+_1524 min _151c _1523
+_1525 const 3.325
+_1526 add _1525 _3
+_1527 max _d88 _1526
+_1528 const 3.425
+_1529 add _1528 _3
+_152a neg _1529
+_152b max _1527 _152a
+_152c min _1524 _152b
+_152d max _d38 _dfe
+_152e max _152d _151e
+_152f max _152e _152a
+_1530 add _1424 _3
+_1531 square _1530
+_1532 add _c4b _1531
+_1533 sqrt _1532
+_1534 sub _9 _1533
+_1535 max _152f _1534
+_1536 sub _1533 _15
+_1537 max _1535 _1536
+_1538 min _152c _1537
+_1539 const 3.8
+_153a add _1539 _3
+_153b square _153a
+_153c add _c4b _153b
+_153d sqrt _153c
+_153e sub _9 _153d
+_153f sub _153d _15
+_1540 max _153e _153f
+_1541 min _1538 _1540
+_1542 max _11c7 _11cf
+_1543 const 5.958
+_1544 sub _3 _1543
+_1545 max _1542 _1544
+_1546 const 5.858
+_1547 sub _1546 _3
+_1548 max _1545 _1547
+_1549 min _1541 _1548
+_154a const 6.133
+_154b sub _3 _154a
+_154c square _154b
+_154d add _154c _11b6
+_154e sqrt _154d
+_154f sub _9 _154e
+_1550 max _11dd _154f
+_1551 sub _154e _15
+_1552 max _1550 _1551
+_1553 const 6.408
+_1554 sub _3 _1553
+_1555 max _1552 _1554
+_1556 max _1555 _11cf
+_1557 max _1556 _1547
+_1558 min _1549 _1557
+_1559 const 5.633
+_155a sub _1559 _3
+_155b max _356 _155a
+_155c max _155b _11c7
+_155d max _155c _11cf
+_155e min _1558 _155d
+_155f const 2.1
+_1560 sub _e _155f
+_1561 square _1560
+_1562 const 5.683
+_1563 sub _3 _1562
+_1564 square _1563
+_1565 add _1561 _1564
+_1566 sqrt _1565
+_1567 sub _1566 _1cc
+_1568 min _155e _1567
+_1569 const 1.75
+_156a sub _e _1569
+_156b const 5.508
+_156c sub _3 _156b
+_156d max _156a _156c
+_156e const 5.408
+_156f sub _156e _3
+_1570 max _156d _156f
+_1571 max _1570 _11c7
+_1572 min _1568 _1571
+_1573 const 5.258
+_1574 sub _3 _1573
+_1575 max _156a _1574
+_1576 const 5.158
+_1577 sub _1576 _3
+_1578 max _1575 _1577
+_1579 max _1578 _11c7
+_157a min _1572 _1579
+_157b const 1.925
+_157c sub _e _157b
+_157d const 5.008
+_157e sub _3 _157d
+_157f max _157c _157e
+_1580 const 4.908
+_1581 sub _1580 _3
+_1582 max _157f _1581
+_1583 max _1582 _11c7
+_1584 min _157a _1583
+_1585 const 2.05
+_1586 sub _e _1585
+_1587 max _1581 _1586
+_1588 const 1.75
+_1589 sub _1588 _e
+_158a max _1587 _1589
+_158b const 5.558
+_158c sub _3 _158b
+_158d max _158a _158c
+_158e square _156a
+_158f const 5.333
+_1590 sub _3 _158f
+_1591 square _1590
+_1592 add _158e _1591
+_1593 sqrt _1592
+_1594 sub _1cc _1593
+_1595 sub _1593 _9
+_1596 max _1594 _1595
+_1597 const 5.083
+_1598 sub _3 _1597
+_1599 square _1598
+_159a add _158e _1599
+_159b sqrt _159a
+_159c sub _1cc _159b
+_159d sub _159b _9
+_159e max _159c _159d
+_159f min _1596 _159e
+_15a0 max _158d _159f
+_15a1 min _1584 _15a0
+_15a2 max _be4 _d38
+_15a3 max _15a2 _dfe
+_15a4 max _15a3 _14e6
+_15a5 const 7.075
+_15a6 add _15a5 _3
+_15a7 square _15a6
+_15a8 add _c4b _15a7
+_15a9 sqrt _15a8
+_15aa sub _9 _15a9
+_15ab max _15a4 _15aa
+_15ac sub _15a9 _15
+_15ad max _15ab _15ac
+_15ae min _15a1 _15ad
+_15af max _ade _ae2
+_15b0 max _15af _ce1
+_15b1 max _15b0 _ce3
+_15b2 add _ae6 _c4b
+_15b3 sqrt _15b2
+_15b4 sub _15b3 _15
+_15b5 const 2.08
+_15b6 add _15b5 _22c
+_15b7 sub _15b6 _22f
+_15b8 max _cf2 _15b7
+_15b9 const 1.885
+_15ba add _15b9 _22c
+_15bb add _15ba _236
+_15bc neg _15bb
+_15bd max _15b8 _15bc
+_15be const 1.885
+_15bf add _15be _22c
+_15c0 add _15bf _236
+_15c1 max _cfd _15c0
+_15c2 const 2.08
+_15c3 add _15c2 _22c
+_15c4 sub _22f _15c3
+_15c5 max _15c1 _15c4
+_15c6 min _15bd _15c5
+_15c7 neg _15c6
+_15c8 max _15b4 _15c7
+_15c9 sub _9 _15b3
+_15ca max _15c8 _15c9
+_15cb min _15b1 _15ca
+_15cc max _15b4 _15cb
+_15cd min _15ae _15cc
+_15ce const 1.715
+_15cf sub _e _15ce
+_15d0 const 1.625
+_15d1 sub _15d0 _e
+_15d2 max _15cf _15d1
+_15d3 const 7.058
+_15d4 sub _3 _15d3
+_15d5 max _15d2 _15d4
+_15d6 const 6.558
+_15d7 sub _15d6 _3
+_15d8 max _15d5 _15d7
+_15d9 const 6.783
+_15da sub _3 _15d9
+_15db square _15da
+_15dc add _11b6 _15db
+_15dd sqrt _15dc
+_15de sub _15dd _15
+_15df const 1.08875
+_15e0 sub _229 _15df
+_15e1 const 1.7447
+_15e2 add _22f _15e1
+_15e3 sub _22c _15e2
+_15e4 max _15e0 _15e3
+_15e5 const 2.6547
+_15e6 sub _15e5 _a5d
+_15e7 max _15e4 _15e6
+_15e8 sub _a5d _15e5
+_15e9 sub _15e2 _22c
+_15ea max _15e8 _15e9
+_15eb sub _15df _229
+_15ec max _15ea _15eb
+_15ed min _15e7 _15ec
+_15ee neg _15ed
+_15ef max _15de _15ee
+_15f0 sub _9 _15dd
+_15f1 max _15ef _15f0
+_15f2 min _15d8 _15f1
+_15f3 max _15de _15f2
+_15f4 min _15cd _15f3
+_15f5 max _11c4 _11c7
+_15f6 max _15f5 _1554
+_15f7 const 6.308
+_15f8 sub _15f7 _3
+_15f9 max _15f6 _15f8
+_15fa min _15f4 _15f9
+_15fb sub _3 _dc
+_15fc square _15fb
+_15fd add _11b6 _15fc
+_15fe sqrt _15fd
+_15ff sub _15fe _15
+_1600 sub _9 _15fe
+_1601 max _15ff _1600
+_1602 min _15fa _1601
+_1603 const 0.8325
+_1604 add _1603 _83
+_1605 sub _7f _1604
+_1606 max _119c _1605
+_1607 const 0.6375
+_1608 add _1607 _7c
+_1609 sub _1608 _7f
+_160a max _1606 _1609
+_160b min _1602 _160a
+_160c sub _7f _1608
+_160d sub _1604 _7f
+_160e max _160c _160d
+_160f max _160e _11a1
+_1610 min _160b _160f
+_1611 max _160c _11a9
+_1612 const 0.7775
+_1613 add _1612 _83
+_1614 sub _1613 _7f
+_1615 max _1611 _1614
+_1616 min _1610 _1615
+_1617 sub _7f _1613
+_1618 max _1609 _1617
+_1619 max _1618 _11ae
+_161a min _1616 _1619
+_161b const 1.4775
+_161c sub _161b _117d
+_161d max _119c _161c
+_161e const 1.6725
+_161f sub _1180 _161e
+_1620 max _161d _161f
+_1621 min _161a _1620
+_1622 sub _161e _1180
+_1623 max _11a1 _1622
+_1624 sub _117d _161b
+_1625 max _1623 _1624
+_1626 min _1621 _1625
+_1627 max _11a9 _1622
+_1628 const 1.5325
+_1629 sub _117d _1628
+_162a max _1627 _1629
+_162b min _1626 _162a
+_162c max _11ae _161f
+_162d sub _1628 _117d
+_162e max _162c _162d
+_162f min _162b _162e
+_1630 const 0.5575
+_1631 add _1630 _83
+_1632 sub _7f _1631
+_1633 max _119c _1632
+_1634 const 0.3625
+_1635 add _1634 _7c
+_1636 sub _1635 _7f
+_1637 max _1633 _1636
+_1638 min _162f _1637
+_1639 sub _7f _1635
+_163a max _11a1 _1639
+_163b sub _1631 _7f
+_163c max _163a _163b
+_163d min _1638 _163c
+_163e max _11a9 _1639
+_163f const 0.5025
+_1640 add _163f _83
+_1641 sub _1640 _7f
+_1642 max _163e _1641
+_1643 min _163d _1642
+_1644 max _11ae _1636
+_1645 sub _7f _1640
+_1646 max _1644 _1645
+_1647 min _1643 _1646
+_1648 const 1.2025
+_1649 sub _1648 _117d
+_164a max _119c _1649
+_164b const 1.3975
+_164c sub _1180 _164b
+_164d max _164a _164c
+_164e min _1647 _164d
+_164f sub _164b _1180
+_1650 max _11a1 _164f
+_1651 sub _117d _1648
+_1652 max _1650 _1651
+_1653 min _164e _1652
+_1654 max _11a9 _164f
+_1655 const 1.2575
+_1656 sub _117d _1655
+_1657 max _1654 _1656
+_1658 min _1653 _1657
+_1659 max _11ae _164c
+_165a sub _1655 _117d
+_165b max _1659 _165a
+_165c min _1658 _165b
+_165d const 0.224999
+_165e sub _3 _165d
+_165f square _165e
+_1660 add _11b6 _165f
+_1661 sqrt _1660
+_1662 sub _9 _1661
+_1663 sub _1661 _15
+_1664 max _1662 _1663
+_1665 min _165c _1664
+_1666 const 1.2
+_1667 sub _236 _1666
+_1668 const 2.104
+_1669 sub _35e _1668
+_166a max _1667 _1669
+_166b const 3.054
+_166c sub _166b _364
+_166d max _166a _166c
+_166e sub _364 _166b
+_166f sub _1668 _35e
+_1670 max _166e _166f
+_1671 sub _1666 _236
+_1672 max _1670 _1671
+_1673 min _166d _1672
+_1674 const 3.968
+_1675 add _36e _1674
+_1676 sub _3 _1675
+_1677 const 1.8858
+_1678 add _374 _376
+_1679 sub _1677 _1678
+_167a max _1676 _1679
+_167b const 1.7272
+_167c add _167b _37b
+_167d sub _167c _37e
+_167e max _167a _167d
+_167f min _1673 _167e
+_1680 sub _37e _167c
+_1681 sub _1678 _1677
+_1682 max _1680 _1681
+_1683 sub _1675 _3
+_1684 max _1682 _1683
+_1685 min _167f _1684
+_1686 const 0.351
+_1687 sub _1686 _38e
+_1688 const 1.2978
+_1689 sub _1688 _376
+_168a max _1687 _1689
+_168b const 1.7433
+_168c sub _394 _168b
+_168d max _168a _168c
+_168e min _1685 _168d
+_168f sub _168b _394
+_1690 sub _376 _1688
+_1691 max _168f _1690
+_1692 sub _38e _1686
+_1693 max _1691 _1692
+_1694 min _168e _1693
+_1695 const 0.96
+_1696 sub _3a0 _1695
+_1697 const 1.2994
+_1698 add _1697 _3a0
+_1699 sub _7f _1698
+_169a max _1696 _1699
+_169b const 2.0394
+_169c sub _169b _7f
+_169d max _169a _169c
+_169e min _1694 _169d
+_169f sub _7f _169b
+_16a0 sub _1698 _7f
+_16a1 max _169f _16a0
+_16a2 sub _1695 _3a0
+_16a3 max _16a1 _16a2
+_16a4 min _169e _16a3
+_16a5 neg _16a4
+_16a6 max _11c7 _16a5
+_16a7 const 2.4
+_16a8 sub _e _16a7
+_16a9 max _16a6 _16a8
+_16aa const 4.108
+_16ab sub _3 _16aa
+_16ac max _16a9 _16ab
+_16ad const 3.608
+_16ae sub _16ad _3
+_16af max _16ac _16ae
+_16b0 min _1665 _16af
+_16b1 const 3.25
+_16b2 sub _3 _16b1
+_16b3 max _1542 _16b2
+_16b4 const 3.15
+_16b5 sub _16b4 _3
+_16b6 max _16b3 _16b5
+_16b7 min _16b0 _16b6
+_16b8 const 5.05
+_16b9 sub _c2 _16b8
+_16ba max _1542 _16b9
+_16bb const 4.5
+_16bc sub _16bb _c2
+_16bd max _16ba _16bc
+_16be sub _e _11c6
+_16bf square _16be
+_16c0 const 6.3125
+_16c1 sub _cc _16c0
+_16c2 square _16c1
+_16c3 add _16bf _16c2
+_16c4 sqrt _16c3
+_16c5 sub _c8 _16c4
+_16c6 max _16bd _16c5
+_16c7 square _16b9
+_16c8 add _16bf _16c7
+_16c9 sqrt _16c8
+_16ca sub _16c9 _d6
+_16cb max _16c6 _16ca
+_16cc min _16b7 _16cb
+_16cd const 2.55
+_16ce add _16cd _3
+_16cf neg _16ce
+_16d0 max _11cf _16cf
+_16d1 const 2.375
+_16d2 add _16d1 _3
+_16d3 max _16d0 _16d2
+_16d4 const 1.85
+_16d5 sub _16d4 _e
+_16d6 max _16d3 _16d5
+_16d7 min _16cc _16d6
+_16d8 max _11c7 _16cf
+_16d9 const 1.5
+_16da sub _e _16d9
+_16db max _16d8 _16da
+_16dc max _16db _16d2
+_16dd min _16d7 _16dc
+_16de max _11c7 _16a8
+_16df max _16de _16ce
+_16e0 const 3.275
+_16e1 add _16e0 _3
+_16e2 neg _16e1
+_16e3 max _16df _16e2
+_16e4 square _16cf
+_16e5 add _11b6 _16e4
+_16e6 sqrt _16e5
+_16e7 sub _9 _16e6
+_16e8 max _16e3 _16e7
+_16e9 sub _16e6 _15
+_16ea max _16e8 _16e9
+_16eb min _16dd _16ea
+_16ec sub _55d _e
+_16ed max _16a8 _16ec
+_16ee const 3.6
+_16ef add _16ee _3
+_16f0 max _16ed _16ef
+_16f1 add _2cb _3
+_16f2 neg _16f1
+_16f3 max _16f0 _16f2
+_16f4 min _16eb _16f3
+_16f5 max _11c7 _16da
+_16f6 max _16f5 _16ef
+_16f7 max _16f6 _16f2
+_16f8 min _16f4 _16f7
+_16f9 max _153a _11c7
+_16fa max _16f9 _16a8
+_16fb const 3.9
+_16fc add _16fb _3
+_16fd neg _16fc
+_16fe max _16fa _16fd
+_16ff min _16f8 _16fe
+_1700 const 3.1825
+_1701 add _1700 _7f
+_1702 sub _1701 _83
+_1703 max _119c _1702
+_1704 const 3.3775
+_1705 add _1704 _7f
+_1706 sub _7c _1705
+_1707 max _1703 _1706
+_1708 min _16ff _1707
+_1709 sub _1705 _7c
+_170a max _11a1 _1709
+_170b sub _83 _1701
+_170c max _170a _170b
+_170d min _1708 _170c
+_170e max _11a9 _1709
+_170f const 3.2375
+_1710 add _170f _7f
+_1711 sub _83 _1710
+_1712 max _170e _1711
+_1713 min _170d _1712
+_1714 max _11ae _1706
+_1715 sub _1710 _83
+_1716 max _1714 _1715
+_1717 min _1713 _1716
+_1718 const 2.5375
+_1719 add _83 _1718
+_171a add _1719 _7f
+_171b neg _171a
+_171c max _119c _171b
+_171d const 2.3425
+_171e add _171d _7c
+_171f add _171e _7f
+_1720 max _171c _171f
+_1721 min _1717 _1720
+_1722 max _11a1 _171a
+_1723 neg _171f
+_1724 max _1722 _1723
+_1725 min _1721 _1724
+_1726 max _11a9 _1723
+_1727 const 2.4825
+_1728 add _83 _1727
+_1729 add _1728 _7f
+_172a max _1726 _1729
+_172b min _1725 _172a
+_172c max _11ae _171f
+_172d neg _1729
+_172e max _172c _172d
+_172f min _172b _172e
+_1730 const 3.4575
+_1731 add _1730 _7f
+_1732 sub _1731 _83
+_1733 max _119c _1732
+_1734 const 3.6525
+_1735 add _1734 _7f
+_1736 sub _7c _1735
+_1737 max _1733 _1736
+_1738 min _172f _1737
+_1739 sub _1735 _7c
+_173a max _11a1 _1739
+_173b sub _83 _1731
+_173c max _173a _173b
+_173d min _1738 _173c
+_173e max _11a9 _1739
+_173f const 3.5125
+_1740 add _173f _7f
+_1741 sub _83 _1740
+_1742 max _173e _1741
+_1743 min _173d _1742
+_1744 max _11ae _1736
+_1745 sub _1740 _83
+_1746 max _1744 _1745
+_1747 min _1743 _1746
+_1748 const 1.65
+_1749 sub _1748 _e
+_174a const 0.300001
+_174b add _174a _3
+_174c max _1749 _174b
+_174d max _174c _16a8
+_174e const 0.400001
+_174f add _174e _3
+_1750 neg _174f
+_1751 max _174d _1750
+_1752 min _1747 _1751
+_1753 max _db1 _1586
+_1754 sub _11ce _e
+_1755 max _1753 _1754
+_1756 const 0.550001
+_1757 add _1756 _3
+_1758 neg _1757
+_1759 max _1755 _1758
+_175a min _1752 _1759
+_175b max _db1 _11c7
+_175c max _175b _1758
+_175d sub _e _1748
+_175e max _175c _175d
+_175f square _175d
+_1760 add _db2 _175f
+_1761 sqrt _1760
+_1762 sub _150 _1761
+_1763 max _175e _1762
+_1764 sub _1761 _157
+_1765 max _1763 _1764
+_1766 min _175a _1765
+_1767 const 0.65875
+_1768 add _1767 _763
+_1769 sub _1768 _89
+_176a const 0.281875
+_176b sub _176a _fd4
+_176c max _1769 _176b
+_176d const 1.13813
+_176e add _773 _176d
+_176f sub _770 _176e
+_1770 max _176c _176f
+_1771 const 1.13813
+_1772 add _773 _1771
+_1773 sub _1772 _770
+_1774 sub _fd4 _176a
+_1775 max _1773 _1774
+_1776 sub _89 _1768
+_1777 max _1775 _1776
+_1778 min _1770 _1777
+_1779 neg _1778
+_177a const 1.475
+_177b sub _e _177a
+_177c max _1779 _177b
+_177d const 1.25
+_177e sub _177d _e
+_177f max _177c _177e
+_1780 const 1.375
+_1781 add _1780 _3
+_1782 max _177f _1781
+_1783 const 1.525
+_1784 add _1783 _3
+_1785 neg _1784
+_1786 max _1782 _1785
+_1787 const 0.491667
+_1788 sub _78d _1787
+_1789 square _1788
+_178a const 1.45
+_178b add _178a _3
+_178c square _178b
+_178d add _1789 _178c
+_178e sqrt _178d
+_178f sub _178e _1cc
+_1790 max _1786 _178f
+_1791 min _1766 _1790
+_1792 square _177b
+_1793 const 1.425
+_1794 add _1793 _3
+_1795 square _1794
+_1796 add _1792 _1795
+_1797 sqrt _1796
+_1798 sub _1797 _1cc
+_1799 min _1791 _1798
+_179a const 1.9
+_179b add _179a _3
+_179c square _179b
+_179d add _11b6 _179c
+_179e sqrt _179d
+_179f sub _9 _179e
+_17a0 sub _179e _15
+_17a1 max _179f _17a0
+_17a2 min _1799 _17a1
+_17a3 neg _16d2
+_17a4 max _16de _17a3
+_17a5 const 2.275
+_17a6 add _17a5 _3
+_17a7 max _17a4 _17a6
+_17a8 min _17a2 _17a7
+_17a9 const 1.951
+_17aa sub _3 _17a9
+_17ab square _17aa
+_17ac sub _e _fc
+_17ad square _17ac
+_17ae add _17ab _17ad
+_17af sqrt _17ae
+_17b0 sub _17af _15
+_17b1 const 2.226
+_17b2 sub _3 _17b1
+_17b3 max _17b0 _17b2
+_17b4 const 1.676
+_17b5 sub _17b4 _3
+_17b6 max _17b3 _17b5
+_17b7 sub _9 _17af
+_17b8 max _17b6 _17b7
+_17b9 const 5.25
+_17ba sub _e _17b9
+_17bb max _17b8 _17ba
+_17bc const 5.025
+_17bd sub _17bc _e
+_17be max _17bb _17bd
+_17bf min _17a8 _17be
+_17c0 const 5.05
+_17c1 sub _e _17c0
+_17c2 const 1.556
+_17c3 sub _3 _17c2
+_17c4 max _17c1 _17c3
+_17c5 const 1.456
+_17c6 sub _17c5 _3
+_17c7 max _17c4 _17c6
+_17c8 sub _42 _e
+_17c9 max _17c7 _17c8
+_17ca min _17bf _17c9
+_17cb const 0.146856
+_17cc add _17cb _3
+_17cd sub _17cc _5d7
+_17ce square _17cd
+_17cf add _17ce _17ad
+_17d0 sqrt _17cf
+_17d1 sub _9 _17d0
+_17d2 sub _17d0 _15
+_17d3 max _17d1 _17d2
+_17d4 min _17ca _17d3
+_17d5 const 0.44765
+_17d6 add _17d5 _763
+_17d7 sub _17d6 _89
+_17d8 const 2.27973
+_17d9 sub _17d8 _fd4
+_17da max _17d7 _17d9
+_17db const 2.92488
+_17dc add _773 _17db
+_17dd sub _770 _17dc
+_17de max _17da _17dd
+_17df sub _17dc _770
+_17e0 sub _fd4 _17d8
+_17e1 max _17df _17e0
+_17e2 sub _89 _17d6
+_17e3 max _17e1 _17e2
+_17e4 min _17de _17e3
+_17e5 neg _17e4
+_17e6 const 4.775
+_17e7 sub _e _17e6
+_17e8 max _17e5 _17e7
+_17e9 const 4.55
+_17ea sub _17e9 _e
+_17eb max _17e8 _17ea
+_17ec const 0.171
+_17ed sub _3 _17ec
+_17ee max _17eb _17ed
+_17ef const 0.0209999
+_17f0 sub _17ef _3
+_17f1 max _17ee _17f0
+_17f2 const 1.59167
+_17f3 sub _78d _17f2
+_17f4 square _17f3
+_17f5 const 0.0959997
+_17f6 sub _3 _17f5
+_17f7 square _17f6
+_17f8 add _17f4 _17f7
+_17f9 sqrt _17f8
+_17fa sub _17f9 _1cc
+_17fb max _17f1 _17fa
+_17fc min _17d4 _17fb
+_17fd square _17e7
+_17fe const 0.121
+_17ff sub _3 _17fe
+_1800 square _17ff
+_1801 add _17fd _1800
+_1802 sqrt _1801
+_1803 sub _1802 _1cc
+_1804 min _17fc _1803
+_1805 const 0.525
+_1806 sub _1805 _89
+_1807 const 4.12055
+_1808 sub _1180 _1807
+_1809 max _1806 _1808
+_180a const 3.65055
+_180b sub _180a _117d
+_180c max _1809 _180b
+_180d min _1804 _180c
+_180e const 1.02555
+_180f add _180e _83
+_1810 sub _7f _180f
+_1811 const 0.500551
+_1812 add _1811 _7c
+_1813 sub _1812 _7f
+_1814 max _1810 _1813
+_1815 const 0.47
+_1816 sub _1815 _98
+_1817 max _1814 _1816
+_1818 min _180d _1817
+_1819 sub _7f _1812
+_181a sub _180f _7f
+_181b max _1819 _181a
+_181c sub _98 _1815
+_181d max _181b _181c
+_181e min _1818 _181d
+_181f const 0.970551
+_1820 add _181f _83
+_1821 sub _1820 _7f
+_1822 max _1819 _1821
+_1823 sub _89 _1805
+_1824 max _1822 _1823
+_1825 min _181e _1824
+_1826 const 0.970552
+_1827 add _1826 _83
+_1828 sub _7f _1827
+_1829 max _1813 _1828
+_182a max _1829 _1806
+_182b min _1825 _182a
+_182c const 3.32055
+_182d sub _182c _117d
+_182e const 3.84555
+_182f sub _1180 _182e
+_1830 max _182d _182f
+_1831 max _1830 _1816
+_1832 min _182b _1831
+_1833 sub _182e _1180
+_1834 sub _117d _182c
+_1835 max _1833 _1834
+_1836 max _1835 _181c
+_1837 min _1832 _1836
+_1838 const 3.37555
+_1839 sub _117d _1838
+_183a max _1833 _1839
+_183b max _183a _1823
+_183c min _1837 _183b
+_183d const 3.37555
+_183e sub _183d _117d
+_183f max _182f _183e
+_1840 max _183f _1806
+_1841 min _183c _1840
+_1842 const 2.751
+_1843 sub _1842 _3
+_1844 const 2.851
+_1845 sub _3 _1844
+_1846 max _1843 _1845
+_1847 const 5.7
+_1848 sub _e _1847
+_1849 max _1846 _1848
+_184a max _1849 _17c8
+_184b min _1841 _184a
+_184c sub _2a8 _e
+_184d const 2.576
+_184e sub _184d _3
+_184f max _184c _184e
+_1850 const 2.751
+_1851 sub _3 _1850
+_1852 max _184f _1851
+_1853 max _1852 _17ba
+_1854 min _184b _1853
+_1855 max _184e _1851
+_1856 const 4.8
+_1857 sub _e _1856
+_1858 max _1855 _1857
+_1859 max _1858 _17c8
+_185a min _1854 _1859
+_185b const 1.851
+_185c sub _185b _3
+_185d const 2.576
+_185e sub _3 _185d
+_185f max _185c _185e
+_1860 square _184e
+_1861 add _1860 _17ad
+_1862 sqrt _1861
+_1863 sub _9 _1862
+_1864 max _185f _1863
+_1865 sub _1862 _15
+_1866 max _1864 _1865
+_1867 max _1866 _1848
+_1868 max _1867 _17c8
+_1869 min _185a _1868
+_186a const 2.126
+_186b sub _186a _3
+_186c max _17b2 _186b
+_186d sub _e _17bc
+_186e max _186c _186d
+_186f max _186e _17c8
+_1870 min _1869 _186f
+_1871 const 1.776
+_1872 sub _3 _1871
+_1873 max _1872 _17b5
+_1874 max _1873 _17c8
+_1875 max _1874 _17ba
+_1876 min _1870 _1875
+_1877 sub _3a _e
+_1878 const 1.862
+_1879 add _1878 _3
+_187a max _1877 _1879
+_187b const 1.962
+_187c add _187b _3
+_187d neg _187c
+_187e max _187a _187d
+_187f max _187e _17ba
+_1880 min _1876 _187f
+_1881 const 5.4
+_1882 sub _e _1881
+_1883 square _1882
+_1884 const 1.912
+_1885 add _1884 _3
+_1886 square _1885
+_1887 add _1883 _1886
+_1888 sqrt _1887
+_1889 sub _1888 _1cc
+_188a min _1880 _1889
+_188b const 2.662
+_188c add _188b _3
+_188d const 2.762
+_188e add _188d _3
+_188f neg _188e
+_1890 max _188c _188f
+_1891 max _1890 _1848
+_1892 max _1891 _17c8
+_1893 min _188a _1892
+_1894 const 2.487
+_1895 add _1894 _3
+_1896 max _184c _1895
+_1897 neg _188c
+_1898 max _1896 _1897
+_1899 max _1898 _17ba
+_189a min _1893 _1899
+_189b max _1857 _1895
+_189c max _189b _1897
+_189d max _189c _17c8
+_189e min _189a _189d
+_189f const 1.762
+_18a0 add _189f _3
+_18a1 neg _1895
+_18a2 max _18a0 _18a1
+_18a3 square _1895
+_18a4 add _18a3 _17ad
+_18a5 sqrt _18a4
+_18a6 sub _9 _18a5
+_18a7 max _18a2 _18a6
+_18a8 sub _18a5 _15
+_18a9 max _18a7 _18a8
+_18aa max _18a9 _1848
+_18ab max _18aa _17c8
+_18ac min _189e _18ab
+_18ad const 2.882
+_18ae add _18ad _3
+_18af max _17c1 _18ae
+_18b0 const 2.982
+_18b1 add _18b0 _3
+_18b2 neg _18b1
+_18b3 max _18af _18b2
+_18b4 max _18b3 _17c8
+_18b5 min _18ac _18b4
+_18b6 const 4.58486
+_18b7 add _18b6 _3
+_18b8 sub _18b7 _5d7
+_18b9 square _18b8
+_18ba add _18b9 _17ad
+_18bb sqrt _18ba
+_18bc sub _9 _18bb
+_18bd sub _18bb _15
+_18be max _18bc _18bd
+_18bf min _18b5 _18be
+_18c0 const 0.0790005
+_18c1 add _18c0 _3
+_18c2 const 0.579001
+_18c3 add _18c2 _3
+_18c4 neg _18c3
+_18c5 max _18c1 _18c4
+_18c6 const 5.015
+_18c7 sub _e _18c6
+_18c8 max _18c5 _18c7
+_18c9 sub _2ac _e
+_18ca max _18c8 _18c9
+_18cb const 0.354001
+_18cc add _18cb _3
+_18cd square _18cc
+_18ce add _18cd _17ad
+_18cf sqrt _18ce
+_18d0 sub _18cf _15
+_18d1 const 0.712975
+_18d2 add _18d1 _22c
+_18d3 sub _18d2 _22f
+_18d4 const 2.34202
+_18d5 sub _18d4 _a5d
+_18d6 max _18d3 _18d5
+_18d7 const 3.23375
+_18d8 sub _229 _18d7
+_18d9 max _18d6 _18d8
+_18da sub _a5d _18d4
+_18db sub _22f _18d2
+_18dc max _18da _18db
+_18dd sub _18d7 _229
+_18de max _18dc _18dd
+_18df min _18d9 _18de
+_18e0 neg _18df
+_18e1 max _18d0 _18e0
+_18e2 sub _9 _18cf
+_18e3 max _18e1 _18e2
+_18e4 min _18ca _18e3
+_18e5 max _18d0 _18e4
+_18e6 min _18bf _18e5
+_18e7 const 0.987
+_18e8 add _18e7 _3
+_18e9 const 1.087
+_18ea add _18e9 _3
+_18eb neg _18ea
+_18ec max _18e8 _18eb
+_18ed max _18ec _17c8
+_18ee max _18ed _17ba
+_18ef min _18e6 _18ee
+_18f0 const 1.00286
+_18f1 add _18f0 _c2
+_18f2 const 1.55286
+_18f3 add _18f2 _c2
+_18f4 neg _18f3
+_18f5 max _18f1 _18f4
+_18f6 sub _e _42
+_18f7 square _18f6
+_18f8 const 1.25357
+_18f9 add _18f8 _cc
+_18fa square _18f9
+_18fb add _18f7 _18fa
+_18fc sqrt _18fb
+_18fd sub _c8 _18fc
+_18fe max _18f5 _18fd
+_18ff square _18f1
+_1900 add _18f7 _18ff
+_1901 sqrt _1900
+_1902 sub _1901 _d6
+_1903 max _18fe _1902
+_1904 max _1903 _17c8
+_1905 max _1904 _17ba
+_1906 min _18ef _1905
+_1907 const 1.187
+_1908 add _1907 _3
+_1909 const 1.287
+_190a add _1909 _3
+_190b neg _190a
+_190c max _1908 _190b
+_190d max _190c _17c8
+_190e max _190d _17ba
+_190f min _1906 _190e
+_1910 const 1.637
+_1911 add _1910 _3
+_1912 const 1.737
+_1913 add _1912 _3
+_1914 neg _1913
+_1915 max _1911 _1914
+_1916 sub _fc _e
+_1917 max _1915 _1916
+_1918 max _1917 _17ba
+_1919 min _190f _1918
+_191a max _1908 _1914
+_191b const 1.462
+_191c add _191b _3
+_191d square _191c
+_191e add _191d _17ad
+_191f sqrt _191e
+_1920 sub _9 _191f
+_1921 max _191a _1920
+_1922 sub _191f _15
+_1923 max _1921 _1922
+_1924 max _1923 _17c8
+_1925 max _1924 _17ac
+_1926 min _1919 _1925
+_1927 const 4.325
+_1928 sub _1927 _e
+_1929 const 1.587
+_192a add _1929 _3
+_192b max _1928 _192a
+_192c const 2.137
+_192d add _192c _3
+_192e neg _192d
+_192f max _192b _192e
+_1930 sub _e _3a
+_1931 square _1930
+_1932 square _192d
+_1933 add _1931 _1932
+_1934 sqrt _1933
+_1935 sub _9 _1934
+_1936 max _192f _1935
+_1937 sub _1934 _15
+_1938 max _1936 _1937
+_1939 max _1938 _1930
+_193a min _1926 _1939
+_193b const 5.9
+_193c sub _e _193b
+_193d const 5.8
+_193e sub _193d _e
+_193f max _193c _193e
+_1940 const 6.5305
+_1941 sub _3 _1940
+_1942 max _193f _1941
+_1943 const 6.0305
+_1944 sub _1943 _3
+_1945 max _1942 _1944
+_1946 min _193a _1945
+_1947 const 6.3305
+_1948 sub _3 _1947
+_1949 max _193e _1948
+_194a const 6.2305
+_194b sub _194a _3
+_194c max _1949 _194b
+_194d sub _e _be3
+_194e max _194c _194d
+_194f min _1946 _194e
+_1950 const 0.263484
+_1951 add _1950 _722
+_1952 sub _71f _1951
+_1953 const 2.94178
+_1954 sub _727 _1953
+_1955 max _1952 _1954
+_1956 const 3.05264
+_1957 sub _1956 _72a
+_1958 max _1955 _1957
+_1959 sub _72a _1956
+_195a sub _1953 _727
+_195b max _1959 _195a
+_195c sub _1951 _71f
+_195d max _195b _195c
+_195e min _1958 _195d
+_195f neg _195e
+_1960 const 6.075
+_1961 sub _e _1960
+_1962 square _1961
+_1963 const 5.0255
+_1964 sub _3 _1963
+_1965 square _1964
+_1966 add _1962 _1965
+_1967 sqrt _1966
+_1968 sub _9 _1967
+_1969 max _195f _1968
+_196a sub _1967 _15
+_196b max _1969 _196a
+_196c min _194f _196b
+_196d sub _e _cb5
+_196e max _193e _196d
+_196f const 4.6255
+_1970 sub _3 _196f
+_1971 max _196e _1970
+_1972 const 4.5255
+_1973 sub _1972 _3
+_1974 max _1971 _1973
+_1975 min _196c _1974
+_1976 sub _e _103d
+_1977 square _1976
+_1978 const 4.5755
+_1979 sub _3 _1978
+_197a square _1979
+_197b add _1977 _197a
+_197c sqrt _197b
+_197d sub _197c _1cc
+_197e min _1975 _197d
+_197f sub _1847 _e
+_1980 max _196d _197f
+_1981 const 4.4005
+_1982 sub _3 _1981
+_1983 max _1980 _1982
+_1984 const 4.3005
+_1985 sub _1984 _3
+_1986 max _1983 _1985
+_1987 min _197e _1986
+_1988 const 4.1255
+_1989 sub _3 _1988
+_198a square _1989
+_198b add _1962 _198a
+_198c sqrt _198b
+_198d sub _9 _198c
+_198e sub _198c _15
+_198f max _198d _198e
+_1990 min _1987 _198f
+_1991 const 5.425
+_1992 sub _1991 _e
+_1993 max _1982 _1992
+_1994 const 3.8505
+_1995 sub _1994 _3
+_1996 max _1993 _1995
+_1997 square _1848
+_1998 add _198a _1997
+_1999 sqrt _1998
+_199a sub _9 _1999
+_199b max _1996 _199a
+_199c sub _1999 _15
+_199d max _199b _199c
+_199e max _199d _1848
+_199f min _1990 _199e
+_19a0 const 4.242
+_19a1 add _19a0 _3
+_19a2 const 4.742
+_19a3 add _19a2 _3
+_19a4 neg _19a3
+_19a5 max _19a1 _19a4
+_19a6 max _19a5 _18c7
+_19a7 max _19a6 _18c9
+_19a8 const 4.517
+_19a9 add _19a8 _3
+_19aa square _19a9
+_19ab add _19aa _17ad
+_19ac sqrt _19ab
+_19ad sub _19ac _15
+_19ae const 1.8578
+_19af add _19ae _22c
+_19b0 sub _19af _22f
+_19b1 const 1.1972
+_19b2 sub _19b1 _a5d
+_19b3 max _19b0 _19b2
+_19b4 max _19b3 _18d8
+_19b5 sub _a5d _19b1
+_19b6 sub _22f _19af
+_19b7 max _19b5 _19b6
+_19b8 max _19b7 _18dd
+_19b9 min _19b4 _19b8
+_19ba neg _19b9
+_19bb max _19ad _19ba
+_19bc sub _9 _19ac
+_19bd max _19bb _19bc
+_19be min _19a7 _19bd
+_19bf max _19ad _19be
+_19c0 min _199f _19bf
+_19c1 const 5.15
+_19c2 add _19c1 _3
+_19c3 add _17b9 _3
+_19c4 neg _19c3
+_19c5 max _19c2 _19c4
+_19c6 max _19c5 _17c8
+_19c7 max _19c6 _17ba
+_19c8 min _19c0 _19c7
+_19c9 const 6.95
+_19ca add _19c9 _c2
+_19cb const 7.5
+_19cc add _19cb _c2
+_19cd neg _19cc
+_19ce max _19ca _19cd
+_19cf const 8.6875
+_19d0 add _19cf _cc
+_19d1 square _19d0
+_19d2 add _18f7 _19d1
+_19d3 sqrt _19d2
+_19d4 sub _c8 _19d3
+_19d5 max _19ce _19d4
+_19d6 square _19ca
+_19d7 add _18f7 _19d6
+_19d8 sqrt _19d7
+_19d9 sub _19d8 _d6
+_19da max _19d5 _19d9
+_19db max _19da _17c8
+_19dc max _19db _17ba
+_19dd min _19c8 _19dc
+_19de const 5.35
+_19df add _19de _3
+_19e0 const 5.85
+_19e1 add _19e0 _3
+_19e2 neg _19e1
+_19e3 max _19df _19e2
+_19e4 max _19e3 _18c7
+_19e5 max _19e4 _18c9
+_19e6 const 5.625
+_19e7 add _19e6 _3
+_19e8 square _19e7
+_19e9 add _19e8 _17ad
+_19ea sqrt _19e9
+_19eb sub _19ea _15
+_19ec const 2.1625
+_19ed add _19ec _22c
+_19ee sub _19ed _22f
+_19ef const 0.8925
+_19f0 sub _19ef _a5d
+_19f1 max _19ee _19f0
+_19f2 max _19f1 _18d8
+_19f3 sub _a5d _19ef
+_19f4 sub _22f _19ed
+_19f5 max _19f3 _19f4
+_19f6 max _19f5 _18dd
+_19f7 min _19f2 _19f6
+_19f8 neg _19f7
+_19f9 max _19eb _19f8
+_19fa sub _9 _19ea
+_19fb max _19f9 _19fa
+_19fc min _19e5 _19fb
+_19fd max _19eb _19fc
+_19fe min _19dd _19fd
+_19ff const 6.05
+_1a00 add _19ff _3
+_1a01 const 6.15
+_1a02 add _1a01 _3
+_1a03 neg _1a02
+_1a04 max _1a00 _1a03
+_1a05 max _1a04 _17c8
+_1a06 max _1a05 _17ac
+_1a07 min _19fe _1a06
+_1a08 max _103e _1042
+_1a09 max _1a08 _1848
+_1a0a max _1a09 _17c8
+_1a0b min _1a07 _1a0a
+_1a0c max _1042 _1a00
+_1a0d add _73b _17ad
+_1a0e sqrt _1a0d
+_1a0f sub _9 _1a0e
+_1a10 max _1a0c _1a0f
+_1a11 sub _1a0e _15
+_1a12 max _1a10 _1a11
+_1a13 max _1a12 _1916
+_1a14 max _1a13 _17ba
+_1a15 min _1a0b _1a14
+_1a16 const 6.7
+_1a17 sub _1a16 _e
+_1a18 max _194d _1a17
+_1a19 max _1a18 _1941
+_1a1a max _1a19 _1944
+_1a1b min _1a15 _1a1a
+_1a1c const 0.9705
+_1a1d sub _3 _1a1c
+_1a1e max _1980 _1a1d
+_1a1f const 0.8705
+_1a20 sub _1a1f _3
+_1a21 max _1a1e _1a20
+_1a22 min _1a1b _1a21
+_1a23 const 0.695499
+_1a24 sub _3 _1a23
+_1a25 square _1a24
+_1a26 add _1962 _1a25
+_1a27 sqrt _1a26
+_1a28 sub _9 _1a27
+_1a29 sub _1a27 _15
+_1a2a max _1a28 _1a29
+_1a2b min _1a22 _1a2a
+_1a2c max _1992 _1a1d
+_1a2d const 0.4205
+_1a2e sub _1a2d _3
+_1a2f max _1a2c _1a2e
+_1a30 add _1997 _1a25
+_1a31 sqrt _1a30
+_1a32 sub _9 _1a31
+_1a33 max _1a2f _1a32
+_1a34 sub _1a31 _15
+_1a35 max _1a33 _1a34
+_1a36 max _1a35 _1848
+_1a37 min _1a2b _1a36
+_1a38 const 0.320499
+_1a39 sub _3 _1a38
+_1a3a max _196e _1a39
+_1a3b const 0.220499
+_1a3c sub _1a3b _3
+_1a3d max _1a3a _1a3c
+_1a3e min _1a37 _1a3d
+_1a3f const 0.129501
+_1a40 add _1a3f _3
+_1a41 max _196d _1a40
+_1a42 const 0.229501
+_1a43 add _1a42 _3
+_1a44 neg _1a43
+_1a45 max _1a41 _1a44
+_1a46 sub _1960 _e
+_1a47 max _1a45 _1a46
+_1a48 min _1a3e _1a47
+_1a49 max _193e _1961
+_1a4a max _1a49 _1a39
+_1a4b max _1a4a _1a44
+_1a4c const 0.0454988
+_1a4d sub _3 _1a4c
+_1a4e square _1a4d
+_1a4f add _1962 _1a4e
+_1a50 sqrt _1a4f
+_1a51 sub _9 _1a50
+_1a52 max _1a4b _1a51
+_1a53 sub _1a50 _15
+_1a54 max _1a52 _1a53
+_1a55 min _1a48 _1a54
+_1a56 const 0.604501
+_1a57 add _1a56 _3
+_1a58 square _1a57
+_1a59 add _1962 _1a58
+_1a5a sqrt _1a59
+_1a5b sub _9 _1a5a
+_1a5c sub _1a5a _15
+_1a5d max _1a5b _1a5c
+_1a5e min _1a55 _1a5d
+_1a5f const 1.2375
+_1a60 add _1a5f _3
+_1a61 max _196e _1a60
+_1a62 const 1.3375
+_1a63 add _1a62 _3
+_1a64 neg _1a63
+_1a65 max _1a61 _1a64
+_1a66 min _1a5e _1a65
+_1a67 const 1.36071
+_1a68 add _1a67 _c2
+_1a69 max _196e _1a68
+_1a6a const 1.91072
+_1a6b add _1a6a _c2
+_1a6c neg _1a6b
+_1a6d max _1a69 _1a6c
+_1a6e sub _e _193d
+_1a6f square _1a6e
+_1a70 const 1.70089
+_1a71 add _1a70 _cc
+_1a72 square _1a71
+_1a73 add _1a6f _1a72
+_1a74 sqrt _1a73
+_1a75 sub _c8 _1a74
+_1a76 max _1a6d _1a75
+_1a77 square _1a68
+_1a78 add _1a6f _1a77
+_1a79 sqrt _1a78
+_1a7a sub _1a79 _d6
+_1a7b max _1a76 _1a7a
+_1a7c min _1a66 _1a7b
+_1a7d sub _e _1a01
+_1a7e max _193e _1a7d
+_1a7f const 3.7305
+_1a80 sub _3 _1a7f
+_1a81 max _1a7e _1a80
+_1a82 const 3.6305
+_1a83 sub _1a82 _3
+_1a84 max _1a81 _1a83
+_1a85 min _1a7c _1a84
+_1a86 const 1.71336
+_1a87 add _1a86 _5d7
+_1a88 sub _3 _1a87
+_1a89 square _1a88
+_1a8a add _1962 _1a89
+_1a8b sqrt _1a8a
+_1a8c sub _9 _1a8b
+_1a8d sub _1a8b _15
+_1a8e max _1a8c _1a8d
+_1a8f min _1a85 _1a8e
+_1a90 const 3.0705
+_1a91 sub _3 _1a90
+_1a92 max _1a7e _1a91
+_1a93 sub _ded _3
+_1a94 max _1a92 _1a93
+_1a95 min _1a8f _1a94
+_1a96 const 2.8205
+_1a97 sub _3 _1a96
+_1a98 max _1a7e _1a97
+_1a99 const 2.7205
+_1a9a sub _1a99 _3
+_1a9b max _1a98 _1a9a
+_1a9c min _1a95 _1a9b
+_1a9d const 6.325
+_1a9e sub _e _1a9d
+_1a9f max _193e _1a9e
+_1aa0 const 2.5705
+_1aa1 sub _3 _1aa0
+_1aa2 max _1a9f _1aa1
+_1aa3 const 2.4705
+_1aa4 sub _1aa3 _3
+_1aa5 max _1aa2 _1aa4
+_1aa6 min _1a9c _1aa5
+_1aa7 const 6.45
+_1aa8 sub _e _1aa7
+_1aa9 max _1aa4 _1aa8
+_1aaa sub _1a01 _e
+_1aab max _1aa9 _1aaa
+_1aac const 3.1205
+_1aad sub _3 _1aac
+_1aae max _1aab _1aad
+_1aaf square _1a7d
+_1ab0 const 2.8955
+_1ab1 sub _3 _1ab0
+_1ab2 square _1ab1
+_1ab3 add _1aaf _1ab2
+_1ab4 sqrt _1ab3
+_1ab5 sub _1cc _1ab4
+_1ab6 sub _1ab4 _9
+_1ab7 max _1ab5 _1ab6
+_1ab8 const 2.6455
+_1ab9 sub _3 _1ab8
+_1aba square _1ab9
+_1abb add _1aaf _1aba
+_1abc sqrt _1abb
+_1abd sub _1cc _1abc
+_1abe sub _1abc _9
+_1abf max _1abd _1abe
+_1ac0 min _1ab7 _1abf
+_1ac1 max _1aae _1ac0
+_1ac2 min _1aa6 _1ac1
+_1ac3 const 1.6205
+_1ac4 sub _3 _1ac3
+_1ac5 max _1a49 _1ac4
+_1ac6 const 1.5205
+_1ac7 sub _1ac6 _3
+_1ac8 max _1ac5 _1ac7
+_1ac9 min _1ac2 _1ac8
+_1aca max _193e _194d
+_1acb const 1.1705
+_1acc sub _3 _1acb
+_1acd max _1aca _1acc
+_1ace const 1.0705
+_1acf sub _1ace _3
+_1ad0 max _1acd _1acf
+_1ad1 min _1ac9 _1ad0
+_1ad2 max _196d _1ac4
+_1ad3 max _1ad2 _1acf
+_1ad4 max _1ad3 _1a46
+_1ad5 const 1.3455
+_1ad6 sub _3 _1ad5
+_1ad7 square _1ad6
+_1ad8 add _1962 _1ad7
+_1ad9 sqrt _1ad8
+_1ada sub _9 _1ad9
+_1adb max _1ad4 _1ada
+_1adc sub _1ad9 _15
+_1add max _1adb _1adc
+_1ade min _1ad1 _1add
+_1adf const 3.825
+_1ae0 sub _1adf _e
+_1ae1 const 6.4085
+_1ae2 sub _3 _1ae1
+_1ae3 max _1ae0 _1ae2
+_1ae4 const 5.9085
+_1ae5 sub _1ae4 _3
+_1ae6 max _1ae3 _1ae5
+_1ae7 const 3.915
+_1ae8 sub _e _1ae7
+_1ae9 max _1ae6 _1ae8
+_1aea const 2.51875
+_1aeb sub _229 _1aea
+_1aec const 1.23609
+_1aed add _22f _1aec
+_1aee sub _22c _1aed
+_1aef max _1aeb _1aee
+_1af0 const 3.57609
+_1af1 sub _1af0 _a5d
+_1af2 max _1aef _1af1
+_1af3 sub _a5d _1af0
+_1af4 sub _1aed _22c
+_1af5 max _1af3 _1af4
+_1af6 sub _1aea _229
+_1af7 max _1af5 _1af6
+_1af8 min _1af2 _1af7
+_1af9 neg _1af8
+_1afa const 3.875
+_1afb sub _e _1afa
+_1afc square _1afb
+_1afd const 6.1335
+_1afe sub _3 _1afd
+_1aff square _1afe
+_1b00 add _1afc _1aff
+_1b01 sqrt _1b00
+_1b02 sub _9 _1b01
+_1b03 max _1af9 _1b02
+_1b04 sub _1b01 _15
+_1b05 max _1b03 _1b04
+_1b06 min _1ae9 _1b05
+_1b07 max _1b06 _1b04
+_1b08 min _1ade _1b07
+_1b09 const 3.95
+_1b0a sub _e _1b09
+_1b0b const 3.6
+_1b0c sub _1b0b _e
+_1b0d max _1b0a _1b0c
+_1b0e const 5.7585
+_1b0f sub _3 _1b0e
+_1b10 max _1b0d _1b0f
+_1b11 const 5.6585
+_1b12 sub _1b11 _3
+_1b13 max _1b10 _1b12
+_1b14 min _1b08 _1b13
+_1b15 const 5.5085
+_1b16 sub _3 _1b15
+_1b17 max _1b0d _1b16
+_1b18 const 5.4085
+_1b19 sub _1b18 _3
+_1b1a max _1b17 _1b19
+_1b1b min _1b14 _1b1a
+_1b1c const 4.125
+_1b1d sub _e _1b1c
+_1b1e max _1b0c _1b1d
+_1b1f const 5.2585
+_1b20 sub _3 _1b1f
+_1b21 max _1b1e _1b20
+_1b22 const 5.1585
+_1b23 sub _1b22 _3
+_1b24 max _1b21 _1b23
+_1b25 min _1b1b _1b24
+_1b26 const 4.25
+_1b27 sub _e _1b26
+_1b28 max _1b23 _1b27
+_1b29 const 3.95
+_1b2a sub _1b29 _e
+_1b2b max _1b28 _1b2a
+_1b2c const 5.8085
+_1b2d sub _3 _1b2c
+_1b2e max _1b2b _1b2d
+_1b2f square _1b0a
+_1b30 const 5.5835
+_1b31 sub _3 _1b30
+_1b32 square _1b31
+_1b33 add _1b2f _1b32
+_1b34 sqrt _1b33
+_1b35 sub _1cc _1b34
+_1b36 sub _1b34 _9
+_1b37 max _1b35 _1b36
+_1b38 const 5.3335
+_1b39 sub _3 _1b38
+_1b3a square _1b39
+_1b3b add _1b2f _1b3a
+_1b3c sqrt _1b3b
+_1b3d sub _1cc _1b3c
+_1b3e sub _1b3c _9
+_1b3f max _1b3d _1b3e
+_1b40 min _1b37 _1b3f
+_1b41 max _1b2e _1b40
+_1b42 min _1b25 _1b41
+_1b43 max _116c _1411
+_1b44 neg _1416
+_1b45 max _1b43 _1b44
+_1b46 min _1b42 _1b45
+_1b47 max _1170 _1b44
+_1b48 const 2.466
+_1b49 add _83 _1b48
+_1b4a add _1b49 _7f
+_1b4b max _1b47 _1b4a
+_1b4c min _1b46 _1b4b
+_1b4d max _1179 _1416
+_1b4e neg _1b4a
+_1b4f max _1b4d _1b4e
+_1b50 min _1b4c _1b4f
+_1b51 const 6.09
+_1b52 add _1b51 _3
+_1b53 max _1343 _1b52
+_1b54 const 6.19
+_1b55 add _1b54 _3
+_1b56 neg _1b55
+_1b57 max _1b53 _1b56
+_1b58 min _1b50 _1b57
+_1b59 const 7.16429
+_1b5a add _1b59 _3
+_1b5b sub _1b5a _5d7
+_1b5c square _1b5b
+_1b5d add _1144 _1b5c
+_1b5e sqrt _1b5d
+_1b5f sub _9 _1b5e
+_1b60 sub _1b5e _15
+_1b61 max _1b5f _1b60
+_1b62 min _1b58 _1b61
+_1b63 max _1139 _11be
+_1b64 neg _14e2
+_1b65 max _1b63 _1b64
+_1b66 add _11d5 _1144
+_1b67 sqrt _1b66
+_1b68 sub _1b67 _15
+_1b69 const 2.2175
+_1b6a add _1b69 _22c
+_1b6b sub _1b6a _22f
+_1b6c max _1149 _1b6b
+_1b6d const 0.5925
+_1b6e add _1b6d _22c
+_1b6f add _1b6e _236
+_1b70 neg _1b6f
+_1b71 max _1b6c _1b70
+_1b72 const 0.5925
+_1b73 add _1b72 _22c
+_1b74 add _1b73 _236
+_1b75 max _1154 _1b74
+_1b76 sub _22f _1b6a
+_1b77 max _1b75 _1b76
+_1b78 min _1b71 _1b77
+_1b79 neg _1b78
+_1b7a max _1b68 _1b79
+_1b7b sub _9 _1b67
+_1b7c max _1b7a _1b7b
+_1b7d min _1b65 _1b7c
+_1b7e max _1b68 _1b7d
+_1b7f min _1b62 _1b7e
+_1b80 max _ade _11e4
+_1b81 max _1b80 _1143
+_1b82 const 7.55
+_1b83 add _1b82 _3
+_1b84 neg _1b83
+_1b85 max _1b81 _1b84
+_1b86 min _1b7f _1b85
+_1b87 const 7.9
+_1b88 add _1b87 _3
+_1b89 max _12a7 _1b88
+_1b8a const 8
+_1b8b add _1b8a _3
+_1b8c neg _1b8b
+_1b8d max _1b89 _1b8c
+_1b8e min _1b86 _1b8d
+_1b8f max _ade _11ee
+_1b90 max _1b8f _1221
+_1b91 max _1b90 _1b8c
+_1b92 add _ae6 _1144
+_1b93 sqrt _1b92
+_1b94 sub _9 _1b93
+_1b95 max _1b91 _1b94
+_1b96 sub _1b93 _15
+_1b97 max _1b95 _1b96
+_1b98 min _1b8e _1b97
+_1b99 max _1b0c _1930
+_1b9a const 2.121
+_1b9b sub _1b9a _3
+_1b9c max _1b99 _1b9b
+_1b9d const 2.846
+_1b9e sub _3 _1b9d
+_1b9f max _1b9c _1b9e
+_1ba0 const 2.846
+_1ba1 sub _1ba0 _3
+_1ba2 square _1ba1
+_1ba3 add _1afc _1ba2
+_1ba4 sqrt _1ba3
+_1ba5 sub _9 _1ba4
+_1ba6 max _1b9f _1ba5
+_1ba7 sub _1ba4 _15
+_1ba8 max _1ba6 _1ba7
+_1ba9 min _1b98 _1ba8
+_1baa max _1ae0 _1ae8
+_1bab const 2.496
+_1bac sub _3 _1bab
+_1bad max _1baa _1bac
+_1bae const 1.996
+_1baf sub _1bae _3
+_1bb0 max _1bad _1baf
+_1bb1 const 2.221
+_1bb2 sub _3 _1bb1
+_1bb3 square _1bb2
+_1bb4 add _1afc _1bb3
+_1bb5 sqrt _1bb4
+_1bb6 sub _1bb5 _15
+_1bb7 const 0.16015
+_1bb8 add _1bb7 _22f
+_1bb9 sub _22c _1bb8
+_1bba max _1aeb _1bb9
+_1bbb const 2.50015
+_1bbc sub _1bbb _a5d
+_1bbd max _1bba _1bbc
+_1bbe sub _a5d _1bbb
+_1bbf max _1af6 _1bbe
+_1bc0 sub _1bb8 _22c
+_1bc1 max _1bbf _1bc0
+_1bc2 min _1bbd _1bc1
+_1bc3 neg _1bc2
+_1bc4 max _1bb6 _1bc3
+_1bc5 sub _9 _1bb5
+_1bc6 max _1bc4 _1bc5
+_1bc7 min _1bb0 _1bc6
+_1bc8 max _1bb6 _1bc7
+_1bc9 min _1ba9 _1bc8
+_1bca const 1.588
+_1bcb sub _3 _1bca
+_1bcc max _1b0c _1bcb
+_1bcd const 1.488
+_1bce sub _1bcd _3
+_1bcf max _1bcc _1bce
+_1bd0 const 4.15
+_1bd1 sub _e _1bd0
+_1bd2 max _1bcf _1bd1
+_1bd3 min _1bc9 _1bd2
+_1bd4 const 2.67571
+_1bd5 sub _c2 _1bd4
+_1bd6 max _1b0c _1bd5
+_1bd7 const 2.12571
+_1bd8 sub _1bd7 _c2
+_1bd9 max _1bd6 _1bd8
+_1bda sub _e _1b0b
+_1bdb square _1bda
+_1bdc const 3.34464
+_1bdd sub _cc _1bdc
+_1bde square _1bdd
+_1bdf add _1bdb _1bde
+_1be0 sqrt _1bdf
+_1be1 sub _c8 _1be0
+_1be2 max _1bd9 _1be1
+_1be3 square _1bd5
+_1be4 add _1bdb _1be3
+_1be5 sqrt _1be4
+_1be6 sub _1be5 _d6
+_1be7 max _1be2 _1be6
+_1be8 max _1be7 _1bd1
+_1be9 min _1bd3 _1be8
+_1bea const 1.363
+_1beb sub _3 _1bea
+_1bec max _1b0c _1beb
+_1bed const 1.263
+_1bee sub _1bed _3
+_1bef max _1bec _1bee
+_1bf0 max _1bef _1bd1
+_1bf1 min _1be9 _1bf0
+_1bf2 const 4.3
+_1bf3 sub _e _1bf2
+_1bf4 square _1bf3
+_1bf5 const 1.313
+_1bf6 sub _3 _1bf5
+_1bf7 square _1bf6
+_1bf8 add _1bf4 _1bf7
+_1bf9 sqrt _1bf8
+_1bfa sub _1bf9 _1cc
+_1bfb min _1bf1 _1bfa
+_1bfc const 1.138
+_1bfd sub _3 _1bfc
+_1bfe max _1b0c _1bfd
+_1bff const 1.038
+_1c00 sub _1bff _3
+_1c01 max _1bfe _1c00
+_1c02 max _1c01 _1bd1
+_1c03 min _1bfb _1c02
+_1c04 const 4.7835
+_1c05 sub _3 _1c04
+_1c06 square _1c05
+_1c07 add _1c06 _1afc
+_1c08 sqrt _1c07
+_1c09 sub _1c08 _15
+_1c0a sub _9 _1c08
+_1c0b max _1c09 _1c0a
+_1c0c min _1c03 _1c0b
+_1c0d const 3.9875
+_1c0e sub _e _1c0d
+_1c0f max _1ae0 _1c0e
+_1c10 const 2.7765
+_1c11 sub _1c10 _104
+_1c12 max _1c0f _1c11
+_1c13 const 2.939
+_1c14 sub _104 _1c13
+_1c15 max _1c12 _1c14
+_1c16 const 3.985
+_1c17 sub _1c16 _e
+_1c18 square _1c17
+_1c19 const 1.84933
+_1c1a sub _1c19 _f1
+_1c1b square _1c1a
+_1c1c add _1c18 _1c1b
+_1c1d sqrt _1c1c
+_1c1e sub _1c1d _fa
+_1c1f min _1c15 _1c1e
+_1c20 neg _1c1f
+_1c21 sub _1c0d _e
+_1c22 square _1c21
+_1c23 square _1c11
+_1c24 add _1c22 _1c23
+_1c25 sqrt _1c24
+_1c26 sub _1c25 _113
+_1c27 max _1c20 _1c26
+_1c28 min _1c0c _1c27
+_1c29 const 3.925
+_1c2a sub _e _1c29
+_1c2b const 3.7625
+_1c2c sub _1c2b _e
+_1c2d max _1c2a _1c2c
+_1c2e const 2.7765
+_1c2f sub _104 _1c2e
+_1c30 max _1c2d _1c2f
+_1c31 const 2.614
+_1c32 sub _1c31 _104
+_1c33 max _1c30 _1c32
+_1c34 const 3.765
+_1c35 sub _e _1c34
+_1c36 square _1c35
+_1c37 const 1.85267
+_1c38 sub _f1 _1c37
+_1c39 square _1c38
+_1c3a add _1c36 _1c39
+_1c3b sqrt _1c3a
+_1c3c sub _1c3b _fa
+_1c3d min _1c33 _1c3c
+_1c3e neg _1c3d
+_1c3f sub _e _1c2b
+_1c40 square _1c3f
+_1c41 square _1c2f
+_1c42 add _1c40 _1c41
+_1c43 sqrt _1c42
+_1c44 sub _1c43 _113
+_1c45 max _1c3e _1c44
+_1c46 min _1c28 _1c45
+_1c47 const 3.021
+_1c48 sub _1c47 _3
+_1c49 max _1b99 _1c48
+_1c4a const 3.121
+_1c4b sub _3 _1c4a
+_1c4c max _1c49 _1c4b
+_1c4d min _1c46 _1c4c
+_1c4e const 4.05
+_1c4f sub _1c4e _e
+_1c50 max _1bd1 _1c4f
+_1c51 max _1c50 _1ba1
+_1c52 const 3.021
+_1c53 sub _3 _1c52
+_1c54 max _1c51 _1c53
+_1c55 min _1c4d _1c54
+_1c56 max _1b0c _1ba1
+_1c57 max _1c56 _1c53
+_1c58 const 3.7
+_1c59 sub _e _1c58
+_1c5a max _1c57 _1c59
+_1c5b min _1c55 _1c5a
+_1c5c max _1b0c _1bd1
+_1c5d const 1.12143
+_1c5e add _1c5d _c2
+_1c5f max _1c5c _1c5e
+_1c60 const 1.67143
+_1c61 add _1c60 _c2
+_1c62 neg _1c61
+_1c63 max _1c5f _1c62
+_1c64 const 1.40179
+_1c65 add _1c64 _cc
+_1c66 square _1c65
+_1c67 add _1bdb _1c66
+_1c68 sqrt _1c67
+_1c69 sub _c8 _1c68
+_1c6a max _1c63 _1c69
+_1c6b square _1c5e
+_1c6c add _1bdb _1c6b
+_1c6d sqrt _1c6c
+_1c6e sub _1c6d _d6
+_1c6f max _1c6a _1c6e
+_1c70 min _1c5b _1c6f
+_1c71 const 1.97
+_1c72 add _1c71 _3
+_1c73 max _1baa _1c72
+_1c74 const 2.47
+_1c75 add _1c74 _3
+_1c76 neg _1c75
+_1c77 max _1c73 _1c76
+_1c78 const 2.245
+_1c79 add _1c78 _3
+_1c7a square _1c79
+_1c7b add _1afc _1c7a
+_1c7c sqrt _1c7b
+_1c7d sub _1c7c _15
+_1c7e const 1.068
+_1c7f add _1c7e _22c
+_1c80 sub _1c7f _22f
+_1c81 max _1aeb _1c80
+_1c82 const 1.272
+_1c83 sub _1c82 _a5d
+_1c84 max _1c81 _1c83
+_1c85 sub _a5d _1c82
+_1c86 max _1af6 _1c85
+_1c87 sub _22f _1c7f
+_1c88 max _1c86 _1c87
+_1c89 min _1c84 _1c88
+_1c8a neg _1c89
+_1c8b max _1c7d _1c8a
+_1c8c sub _9 _1c7c
+_1c8d max _1c8b _1c8c
+_1c8e min _1c77 _1c8d
+_1c8f max _1c7d _1c8e
+_1c90 min _1c70 _1c8f
+_1c91 const 0.36
+_1c92 sub _1c91 _98
+_1c93 const 2.4785
+_1c94 add _1c93 _7f
+_1c95 sub _1c94 _83
+_1c96 max _1c92 _1c95
+_1c97 const 2.8935
+_1c98 add _1c97 _7f
+_1c99 sub _7c _1c98
+_1c9a max _1c96 _1c99
+_1c9b min _1c90 _1c9a
+_1c9c sub _1c98 _7c
+_1c9d sub _83 _1c94
+_1c9e max _1c9c _1c9d
+_1c9f sub _98 _1c91
+_1ca0 max _1c9e _1c9f
+_1ca1 min _1c9b _1ca0
+_1ca2 const 0.415
+_1ca3 sub _89 _1ca2
+_1ca4 max _1c9c _1ca3
+_1ca5 const 2.5335
+_1ca6 add _1ca5 _7f
+_1ca7 sub _83 _1ca6
+_1ca8 max _1ca4 _1ca7
+_1ca9 min _1ca1 _1ca8
+_1caa sub _1ca6 _83
+_1cab max _1c99 _1caa
+_1cac sub _1ca2 _89
+_1cad max _1cab _1cac
+_1cae min _1ca9 _1cad
+_1caf const 0.7335
+_1cb0 add _1caf _83
+_1cb1 add _1cb0 _7f
+_1cb2 neg _1cb1
+_1cb3 max _1c92 _1cb2
+_1cb4 const 0.318501
+_1cb5 add _1cb4 _7c
+_1cb6 add _1cb5 _7f
+_1cb7 max _1cb3 _1cb6
+_1cb8 min _1cae _1cb7
+_1cb9 max _1c9f _1cb1
+_1cba neg _1cb6
+_1cbb max _1cb9 _1cba
+_1cbc min _1cb8 _1cbb
+_1cbd max _1ca3 _1cba
+_1cbe const 0.6785
+_1cbf add _1cbe _83
+_1cc0 add _1cbf _7f
+_1cc1 max _1cbd _1cc0
+_1cc2 min _1cbc _1cc1
+_1cc3 max _1cac _1cb6
+_1cc4 neg _1cc0
+_1cc5 max _1cc3 _1cc4
+_1cc6 min _1cc2 _1cc5
+_1cc7 const 3.34
+_1cc8 add _1cc7 _3
+_1cc9 max _1b0d _1cc8
+_1cca const 3.44
+_1ccb add _1cca _3
+_1ccc neg _1ccb
+_1ccd max _1cc9 _1ccc
+_1cce min _1cc6 _1ccd
+_1ccf const 3.875
+_1cd0 sub _1ccf _e
+_1cd1 const 0.688
+_1cd2 sub _3 _1cd1
+_1cd3 max _1cd0 _1cd2
+_1cd4 const 0.587999
+_1cd5 sub _1cd4 _3
+_1cd6 max _1cd3 _1cd5
+_1cd7 max _1cd6 _1bd1
+_1cd8 min _1cce _1cd7
+_1cd9 max _1b0c _1afb
+_1cda max _1cd9 _1bfd
+_1cdb max _1cda _1cd5
+_1cdc const 0.862999
+_1cdd sub _3 _1cdc
+_1cde square _1cdd
+_1cdf add _1afc _1cde
+_1ce0 sqrt _1cdf
+_1ce1 sub _9 _1ce0
+_1ce2 max _1cdb _1ce1
+_1ce3 sub _1ce0 _15
+_1ce4 max _1ce2 _1ce3
+_1ce5 min _1cd8 _1ce4
+_1ce6 const 3.225
+_1ce7 sub _1ce6 _e
+_1ce8 max _1bd1 _1ce7
+_1ce9 const 0.487999
+_1cea sub _3 _1ce9
+_1ceb max _1ce8 _1cea
+_1cec const 0.387999
+_1ced sub _1cec _3
+_1cee max _1ceb _1ced
+_1cef min _1ce5 _1cee
+_1cf0 const 0.212998
+_1cf1 sub _3 _1cf0
+_1cf2 square _1cf1
+_1cf3 add _1afc _1cf2
+_1cf4 sqrt _1cf3
+_1cf5 sub _9 _1cf4
+_1cf6 sub _1cf4 _15
+_1cf7 max _1cf5 _1cf6
+_1cf8 min _1cef _1cf7
+_1cf9 const 0.162001
+_1cfa add _1cf9 _3
+_1cfb max _1baa _1cfa
+_1cfc const 0.662001
+_1cfd add _1cfc _3
+_1cfe neg _1cfd
+_1cff max _1cfb _1cfe
+_1d00 const 0.437001
+_1d01 add _1d00 _3
+_1d02 square _1d01
+_1d03 add _1afc _1d02
+_1d04 sqrt _1d03
+_1d05 sub _1d04 _15
+_1d06 const 0.5708
+_1d07 add _1d06 _22c
+_1d08 sub _1d07 _22f
+_1d09 max _1aeb _1d08
+_1d0a const 1.7692
+_1d0b sub _1d0a _a5d
+_1d0c max _1d09 _1d0b
+_1d0d sub _a5d _1d0a
+_1d0e max _1af6 _1d0d
+_1d0f sub _22f _1d07
+_1d10 max _1d0e _1d0f
+_1d11 min _1d0c _1d10
+_1d12 neg _1d11
+_1d13 max _1d05 _1d12
+_1d14 sub _9 _1d04
+_1d15 max _1d13 _1d14
+_1d16 min _1cff _1d15
+_1d17 max _1d05 _1d16
+_1d18 min _1cf8 _1d17
+_1d19 const 1.07
+_1d1a add _1d19 _3
+_1d1b max _1c5c _1d1a
+_1d1c const 1.17
+_1d1d add _1d1c _3
+_1d1e neg _1d1d
+_1d1f max _1d1b _1d1e
+_1d20 min _1d18 _1d1f
+_1d21 const 0.986526
+_1d22 add _1d21 _22f
+_1d23 sub _22c _1d22
+_1d24 max _18d8 _1d23
+_1d25 const 4.04153
+_1d26 sub _1d25 _a5d
+_1d27 max _1d24 _1d26
+_1d28 sub _a5d _1d25
+_1d29 sub _1d22 _22c
+_1d2a max _1d28 _1d29
+_1d2b max _1d2a _18dd
+_1d2c min _1d27 _1d2b
+_1d2d neg _1d2c
+_1d2e const 5.826
+_1d2f sub _3 _1d2e
+_1d30 square _1d2f
+_1d31 add _17ad _1d30
+_1d32 sqrt _1d31
+_1d33 sub _9 _1d32
+_1d34 max _1d2d _1d33
+_1d35 sub _1d32 _15
+_1d36 max _1d34 _1d35
+_1d37 max _18c7 _18c9
+_1d38 const 6.101
+_1d39 sub _3 _1d38
+_1d3a max _1d37 _1d39
+_1d3b const 5.601
+_1d3c sub _1d3b _3
+_1d3d max _1d3a _1d3c
+_1d3e min _1d36 _1d3d
+_1d3f max _1d3e _1d35
+_1d40 min _1d20 _1d3f
+_1d41 const 5.401
+_1d42 sub _3 _1d41
+_1d43 const 5.301
+_1d44 sub _1d43 _3
+_1d45 max _1d42 _1d44
+_1d46 max _1d45 _17c8
+_1d47 max _1d46 _17ac
+_1d48 min _1d40 _1d47
+_1d49 const 4.951
+_1d4a sub _3 _1d49
+_1d4b max _1848 _1d4a
+_1d4c const 4.851
+_1d4d sub _1d4c _3
+_1d4e max _1d4b _1d4d
+_1d4f max _1d4e _17c8
+_1d50 min _1d48 _1d4f
+_1d51 max _1d42 _1d4d
+_1d52 max _1d51 _1916
+_1d53 const 5.126
+_1d54 sub _3 _1d53
+_1d55 square _1d54
+_1d56 add _1d55 _17ad
+_1d57 sqrt _1d56
+_1d58 sub _9 _1d57
+_1d59 max _1d52 _1d58
+_1d5a sub _1d57 _15
+_1d5b max _1d59 _1d5a
+_1d5c max _1d5b _17ba
+_1d5d min _1d50 _1d5c
+_1d5e const 1.30055
+_1d5f add _1d5e _83
+_1d60 sub _7f _1d5f
+_1d61 max _1816 _1d60
+_1d62 const 0.775551
+_1d63 add _1d62 _7c
+_1d64 sub _1d63 _7f
+_1d65 max _1d61 _1d64
+_1d66 min _1d5d _1d65
+_1d67 sub _7f _1d63
+_1d68 const 1.30055
+_1d69 add _1d68 _83
+_1d6a sub _1d69 _7f
+_1d6b max _1d67 _1d6a
+_1d6c max _1d6b _181c
+_1d6d min _1d66 _1d6c
+_1d6e max _1d67 _1823
+_1d6f const 1.24555
+_1d70 add _1d6f _83
+_1d71 sub _1d70 _7f
+_1d72 max _1d6e _1d71
+_1d73 min _1d6d _1d72
+_1d74 const 1.24555
+_1d75 add _1d74 _83
+_1d76 sub _7f _1d75
+_1d77 max _1d64 _1d76
+_1d78 max _1d77 _1806
+_1d79 min _1d73 _1d78
+_1d7a const 3.59555
+_1d7b sub _1d7a _117d
+_1d7c max _1816 _1d7b
+_1d7d max _1d7c _1808
+_1d7e min _1d79 _1d7d
+_1d7f sub _1807 _1180
+_1d80 max _181c _1d7f
+_1d81 sub _117d _1d7a
+_1d82 max _1d80 _1d81
+_1d83 min _1d7e _1d82
+_1d84 max _1823 _1d7f
+_1d85 sub _117d _180a
+_1d86 max _1d84 _1d85
+_1d87 min _1d83 _1d86
+_1d88 const 4.72857
+_1d89 add _1d88 _3
+_1d8a sub _1d89 _5d7
+_1d8b square _1d8a
+_1d8c add _1afc _1d8b
+_1d8d sqrt _1d8c
+_1d8e sub _9 _1d8d
+_1d8f sub _1d8d _15
+_1d90 max _1d8e _1d8f
+_1d91 min _1d87 _1d90
+_1d92 add _1c4e _3
+_1d93 max _1cd9 _1d92
+_1d94 const 4.15
+_1d95 add _1d94 _3
+_1d96 neg _1d95
+_1d97 max _1d93 _1d96
+_1d98 min _1d91 _1d97
+_1d99 max _38 _3c
+_1d9a max _1d99 _1b0c
+_1d9b max _1d9a _1930
+_1d9c min _1d98 _1d9b
+_1d9d max _3c _1cd0
+_1d9e max _1d9d _1bd1
+_1d9f max _1d9e _1d92
+_1da0 add _1927 _3
+_1da1 square _1da0
+_1da2 add _1afc _1da1
+_1da3 sqrt _1da2
+_1da4 sub _9 _1da3
+_1da5 max _1d9f _1da4
+_1da6 sub _1da3 _15
+_1da7 max _1da5 _1da6
+_1da8 min _1d9c _1da7
+_1da9 const 4.5
+_1daa sub _1da9 _e
+_1dab max _1930 _1daa
+_1dac add _1881 _3
+_1dad max _1dab _1dac
+_1dae add _193b _3
+_1daf neg _1dae
+_1db0 max _1dad _1daf
+_1db1 min _1da8 _1db0
+_1db2 max _1b0c _1c59
+_1db3 max _1db2 _1dac
+_1db4 max _1db3 _1daf
+_1db5 min _1db1 _1db4
+_1db6 const 5.6
+_1db7 add _1db6 _3
+_1db8 max _1b99 _1db7
+_1db9 add _1847 _3
+_1dba neg _1db9
+_1dbb max _1db8 _1dba
+_1dbc min _1db5 _1dbb
+_1dbd max _186d _17c8
+_1dbe const 6.75101
+_1dbf sub _3 _1dbe
+_1dc0 max _1dbd _1dbf
+_1dc1 const 6.651
+_1dc2 sub _1dc1 _3
+_1dc3 max _1dc0 _1dc2
+_1dc4 min _1dbc _1dc3
+_1dc5 max _17c8 _17ba
+_1dc6 const 6.30101
+_1dc7 sub _3 _1dc6
+_1dc8 max _1dc5 _1dc7
+_1dc9 const 6.201
+_1dca sub _1dc9 _3
+_1dcb max _1dc8 _1dca
+_1dcc min _1dc4 _1dcb
+_1dcd max _1dbf _17ba
+_1dce max _1dcd _1dca
+_1dcf max _1dce _17bd
+_1dd0 const 6.476
+_1dd1 sub _3 _1dd0
+_1dd2 square _1dd1
+_1dd3 add _17ad _1dd2
+_1dd4 sqrt _1dd3
+_1dd5 sub _9 _1dd4
+_1dd6 max _1dcf _1dd5
+_1dd7 sub _1dd4 _15
+_1dd8 max _1dd6 _1dd7
+_1dd9 min _1dcc _1dd8
+_1dda max _196d _1a46
+_1ddb add _1419 _3
+_1ddc max _1dda _1ddb
+_1ddd neg _31e
+_1dde max _1ddc _1ddd
+_1ddf square _317
+_1de0 add _1962 _1ddf
+_1de1 sqrt _1de0
+_1de2 sub _9 _1de1
+_1de3 max _1dde _1de2
+_1de4 sub _1de1 _15
+_1de5 max _1de3 _1de4
+_1de6 min _1dd9 _1de5
+_1de7 sub _19ff _e
+_1de8 max _194d _1de7
+_1de9 add _83f _3
+_1dea max _1de8 _1de9
+_1deb add _1c29 _3
+_1dec neg _1deb
+_1ded max _1dea _1dec
+_1dee min _1de6 _1ded
+_1def sub _cb5 _e
+_1df0 max _1aa8 _1def
+_1df1 const 3.675
+_1df2 add _1df1 _3
+_1df3 max _1df0 _1df2
+_1df4 const 4.075
+_1df5 add _1df4 _3
+_1df6 neg _1df5
+_1df7 max _1df3 _1df6
+_1df8 min _1dee _1df7
+_1df9 max _193e _1df2
+_1dfa max _1df9 _1df6
+_1dfb sub _e _19ff
+_1dfc max _1dfa _1dfb
+_1dfd square _1dfb
+_1dfe square _1df2
+_1dff add _1dfd _1dfe
+_1e00 sqrt _1dff
+_1e01 sub _150 _1e00
+_1e02 max _1dfc _1e01
+_1e03 sub _1e00 _157
+_1e04 max _1e02 _1e03
+_1e05 min _1df8 _1e04
+_1e06 add _17bc _3
+_1e07 max _1de8 _1e06
+_1e08 const 5.125
+_1e09 add _1e08 _3
+_1e0a neg _1e09
+_1e0b max _1e07 _1e0a
+_1e0c min _1e05 _1e0b
+_1e0d const 4.875
+_1e0e add _1e0d _3
+_1e0f max _1df0 _1e0e
+_1e10 neg _14a3
+_1e11 max _1e0f _1e10
+_1e12 min _1e0c _1e11
+_1e13 max _193e _1dfb
+_1e14 max _1e13 _1e0e
+_1e15 max _1e14 _1e10
+_1e16 square _1e0e
+_1e17 add _1dfd _1e16
+_1e18 sqrt _1e17
+_1e19 sub _150 _1e18
+_1e1a max _1e15 _1e19
+_1e1b sub _1e18 _157
+_1e1c max _1e1a _1e1b
+_1e1d min _1e12 _1e1c
+_1e1e max _14a6 _193e
+_1e1f max _1e1e _196d
+_1e20 const 5.475
+_1e21 add _1e20 _3
+_1e22 neg _1e21
+_1e23 max _1e1f _1e22
+_1e24 min _1e1d _1e23
+_1e25 const 5.825
+_1e26 add _1e25 _3
+_1e27 max _1dda _1e26
+_1e28 const 5.925
+_1e29 add _1e28 _3
+_1e2a neg _1e29
+_1e2b max _1e27 _1e2a
+_1e2c min _1e24 _1e2b
+_1e2d max _1e1e _1961
+_1e2e max _1e2d _1e2a
+_1e2f const 5.65
+_1e30 add _1e2f _3
+_1e31 square _1e30
+_1e32 add _1962 _1e31
+_1e33 sqrt _1e32
+_1e34 sub _9 _1e33
+_1e35 max _1e2e _1e34
+_1e36 sub _1e33 _15
+_1e37 max _1e35 _1e36
+_1e38 min _1e2c _1e37
+_1e39 max _1a08 _193e
+_1e3a max _1e39 _194d
+_1e3b min _1e38 _1e3a
+_1e3c max _1047 _194d
+_1e3d max _1e3c _1a17
+_1e3e const 6.3
+_1e3f add _1e3e _3
+_1e40 max _1e3d _1e3f
+_1e41 min _1e3b _1e40
+_1e42 max _1047 _196d
+_1e43 max _1e42 _1e3f
+_1e44 sub _be0 _e
+_1e45 max _1e43 _1e44
+_1e46 min _1e41 _1e45
+_1e47 max _1047 _193c
+_1e48 max _1e47 _193e
+_1e49 max _1e48 _1e3f
+_1e4a min _1e46 _1e49
+_1e4b const 6.025
+_1e4c sub _1e4b _e
+_1e4d const 6.1875
+_1e4e sub _e _1e4d
+_1e4f max _1e4c _1e4e
+_1e50 const 1.5875
+_1e51 add _1e50 _104
+_1e52 neg _1e51
+_1e53 max _1e4f _1e52
+_1e54 const 1.425
+_1e55 add _1e54 _104
+_1e56 max _1e53 _1e55
+_1e57 const 6.185
+_1e58 sub _1e57 _e
+_1e59 square _1e58
+_1e5a const 1.06
+_1e5b add _1e5a _f1
+_1e5c neg _1e5b
+_1e5d square _1e5c
+_1e5e add _1e59 _1e5d
+_1e5f sqrt _1e5e
+_1e60 sub _1e5f _fa
+_1e61 min _1e56 _1e60
+_1e62 neg _1e61
+_1e63 sub _1e4d _e
+_1e64 square _1e63
+_1e65 square _1e52
+_1e66 add _1e64 _1e65
+_1e67 sqrt _1e66
+_1e68 sub _1e67 _113
+_1e69 max _1e62 _1e68
+_1e6a min _1e4a _1e69
+_1e6b const 6.125
+_1e6c sub _e _1e6b
+_1e6d const 5.9625
+_1e6e sub _1e6d _e
+_1e6f max _1e6c _1e6e
+_1e70 const 1.5875
+_1e71 add _1e70 _104
+_1e72 max _1e6f _1e71
+_1e73 const 1.75
+_1e74 add _1e73 _104
+_1e75 neg _1e74
+_1e76 max _1e72 _1e75
+_1e77 const 5.965
+_1e78 sub _e _1e77
+_1e79 square _1e78
+_1e7a const 1.05667
+_1e7b add _1e7a _f1
+_1e7c square _1e7b
+_1e7d add _1e79 _1e7c
+_1e7e sqrt _1e7d
+_1e7f sub _1e7e _fa
+_1e80 min _1e76 _1e7f
+_1e81 neg _1e80
+_1e82 sub _e _1e6d
+_1e83 square _1e82
+_1e84 square _1e71
+_1e85 add _1e83 _1e84
+_1e86 sqrt _1e85
+_1e87 sub _1e86 _113
+_1e88 max _1e81 _1e87
+_1e89 min _1e6a _1e88
+_1e8a const 2.75
+_1e8b add _1e8a _3
+_1e8c max _196e _1e8b
+_1e8d const 2.85
+_1e8e add _1e8d _3
+_1e8f neg _1e8e
+_1e90 max _1e8c _1e8f
+_1e91 min _1e89 _1e90
+_1e92 const 2.8
+_1e93 add _1e92 _3
+_1e94 square _1e93
+_1e95 add _1977 _1e94
+_1e96 sqrt _1e95
+_1e97 sub _1e96 _1cc
+_1e98 min _1e91 _1e97
+_1e99 max _1a49 _1ddb
+_1e9a const 3.125
+_1e9b add _1e9a _3
+_1e9c neg _1e9b
+_1e9d max _1e99 _1e9c
+_1e9e min _1e98 _1e9d
+_1e9f const 3.475
+_1ea0 add _1e9f _3
+_1ea1 max _1aca _1ea0
+_1ea2 max _1ea1 _1ddd
+_1ea3 min _1e9e _1ea2
+_1ea4 max _104f _193e
+_1ea5 max _1ea4 _194d
+_1ea6 const 6.3
+_1ea7 add _1ea6 _3
+_1ea8 neg _1ea7
+_1ea9 max _1ea5 _1ea8
+_1eaa square _1e3f
+_1eab add _1962 _1eaa
+_1eac sqrt _1eab
+_1ead sub _9 _1eac
+_1eae sub _1eac _15
+_1eaf max _1ead _1eae
+_1eb0 sub _e _be7
+_1eb1 square _1eb0
+_1eb2 add _1eaa _1eb1
+_1eb3 sqrt _1eb2
+_1eb4 sub _9 _1eb3
+_1eb5 sub _1eb3 _15
+_1eb6 max _1eb4 _1eb5
+_1eb7 min _1eaf _1eb6
+_1eb8 max _1ea9 _1eb7
+_1eb9 min _1ea3 _1eb8
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 0000000..6f18e9e
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,434 @@
+#include <math.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <threads.h>
+
+#include <ejit/ejit.h>
+
+/* input parameters */
+#define VAR_X EJIT_FPR(0)
+#define VAR_Y EJIT_FPR(1)
+
+/* 'rest' of parameters, use this as a kind of base */
+#define VAR_0 EJIT_FPR(2)
+
+enum op {
+ OP_UNKNOWN,
+ OP_VAR_X,
+ OP_VAR_Y,
+ OP_CONST,
+ OP_ADD,
+ OP_SUB,
+ OP_MUL,
+ OP_MAX,
+ OP_MIN,
+ OP_NEG,
+ OP_SQUARE,
+ OP_SQRT
+};
+
+static float escape_sqrt(size_t argc, const struct ejit_arg args[argc])
+{
+ assert(argc == 1);
+ assert(args[0].type == EJIT_FLOAT);
+ return sqrtf(args[0].f);
+}
+
+static const char *skip_whitespace(const char *line)
+{
+ while (*line && isspace(*line))
+ line++;
+
+ return line;
+}
+
+static const char *next_whitespace(const char *line)
+{
+ while (*line && !isspace(*line))
+ line++;
+
+ return line;
+}
+
+static const char *parse_var(const char *line, size_t *var)
+{
+ assert(var);
+
+ line = skip_whitespace(line);
+ assert(line[0] == '_');
+
+ char *end = NULL;
+ *var = strtoull(line + 1, &end, 16) + VAR_0.f;
+ assert(end > line + 1);
+
+ return end;
+}
+
+static const char *parse_op(const char *line, enum op *op)
+{
+ assert(op);
+
+ const char *start = skip_whitespace(line);
+ const char *end = next_whitespace(start);
+
+ int len = end - start;
+
+ /* this is terrible but whatever */
+ if (len == 6) {
+ if (strncmp(start, "square", len) == 0)
+ *op = OP_SQUARE;
+ else
+ fprintf(stderr, "unknown op: %.*s\n", len, start);
+ }
+ else if (len == 5) {
+ if (strncmp(start, "var-x", len) == 0)
+ *op = OP_VAR_X;
+
+ else if (strncmp(start, "var-y", len) == 0)
+ *op = OP_VAR_Y;
+
+ else if (strncmp(start, "const", len) == 0)
+ *op = OP_CONST;
+ else
+ fprintf(stderr, "unknown op: %.*s\n", len, start);
+ }
+ else if (len == 4) {
+ if (strncmp(start, "sqrt", len) == 0)
+ *op = OP_SQRT;
+ else
+ fprintf(stderr, "unknown op: %.*s\n", len, start);
+ }
+ else if (len == 3) {
+ if (strncmp(start, "add", len) == 0)
+ *op = OP_ADD;
+
+ else if (strncmp(start, "sub", len) == 0)
+ *op = OP_SUB;
+
+ else if (strncmp(start, "mul", len) == 0)
+ *op = OP_MUL;
+
+ else if (strncmp(start, "max", len) == 0)
+ *op = OP_MAX;
+
+ else if (strncmp(start, "min", len) == 0)
+ *op = OP_MIN;
+
+ else if (strncmp(start, "neg", len) == 0)
+ *op = OP_NEG;
+ else
+ fprintf(stderr, "unknown op: %.*s\n", len, start);
+ }
+ else {
+ fprintf(stderr, "unknown op: %.*s\n", len, start);
+ }
+
+ return end;
+}
+
+static size_t compile_line(struct ejit_func *kernel, const char *line)
+{
+ /* not a particularly good parser but dusting off flex+bison felt like
+ * overkill */
+ line = skip_whitespace(line);
+
+ /* hopefully the last line is not a comment :) */
+ if (line[0] == '#')
+ return 0;
+
+ size_t out = 0;
+ line = parse_var(line, &out);
+
+ enum op op = OP_UNKNOWN;
+ line = parse_op(line, &op);
+ switch (op) {
+ case OP_VAR_X: {
+ ejit_movr_f(kernel, EJIT_FPR(out), VAR_X);
+ break;
+ }
+
+ case OP_VAR_Y: {
+ ejit_movr_f(kernel, EJIT_FPR(out), VAR_Y);
+ break;
+ }
+
+ case OP_CONST: {
+ char *end = NULL;
+ float c = strtof(line, &end);
+ ejit_movi_f(kernel, EJIT_FPR(out), c);
+ line = end;
+ break;
+ }
+
+ case OP_ADD: {
+ size_t arg0 = 0, arg1 = 0;
+ line = parse_var(line, &arg0);
+ line = parse_var(line, &arg1);
+ ejit_addr_f(kernel, EJIT_FPR(out), EJIT_FPR(arg0), EJIT_FPR(arg1));
+ break;
+ }
+
+ case OP_SUB: {
+ size_t arg0 = 0, arg1 = 0;
+ line = parse_var(line, &arg0);
+ line = parse_var(line, &arg1);
+ ejit_subr_f(kernel, EJIT_FPR(out), EJIT_FPR(arg0), EJIT_FPR(arg1));
+ break;
+ }
+
+ case OP_MUL: {
+ size_t arg0 = 0, arg1 = 0;
+ line = parse_var(line, &arg0);
+ line = parse_var(line, &arg1);
+ ejit_mulr_f(kernel, EJIT_FPR(out), EJIT_FPR(arg0), EJIT_FPR(arg1));
+ break;
+ }
+
+ case OP_MAX: {
+ size_t arg0 = 0, arg1 = 0;
+ line = parse_var(line, &arg0);
+ line = parse_var(line, &arg1);
+
+ /* no built-in fmax/fmin so use a plain old branch */
+ struct ejit_reloc r = ejit_bger_f(kernel, EJIT_FPR(arg0), EJIT_FPR(arg1));
+ /* arg0 < arg1 */
+ ejit_movr_f(kernel, EJIT_FPR(out), EJIT_FPR(arg1));
+ struct ejit_reloc j = ejit_jmp(kernel);
+
+ /* arg0 >= arg1 */
+ ejit_patch(kernel, r, ejit_label(kernel));
+ ejit_movr_f(kernel, EJIT_FPR(out), EJIT_FPR(arg0));
+
+ ejit_patch(kernel, j, ejit_label(kernel));
+ break;
+ }
+
+ case OP_MIN: {
+ size_t arg0 = 0, arg1 = 0;
+ line = parse_var(line, &arg0);
+ line = parse_var(line, &arg1);
+
+ struct ejit_reloc r = ejit_bger_f(kernel, EJIT_FPR(arg0), EJIT_FPR(arg1));
+ /* arg0 < arg1 */
+ ejit_movr_f(kernel, EJIT_FPR(out), EJIT_FPR(arg0));
+ struct ejit_reloc j = ejit_jmp(kernel);
+
+ /* arg0 >= arg1 */
+ ejit_patch(kernel, r, ejit_label(kernel));
+ ejit_movr_f(kernel, EJIT_FPR(out), EJIT_FPR(arg1));
+
+ ejit_patch(kernel, j, ejit_label(kernel));
+ break;
+ }
+
+ case OP_NEG: {
+ size_t arg = 0;
+ line = parse_var(line, &arg);
+ ejit_negr_f(kernel, EJIT_FPR(out), EJIT_FPR(arg));
+ break;
+ }
+
+ case OP_SQUARE: {
+ size_t arg = 0;
+ line = parse_var(line, &arg);
+ ejit_mulr_f(kernel, EJIT_FPR(out), EJIT_FPR(arg), EJIT_FPR(arg));
+ break;
+ }
+
+ case OP_SQRT: {
+ size_t arg = 0;
+ line = parse_var(line, &arg);
+ /* unfortunately no built-in operation for sqrt so we have to do
+ * an expensive call */
+ struct ejit_operand op = EJIT_OPERAND_FPR(arg, EJIT_FLOAT);
+ ejit_escapei_f(kernel, escape_sqrt, 1, &op);
+ ejit_retval_f(kernel, EJIT_FPR(out));
+ break;
+ }
+
+ case OP_UNKNOWN:
+ abort();
+ break;
+ }
+
+ assert(line[0] == '\n');
+ return out;
+}
+
+static struct ejit_func *compile(const char *file, bool do_jit)
+{
+ FILE *f = fopen(file, "rb");
+ assert(f);
+
+ struct ejit_operand operands[2] = {
+ EJIT_OPERAND_FPR(VAR_X.f, EJIT_FLOAT),
+ EJIT_OPERAND_FPR(VAR_Y.f, EJIT_FLOAT)
+ };
+ struct ejit_func *kernel = ejit_create_func(EJIT_FLOAT, 2, operands);
+ assert(kernel);
+
+ size_t size = 0;
+ char *line = NULL;
+ size_t out = 0;
+ while (getline(&line, &size, f) != -1)
+ out = compile_line(kernel, line);
+
+ ejit_retr_f(kernel, EJIT_FPR(out));
+
+ /* normally you'd just use ejit_compile_func(kernel), but since I want
+ * to explicitly compare JIT vs bytecode performance, I use this uglier,
+ * 'internal' compile function */
+ ejit_select_compile_func(kernel, 0, out + 1,
+ /* we don't use any 64bit values */
+ false,
+ /* compare jit vs bytecode */
+ do_jit,
+ /* if we do jit, we want to mark pages read-only */
+ true);
+ free(line);
+ fclose(f);
+ return kernel;
+}
+
+struct work_split {
+ struct ejit_func *kernel;
+
+ int8_t *data;
+
+ /* which rows to process */
+ int start;
+ int end;
+
+ /* width of a column */
+ int res;
+};
+
+static int do_work(void *arg)
+{
+ const struct work_split *split = arg;
+
+ size_t idx = 0;
+ for (int x = split->start; x < split->end; ++x)
+ for (int y = 0 ; y < split->res; ++y)
+ {
+ /* convert [0, res] to [-1, 1] */
+ float sx = -(x - split->res / 2) / ((float)split->res / 2);
+ float sy = (y - split->res / 2) / ((float)split->res / 2);
+ struct ejit_arg args[2] = {
+ EJIT_ARG(sy, float),
+ EJIT_ARG(sx, float)
+ };
+
+ /* single byte at a time */
+ float r = ejit_run_func_f(split->kernel, 2, args);
+ split->data[idx++] = (r < 0) ? 255 : 0;
+ }
+
+ return 0;
+}
+
+static void usage()
+{
+ printf("usage: prospero [-j threads] [-r resolution] [-c]\n");
+ printf(" -j how many threads to run\n");
+ printf(" -r length of one side\n");
+ printf(" -c enable JIT\n");
+}
+
+int main(int argc, char *argv[argc])
+{
+
+ int j = 1;
+ int res = 1024;
+ bool jit = false;
+
+ int option = 0;
+ while ((option = getopt(argc, argv, "hj:r:c")) != -1) {
+ switch (option) {
+ case 'h':
+ usage();
+ exit(EXIT_SUCCESS);
+
+ case 'j':
+ j = atoi(optarg);
+ break;
+
+ case 'r':
+ res = atoi(optarg);
+ break;
+
+ case 'c':
+ jit = true;
+ break;
+
+ default:
+ usage();
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ if (optind != argc) {
+ usage();
+ exit(EXIT_FAILURE);
+ }
+
+ struct ejit_func *kernel = compile("prospero.vm", jit);
+ assert(kernel);
+
+ thrd_t *workers = malloc(sizeof(thrd_t) * j);
+ struct work_split *splits = malloc(sizeof(struct work_split) * j);
+
+ /* calculate how much work each thread should do */
+ int work_len = res / j;
+ for (int i = 0; i < j; ++i) {
+ splits[i].kernel = kernel;
+ splits[i].res = res;
+ splits[i].start = i * work_len;
+
+ /* give last split the leftovers */
+ if (i == j - 1)
+ splits[i].end = res;
+ else
+ splits[i].end = (i + 1) * work_len;
+
+ size_t len = splits[i].end - splits[i].start;
+ splits[i].data = malloc(res * len * sizeof(int8_t));
+ }
+
+ /* start threads */
+ for (int i = 0; i < j; ++i) {
+ int r = thrd_create(&workers[i], do_work, &splits[i]);
+ assert(r == thrd_success);
+ }
+
+
+ /* collect threads */
+ for (int i = 0; i < j; ++i) {
+ int res = 0;
+ thrd_join(workers[i], &res);
+ assert(res == 0);
+ }
+
+ ejit_destroy_func(kernel);
+
+ FILE *f = fopen("out.ppm", "wb+");
+ assert(f);
+
+ /* ppm header */
+ fprintf(f, "P5\n%d %d\n255\n", res, res);
+
+ /* image data */
+ for (int i = 0; i < j; ++i) {
+ size_t len = splits[i].end - splits[i].start;
+ fwrite(splits[i].data, sizeof(int8_t), res * len, f);
+ free(splits[i].data);
+ }
+
+ free(workers);
+ free(splits);
+ fclose(f);
+ return 0;
+}