Laboratory of Babel / Archive / grad-noise-175k

grad-noise-175k

Gradient noise, 175k (run of 2026-09-23) · A complete batch run over 175,797 lattice-noise expressions, with 32 texture diagnostics and a frame of each.

About this collection

This collection is complete and closed. Every expression in the space below was rendered and measured once, in a single batch run. Each row is one expression, and its coordinate links to it running live on uto.run.

The purpose is exploratory. There is no target texture and no attempt to resemble Perlin noise. A constant field, a strongly directional pattern or an odd value distribution is an observation, not a failure. The measurements describe textures so they can be sorted, filtered and compared. They are a lossy fingerprint, not a judgement of quality and not a substitute for looking.

The space

An ither formula with two layers:

  • topo: expression trees of up to 64 nodes, built from unary (o1), binary (o2) and leaf (x) slots
  • expr: fills those slots
    • leaves: P, D, R
    • unary: sqt log frc flr cil sgn nrm
    • binary: add sub mlt div pow mod lrg eql min dot dst

A coordinate t·x·u·b follows the formula's projection: t the topology, x the leaf choices, u the unary choices, b the binary choices. Points outside the space were omitted from the run. Two orderings ride along: ordinal is the point's position in ither's whole enumeration (gaps where points were omitted), and batch index is its place in the batch run's sequence, 0 to 175,796 (the run's inputs.expr, and the number in its frame's file name).

The apparatus

Each expression is evaluated at the corners of a rectangular lattice with quintic blending (LATT.RECT.QUINTIC), over coordinates mlt(C, 8), in a 256 × 256 field #A. One configuration per expression: the dimension and coordinate scale were fixed for the whole run.

Measurements are taken from #A's x channel, its stored values (not a screenshot), at step 7, after which the run moves to the next expression. The frame in each row is that field, remapped for display.

The measurements

Notation: f is the field value, E averages the whole field, and E_I averages the interior (C-space [-0.98, 0.98]², which keeps wrapped edges out of the spatial measures).

Value distribution

key meaning
value_mean, value_abs_mean E[f] and E[|f|]: signed offset, typical distance from zero
value_positive_fraction share of values above 0 (field tolerance 0.0001)
value_variance, value_stddev population variance and SD: contrast
value_min, value_max, value_range sampled extrema and their difference
histogram_entropy_bits entropy of a 32-bin histogram over [−1, 1], 0 (one bin) to 5 (uniform) bits
histogram_probability_sum consistency check, ≈ 1

Local roughness (one-pixel differences dx, dy, and g = √(dx² + dy²))

key meaning
gradient_energy_x, gradient_energy_y E_I[dx²], E_I[dy²]
gradient_magnitude_mean E_I[g]: roughness
gradient_magnitude_variance, _stddev, _max how unevenly that roughness is spread, and its peak
gradient_magnitude_cv SD / mean of g: uneven activity (quiet areas interrupted by edges), independent of amplitude
gradient_axis_bias (Ex − Ey) / (Ex + Ey), −1 to 1: horizontal vs vertical preference. Zero does not mean isotropic (diagonals balance too)
gradient_nonzero_flag 1 if there is any gradient energy at all

Change of slope (four-neighbour Laplacian L)

key meaning
laplacian_mean, laplacian_energy, laplacian_abs_mean E_I[L], E_I[L²], E_I[|L|]. Sharp or high-frequency structure responds; a linear ramp does not

Normalised by contrast (comparable across amplitudes)

key meaning
gradient_energy_over_variance (Ex + Ey) / variance
laplacian_energy_over_variance E_I[L²] / variance
variance_normalization_valid_flag, gradient_cv_valid_flag whether the denominators above are meaningful (> 10⁻¹²). Filter on these before trusting a ratio

Three spatial scales (mean squared difference at a distance, over the central [-0.74, 0.74]²: 2, 8 and 32 pixels at this resolution)

key meaning
scale_diff2_near, _mid, _far raw difference energy at each distance
scale_diff2_near_over_variance, _mid_…, _far_… the same, normalised. Low near and rising far suggests smooth structure; a dip at a longer distance can hint at repetition

Each record's json also holds value_histogram (the 32 bin probabilities) and scale_curve (the three scales with their distances).

Reading them, and their limits

  • Clipping. #A kept its default signed domain, so values outside [−1, 1] were clipped before measuring. The diagnostics describe the clipped texture.
  • Combinations say more than any one key. A large range with modest SD and a high gradient peak suggests a few strong excursions. A broad histogram with low normalised detail suggests smooth variation. Similar roughness with a different CV means the activity is concentrated differently.
  • Entropy is about values, not space. A smooth ramp can have high entropy, and shuffling the pixels would not change it.
  • Raw spatial measures depend on resolution and amplitude. Prefer the normalised keys for detail independent of contrast, after checking the validity flags.
  • Not measured: full orientation, spectra or periodicity, lacunarity, tileability, colour, novelty, aesthetic merit.
  • Validation. The suite compiled and ran on every expression. Systematic numerical controls (constants, ramps, stripes, checkerboards, random pixels) and a comparison against longer settling times were not done before this run. Treat the values as exploratory.

Provenance

  • Apparatus: noiseBatch/one.uto, project SHA-256 b6fc8f27…be04d0
  • Expression corpus: SHA-256 7d3ec029…d72266
  • Run files (canonical), in ~/lab/data/grad-noise-175k/: the enumeration (grad-noise-175k.jsonl), the measurements (grad-noise-175k-output.jsonl, joined on inputs.expr), the formula (grad-noise-175k.manifest.json) and the frames (png/)
175,797 records
coordinate ▲ t x u b expression batch index ordinal topo measured step globalStep value_mean value_positive_fraction value_abs_mean value_variance value_stddev value_min value_max value_range histogram_probability_sum histogram_entropy_bits gradient_energy_x gradient_energy_y gradient_magnitude_mean gradient_axis_bias gradient_nonzero_flag laplacian_mean laplacian_energy laplacian_abs_mean gradient_magnitude_variance gradient_magnitude_stddev gradient_magnitude_cv gradient_magnitude_max gradient_energy_over_variance laplacian_energy_over_variance variance_normalization_valid_flag gradient_cv_valid_flag scale_diff2_near scale_diff2_mid scale_diff2_far scale_diff2_near_over_variance scale_diff2_mid_over_variance scale_diff2_far_over_variance
t15_x6_u44_b5 15 6 44 5 mod(R,nrm(frc(P))) 73500 122060270 o2(x,o1(o1(x))) true 76007 76007 0.008979 0.4983 0.3946 0.2196 0.4686 -0.9989 0.9806 1.979 1 4.862 0.002813 0.00317 0.0632 -0.05957 1 0.00002651 0.0003508 0.01449 0.001989 0.0446 0.7057 0.2301 0.02725 0.001598 1 1 0.01182 0.1519 0.3914 0.05384 0.6917 1.782 json
t15_x6_u44_b6 15 6 44 6 lrg(R,nrm(frc(P))) 73501 122060271 o2(x,o1(o1(x))) true 76015 76015 0.4824 0.9147 0.4824 0.1537 0.3921 0 1 1 1 3.429 0.001972 0.002442 0.05168 -0.1065 1 -0.00001781 0.0002592 0.01257 0.001744 0.04176 0.8079 0.1169 0.02872 0.001686 1 1 0.008731 0.1124 0.2862 0.0568 0.7316 1.862 json
t15_x6_u44_b7 15 6 44 7 eql(R,nrm(frc(P))) 73502 122060272 o2(x,o1(o1(x))) true 76023 76023 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x6_u44_b8 15 6 44 8 min(R,nrm(frc(P))) 73503 122060273 o2(x,o1(o1(x))) true 76031 76031 -0.2541 0 0.2541 0.06549 0.2559 -0.9989 0 0.9989 1 3.542 0.000768 0.0009295 0.0314 -0.09514 1 0.00001332 0.00009988 0.007359 0.0007117 0.02668 0.8497 0.1168 0.02592 0.001525 1 1 0.003123 0.04017 0.1061 0.04769 0.6134 1.62 json
t15_x6_u44_b9 15 6 44 9 dot(R,nrm(frc(P))) 73504 122060274 o2(x,o1(o1(x))) true 76039 76039 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x6_u44_b10 15 6 44 10 dst(R,nrm(frc(P))) 73505 122060275 o2(x,o1(o1(x))) true 76047 76047 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x6_u45_b0 15 6 45 0 add(R,nrm(flr(P))) 73506 122060466 o2(x,o1(o1(x))) true 76055 76055 -0.02389 0.4977 0.607 0.4826 0.6947 -1 1 2 1 4.627 0.004181 0.004234 0.04986 -0.006318 1 0.000001437 0.008595 0.01833 0.005928 0.07699 1.544 2.828 0.01744 0.01781 1 1 0.01556 0.1289 0.3717 0.03225 0.267 0.7702 json
t15_x6_u45_b1 15 6 45 1 sub(R,nrm(flr(P))) 73507 122060467 o2(x,o1(o1(x))) true 76063 76063 -0.02443 0.4759 0.656 0.5404 0.7351 -1 1 2 1 4.432 0.004233 0.004088 0.04867 0.01743 1 0.00001223 0.008473 0.01822 0.005953 0.07716 1.585 2.001 0.0154 0.01568 1 1 0.01546 0.1289 0.3936 0.02862 0.2385 0.7283 json
t15_x6_u45_b2 15 6 45 2 mlt(R,nrm(flr(P))) 73508 122060468 o2(x,o1(o1(x))) true 76071 76071 -0.03631 0.4592 0.265 0.1219 0.3492 -1 0.9256 1.926 1 4.451 0.002452 0.00259 0.0418 -0.02738 1 -0.00001255 0.004868 0.01323 0.003295 0.0574 1.373 1.897 0.04136 0.03993 1 1 0.009426 0.0855 0.2556 0.07732 0.7014 2.097 json
t15_x6_u45_b3 15 6 45 3 div(R,nrm(flr(P))) 73509 122060469 o2(x,o1(o1(x))) true 76079 76079 -0.1615 0.4049 0.6031 0.4557 0.675 -1 1 2 1 4.532 0.0205 0.007023 0.07823 0.4897 1 -0.00002757 0.03391 0.03835 0.02141 0.1463 1.87 2.292 0.06041 0.07442 1 1 0.03918 0.3059 0.7875 0.08599 0.6712 1.728 json
t15_x6_u45_b4 15 6 45 4 pow(R,nrm(flr(P))) 73510 122060470 o2(x,o1(o1(x))) true 76087 76087 -0.8542 0.07422 0.9973 0.2659 0.5157 -1 1 2 1 0.4492 0.02385 0.02349 0.02428 0.007698 1 0.000002598 0.09874 0.0483 0.04673 0.2162 8.901 2.828 0.178 0.3713 1 1 0.0454 0.1899 0.6278 0.1707 0.7141 2.361 json
t15_x6_u45_b5 15 6 45 5 mod(R,nrm(flr(P))) 73511 122060471 o2(x,o1(o1(x))) true 76095 76095 -0.1213 0.4217 0.3464 0.2023 0.4498 -1 0.9276 1.928 1 4.372 0.009625 0.001306 0.04532 0.761 1 -0.00000363 0.01689 0.02467 0.008877 0.09422 2.079 1.483 0.05402 0.08347 1 1 0.01609 0.1084 0.3458 0.07953 0.5356 1.709 json
t15_x6_u45_b6 15 6 45 6 lrg(R,nrm(flr(P))) 73512 122060472 o2(x,o1(o1(x))) true 76103 76103 0.4951 0.6976 0.4951 0.209 0.4572 0 1 1 1 2.397 0.0009843 0.0009446 0.02273 0.0206 1 0.00001354 0.0001082 0.005442 0.001412 0.03757 1.653 0.1169 0.009227 0.0005174 1 1 0.004019 0.05177 0.1775 0.01923 0.2477 0.8489 json
t15_x6_u45_b7 15 6 45 7 eql(R,nrm(flr(P))) 73513 122060473 o2(x,o1(o1(x))) true 76111 76111 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x6_u45_b8 15 6 45 8 min(R,nrm(flr(P))) 73514 122060474 o2(x,o1(o1(x))) true 76119 76119 -0.3847 0.2169 0.5289 0.2203 0.4693 -1 0.9276 1.928 1 4.632 0.00136 0.001369 0.03598 -0.002974 1 0.000002588 0.0001657 0.008296 0.001434 0.03787 1.053 0.2138 0.01239 0.0007525 1 1 0.005589 0.07275 0.2205 0.02537 0.3303 1.001 json
t15_x6_u45_b9 15 6 45 9 dot(R,nrm(flr(P))) 73515 122060475 o2(x,o1(o1(x))) true 76127 76127 -0.05989 0.4477 0.4113 0.2471 0.4971 -1 1 2 1 4.9 0.004301 0.005291 0.06685 -0.1032 1 -0.00004649 0.006648 0.01945 0.005123 0.07157 1.071 2.828 0.03882 0.0269 1 1 0.01787 0.1816 0.517 0.07233 0.735 2.092 json
t15_x6_u45_b10 15 6 45 10 dst(R,nrm(flr(P))) 73516 122060476 o2(x,o1(o1(x))) true 76135 76135 0.9304 0.9844 0.9616 0.0713 0.267 -1 1 2 1 1.161 0.004088 0.004115 0.01383 -0.003244 1 -0.00002787 0.01557 0.01309 0.008008 0.08949 6.472 2.034 0.115 0.2184 1 1 0.01432 0.0649 0.2387 0.2009 0.9101 3.347 json
t15_x6_u46_b0 15 6 46 0 add(R,nrm(cil(P))) 73517 122060667 o2(x,o1(o1(x))) true 76143 76143 -0.02389 0.4977 0.607 0.4826 0.6947 -1 1 2 1 4.627 0.004181 0.004234 0.04986 -0.006318 1 0.000001437 0.008595 0.01833 0.005928 0.07699 1.544 2.828 0.01744 0.01781 1 1 0.01556 0.1289 0.3717 0.03225 0.267 0.7702 json
t15_x6_u46_b1 15 6 46 1 sub(R,nrm(cil(P))) 73518 122060668 o2(x,o1(o1(x))) true 76151 76151 -0.02443 0.4759 0.656 0.5404 0.7351 -1 1 2 1 4.432 0.004233 0.004088 0.04867 0.01743 1 0.00001223 0.008473 0.01822 0.005953 0.07716 1.585 2.001 0.0154 0.01568 1 1 0.01546 0.1289 0.3936 0.02862 0.2385 0.7283 json
t15_x6_u46_b2 15 6 46 2 mlt(R,nrm(cil(P))) 73519 122060669 o2(x,o1(o1(x))) true 76159 76159 -0.03631 0.4592 0.265 0.1219 0.3492 -1 0.9256 1.926 1 4.451 0.002452 0.00259 0.0418 -0.02738 1 -0.00001255 0.004868 0.01323 0.003295 0.0574 1.373 1.897 0.04136 0.03993 1 1 0.009426 0.0855 0.2556 0.07732 0.7014 2.097 json
t15_x6_u46_b3 15 6 46 3 div(R,nrm(cil(P))) 73520 122060670 o2(x,o1(o1(x))) true 76167 76167 -0.1615 0.4049 0.6031 0.4557 0.675 -1 1 2 1 4.532 0.0205 0.007023 0.07823 0.4897 1 -0.00002757 0.03391 0.03835 0.02141 0.1463 1.87 2.292 0.06041 0.07442 1 1 0.03918 0.3059 0.7875 0.08599 0.6712 1.728 json
t15_x6_u46_b4 15 6 46 4 pow(R,nrm(cil(P))) 73521 122060671 o2(x,o1(o1(x))) true 76175 76175 -0.8542 0.07422 0.9973 0.2659 0.5157 -1 1 2 1 0.4492 0.02385 0.02349 0.02428 0.007698 1 0.000002598 0.09874 0.0483 0.04673 0.2162 8.901 2.828 0.178 0.3713 1 1 0.0454 0.1899 0.6278 0.1707 0.7141 2.361 json
t15_x6_u46_b5 15 6 46 5 mod(R,nrm(cil(P))) 73522 122060672 o2(x,o1(o1(x))) true 76183 76183 -0.1213 0.4217 0.3464 0.2023 0.4498 -1 0.9276 1.928 1 4.372 0.009625 0.001306 0.04532 0.761 1 -0.00000363 0.01689 0.02467 0.008877 0.09422 2.079 1.483 0.05402 0.08347 1 1 0.01609 0.1084 0.3458 0.07953 0.5356 1.709 json
t15_x6_u46_b6 15 6 46 6 lrg(R,nrm(cil(P))) 73523 122060673 o2(x,o1(o1(x))) true 76191 76191 0.4951 0.6976 0.4951 0.209 0.4572 0 1 1 1 2.397 0.0009843 0.0009446 0.02273 0.0206 1 0.00001354 0.0001082 0.005442 0.001412 0.03757 1.653 0.1169 0.009227 0.0005174 1 1 0.004019 0.05177 0.1775 0.01923 0.2477 0.8489 json
t15_x6_u46_b7 15 6 46 7 eql(R,nrm(cil(P))) 73524 122060674 o2(x,o1(o1(x))) true 76199 76199 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x6_u46_b8 15 6 46 8 min(R,nrm(cil(P))) 73525 122060675 o2(x,o1(o1(x))) true 76207 76207 -0.3847 0.2169 0.5289 0.2203 0.4693 -1 0.9276 1.928 1 4.632 0.00136 0.001369 0.03598 -0.002974 1 0.000002588 0.0001657 0.008296 0.001434 0.03787 1.053 0.2138 0.01239 0.0007525 1 1 0.005589 0.07275 0.2205 0.02537 0.3303 1.001 json
t15_x6_u46_b9 15 6 46 9 dot(R,nrm(cil(P))) 73526 122060676 o2(x,o1(o1(x))) true 76215 76215 -0.05989 0.4477 0.4113 0.2471 0.4971 -1 1 2 1 4.9 0.004301 0.005291 0.06685 -0.1032 1 -0.00004649 0.006648 0.01945 0.005123 0.07157 1.071 2.828 0.03882 0.0269 1 1 0.01787 0.1816 0.517 0.07233 0.735 2.092 json
t15_x6_u46_b10 15 6 46 10 dst(R,nrm(cil(P))) 73527 122060677 o2(x,o1(o1(x))) true 76223 76223 0.9304 0.9844 0.9616 0.0713 0.267 -1 1 2 1 1.161 0.004088 0.004115 0.01383 -0.003244 1 -0.00002787 0.01557 0.01309 0.008008 0.08949 6.472 2.034 0.115 0.2184 1 1 0.01432 0.0649 0.2387 0.2009 0.9101 3.347 json
t15_x6_u47_b0 15 6 47 0 add(R,nrm(sgn(P))) 73528 122060868 o2(x,o1(o1(x))) true 76231 76231 -0.01549 0.4958 0.6271 0.5063 0.7115 -1 1 2 1 4.549 0.004395 0.00423 0.0503 0.01908 1 0.000005409 0.008684 0.01879 0.006096 0.07808 1.552 2.828 0.01704 0.01715 1 1 0.01615 0.135 0.4065 0.0319 0.2666 0.8029 json
t15_x6_u47_b1 15 6 47 1 sub(R,nrm(sgn(P))) 73529 122060869 o2(x,o1(o1(x))) true 76239 76239 -0.01999 0.4787 0.665 0.554 0.7443 -1 1 2 1 4.407 0.004313 0.004063 0.04863 0.02993 1 0.00002158 0.008523 0.01854 0.00601 0.07752 1.594 2.001 0.01512 0.01538 1 1 0.01577 0.132 0.4099 0.02846 0.2383 0.7398 json
t15_x6_u47_b2 15 6 47 2 mlt(R,nrm(sgn(P))) 73530 122060870 o2(x,o1(o1(x))) true 76247 76247 -0.03086 0.4604 0.2809 0.1206 0.3473 -1 0.9255 1.926 1 4.428 0.002496 0.002651 0.04509 -0.03003 1 -0.00001621 0.004874 0.01397 0.003114 0.05581 1.238 1.897 0.04268 0.04041 1 1 0.009441 0.08559 0.2554 0.07828 0.7097 2.117 json
t15_x6_u47_b3 15 6 47 3 div(R,nrm(sgn(P))) 73531 122060871 o2(x,o1(o1(x))) true 76255 76255 -0.1632 0.4037 0.5831 0.4281 0.6543 -1 1 2 1 4.596 0.01704 0.005117 0.07814 0.5382 1 -0.0000446 0.02659 0.03421 0.01605 0.1267 1.621 2 0.05176 0.0621 1 1 0.03333 0.2767 0.7244 0.07786 0.6464 1.692 json
t15_x6_u47_b4 15 6 47 4 pow(R,nrm(sgn(P))) 73532 122060872 o2(x,o1(o1(x))) true 76263 76263 -0.8551 0.07422 0.9965 0.2631 0.5129 -1 1 2 1 0.4736 0.02343 0.02329 0.02427 0.002883 1 0.000002231 0.09742 0.04801 0.04611 0.2147 8.846 2.828 0.1776 0.3703 1 1 0.04473 0.1872 0.6209 0.17 0.7115 2.36 json
t15_x6_u47_b5 15 6 47 5 mod(R,nrm(sgn(P))) 73533 122060873 o2(x,o1(o1(x))) true 76271 76271 -0.1297 0.4127 0.3213 0.1756 0.419 -1 0.9256 1.926 1 4.196 0.01077 0.0009853 0.04178 0.8323 1 0.00000337 0.01966 0.0242 0.01001 0.1 2.394 1.698 0.06693 0.112 1 1 0.01587 0.09522 0.2782 0.09037 0.5423 1.585 json
t15_x6_u47_b6 15 6 47 6 lrg(R,nrm(sgn(P))) 73534 122060874 o2(x,o1(o1(x))) true 76279 76279 0.4971 0.7348 0.4971 0.2029 0.4504 0 1 1 1 2.541 0.001183 0.00102 0.02596 0.07374 1 0.00003065 0.0001259 0.00624 0.001529 0.03911 1.506 0.1169 0.01086 0.0006203 1 1 0.004322 0.05576 0.2007 0.0213 0.2748 0.9894 json
t15_x6_u47_b7 15 6 47 7 eql(R,nrm(sgn(P))) 73535 122060875 o2(x,o1(o1(x))) true 76287 76287 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x6_u47_b8 15 6 47 8 min(R,nrm(sgn(P))) 73536 122060876 o2(x,o1(o1(x))) true 76295 76295 -0.3821 0.2251 0.5445 0.2198 0.4688 -0.9999 0.9256 1.925 1 3.98 0.001513 0.001409 0.03539 0.0356 1 7.46e-7 0.0001751 0.008234 0.001669 0.04085 1.155 0.2138 0.01329 0.0007969 1 1 0.005935 0.07713 0.2303 0.02701 0.351 1.048 json
t15_x6_u47_b9 15 6 47 9 dot(R,nrm(sgn(P))) 73537 122060877 o2(x,o1(o1(x))) true 76303 76303 -0.05142 0.4583 0.4136 0.2494 0.4994 -1 1 2 1 4.892 0.004436 0.005375 0.06747 -0.0958 1 -0.00005342 0.006698 0.01968 0.005259 0.07252 1.075 2.828 0.03933 0.02685 1 1 0.01788 0.181 0.5205 0.07167 0.7257 2.087 json
t15_x6_u47_b10 15 6 47 10 dst(R,nrm(sgn(P))) 73538 122060878 o2(x,o1(o1(x))) true 76311 76311 0.9247 0.9844 0.956 0.07291 0.27 -1 1 2 1 1.229 0.004174 0.004112 0.01465 0.007418 1 -0.00004526 0.0156 0.01345 0.008071 0.08984 6.131 2.034 0.1136 0.2139 1 1 0.0143 0.06423 0.2395 0.1961 0.881 3.286 json
t15_x6_u48_b0 15 6 48 0 add(R,nrm(nrm(P))) 73539 122061069 o2(x,o1(o1(x))) true 76319 76319 -0.02389 0.4977 0.607 0.4826 0.6947 -1 1 2 1 4.627 0.004181 0.004234 0.04986 -0.006318 1 0.000001437 0.008595 0.01833 0.005928 0.07699 1.544 2.828 0.01744 0.01781 1 1 0.01556 0.1289 0.3717 0.03225 0.267 0.7702 json
t15_x6_u48_b1 15 6 48 1 sub(R,nrm(nrm(P))) 73540 122061070 o2(x,o1(o1(x))) true 76327 76327 -0.02443 0.4759 0.656 0.5404 0.7351 -1 1 2 1 4.432 0.004233 0.004088 0.04867 0.01743 1 0.00001223 0.008473 0.01822 0.005953 0.07716 1.585 2.001 0.0154 0.01568 1 1 0.01546 0.1289 0.3936 0.02862 0.2385 0.7283 json
t15_x6_u48_b2 15 6 48 2 mlt(R,nrm(nrm(P))) 73541 122061071 o2(x,o1(o1(x))) true 76335 76335 -0.03631 0.4592 0.265 0.1219 0.3492 -1 0.9256 1.926 1 4.451 0.002452 0.00259 0.0418 -0.02738 1 -0.00001255 0.004868 0.01323 0.003295 0.0574 1.373 1.897 0.04136 0.03993 1 1 0.009426 0.0855 0.2556 0.07732 0.7014 2.097 json
t15_x6_u48_b3 15 6 48 3 div(R,nrm(nrm(P))) 73542 122061072 o2(x,o1(o1(x))) true 76343 76343 -0.1615 0.4049 0.6031 0.4557 0.675 -1 1 2 1 4.532 0.0205 0.007023 0.07823 0.4897 1 -0.00002757 0.03391 0.03835 0.02141 0.1463 1.87 2.292 0.06041 0.07442 1 1 0.03918 0.3059 0.7875 0.08599 0.6712 1.728 json
t15_x6_u48_b4 15 6 48 4 pow(R,nrm(nrm(P))) 73543 122061073 o2(x,o1(o1(x))) true 76351 76351 -0.8542 0.07422 0.9973 0.2659 0.5157 -1 1 2 1 0.4492 0.02385 0.02349 0.02428 0.007698 1 0.000002598 0.09874 0.0483 0.04673 0.2162 8.901 2.828 0.178 0.3713 1 1 0.0454 0.1899 0.6278 0.1707 0.7141 2.361 json
t15_x6_u48_b5 15 6 48 5 mod(R,nrm(nrm(P))) 73544 122061074 o2(x,o1(o1(x))) true 76359 76359 -0.1213 0.4217 0.3464 0.2023 0.4498 -1 0.9276 1.928 1 4.372 0.009625 0.001306 0.04532 0.761 1 -0.00000363 0.01689 0.02467 0.008877 0.09422 2.079 1.483 0.05402 0.08347 1 1 0.01609 0.1084 0.3458 0.07953 0.5356 1.709 json
t15_x6_u48_b6 15 6 48 6 lrg(R,nrm(nrm(P))) 73545 122061075 o2(x,o1(o1(x))) true 76367 76367 0.4951 0.6976 0.4951 0.209 0.4572 0 1 1 1 2.397 0.0009843 0.0009446 0.02273 0.0206 1 0.00001354 0.0001082 0.005442 0.001412 0.03757 1.653 0.1169 0.009227 0.0005174 1 1 0.004019 0.05177 0.1775 0.01923 0.2477 0.8489 json
t15_x6_u48_b7 15 6 48 7 eql(R,nrm(nrm(P))) 73546 122061076 o2(x,o1(o1(x))) true 76375 76375 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x6_u48_b8 15 6 48 8 min(R,nrm(nrm(P))) 73547 122061077 o2(x,o1(o1(x))) true 76383 76383 -0.3847 0.2169 0.5289 0.2203 0.4693 -1 0.9276 1.928 1 4.632 0.00136 0.001369 0.03598 -0.002974 1 0.000002588 0.0001657 0.008296 0.001434 0.03787 1.053 0.2138 0.01239 0.0007525 1 1 0.005589 0.07275 0.2205 0.02537 0.3303 1.001 json
t15_x6_u48_b9 15 6 48 9 dot(R,nrm(nrm(P))) 73548 122061078 o2(x,o1(o1(x))) true 76391 76391 -0.05989 0.4477 0.4113 0.2471 0.4971 -1 1 2 1 4.9 0.004301 0.005291 0.06685 -0.1032 1 -0.00004649 0.006648 0.01945 0.005123 0.07157 1.071 2.828 0.03882 0.0269 1 1 0.01787 0.1816 0.517 0.07233 0.735 2.092 json
t15_x6_u48_b10 15 6 48 10 dst(R,nrm(nrm(P))) 73549 122061079 o2(x,o1(o1(x))) true 76399 76399 0.9304 0.9844 0.9616 0.0713 0.267 -1 1 2 1 1.161 0.004088 0.004115 0.01383 -0.003244 1 -0.00002787 0.01557 0.01309 0.008008 0.08949 6.472 2.034 0.115 0.2184 1 1 0.01432 0.0649 0.2387 0.2009 0.9101 3.347 json
t15_x7_u0_b0 15 7 0 0 add(R,sqt(sqt(D))) 73550 122091822 o2(x,o1(o1(x))) true 76407 76407 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u0_b1 15 7 0 1 sub(R,sqt(sqt(D))) 73551 122091823 o2(x,o1(o1(x))) true 76415 76415 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u0_b2 15 7 0 2 mlt(R,sqt(sqt(D))) 73552 122091824 o2(x,o1(o1(x))) true 76423 76423 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u0_b3 15 7 0 3 div(R,sqt(sqt(D))) 73553 122091825 o2(x,o1(o1(x))) true 76431 76431 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u0_b4 15 7 0 4 pow(R,sqt(sqt(D))) 73554 122091826 o2(x,o1(o1(x))) true 76439 76439 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u0_b5 15 7 0 5 mod(R,sqt(sqt(D))) 73555 122091827 o2(x,o1(o1(x))) true 76447 76447 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u0_b6 15 7 0 6 lrg(R,sqt(sqt(D))) 73556 122091828 o2(x,o1(o1(x))) true 76455 76455 0.589 1 0.589 0.1311 0.3621 0.000291 1 0.9997 1 3.493 0.05149 0.0007068 0.1147 0.9729 1 0.00003482 0.09584 0.121 0.03905 0.1976 1.724 0.9994 0.3981 0.731 1 1 0.05725 0.212 0.09867 0.4367 1.617 0.7526 json
t15_x7_u0_b7 15 7 0 7 eql(R,sqt(sqt(D))) 73557 122091829 o2(x,o1(o1(x))) true 76463 76463 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u0_b8 15 7 0 8 min(R,sqt(sqt(D))) 73558 122091830 o2(x,o1(o1(x))) true 76471 76471 -0.007845 0.4943 0.3799 0.2024 0.4499 -0.9989 0.9805 1.979 1 4.808 0.004683 0.002914 0.06701 0.2329 1 -0.00008149 0.005499 0.02828 0.003107 0.05574 0.8318 0.5499 0.03753 0.02716 1 1 0.01239 0.139 0.3567 0.06122 0.6864 1.762 json
t15_x7_u0_b9 15 7 0 9 dot(R,sqt(sqt(D))) 73559 122091831 o2(x,o1(o1(x))) true 76479 76479 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u0_b10 15 7 0 10 dst(R,sqt(sqt(D))) 73560 122091832 o2(x,o1(o1(x))) true 76487 76487 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u1_b0 15 7 1 0 add(R,sqt(log(D))) 73561 122092023 o2(x,o1(o1(x))) true 76495 76495 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u1_b1 15 7 1 1 sub(R,sqt(log(D))) 73562 122092024 o2(x,o1(o1(x))) true 76503 76503 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u1_b2 15 7 1 2 mlt(R,sqt(log(D))) 73563 122092025 o2(x,o1(o1(x))) true 76511 76511 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u1_b3 15 7 1 3 div(R,sqt(log(D))) 73564 122092026 o2(x,o1(o1(x))) true 76519 76519 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u1_b4 15 7 1 4 pow(R,sqt(log(D))) 73565 122092027 o2(x,o1(o1(x))) true 76527 76527 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u1_b5 15 7 1 5 mod(R,sqt(log(D))) 73566 122092028 o2(x,o1(o1(x))) true 76535 76535 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u1_b6 15 7 1 6 lrg(R,sqt(log(D))) 73567 122092029 o2(x,o1(o1(x))) true 76543 76543 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u1_b7 15 7 1 7 eql(R,sqt(log(D))) 73568 122092030 o2(x,o1(o1(x))) true 76551 76551 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u1_b8 15 7 1 8 min(R,sqt(log(D))) 73569 122092031 o2(x,o1(o1(x))) true 76559 76559 0.008979 0.4983 0.3946 0.2196 0.4686 -0.9989 0.9806 1.979 1 4.862 0.002813 0.00317 0.0632 -0.05957 1 0.00002651 0.0003508 0.01449 0.001989 0.0446 0.7057 0.2301 0.02725 0.001598 1 1 0.01182 0.1519 0.3914 0.05384 0.6917 1.782 json
t15_x7_u1_b9 15 7 1 9 dot(R,sqt(log(D))) 73570 122092032 o2(x,o1(o1(x))) true 76567 76567 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u1_b10 15 7 1 10 dst(R,sqt(log(D))) 73571 122092033 o2(x,o1(o1(x))) true 76575 76575 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u2_b0 15 7 2 0 add(R,sqt(frc(D))) 73572 122092224 o2(x,o1(o1(x))) true 76583 76583 0.5905 0.8992 0.6392 0.1692 0.4113 -0.8221 1 1.822 1 3.884 0.03047 0.00234 0.09531 0.8573 1 -0.0002436 0.06459 0.09384 0.02372 0.154 1.616 0.8366 0.1939 0.3818 1 1 0.03392 0.1495 0.2428 0.2005 0.8835 1.435 json
t15_x7_u2_b1 15 7 2 1 sub(R,sqt(frc(D))) 73573 122092225 o2(x,o1(o1(x))) true 76591 76591 -0.5762 0.1042 0.6288 0.1736 0.4167 -1 0.8039 1.804 1 3.943 0.03055 0.002405 0.09826 0.8541 1 0.0003617 0.06406 0.09418 0.0233 0.1526 1.553 0.8369 0.1898 0.3689 1 1 0.0344 0.1595 0.261 0.1981 0.9184 1.503 json
t15_x7_u2_b2 15 7 2 2 mlt(R,sqt(frc(D))) 73574 122092226 o2(x,o1(o1(x))) true 76599 76599 0.005106 0.4983 0.262 0.11 0.3317 -0.9827 0.9651 1.948 1 4.441 0.01277 0.001589 0.07115 0.7787 1 -0.00005898 0.02641 0.0596 0.009299 0.09643 1.355 0.8062 0.1305 0.24 1 1 0.0157 0.08724 0.1953 0.1427 0.7929 1.775 json
t15_x7_u2_b3 15 7 2 3 div(R,sqt(frc(D))) 73575 122092227 o2(x,o1(o1(x))) true 76607 76607 0.01042 0.4984 0.5634 0.4269 0.6534 -1 1 2 1 4.758 0.02352 0.00858 0.1154 0.4654 1 -0.00001493 0.04598 0.08653 0.01878 0.137 1.187 1.307 0.0752 0.1077 1 1 0.0447 0.3382 0.765 0.1047 0.7922 1.792 json
t15_x7_u2_b4 15 7 2 4 pow(R,sqt(frc(D))) 73576 122092228 o2(x,o1(o1(x))) true 76615 76615 -0.928 0.04297 0.986 0.1169 0.3419 -1 0.9896 1.99 1 0.4056 0.01263 0.01168 0.01545 0.03896 1 0.00002255 0.05127 0.02878 0.02408 0.1552 10.04 2.643 0.208 0.4386 1 1 0.01871 0.07979 0.197 0.16 0.6825 1.685 json
t15_x7_u2_b5 15 7 2 5 mod(R,sqt(frc(D))) 73577 122092229 o2(x,o1(o1(x))) true 76623 76623 -0.003607 0.4796 0.2346 0.09351 0.3058 -0.9753 0.9805 1.956 1 4.303 0.02813 0.001353 0.0999 0.9082 1 0.0004075 0.06443 0.1341 0.0195 0.1397 1.398 0.9576 0.3153 0.689 1 1 0.02694 0.09178 0.1747 0.2881 0.9815 1.868 json
t15_x7_u2_b6 15 7 2 6 lrg(R,sqt(frc(D))) 73578 122092230 o2(x,o1(o1(x))) true 76631 76631 0.1819 0.4893 0.1819 0.09421 0.3069 0 1 1 1 2.247 0.03913 0.001157 0.07625 0.9426 1 -0.000221 0.08373 0.1059 0.03448 0.1857 2.435 1 0.4276 0.8887 1 1 0.03935 0.1098 0.1554 0.4177 1.166 1.65 json
t15_x7_u2_b7 15 7 2 7 eql(R,sqt(frc(D))) 73579 122092231 o2(x,o1(o1(x))) true 76639 76639 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u2_b8 15 7 2 8 min(R,sqt(frc(D))) 73580 122092232 o2(x,o1(o1(x))) true 76647 76647 -0.03757 0.4822 0.3573 0.1825 0.4272 -0.9989 0.9805 1.979 1 4.755 0.008116 0.002592 0.07091 0.5159 1 -0.0001456 0.01364 0.04008 0.00568 0.07536 1.063 0.7931 0.05869 0.07477 1 1 0.01458 0.1283 0.3152 0.0799 0.7032 1.727 json
t15_x7_u2_b9 15 7 2 9 dot(R,sqt(frc(D))) 73581 122092233 o2(x,o1(o1(x))) true 76655 76655 0.02651 0.4988 0.3553 0.1946 0.4411 -1 1 2 1 4.775 0.01299 0.01282 0.1057 0.00655 1 -0.000104 0.04749 0.1004 0.01465 0.121 1.145 1.083 0.1327 0.2441 1 1 0.02813 0.149 0.355 0.1446 0.7658 1.824 json
t15_x7_u2_b10 15 7 2 10 dst(R,sqt(frc(D))) 73582 122092234 o2(x,o1(o1(x))) true 76663 76663 0.9526 1 0.9526 0.01313 0.1146 0.1271 1 0.8729 1 1.244 0.001783 0.002014 0.02246 -0.06066 1 -0.00005091 0.007292 0.02658 0.003293 0.05738 2.555 0.7665 0.2892 0.5553 1 1 0.004399 0.0167 0.02648 0.335 1.272 2.016 json
t15_x7_u3_b0 15 7 3 0 add(R,sqt(flr(D))) 73583 122092425 o2(x,o1(o1(x))) true 76671 76671 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u3_b1 15 7 3 1 sub(R,sqt(flr(D))) 73584 122092426 o2(x,o1(o1(x))) true 76679 76679 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u3_b2 15 7 3 2 mlt(R,sqt(flr(D))) 73585 122092427 o2(x,o1(o1(x))) true 76687 76687 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u3_b3 15 7 3 3 div(R,sqt(flr(D))) 73586 122092428 o2(x,o1(o1(x))) true 76695 76695 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u3_b4 15 7 3 4 pow(R,sqt(flr(D))) 73587 122092429 o2(x,o1(o1(x))) true 76703 76703 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u3_b5 15 7 3 5 mod(R,sqt(flr(D))) 73588 122092430 o2(x,o1(o1(x))) true 76711 76711 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u3_b6 15 7 3 6 lrg(R,sqt(flr(D))) 73589 122092431 o2(x,o1(o1(x))) true 76719 76719 0.7432 1 0.7432 0.1126 0.3355 0.000291 1 0.9997 1 2.88 0.03004 0.00118 0.07441 0.9244 1 -0.000001422 0.05612 0.0721 0.02568 0.1603 2.154 0.9997 0.2773 0.4985 1 1 0.03636 0.1591 0.1423 0.323 1.413 1.264 json
t15_x7_u3_b7 15 7 3 7 eql(R,sqt(flr(D))) 73590 122092432 o2(x,o1(o1(x))) true 76727 76727 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u3_b8 15 7 3 8 min(R,sqt(flr(D))) 73591 122092433 o2(x,o1(o1(x))) true 76735 76735 -0.1235 0.3333 0.3169 0.1511 0.3888 -0.9989 0.9805 1.979 1 4.595 0.01138 0.002047 0.06581 0.695 1 0.00001672 0.01894 0.04201 0.009091 0.09535 1.449 0.9695 0.08881 0.1253 1 1 0.01724 0.1257 0.2462 0.114 0.8318 1.629 json
t15_x7_u3_b9 15 7 3 9 dot(R,sqt(flr(D))) 73592 122092434 o2(x,o1(o1(x))) true 76743 76743 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u3_b10 15 7 3 10 dst(R,sqt(flr(D))) 73593 122092435 o2(x,o1(o1(x))) true 76751 76751 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u4_b0 15 7 4 0 add(R,sqt(cil(D))) 73594 122092626 o2(x,o1(o1(x))) true 76759 76759 0.4361 0.7938 0.5773 0.2485 0.4985 -0.9982 1 1.998 1 4.395 0.04776 0.002502 0.1145 0.9005 1 -0.00007085 0.08469 0.1109 0.03715 0.1927 1.683 1.025 0.2022 0.3407 1 1 0.05926 0.2813 0.2746 0.2385 1.132 1.105 json
t15_x7_u4_b1 15 7 4 1 sub(R,sqt(cil(D))) 73595 122092627 o2(x,o1(o1(x))) true 76767 76767 -0.4226 0.1991 0.5655 0.2483 0.4983 -1 0.9802 1.98 1 4.396 0.04752 0.002554 0.1144 0.898 1 0.00008838 0.08409 0.1105 0.03699 0.1923 1.682 1.023 0.2016 0.3386 1 1 0.05828 0.2809 0.2873 0.2347 1.131 1.157 json
t15_x7_u4_b2 15 7 4 2 mlt(R,sqt(cil(D))) 73596 122092628 o2(x,o1(o1(x))) true 76775 76775 0.007128 0.4824 0.2233 0.1068 0.3268 -0.9987 0.9806 1.979 1 4.183 0.01778 0.001534 0.06915 0.8411 1 0.00002202 0.03338 0.06293 0.01453 0.1205 1.743 0.9989 0.1809 0.3126 1 1 0.02212 0.1235 0.1954 0.2072 1.157 1.83 json
t15_x7_u4_b3 15 7 4 3 div(R,sqt(cil(D))) 73597 122092629 o2(x,o1(o1(x))) true 76783 76783 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t15_x7_u4_b4 15 7 4 4 pow(R,sqt(cil(D))) 73598 122092630 o2(x,o1(o1(x))) true 76791 76791 -0.61 0.2188 0.9525 0.5541 0.7444 -1 1 2 1 1.453 0.06859 0.05358 0.07371 0.1228 1 8.21e-7 0.2574 0.1361 0.1167 0.3416 4.635 2.828 0.2205 0.4645 1 1 0.1259 0.5175 1.215 0.2271 0.9338 2.193 json
t15_x7_u4_b5 15 7 4 5 mod(R,sqt(cil(D))) 73599 122092631 o2(x,o1(o1(x))) true 76799 76799 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json