From d5528f126802aacbf89240e8a4b41a5f3c4d3c2a Mon Sep 17 00:00:00 2001 From: Ilya Lesokhin Date: Sun, 11 Aug 2024 11:09:12 +0300 Subject: [PATCH] Support reverts of inner calls. --- .../cairo1/compiled/test_contract.casm.json | 12415 ++++++++++------ .../cairo1/test_contract.cairo | 24 + .../src/execution/entry_point_execution.rs | 11 +- .../src/execution/syscalls/hint_processor.rs | 39 +- .../blockifier/src/execution/syscalls/mod.rs | 15 +- .../src/execution/syscalls/syscalls_test.rs | 30 + .../transaction/account_transactions_test.rs | 8 +- 7 files changed, 8005 insertions(+), 4537 deletions(-) diff --git a/crates/blockifier/feature_contracts/cairo1/compiled/test_contract.casm.json b/crates/blockifier/feature_contracts/cairo1/compiled/test_contract.casm.json index c470c611c60..ad1f20f24fc 100644 --- a/crates/blockifier/feature_contracts/cairo1/compiled/test_contract.casm.json +++ b/crates/blockifier/feature_contracts/cairo1/compiled/test_contract.casm.json @@ -1,6 +1,6 @@ { "prime": "0x800000000000011000000000000000000000000000000000000000000000001", - "compiler_version": "2.7.0", + "compiler_version": "2.7.1", "bytecode": [ "0xa0680017fff8000", "0x7", @@ -100,9 +100,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x4529", + "0x499a", "0x482480017fff8000", - "0x4528", + "0x4999", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -275,9 +275,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x447a", + "0x48eb", "0x482480017fff8000", - "0x4479", + "0x48ea", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -536,7 +536,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0x1643", + "0x17ea", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -588,9 +588,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x4341", + "0x47b2", "0x482480017fff8000", - "0x4340", + "0x47b1", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -715,6 +715,429 @@ "0x1", "0x208b7fff7fff7ffe", "0x40780017fff7fff", + "0x2", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0x10c", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x482680017ff98000", + "0x1", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xa", + "0x482680017ffc8000", + "0x1", + "0x480a7ffd7fff8000", + "0x480680017fff8000", + "0x0", + "0x480280007ffc8000", + "0x10780017fff7fff", + "0x8", + "0x480a7ffc7fff8000", + "0x480a7ffd7fff8000", + "0x480680017fff8000", + "0x1", + "0x480680017fff8000", + "0x0", + "0x20680017fff7ffe", + "0xe1", + "0x40137fff7fff8001", + "0xa0680017fff8004", + "0xe", + "0x4825800180048001", + "0x800000000000000000000000000000000000000000000000000000000000000", + "0x484480017ffe8000", + "0x110000000000000000", + "0x48307ffe7fff8002", + "0x480080007ff67ffc", + "0x480080017ff57ffc", + "0x402480017ffb7ffd", + "0xffffffffffffffeeffffffffffffffff", + "0x400080027ff47ffd", + "0x10780017fff7fff", + "0xce", + "0x484480017fff8001", + "0x8000000000000000000000000000000", + "0x48317fff80008001", + "0x480080007ff77ffd", + "0x480080017ff67ffd", + "0x402480017ffc7ffe", + "0xf8000000000000000000000000000000", + "0x400080027ff57ffe", + "0x482480017ff58000", + "0x3", + "0x48307ff680007ff7", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xa", + "0x482480017ff58000", + "0x1", + "0x48127ff57fff8000", + "0x480680017fff8000", + "0x0", + "0x480080007ff28000", + "0x10780017fff7fff", + "0x8", + "0x48127ff57fff8000", + "0x48127ff57fff8000", + "0x480680017fff8000", + "0x1", + "0x480680017fff8000", + "0x0", + "0x20680017fff7ffe", + "0xa1", + "0x40137fff7fff8000", + "0x48307ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xa", + "0x482480017ffb8000", + "0x1", + "0x48127ffb7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ff87fff8000", + "0x10780017fff7fff", + "0x8", + "0x48127ffb7fff8000", + "0x48127ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x480680017fff8000", + "0x0", + "0x20680017fff7ffe", + "0x20", + "0x40780017fff7fff", + "0x1", + "0x48127ff47fff8000", + "0x48127fe77fff8000", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x48127ffb7fff8000", + "0x48127ffa7fff8000", + "0x480080007ff88000", + "0x1104800180018000", + "0x16c7", + "0x20680017fff7ffa", + "0xb", + "0x48127ff87fff8000", + "0x48127ff87fff8000", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x10780017fff7fff", + "0x14", + "0x48127ff87fff8000", + "0x48127ff87fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x48127ff57fff8000", + "0x48127fe87fff8000", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x480680017fff8000", + "0x1", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x0", + "0x20680017fff7ffd", + "0x53", + "0x48307ffb80007ffc", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x10", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", + "0x400080007ffe7fff", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x468f", + "0x482480017fff8000", + "0x468e", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff4", + "0x5ca8", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400080007ff17fff", + "0x10780017fff7fff", + "0x23", + "0x4824800180007ff4", + "0x5ca8", + "0x400080007ff27fff", + "0x482480017ff28000", + "0x1", + "0x48127ffe7fff8000", + "0x480a7ffb7fff8000", + "0x480a80017fff8000", + "0x480a80007fff8000", + "0x48127ff27fff8000", + "0x48127ff27fff8000", + "0x1104800180018000", + "0x16d6", + "0x20680017fff7ffd", + "0xc", + "0x40780017fff7fff", + "0x1", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffb7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4f7574206f6620676173", + "0x400080007ffe7fff", + "0x482480017fef8000", + "0x1", + "0x48127fef7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4661696c656420746f20646573657269616c697a6520706172616d202333", + "0x400080007ffe7fff", + "0x48127ff77fff8000", + "0x48127ff77fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4661696c656420746f20646573657269616c697a6520706172616d202332", + "0x400080007ffe7fff", + "0x48127ff87fff8000", + "0x48127feb7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x482480017ff48000", + "0x3", + "0x10780017fff7fff", + "0x5", + "0x40780017fff7fff", + "0x6", + "0x48127ff47fff8000", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4661696c656420746f20646573657269616c697a6520706172616d202331", + "0x400080007ffe7fff", + "0x48127ffd7fff8000", + "0x48127fef7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4f7574206f6620676173", + "0x400080007ffe7fff", + "0x482680017ff98000", + "0x1", + "0x480a7ffa7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0x71", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x482680017ff98000", + "0x1", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x10", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", + "0x400080007ffe7fff", + "0x48127ffc7fff8000", + "0x48127ffa7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x45f2", + "0x482480017fff8000", + "0x45f1", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff8", + "0x1284", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400080007ff77fff", + "0x10780017fff7fff", + "0x3c", + "0x4824800180007ff8", + "0x1284", + "0x400080007ff87fff", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x1275130f95dda36bcbb6e9d28796c1d7e10b6e9fd5ed083e0ede4b12f613528", + "0x480680017fff8000", + "0x11", + "0x482480017ff58000", + "0x1", + "0x480680017fff8000", + "0x53746f726167655772697465", + "0x400280007ffb7fff", + "0x400280017ffb7ffa", + "0x400280027ffb7ffb", + "0x400280037ffb7ffc", + "0x400280047ffb7ffd", + "0x480280067ffb8000", + "0x20680017fff7fff", + "0x18", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x46a6158a16a947e5916b2a2ca68501a45e93d7110e81aa2d6438b1c57c879a3", + "0x400080007ffe7fff", + "0x480680017fff8000", + "0x0", + "0x400080017ffd7fff", + "0x480680017fff8000", + "0x746573745f7265766572745f68656c706572", + "0x400080027ffc7fff", + "0x480680017fff8000", + "0x12", + "0x400080037ffb7fff", + "0x480280057ffb8000", + "0x482680017ffb8000", + "0x7", + "0x48127ff97fff8000", + "0x482480017ff88000", + "0x4", + "0x10780017fff7fff", + "0x9", + "0x40780017fff7fff", + "0x5", + "0x480280057ffb8000", + "0x482680017ffb8000", + "0x9", + "0x480280077ffb8000", + "0x480280087ffb8000", + "0x48127ff47fff8000", + "0x48127ffb7fff8000", + "0x48127ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4f7574206f6620676173", + "0x400080007ffe7fff", + "0x482480017ff58000", + "0x1", + "0x48127ff37fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4f7574206f6620676173", + "0x400080007ffe7fff", + "0x482680017ff98000", + "0x1", + "0x480a7ffa7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", "0x3", "0xa0680017fff8000", "0x7", @@ -922,9 +1345,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x41f3", + "0x44bd", "0x482480017fff8000", - "0x41f2", + "0x44bc", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -950,7 +1373,7 @@ "0x480a80017fff8000", "0x480a80027fff8000", "0x1104800180018000", - "0x1501", + "0x155f", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -1128,9 +1551,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x4125", + "0x43ef", "0x482480017fff8000", - "0x4124", + "0x43ee", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1245,7 +1668,7 @@ "0x480a7ffc7fff8000", "0x480a7ffd7fff8000", "0x1104800180018000", - "0x1444", + "0x14a2", "0x20680017fff7ffc", "0xf2", "0x48127ff97fff8000", @@ -1256,7 +1679,7 @@ "0x40137ffa7fff8001", "0x40137ffb7fff8002", "0x1104800180018000", - "0x1506", + "0x1564", "0x20680017fff7feb", "0xdf", "0x20680017fff7fee", @@ -1344,9 +1767,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x404d", + "0x4317", "0x482480017fff8000", - "0x404c", + "0x4316", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1388,7 +1811,7 @@ "0x48127fdb7fff8000", "0x48127fdf7fff8000", "0x1104800180018000", - "0x1937", + "0x1995", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -1682,9 +2105,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3efb", + "0x41c5", "0x482480017fff8000", - "0x3efa", + "0x41c4", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1969,9 +2392,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3ddc", + "0x40a6", "0x482480017fff8000", - "0x3ddb", + "0x40a5", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1993,7 +2416,7 @@ "0x48127fee7fff8000", "0x48127ff27fff8000", "0x1104800180018000", - "0x184a", + "0x18a8", "0x482480017fc88000", "0x1", "0x48127ffa7fff8000", @@ -2186,9 +2609,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3d03", + "0x3fcd", "0x482480017fff8000", - "0x3d02", + "0x3fcc", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2402,9 +2825,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3c2b", + "0x3ef5", "0x482480017fff8000", - "0x3c2a", + "0x3ef4", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2541,9 +2964,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3ba0", + "0x3e6a", "0x482480017fff8000", - "0x3b9f", + "0x3e69", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2575,7 +2998,7 @@ "0x48127ff77fff8000", "0x480080007ffc8000", "0x1104800180018000", - "0x164c", + "0x16aa", "0x40780017fff7fff", "0x1", "0x48127ffa7fff8000", @@ -2814,9 +3237,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3a8f", + "0x3d59", "0x482480017fff8000", - "0x3a8e", + "0x3d58", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2992,9 +3415,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x39dd", + "0x3ca7", "0x482480017fff8000", - "0x39dc", + "0x3ca6", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3013,7 +3436,7 @@ "0x48127ffe7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x1554", + "0x15b2", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -3096,9 +3519,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3975", + "0x3c3f", "0x482480017fff8000", - "0x3974", + "0x3c3e", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3117,7 +3540,7 @@ "0x48127ffe7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x15c0", + "0x161e", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -3201,15 +3624,15 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x390c", + "0x3bd6", "0x482480017fff8000", - "0x390b", + "0x3bd5", "0x480080007fff8000", "0x480080017fff8000", "0x484480017fff8000", "0x8", "0x482480017fff8000", - "0x4142e", + "0x40312", "0xa0680017fff8000", "0x8", "0x48307ffe80007ff5", @@ -3226,7 +3649,7 @@ "0x480a7ff97fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x15a6", + "0x1604", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -3313,28 +3736,28 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x389c", + "0x3b66", "0x482480017fff8000", - "0x389b", + "0x3b65", "0x480080007fff8000", "0xa0680017fff8000", "0x9", "0x4824800180007ff8", - "0x382d4", + "0x371b8", "0x482480017fff8000", "0x100000000000000000000000000000000", "0x400080007ff77fff", "0x10780017fff7fff", "0x1f", "0x4824800180007ff8", - "0x382d4", + "0x371b8", "0x400080007ff87fff", "0x482480017ff88000", "0x1", "0x48127ffe7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x169a", + "0x16f8", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -3459,9 +3882,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x380a", + "0x3ad4", "0x482480017fff8000", - "0x3809", + "0x3ad3", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3661,9 +4084,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3740", + "0x3a0a", "0x482480017fff8000", - "0x373f", + "0x3a09", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3684,7 +4107,7 @@ "0x48127ff47fff8000", "0x48127ff47fff8000", "0x1104800180018000", - "0x16c5", + "0x1723", "0x20680017fff7ffd", "0xe", "0x40780017fff7fff", @@ -3783,9 +4206,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x36c6", + "0x3990", "0x482480017fff8000", - "0x36c5", + "0x398f", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3897,9 +4320,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3654", + "0x391e", "0x482480017fff8000", - "0x3653", + "0x391d", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3918,7 +4341,7 @@ "0x48127ffe7fff8000", "0x48127ff67fff8000", "0x1104800180018000", - "0x172a", + "0x1788", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -4036,9 +4459,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x35c9", + "0x3893", "0x482480017fff8000", - "0x35c8", + "0x3892", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -4057,7 +4480,7 @@ "0x48127ffe7fff8000", "0x48127ff67fff8000", "0x1104800180018000", - "0x16cf", + "0x172d", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -4241,9 +4664,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x34fc", + "0x37c6", "0x482480017fff8000", - "0x34fb", + "0x37c5", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -4485,9 +4908,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3408", + "0x36d2", "0x482480017fff8000", - "0x3407", + "0x36d1", "0x480080007fff8000", "0x480080007fff8000", "0x484480017fff8000", @@ -4513,7 +4936,7 @@ "0x48127feb7fff8000", "0x48127fef7fff8000", "0x1104800180018000", - "0x1533", + "0x1591", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -4628,7 +5051,7 @@ "0x480a7ffc7fff8000", "0x480a7ffd7fff8000", "0x1104800180018000", - "0x1583", + "0x15e1", "0x20680017fff7ffc", "0x63", "0x48307ffa80007ffb", @@ -4653,9 +5076,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3360", + "0x362a", "0x482480017fff8000", - "0x335f", + "0x3629", "0x480080007fff8000", "0x480080007fff8000", "0x484480017fff8000", @@ -4686,7 +5109,7 @@ "0x48127feb7fff8000", "0x48127feb7fff8000", "0x1104800180018000", - "0x160d", + "0x166b", "0x20680017fff7ffd", "0xe", "0x40780017fff7fff", @@ -4821,7 +5244,7 @@ "0x48127ff67fff8000", "0x48127ff67fff8000", "0x1104800180018000", - "0x14c2", + "0x1520", "0x20680017fff7ffc", "0x60", "0x48307ffa80007ffb", @@ -4844,9 +5267,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x32a1", + "0x356b", "0x482480017fff8000", - "0x32a0", + "0x356a", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -5001,9 +5424,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3204", + "0x34ce", "0x482480017fff8000", - "0x3203", + "0x34cd", "0x480080007fff8000", "0x480080027fff8000", "0x482480017fff8000", @@ -5024,7 +5447,7 @@ "0x48127ffd7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x15dd", + "0x163b", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -5133,9 +5556,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3180", + "0x344a", "0x482480017fff8000", - "0x317f", + "0x3449", "0x480080007fff8000", "0x480080007fff8000", "0x484480017fff8000", @@ -5159,7 +5582,7 @@ "0x480a7ffb7fff8000", "0x48127ff17fff8000", "0x1104800180018000", - "0x1678", + "0x16d6", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -5282,9 +5705,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x30eb", + "0x33b5", "0x482480017fff8000", - "0x30ea", + "0x33b4", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -5420,9 +5843,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3061", + "0x332b", "0x482480017fff8000", - "0x3060", + "0x332a", "0x480080007fff8000", "0x480080047fff8000", "0x484480017fff8000", @@ -5450,7 +5873,7 @@ "0x480a7ff77fff8000", "0x48127ffb7fff8000", "0x1104800180018000", - "0x1683", + "0x16e1", "0x20680017fff7ffd", "0xf", "0x40780017fff7fff", @@ -5546,9 +5969,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x2fe3", + "0x32ad", "0x482480017fff8000", - "0x2fe2", + "0x32ac", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -5564,14 +5987,14 @@ "0x400080007ff87fff", "0x480a7ff97fff8000", "0x1104800180018000", - "0x17e3", + "0x1841", "0x482480017fe88000", "0x1", "0x20680017fff7ffc", "0x17", "0x48127ffb7fff8000", "0x1104800180018000", - "0x17dc", + "0x183a", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -5710,9 +6133,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x2f3f", + "0x3209", "0x482480017fff8000", - "0x2f3e", + "0x3208", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -5916,9 +6339,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x2e71", + "0x313b", "0x482480017fff8000", - "0x2e70", + "0x313a", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -6121,9 +6544,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x2da4", + "0x306e", "0x482480017fff8000", - "0x2da3", + "0x306d", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -6326,6 +6749,100 @@ "0x482480017ff78000", "0x1", "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x43616c6c436f6e7472616374", + "0x400280007ff97fff", + "0x400380017ff97ff8", + "0x400380027ff97ffa", + "0x400380037ff97ffb", + "0x400380047ff97ffc", + "0x400380057ff97ffd", + "0x480280077ff98000", + "0x20680017fff7fff", + "0x1c", + "0x40780017fff7fff", + "0x5", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x46a6158a16a947e5916b2a2ca68501a45e93d7110e81aa2d6438b1c57c879a3", + "0x400080007ffe7fff", + "0x480680017fff8000", + "0x0", + "0x400080017ffd7fff", + "0x480680017fff8000", + "0x457870656374656420726576657274", + "0x400080027ffc7fff", + "0x480680017fff8000", + "0xf", + "0x400080037ffb7fff", + "0x480a7ff77fff8000", + "0x480280067ff98000", + "0x482680017ff98000", + "0xa", + "0x480680017fff8000", + "0x1", + "0x48127ff77fff8000", + "0x482480017ff68000", + "0x4", + "0x208b7fff7fff7ffe", + "0x480280067ff98000", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x1275130f95dda36bcbb6e9d28796c1d7e10b6e9fd5ed083e0ede4b12f613528", + "0x480680017fff8000", + "0x53746f7261676552656164", + "0x4002800a7ff97fff", + "0x4002800b7ff97ffc", + "0x4002800c7ff97ffd", + "0x4002800d7ff97ffe", + "0x4802800f7ff98000", + "0x20680017fff7fff", + "0x22", + "0x480280107ff98000", + "0x4802800e7ff98000", + "0x482680017ff98000", + "0x11", + "0x20680017fff7ffd", + "0xe", + "0x40780017fff7fff", + "0x2", + "0x480a7ff77fff8000", + "0x48127ffb7fff8000", + "0x48127ffb7fff8000", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x0", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x76616c7565732073686f756c64206e6f74206368616e67652e", + "0x400080007ffe7fff", + "0x480a7ff77fff8000", + "0x48127ffb7fff8000", + "0x48127ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x5", + "0x480a7ff77fff8000", + "0x4802800e7ff98000", + "0x482680017ff98000", + "0x12", + "0x480680017fff8000", + "0x1", + "0x480280107ff98000", + "0x480280117ff98000", + "0x208b7fff7fff7ffe", "0xa0680017fff8000", "0x7", "0x482680017ff68000", @@ -8702,9 +9219,9 @@ "0x20680017fff7ffd", "0x37", "0x1104800180018000", - "0x2373", + "0x25df", "0x482480017fff8000", - "0x2372", + "0x25de", "0x48127ff97fff8000", "0x480a7ffc7fff8000", "0x480a7ffd7fff8000", @@ -9146,15 +9663,15 @@ "0x20680017fff7ffc", "0x12", "0x40780017fff7fff", - "0x327", + "0x30c", "0x40780017fff7fff", "0x1", "0x480680017fff8000", "0x53686f756c64206265206e6f6e65", "0x400080007ffe7fff", "0x480a7ffb7fff8000", - "0x48127cd47fff8000", - "0x48127cd47fff8000", + "0x48127cef7fff8000", + "0x48127cef7fff8000", "0x480680017fff8000", "0x1", "0x48127ffa7fff8000", @@ -9181,15 +9698,15 @@ "0x20680017fff7fff", "0x13", "0x40780017fff7fff", - "0x321", + "0x306", "0x40780017fff7fff", "0x1", "0x480680017fff8000", "0x53686f756c64206661696c", "0x400080007ffe7fff", "0x480a7ffb7fff8000", - "0x480080067cd58000", - "0x482480017cd48000", + "0x480080067cf08000", + "0x482480017cef8000", "0xa", "0x480680017fff8000", "0x1", @@ -9271,7 +9788,7 @@ "0x10780017fff7fff", "0x6", "0x40780017fff7fff", - "0x301", + "0x2e6", "0x10780017fff7fff", "0xa", "0x4824800180007ffa", @@ -9281,7 +9798,7 @@ "0x10780017fff7fff", "0x6", "0x40780017fff7fff", - "0x300", + "0x2e5", "0x10780017fff7fff", "0x14", "0x4824800180007ffc", @@ -9291,7 +9808,7 @@ "0x10780017fff7fff", "0x6", "0x40780017fff7fff", - "0x2ff", + "0x2e4", "0x10780017fff7fff", "0xa", "0x4824800180007ffc", @@ -9301,15 +9818,15 @@ "0x10780017fff7fff", "0x12", "0x40780017fff7fff", - "0x2fe", + "0x2e3", "0x40780017fff7fff", "0x1", "0x480680017fff8000", "0x556e657870656374656420636f6f7264696e61746573", "0x400080007ffe7fff", - "0x48127ce97fff8000", - "0x48127cf77fff8000", - "0x48127cf77fff8000", + "0x48127d047fff8000", + "0x48127d127fff8000", + "0x48127d127fff8000", "0x480680017fff8000", "0x1", "0x48127ffa7fff8000", @@ -9404,15 +9921,15 @@ "0x48127ffa7fff8000", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x2ea", + "0x2cf", "0x40780017fff7fff", "0x1", "0x480680017fff8000", "0x4f7074696f6e3a3a756e77726170206661696c65642e", "0x400080007ffe7fff", - "0x48127d0d7fff8000", - "0x48127d117fff8000", - "0x48127d117fff8000", + "0x48127d287fff8000", + "0x48127d2c7fff8000", + "0x48127d2c7fff8000", "0x480680017fff8000", "0x1", "0x48127ffa7fff8000", @@ -9420,37 +9937,37 @@ "0x1", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x2f0", - "0x48127d0d7fff8000", - "0x480080067cf88000", - "0x482480017cf78000", + "0x2d5", + "0x48127d287fff8000", + "0x480080067d138000", + "0x482480017d128000", "0xa", "0x480680017fff8000", "0x1", - "0x480080087cf58000", - "0x480080097cf48000", + "0x480080087d108000", + "0x480080097d0f8000", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x30a", - "0x48127ce97fff8000", - "0x480080037cf28000", - "0x482480017cf18000", + "0x2ef", + "0x48127d047fff8000", + "0x480080037d0d8000", + "0x482480017d0c8000", "0x7", "0x480680017fff8000", "0x1", - "0x480080057cef8000", - "0x480080067cee8000", + "0x480080057d0a8000", + "0x480080067d098000", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x30a", + "0x2ef", "0x40780017fff7fff", "0x1", "0x480680017fff8000", "0x4f7074696f6e3a3a756e77726170206661696c65642e", "0x400080007ffe7fff", - "0x48127ce97fff8000", - "0x48127cf17fff8000", - "0x48127cf17fff8000", + "0x48127d047fff8000", + "0x48127d0c7fff8000", + "0x48127d0c7fff8000", "0x480680017fff8000", "0x1", "0x48127ffa7fff8000", @@ -9458,26 +9975,26 @@ "0x1", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x310", - "0x48127ce97fff8000", - "0x480080067ce08000", - "0x482480017cdf8000", + "0x2f5", + "0x48127d047fff8000", + "0x480080067cfb8000", + "0x482480017cfa8000", "0xa", "0x480680017fff8000", "0x1", - "0x480080087cdd8000", - "0x480080097cdc8000", + "0x480080087cf88000", + "0x480080097cf78000", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x314", + "0x2f9", "0x40780017fff7fff", "0x1", "0x480680017fff8000", "0x57726f6e67206572726f72206d7367", "0x400080007ffe7fff", - "0x48127ce97fff8000", - "0x48127cdf7fff8000", - "0x48127cdf7fff8000", + "0x48127d047fff8000", + "0x48127cfa7fff8000", + "0x48127cfa7fff8000", "0x480680017fff8000", "0x1", "0x48127ffa7fff8000", @@ -9485,7 +10002,7 @@ "0x1", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x319", + "0x2fe", "0x40780017fff7fff", "0x1", "0x480680017fff8000", @@ -9493,8 +10010,8 @@ "0x400080007ffe7fff", "0x482680017ffb8000", "0x1", - "0x48127cdf7fff8000", - "0x48127cdf7fff8000", + "0x48127cfa7fff8000", + "0x48127cfa7fff8000", "0x480680017fff8000", "0x1", "0x48127ffa7fff8000", @@ -9502,7 +10019,7 @@ "0x1", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x32d", + "0x312", "0x480a7ffb7fff8000", "0x480280067ffd8000", "0x482680017ffd8000", @@ -11304,9 +11821,9 @@ "0x20680017fff7fff", "0x14d", "0x1104800180018000", - "0x1952", + "0x1bbe", "0x482480017fff8000", - "0x1951", + "0x1bbd", "0x480680017fff8000", "0x2", "0x482480017ffe8000", @@ -11388,7 +11905,7 @@ "0x480680017fff8000", "0x0", "0x1104800180018000", - "0xa11", + "0xbd4", "0x402580017fd38005", "0x1", "0x20680017fff7fff", @@ -11407,7 +11924,7 @@ "0x480680017fff8000", "0x1f", "0x1104800180018000", - "0xa1d", + "0xbe0", "0x20680017fff7ffb", "0x70", "0x48127ffa7fff8000", @@ -11420,7 +11937,7 @@ "0x480680017fff8000", "0x1f", "0x1104800180018000", - "0xa10", + "0xbd3", "0x20680017fff7ffb", "0x59", "0x48127ffa7fff8000", @@ -11433,7 +11950,7 @@ "0x480680017fff8000", "0x1f", "0x1104800180018000", - "0xa03", + "0xbc6", "0x20680017fff7ffb", "0x42", "0x48127ffa7fff8000", @@ -11446,7 +11963,7 @@ "0x480680017fff8000", "0x2", "0x1104800180018000", - "0x9f6", + "0xbb9", "0x20680017fff7ffb", "0x2b", "0x40780017fff7fff", @@ -11468,7 +11985,7 @@ "0x482480017ff88000", "0x2", "0x1104800180018000", - "0xe50", + "0x1013", "0x20680017fff7ffd", "0x9", "0x400180007fff8003", @@ -11925,7 +12442,7 @@ "0x480a7ff97fff8000", "0x480a7ffa7fff8000", "0x1104800180018000", - "0xcc9", + "0xe8c", "0x20680017fff7ffc", "0x11", "0x400280007ffc7ffd", @@ -12295,7 +12812,7 @@ "0x480080007ffc8000", "0x480080017ffb8000", "0x1104800180018000", - "0xc07", + "0xdca", "0x20680017fff7ffd", "0xb", "0x48127ffc7fff8000", @@ -12544,7 +13061,7 @@ "0x48127ffa7fff8000", "0x48127ffb7fff8000", "0x1104800180018000", - "0xbab", + "0xd6e", "0x208b7fff7fff7ffe", "0x40780017fff7fff", "0x1", @@ -12750,7 +13267,7 @@ "0x48127ff27fff8000", "0x48307ffc80007ffd", "0x1104800180018000", - "0xb30", + "0xcf3", "0x484480017f9b8000", "0x20", "0xa0680017fff8000", @@ -13079,7 +13596,7 @@ "0x480a7ffb7fff8000", "0x480a7ffc7fff8000", "0x1104800180018000", - "0xad6", + "0xc99", "0x20680017fff7ffd", "0x3e", "0x20680017fff7ffe", @@ -13090,7 +13607,7 @@ "0x48127ff97fff8000", "0x48127ffb7fff8000", "0x1104800180018000", - "0xd8d", + "0x1112", "0x20680017fff7ffd", "0x1b", "0x48317fff80007ffd", @@ -13188,7 +13705,7 @@ "0x20680017fff7fff", "0x4", "0x10780017fff7fff", - "0x2fd", + "0x4c0", "0x480680017fff8000", "0xffffffff00000000ffffffffffffffff", "0x48317fff80017ffa", @@ -13209,10 +13726,10 @@ "0x10780017fff7fff", "0x7", "0x40780017fff7fff", - "0x2d3", - "0x48127d2b7fff8000", + "0x2b8", + "0x48127d467fff8000", "0x10780017fff7fff", - "0x2e8", + "0x4ab", "0x480680017fff8000", "0xbce6faada7179e84f3b9cac2fc632551", "0x48317fff80017ff9", @@ -13225,11 +13742,11 @@ "0x9", "0x400080007ffb7fff", "0x40780017fff7fff", - "0x2d0", - "0x482480017d2b8000", + "0x2b5", + "0x482480017d468000", "0x1", "0x10780017fff7fff", - "0x2d7", + "0x49a", "0x482480017ffa8000", "0x1", "0x10780017fff7fff", @@ -13322,7 +13839,7 @@ "0x1", "0x48307ffe80007fff", "0x20680017fff7fff", - "0x272", + "0x435", "0x480680017fff8000", "0xbce6faada7179e84f3b9cac2fc632551", "0x480680017fff8000", @@ -13428,7 +13945,7 @@ "0x40317ff97ffb7ffc", "0x40307ffa7ffc7ff1", "0x10780017fff7fff", - "0x1bb", + "0x37e", "0x4824800180008002", "0xffffffffffffffff0000000000000000", "0x480080097fcb8001", @@ -13675,23 +14192,472 @@ "0x480a7ff87fff8000", "0x48127f597fff8000", "0x48127f597fff8000", + "0x1104800180018000", + "0xf8f", "0x480680017fff8000", "0xbce6faada7179e84f3b9cac2fc632551", "0x480680017fff8000", "0xffffffff00000000ffffffffffffffff", - "0x1104800180018000", - "0xc06", - "0x48127ffd7fff8000", + "0x480080007ff98000", + "0x480080017ff88000", + "0x480080027ff78000", + "0x480080037ff68000", + "0x480080047ff58000", + "0x480080057ff48000", + "0x48307fff80007ff9", + "0x40780017fff7fff", + "0xc", + "0x20680017fff7ff3", + "0x8", + "0x40307ff17ff47feb", + "0x402480017ff57ff4", + "0x1", + "0x400080067fe67ff5", + "0x10780017fff7fff", + "0x3", + "0x400080067fe67ff3", + "0x48307ff17ff68000", + "0x48307fe680007fff", + "0x4844800180007fff", + "0x100000000000000000000000000000000", + "0x40507fff7fff7fff", + "0x48307ff47fff8000", + "0x48307ff47fff8000", + "0x48307ff57fff8000", + "0x48307fec7fff8000", + "0x48307fe180007fff", + "0x4844800180007fff", + "0x100000000000000000000000000000000", + "0x400080077fdd7fff", + "0x482480017fff8000", + "0xfffffffffffffffffffffffffffffffc", + "0x400080087fdc7fff", + "0x48307fef7ffe8000", + "0x48307ff07fff8000", + "0x48307ff07fff8000", + "0x48307ff17fff8000", + "0x48307fdb80007fff", + "0x4844800180007fff", + "0x100000000000000000000000000000000", + "0x400080097fd67fff", + "0x482480017fff8000", + "0xfffffffffffffffffffffffffffffffc", + "0x4000800a7fd57fff", + "0xa0680017fff7fdf", + "0xc", + "0xa0680017fff8001", + "0x6", + "0x48127fd97fff7ffe", + "0x40127fdb7fff7ffe", + "0x10780017fff7fff", + "0x10", + "0x48127fdc7fff7ffe", + "0x40127fd87fff7ffe", + "0x10780017fff7fff", + "0xc", + "0x480680017fff7fda", + "0x0", + "0xa0680017fff8000", + "0x6", + "0x40127fd77fff7ffd", + "0x40127fdc7fff7ffe", + "0x10780017fff7fff", + "0x4", + "0x40127fdc7fff7ffd", + "0x40127fd77fff7ffe", + "0x482480017ffd8000", + "0xffffffffffffffff0000000000000000", + "0x4000800b7fd17fff", + "0x48507ffd7ffc8000", + "0x48307fe97ff98000", + "0x48307fe67fff8000", + "0x40307ffd7fff7fd2", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x4800800c7fcd8001", + "0x4800800d7fcc7ffe", + "0x4000800e7fcb7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fd3", + "0x48507fcf7ffc8000", + "0x48507fce7ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x4800800f7fc78001", + "0x480080107fc67fff", + "0x400080117fc57ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x480080127fc17fff", + "0x480080137fc07ffd", + "0x400080147fbf7fd7", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fd77ffe7fff", + "0x40307ffc7ff77fd8", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x480080157fbe8001", + "0x480080167fbd7ffe", + "0x400080177fbc7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fc3", + "0x48507fc17ffc8000", + "0x48507fc07ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x480080187fb88001", + "0x480080197fb77fff", + "0x4000801a7fb67ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x4800801b7fb27fff", + "0x4800801c7fb17ffd", + "0x4000801d7fb07fc6", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fc67ffe7fff", + "0x40307ffc7ff77fc7", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x4800801e7faf8001", + "0x4800801f7fae7ffe", + "0x400080207fad7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fb4", + "0x48507fb17ffc8000", + "0x48507fb07ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x480080217fa98001", + "0x480080227fa87fff", + "0x400080237fa77ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x480080247fa37fff", + "0x480080257fa27ffd", + "0x400080267fa17fb3", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fb37ffe7fff", + "0x40307ffc7ff77fb4", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x480080277fa08001", + "0x480080287f9f7ffe", + "0x400080297f9e7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fa4", + "0x48507fa37ffc8000", + "0x48507fa27ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x4800802a7f9a8001", + "0x4800802b7f997fff", + "0x4000802c7f987ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x4800802d7f947fff", + "0x4800802e7f937ffd", + "0x4000802f7f927fa6", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fa67ffe7fff", + "0x40307ffc7ff77fa7", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x480080307f918001", + "0x480080317f907ffe", + "0x400080327f8f7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7f95", + "0x48507f937ffc8000", + "0x48507f927ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x480080337f8b8001", + "0x480080347f8a7fff", + "0x400080357f897ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x480080367f857fff", + "0x480080377f847ffd", + "0x400080387f837f93", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307f937ffe7fff", + "0x40307ffc7ff77f94", + "0x482480017f838000", + "0x39", "0x480a7ff97fff8000", "0x480a7ffa7fff8000", - "0x48127e5d7fff8000", - "0x48127e5d7fff8000", + "0x48127e6b7fff8000", + "0x48127e6b7fff8000", + "0x1104800180018000", + "0xea3", "0x480680017fff8000", "0xbce6faada7179e84f3b9cac2fc632551", "0x480680017fff8000", "0xffffffff00000000ffffffffffffffff", - "0x1104800180018000", - "0xbfb", + "0x480080007ff98000", + "0x480080017ff88000", + "0x480080027ff78000", + "0x480080037ff68000", + "0x480080047ff58000", + "0x480080057ff48000", + "0x48307fff80007ff9", + "0x40780017fff7fff", + "0xc", + "0x20680017fff7ff3", + "0x8", + "0x40307ff17ff47feb", + "0x402480017ff57ff4", + "0x1", + "0x400080067fe67ff5", + "0x10780017fff7fff", + "0x3", + "0x400080067fe67ff3", + "0x48307ff17ff68000", + "0x48307fe680007fff", + "0x4844800180007fff", + "0x100000000000000000000000000000000", + "0x40507fff7fff7fff", + "0x48307ff47fff8000", + "0x48307ff47fff8000", + "0x48307ff57fff8000", + "0x48307fec7fff8000", + "0x48307fe180007fff", + "0x4844800180007fff", + "0x100000000000000000000000000000000", + "0x400080077fdd7fff", + "0x482480017fff8000", + "0xfffffffffffffffffffffffffffffffc", + "0x400080087fdc7fff", + "0x48307fef7ffe8000", + "0x48307ff07fff8000", + "0x48307ff07fff8000", + "0x48307ff17fff8000", + "0x48307fdb80007fff", + "0x4844800180007fff", + "0x100000000000000000000000000000000", + "0x400080097fd67fff", + "0x482480017fff8000", + "0xfffffffffffffffffffffffffffffffc", + "0x4000800a7fd57fff", + "0xa0680017fff7fdf", + "0xc", + "0xa0680017fff8001", + "0x6", + "0x48127fd97fff7ffe", + "0x40127fdb7fff7ffe", + "0x10780017fff7fff", + "0x10", + "0x48127fdc7fff7ffe", + "0x40127fd87fff7ffe", + "0x10780017fff7fff", + "0xc", + "0x480680017fff7fda", + "0x0", + "0xa0680017fff8000", + "0x6", + "0x40127fd77fff7ffd", + "0x40127fdc7fff7ffe", + "0x10780017fff7fff", + "0x4", + "0x40127fdc7fff7ffd", + "0x40127fd77fff7ffe", + "0x482480017ffd8000", + "0xffffffffffffffff0000000000000000", + "0x4000800b7fd17fff", + "0x48507ffd7ffc8000", + "0x48307fe97ff98000", + "0x48307fe67fff8000", + "0x40307ffd7fff7fd2", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x4800800c7fcd8001", + "0x4800800d7fcc7ffe", + "0x4000800e7fcb7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fd3", + "0x48507fcf7ffc8000", + "0x48507fce7ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x4800800f7fc78001", + "0x480080107fc67fff", + "0x400080117fc57ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x480080127fc17fff", + "0x480080137fc07ffd", + "0x400080147fbf7fd7", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fd77ffe7fff", + "0x40307ffc7ff77fd8", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x480080157fbe8001", + "0x480080167fbd7ffe", + "0x400080177fbc7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fc3", + "0x48507fc17ffc8000", + "0x48507fc07ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x480080187fb88001", + "0x480080197fb77fff", + "0x4000801a7fb67ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x4800801b7fb27fff", + "0x4800801c7fb17ffd", + "0x4000801d7fb07fc6", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fc67ffe7fff", + "0x40307ffc7ff77fc7", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x4800801e7faf8001", + "0x4800801f7fae7ffe", + "0x400080207fad7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fb4", + "0x48507fb17ffc8000", + "0x48507fb07ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x480080217fa98001", + "0x480080227fa87fff", + "0x400080237fa77ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x480080247fa37fff", + "0x480080257fa27ffd", + "0x400080267fa17fb3", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fb37ffe7fff", + "0x40307ffc7ff77fb4", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x480080277fa08001", + "0x480080287f9f7ffe", + "0x400080297f9e7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fa4", + "0x48507fa37ffc8000", + "0x48507fa27ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x4800802a7f9a8001", + "0x4800802b7f997fff", + "0x4000802c7f987ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x4800802d7f947fff", + "0x4800802e7f937ffd", + "0x4000802f7f927fa6", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fa67ffe7fff", + "0x40307ffc7ff77fa7", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x480080307f918001", + "0x480080317f907ffe", + "0x400080327f8f7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7f95", + "0x48507f937ffc8000", + "0x48507f927ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x480080337f8b8001", + "0x480080347f8a7fff", + "0x400080357f897ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x480080367f857fff", + "0x480080377f847ffd", + "0x400080387f837f93", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307f937ffe7fff", + "0x40307ffc7ff77f94", "0x480680017fff8000", "0x77037d812deb33a0f4a13945d898c296", "0x480680017fff8000", @@ -13700,14 +14666,16 @@ "0x2bce33576b315ececbb6406837bf51f5", "0x480680017fff8000", "0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e16", + "0x482480017f7f8000", + "0x39", "0x480680017fff8000", "0x5365637032353672314e6577", "0x400280007ff67fff", "0x400380017ff67ff5", - "0x400280027ff67ffb", - "0x400280037ff67ffc", - "0x400280047ff67ffd", - "0x400280057ff67ffe", + "0x400280027ff67ffa", + "0x400280037ff67ffb", + "0x400280047ff67ffc", + "0x400280057ff67ffd", "0x480280077ff68000", "0x20680017fff7fff", "0x92", @@ -13723,8 +14691,8 @@ "0x400080007ffe7fff", "0x400080017ffe7ffd", "0x400080027ffe7ffc", - "0x400080037ffe7ef7", - "0x400080047ffe7ef8", + "0x400080037ffe7e94", + "0x400080047ffe7e95", "0x480080067ffe8000", "0x20680017fff7fff", "0x68", @@ -13735,8 +14703,8 @@ "0x400080087ffa7fff", "0x400080097ffa7ffd", "0x4001800a7ffa7ffd", - "0x4000800b7ffa7fef", - "0x4000800c7ffa7ff0", + "0x4000800b7ffa7f7e", + "0x4000800c7ffa7f7f", "0x4800800e7ffa8000", "0x20680017fff7fff", "0x51", @@ -13788,7 +14756,7 @@ "0x4", "0x480680017fff8000", "0x1", - "0x48127fde7fff8000", + "0x48127fe47fff8000", "0x48127ffa7fff8000", "0x48127ffa7fff8000", "0x480680017fff8000", @@ -13799,7 +14767,7 @@ "0x208b7fff7fff7ffe", "0x40780017fff7fff", "0x7", - "0x48127fde7fff8000", + "0x48127fe47fff8000", "0x4800801a7fe98000", "0x482480017fe88000", "0x1e", @@ -13810,7 +14778,7 @@ "0x208b7fff7fff7ffe", "0x40780017fff7fff", "0xb", - "0x48127fde7fff8000", + "0x48127fe47fff8000", "0x480080147fe98000", "0x482480017fe88000", "0x18", @@ -13821,7 +14789,7 @@ "0x208b7fff7fff7ffe", "0x40780017fff7fff", "0xf", - "0x48127fde7fff8000", + "0x48127fe47fff8000", "0x4800800d7fe98000", "0x482480017fe88000", "0x11", @@ -13832,7 +14800,7 @@ "0x208b7fff7fff7ffe", "0x40780017fff7fff", "0x13", - "0x48127fde7fff8000", + "0x48127fe47fff8000", "0x480080057fe98000", "0x482480017fe88000", "0x9", @@ -13862,7 +14830,7 @@ "0xa", "0x480280087ff68000", "0x480280097ff68000", - "0x48127fde7fff8000", + "0x48127fe47fff8000", "0x48127ffb7fff8000", "0x48127ffb7fff8000", "0x480680017fff8000", @@ -13871,22 +14839,22 @@ "0x48127ffa7fff8000", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x28f", + "0x274", "0x4824800180008002", "0xffffffffffffffff0000000000000000", - "0x480080077d5c8001", - "0x480080087d5b7ffe", - "0x400080097d5a7ffe", + "0x480080077d778001", + "0x480080087d767ffe", + "0x400080097d757ffe", "0x484480017ffe8000", "0x10000000000000000", - "0x40307ffc7fff7d5f", - "0x48507d637ffc8000", - "0x48507d627ffc8000", + "0x40307ffc7fff7d7a", + "0x48507d7e7ffc8000", + "0x48507d7d7ffc8000", "0x4824800180018002", "0xffffffffffffffff0000000000000000", - "0x4800800a7d568001", - "0x4800800b7d557fff", - "0x4000800c7d547ffd", + "0x4800800a7d718001", + "0x4800800b7d707fff", + "0x4000800c7d6f7ffd", "0x484480017ffd8000", "0x10000000000000000", "0x40307ffd7fff7ffb", @@ -13895,28 +14863,28 @@ "0x48307fff7ff98003", "0x482480017fff8000", "0xfffffffffffffffe0000000000000000", - "0x4800800d7d507fff", - "0x4800800e7d4f7ffd", - "0x4000800f7d4e7d52", + "0x4800800d7d6b7fff", + "0x4800800e7d6a7ffd", + "0x4000800f7d697d6d", "0x404480017ffc7ffe", "0x100000000000000000000000000000000", - "0x40307d527ffe7fff", - "0x40307ffc7ff77d5c", + "0x40307d6d7ffe7fff", + "0x40307ffc7ff77d77", "0x4824800180008002", "0xffffffffffffffff0000000000000000", - "0x480080107d4d8001", - "0x480080117d4c7ffe", - "0x400080127d4b7ffe", + "0x480080107d688001", + "0x480080117d677ffe", + "0x400080127d667ffe", "0x484480017ffe8000", "0x10000000000000000", - "0x40307ffc7fff7d50", - "0x48507d527ffc8000", - "0x48507d517ffc8000", + "0x40307ffc7fff7d6b", + "0x48507d6d7ffc8000", + "0x48507d6c7ffc8000", "0x4824800180018002", "0xffffffffffffffff0000000000000000", - "0x480080137d478001", - "0x480080147d467fff", - "0x400080157d457ffd", + "0x480080137d628001", + "0x480080147d617fff", + "0x400080157d607ffd", "0x484480017ffd8000", "0x10000000000000000", "0x40307ffd7fff7ffb", @@ -13925,19 +14893,19 @@ "0x48307fff7ff98003", "0x482480017fff8000", "0xfffffffffffffffe0000000000000000", - "0x480080167d417fff", - "0x480080177d407ffd", - "0x400180187d3f7ffb", + "0x480080167d5c7fff", + "0x480080177d5b7ffd", + "0x400180187d5a7ffb", "0x404480017ffc7ffe", "0x100000000000000000000000000000000", "0x40287ffb7ffe7fff", - "0x40307ffc7ff77d4c", + "0x40307ffc7ff77d67", "0x40780017fff7fff", "0x1", "0x480680017fff8000", "0x4f7074696f6e3a3a756e77726170206661696c65642e", "0x400080007ffe7fff", - "0x482480017d3d8000", + "0x482480017d588000", "0x19", "0x480a7ff57fff8000", "0x480a7ff67fff8000", @@ -13948,12 +14916,12 @@ "0x1", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x2bf", - "0x48127d3d7fff8000", + "0x2a4", + "0x48127d587fff8000", "0x10780017fff7fff", "0x5", "0x40780017fff7fff", - "0x2d8", + "0x2bd", "0x480a7ff47fff8000", "0x480a7ff57fff8000", "0x480a7ff67fff8000", @@ -14115,7 +15083,7 @@ "0x1", "0x48127ffe7fff8000", "0x1104800180018000", - "0xc7b", + "0xd24", "0x20680017fff7ffd", "0xb7", "0x20680017fff7fff", @@ -14190,7 +15158,7 @@ "0x7", "0x48127ffe7fff8000", "0x1104800180018000", - "0xc30", + "0xcd9", "0x20680017fff7ffd", "0x7", "0x48127ffc7fff8000", @@ -14225,7 +15193,7 @@ "0x6", "0x48127ff67fff8000", "0x1104800180018000", - "0xc0d", + "0xcb6", "0x20680017fff7ffd", "0x34", "0x48127ffc7fff8000", @@ -14367,7 +15335,7 @@ "0x48127ffd7fff8000", "0x48127fef7fff8000", "0x1104800180018000", - "0xb7f", + "0xc28", "0x20680017fff7ffd", "0xdd", "0x20680017fff7fff", @@ -14417,7 +15385,7 @@ "0x5", "0x48127ffe7fff8000", "0x1104800180018000", - "0xb4d", + "0xbf6", "0x20680017fff7ffd", "0x96", "0x480680017fff8000", @@ -14459,7 +15427,7 @@ "0x3", "0x48127ffe7fff8000", "0x1104800180018000", - "0xb23", + "0xbcc", "0x20680017fff7ffd", "0x7", "0x48127ffc7fff8000", @@ -14494,7 +15462,7 @@ "0x2", "0x48127ff67fff8000", "0x1104800180018000", - "0xb00", + "0xba9", "0x20680017fff7ffd", "0x34", "0x48127ffc7fff8000", @@ -14679,7 +15647,7 @@ "0x3", "0x48127ffe7fff8000", "0x1104800180018000", - "0xa47", + "0xaf0", "0x20680017fff7ffd", "0x7", "0x48127ffc7fff8000", @@ -14714,7 +15682,7 @@ "0x2", "0x48127ff87fff8000", "0x1104800180018000", - "0xa24", + "0xacd", "0x20680017fff7ffd", "0x3a", "0x48127ffc7fff8000", @@ -14849,7 +15817,7 @@ "0x2", "0x48127ffe7fff8000", "0x1104800180018000", - "0x99d", + "0xa46", "0x20680017fff7ffd", "0x7", "0x48127ffc7fff8000", @@ -14884,7 +15852,7 @@ "0x1", "0x480a7ffd7fff8000", "0x1104800180018000", - "0x97a", + "0xa23", "0x20680017fff7ffd", "0x3c", "0x48127ffc7fff8000", @@ -14996,7 +15964,7 @@ "0x2", "0x48127ffe7fff8000", "0x1104800180018000", - "0x90a", + "0x9b3", "0x20680017fff7ffd", "0x7", "0x48127ffc7fff8000", @@ -15031,7 +15999,7 @@ "0x1", "0x480a7ffd7fff8000", "0x1104800180018000", - "0x8e7", + "0x990", "0x20680017fff7ffd", "0x2d", "0x48127ffc7fff8000", @@ -15861,14 +16829,14 @@ "0x400380047ff67ffd", "0x480280067ff68000", "0x20680017fff7fff", - "0x2af", + "0x471", "0x480280077ff68000", "0x480280087ff68000", "0x480280057ff68000", "0x482680017ff68000", "0x9", "0x20680017fff7ffc", - "0x29c", + "0x45e", "0x480680017fff8000", "0x29bfcdb2dce28d959f2815b16f81798", "0x480680017fff8000", @@ -15887,14 +16855,14 @@ "0x400080057ffa7ffe", "0x480080077ffa8000", "0x20680017fff7fff", - "0x27a", + "0x43c", "0x480080087ff98000", "0x480080097ff88000", "0x480080067ff78000", "0x482480017ff68000", "0xa", "0x20680017fff7ffc", - "0x265", + "0x427", "0x480680017fff8000", "0xbaaedce6af48a03bbfd25e8cd0364141", "0x480680017fff8000", @@ -16000,7 +16968,7 @@ "0x40317ff97ffb7ffa", "0x40307ffa7ffc7ff1", "0x10780017fff7fff", - "0x1ae", + "0x370", "0x4824800180008002", "0xffffffffffffffff0000000000000000", "0x480280097ff48001", @@ -16247,40 +17215,264 @@ "0x480a7ff87fff8000", "0x48127f597fff8000", "0x48127f597fff8000", + "0x1104800180018000", + "0x3c0", "0x480680017fff8000", "0xbaaedce6af48a03bbfd25e8cd0364141", "0x480680017fff8000", "0xfffffffffffffffffffffffffffffffe", - "0x1104800180018000", - "0x1fa", + "0x480080007ff98000", + "0x480080017ff88000", + "0x480080027ff78000", + "0x480080037ff68000", + "0x480080047ff58000", + "0x480080057ff48000", + "0x48307fff80007ff9", + "0x40780017fff7fff", + "0xc", + "0x20680017fff7ff3", + "0x8", + "0x40307ff17ff47feb", + "0x402480017ff57ff4", + "0x1", + "0x400080067fe67ff5", + "0x10780017fff7fff", + "0x3", + "0x400080067fe67ff3", + "0x48307ff17ff68000", + "0x48307fe680007fff", + "0x4844800180007fff", + "0x100000000000000000000000000000000", + "0x40507fff7fff7fff", + "0x48307ff47fff8000", + "0x48307ff47fff8000", + "0x48307ff57fff8000", + "0x48307fec7fff8000", + "0x48307fe180007fff", + "0x4844800180007fff", + "0x100000000000000000000000000000000", + "0x400080077fdd7fff", + "0x482480017fff8000", + "0xfffffffffffffffffffffffffffffffc", + "0x400080087fdc7fff", + "0x48307fef7ffe8000", + "0x48307ff07fff8000", + "0x48307ff07fff8000", + "0x48307ff17fff8000", + "0x48307fdb80007fff", + "0x4844800180007fff", + "0x100000000000000000000000000000000", + "0x400080097fd67fff", + "0x482480017fff8000", + "0xfffffffffffffffffffffffffffffffc", + "0x4000800a7fd57fff", + "0xa0680017fff7fdf", + "0xc", + "0xa0680017fff8001", + "0x6", + "0x48127fd97fff7ffe", + "0x40127fdb7fff7ffe", + "0x10780017fff7fff", + "0x10", + "0x48127fdc7fff7ffe", + "0x40127fd87fff7ffe", + "0x10780017fff7fff", + "0xc", + "0x480680017fff7fda", + "0x0", + "0xa0680017fff8000", + "0x6", + "0x40127fd77fff7ffd", + "0x40127fdc7fff7ffe", + "0x10780017fff7fff", + "0x4", + "0x40127fdc7fff7ffd", + "0x40127fd77fff7ffe", + "0x482480017ffd8000", + "0xffffffffffffffff0000000000000000", + "0x4000800b7fd17fff", + "0x48507ffd7ffc8000", + "0x48307fe97ff98000", + "0x48307fe67fff8000", + "0x40307ffd7fff7fd2", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x4800800c7fcd8001", + "0x4800800d7fcc7ffe", + "0x4000800e7fcb7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fd3", + "0x48507fcf7ffc8000", + "0x48507fce7ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x4800800f7fc78001", + "0x480080107fc67fff", + "0x400080117fc57ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x480080127fc17fff", + "0x480080137fc07ffd", + "0x400080147fbf7fd7", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fd77ffe7fff", + "0x40307ffc7ff77fd8", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x480080157fbe8001", + "0x480080167fbd7ffe", + "0x400080177fbc7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fc3", + "0x48507fc17ffc8000", + "0x48507fc07ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x480080187fb88001", + "0x480080197fb77fff", + "0x4000801a7fb67ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x4800801b7fb27fff", + "0x4800801c7fb17ffd", + "0x4000801d7fb07fc6", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fc67ffe7fff", + "0x40307ffc7ff77fc7", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x4800801e7faf8001", + "0x4800801f7fae7ffe", + "0x400080207fad7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fb4", + "0x48507fb17ffc8000", + "0x48507fb07ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x480080217fa98001", + "0x480080227fa87fff", + "0x400080237fa77ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x480080247fa37fff", + "0x480080257fa27ffd", + "0x400080267fa17fb3", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fb37ffe7fff", + "0x40307ffc7ff77fb4", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x480080277fa08001", + "0x480080287f9f7ffe", + "0x400080297f9e7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fa4", + "0x48507fa37ffc8000", + "0x48507fa27ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x4800802a7f9a8001", + "0x4800802b7f997fff", + "0x4000802c7f987ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x4800802d7f947fff", + "0x4800802e7f937ffd", + "0x4000802f7f927fa6", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fa67ffe7fff", + "0x40307ffc7ff77fa7", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x480080307f918001", + "0x480080317f907ffe", + "0x400080327f8f7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7f95", + "0x48507f937ffc8000", + "0x48507f927ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x480080337f8b8001", + "0x480080347f8a7fff", + "0x400080357f897ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x480080367f857fff", + "0x480080377f847ffd", + "0x400080387f837f93", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307f937ffe7fff", + "0x40307ffc7ff77f94", "0x480680017fff8000", "0xfffffffffffffffffffffffffffffffe", - "0x48307ffe80017fff", + "0x48307f8e80017fff", "0xa0680017fff7fff", "0x7", "0x482480017fff8000", "0x100000000000000000000000000000000", - "0x400080007ff97fff", + "0x400080397f7f7fff", "0x10780017fff7fff", "0xc", - "0x400080007ffa7fff", + "0x400080397f807fff", "0x40780017fff7fff", "0x1", - "0x482480017ff98000", - "0x1", + "0x482480017f7f8000", + "0x3a", "0x48127ffd7fff8000", "0x480680017fff8000", "0x0", "0x10780017fff7fff", "0x7", - "0x482480017ff98000", - "0x1", + "0x482480017f7f8000", + "0x3a", "0x48127ffe7fff8000", "0x480680017fff8000", "0x1", "0x480680017fff8000", "0xbaaedce6af48a03bbfd25e8cd0364141", - "0x48307ff680017fff", + "0x48307f8680017fff", "0xa0680017fff7fff", "0x7", "0x482480017fff8000", @@ -16325,104 +17517,330 @@ "0x480680017fff8000", "0x1", "0x20680017fff7fff", - "0x59", + "0x13b", "0x48127ffc7fff8000", "0x480a7ffb7fff8000", "0x480a7ffc7fff8000", - "0x48127e4a7fff8000", - "0x48127e4a7fff8000", + "0x48127e587fff8000", + "0x48127e587fff8000", + "0x1104800180018000", + "0x28c", "0x480680017fff8000", "0xbaaedce6af48a03bbfd25e8cd0364141", "0x480680017fff8000", "0xfffffffffffffffffffffffffffffffe", - "0x1104800180018000", - "0x1a6", - "0x48127f017fff8000", - "0x48127f017fff8000", + "0x480080007ff98000", + "0x480080017ff88000", + "0x480080027ff78000", + "0x480080037ff68000", + "0x480080047ff58000", + "0x480080057ff48000", + "0x48307fff80007ff9", + "0x40780017fff7fff", + "0xc", + "0x20680017fff7ff3", + "0x8", + "0x40307ff17ff47feb", + "0x402480017ff57ff4", + "0x1", + "0x400080067fe67ff5", + "0x10780017fff7fff", + "0x3", + "0x400080067fe67ff3", + "0x48307ff17ff68000", + "0x48307fe680007fff", + "0x4844800180007fff", + "0x100000000000000000000000000000000", + "0x40507fff7fff7fff", + "0x48307ff47fff8000", + "0x48307ff47fff8000", + "0x48307ff57fff8000", + "0x48307fec7fff8000", + "0x48307fe180007fff", + "0x4844800180007fff", + "0x100000000000000000000000000000000", + "0x400080077fdd7fff", + "0x482480017fff8000", + "0xfffffffffffffffffffffffffffffffc", + "0x400080087fdc7fff", + "0x48307fef7ffe8000", + "0x48307ff07fff8000", + "0x48307ff07fff8000", + "0x48307ff17fff8000", + "0x48307fdb80007fff", + "0x4844800180007fff", + "0x100000000000000000000000000000000", + "0x400080097fd67fff", + "0x482480017fff8000", + "0xfffffffffffffffffffffffffffffffc", + "0x4000800a7fd57fff", + "0xa0680017fff7fdf", + "0xc", + "0xa0680017fff8001", + "0x6", + "0x48127fd97fff7ffe", + "0x40127fdb7fff7ffe", + "0x10780017fff7fff", + "0x10", + "0x48127fdc7fff7ffe", + "0x40127fd87fff7ffe", + "0x10780017fff7fff", + "0xc", + "0x480680017fff7fda", + "0x0", + "0xa0680017fff8000", + "0x6", + "0x40127fd77fff7ffd", + "0x40127fdc7fff7ffe", + "0x10780017fff7fff", + "0x4", + "0x40127fdc7fff7ffd", + "0x40127fd77fff7ffe", + "0x482480017ffd8000", + "0xffffffffffffffff0000000000000000", + "0x4000800b7fd17fff", + "0x48507ffd7ffc8000", + "0x48307fe97ff98000", + "0x48307fe67fff8000", + "0x40307ffd7fff7fd2", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x4800800c7fcd8001", + "0x4800800d7fcc7ffe", + "0x4000800e7fcb7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fd3", + "0x48507fcf7ffc8000", + "0x48507fce7ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x4800800f7fc78001", + "0x480080107fc67fff", + "0x400080117fc57ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x480080127fc17fff", + "0x480080137fc07ffd", + "0x400080147fbf7fd7", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fd77ffe7fff", + "0x40307ffc7ff77fd8", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x480080157fbe8001", + "0x480080167fbd7ffe", + "0x400080177fbc7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fc3", + "0x48507fc17ffc8000", + "0x48507fc07ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x480080187fb88001", + "0x480080197fb77fff", + "0x4000801a7fb67ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x4800801b7fb27fff", + "0x4800801c7fb17ffd", + "0x4000801d7fb07fc6", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fc67ffe7fff", + "0x40307ffc7ff77fc7", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x4800801e7faf8001", + "0x4800801f7fae7ffe", + "0x400080207fad7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fb4", + "0x48507fb17ffc8000", + "0x48507fb07ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x480080217fa98001", + "0x480080227fa87fff", + "0x400080237fa77ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x480080247fa37fff", + "0x480080257fa27ffd", + "0x400080267fa17fb3", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fb37ffe7fff", + "0x40307ffc7ff77fb4", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x480080277fa08001", + "0x480080287f9f7ffe", + "0x400080297f9e7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7fa4", + "0x48507fa37ffc8000", + "0x48507fa27ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x4800802a7f9a8001", + "0x4800802b7f997fff", + "0x4000802c7f987ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x4800802d7f947fff", + "0x4800802e7f937ffd", + "0x4000802f7f927fa6", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307fa67ffe7fff", + "0x40307ffc7ff77fa7", + "0x4824800180008002", + "0xffffffffffffffff0000000000000000", + "0x480080307f918001", + "0x480080317f907ffe", + "0x400080327f8f7ffe", + "0x484480017ffe8000", + "0x10000000000000000", + "0x40307ffc7fff7f95", + "0x48507f937ffc8000", + "0x48507f927ffc8000", + "0x4824800180018002", + "0xffffffffffffffff0000000000000000", + "0x480080337f8b8001", + "0x480080347f8a7fff", + "0x400080357f897ffd", + "0x484480017ffd8000", + "0x10000000000000000", + "0x40307ffd7fff7ffb", + "0x484480017ffd8000", + "0x10000000000000000", + "0x48307fff7ff98003", + "0x482480017fff8000", + "0xfffffffffffffffe0000000000000000", + "0x480080367f857fff", + "0x480080377f847ffd", + "0x400080387f837f93", + "0x404480017ffc7ffe", + "0x100000000000000000000000000000000", + "0x40307f937ffe7fff", + "0x40307ffc7ff77f94", + "0x48127f0f7fff8000", + "0x48127f0f7fff8000", + "0x482480017f818000", + "0x39", "0x480680017fff8000", "0x536563703235366b314d756c", - "0x400080007d497fff", - "0x400080017d497d48", - "0x400080027d497d47", - "0x400080037d497ffd", - "0x400080047d497ffe", - "0x480080067d498000", + "0x400080007d647fff", + "0x400080017d647d63", + "0x400080027d647d62", + "0x400080037d647ffc", + "0x400080047d647ffd", + "0x480080067d648000", "0x20680017fff7fff", "0x37", - "0x480080057d488000", - "0x480080077d478000", + "0x480080057d638000", + "0x480080077d628000", "0x480680017fff8000", "0x536563703235366b314d756c", - "0x400080087d457fff", - "0x400080097d457ffd", - "0x4000800a7d457d39", - "0x4000800b7d457ff7", - "0x4000800c7d457ff8", - "0x4800800e7d458000", + "0x400080087d607fff", + "0x400080097d607ffd", + "0x4000800a7d607d54", + "0x4000800b7d607f86", + "0x4000800c7d607f87", + "0x4800800e7d608000", "0x20680017fff7fff", "0x20", - "0x4800800d7d448000", - "0x4800800f7d438000", + "0x4800800d7d5f8000", + "0x4800800f7d5e8000", "0x480680017fff8000", "0x536563703235366b31416464", - "0x400080107d417fff", - "0x400080117d417ffd", - "0x400080127d417ffa", - "0x400080137d417ffe", - "0x480080157d418000", + "0x400080107d5c7fff", + "0x400080117d5c7ffd", + "0x400080127d5c7ffa", + "0x400080137d5c7ffe", + "0x480080157d5c8000", "0x20680017fff7fff", "0xc", - "0x48127ff17fff8000", - "0x480080147d3f8000", - "0x482480017d3e8000", + "0x48127ff57fff8000", + "0x480080147d5a8000", + "0x482480017d598000", "0x17", "0x480680017fff8000", "0x0", "0x480680017fff8000", "0x0", - "0x480080167d3b8000", + "0x480080167d568000", "0x208b7fff7fff7ffe", - "0x48127ff17fff8000", - "0x480080147d3f8000", - "0x482480017d3e8000", + "0x48127ff57fff8000", + "0x480080147d5a8000", + "0x482480017d598000", "0x18", "0x480680017fff8000", "0x1", - "0x480080167d3c8000", - "0x480080177d3b8000", + "0x480080167d578000", + "0x480080177d568000", "0x208b7fff7fff7ffe", "0x40780017fff7fff", "0x4", - "0x48127ff17fff8000", - "0x4800800d7d3f8000", - "0x482480017d3e8000", + "0x48127ff57fff8000", + "0x4800800d7d5a8000", + "0x482480017d598000", "0x11", "0x480680017fff8000", "0x1", - "0x4800800f7d3c8000", - "0x480080107d3b8000", + "0x4800800f7d578000", + "0x480080107d568000", "0x208b7fff7fff7ffe", "0x40780017fff7fff", "0x8", - "0x48127ff17fff8000", - "0x480080057d3f8000", - "0x482480017d3e8000", + "0x48127ff57fff8000", + "0x480080057d5a8000", + "0x482480017d598000", "0x9", "0x480680017fff8000", "0x1", - "0x480080077d3c8000", - "0x480080087d3b8000", + "0x480080077d578000", + "0x480080087d568000", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x106", + "0xf9", "0x40780017fff7fff", "0x1", "0x480680017fff8000", "0x753235365f737562204f766572666c6f77", "0x400080007ffe7fff", - "0x48127ef47fff8000", - "0x48127d3e7fff8000", - "0x48127d3e7fff8000", + "0x48127f017fff8000", + "0x48127d597fff8000", + "0x48127d597fff8000", "0x480680017fff8000", "0x1", "0x48127ffa7fff8000", @@ -16430,7 +17848,7 @@ "0x1", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x28f", + "0x274", "0x4824800180008002", "0xffffffffffffffff0000000000000000", "0x480280077ff48001", @@ -16438,9 +17856,9 @@ "0x400280097ff47ffe", "0x484480017ffe8000", "0x10000000000000000", - "0x40307ffc7fff7d5f", - "0x48507d637ffc8000", - "0x48507d627ffc8000", + "0x40307ffc7fff7d7a", + "0x48507d7e7ffc8000", + "0x48507d7d7ffc8000", "0x4824800180018002", "0xffffffffffffffff0000000000000000", "0x4802800a7ff48001", @@ -16456,11 +17874,11 @@ "0xfffffffffffffffe0000000000000000", "0x4802800d7ff47fff", "0x4802800e7ff47ffd", - "0x4002800f7ff47d52", + "0x4002800f7ff47d6d", "0x404480017ffc7ffe", "0x100000000000000000000000000000000", - "0x40307d527ffe7fff", - "0x40307ffc7ff77d5c", + "0x40307d6d7ffe7fff", + "0x40307ffc7ff77d77", "0x4824800180008002", "0xffffffffffffffff0000000000000000", "0x480280107ff48001", @@ -16468,9 +17886,9 @@ "0x400280127ff47ffe", "0x484480017ffe8000", "0x10000000000000000", - "0x40307ffc7fff7d50", - "0x48507d527ffc8000", - "0x48507d517ffc8000", + "0x40307ffc7fff7d6b", + "0x48507d6d7ffc8000", + "0x48507d6c7ffc8000", "0x4824800180018002", "0xffffffffffffffff0000000000000000", "0x480280137ff48001", @@ -16490,7 +17908,7 @@ "0x404480017ffc7ffe", "0x100000000000000000000000000000000", "0x40287ff97ffe7fff", - "0x40307ffc7ff77d4c", + "0x40307ffc7ff77d67", "0x40780017fff7fff", "0x1", "0x480680017fff8000", @@ -16498,8 +17916,8 @@ "0x400080007ffe7fff", "0x482680017ff48000", "0x19", - "0x48127d3e7fff8000", - "0x48127d3e7fff8000", + "0x48127d597fff8000", + "0x48127d597fff8000", "0x480680017fff8000", "0x1", "0x48127ffa7fff8000", @@ -16507,26 +17925,26 @@ "0x1", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x2b9", + "0x29e", "0x40780017fff7fff", "0x1", "0x480680017fff8000", "0x4f7074696f6e3a3a756e77726170206661696c65642e", "0x400080007ffe7fff", - "0x48127d437fff8000", - "0x48127d437fff8000", + "0x48127d5e7fff8000", + "0x48127d5e7fff8000", "0x48127ffc7fff8000", "0x482480017ffb8000", "0x1", "0x10780017fff7fff", "0x9", "0x40780017fff7fff", - "0x2bf", - "0x480080067d3a8000", - "0x482480017d398000", + "0x2a4", + "0x480080067d558000", + "0x482480017d548000", "0xa", - "0x480080087d388000", - "0x480080097d378000", + "0x480080087d538000", + "0x480080097d528000", "0x480a7ff47fff8000", "0x48127ffb7fff8000", "0x48127ffb7fff8000", @@ -16536,10 +17954,10 @@ "0x48127ffa7fff8000", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x2c9", + "0x2ae", "0x480a7ff47fff8000", - "0x48127d347fff8000", - "0x48127d347fff8000", + "0x48127d4f7fff8000", + "0x48127d4f7fff8000", "0x480680017fff8000", "0x0", "0x480680017fff8000", @@ -16548,7 +17966,7 @@ "0x0", "0x208b7fff7fff7ffe", "0x40780017fff7fff", - "0x2cd", + "0x2b2", "0x480a7ff47fff8000", "0x480280057ff68000", "0x482680017ff68000", @@ -16589,7 +18007,7 @@ "0x402780017ffc8001", "0x9", "0x1104800180018000", - "0x354", + "0x23b", "0x40137ffa7fff8000", "0x20680017fff7ffb", "0x8e", @@ -16602,7 +18020,7 @@ "0x480680017fff8000", "0x0", "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffef61", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffebdc", "0x20680017fff7ffd", "0x7b", "0x480680017fff8000", @@ -16761,19 +18179,19 @@ "0x2", "0x4824800180008002", "0xffffffffffffffff0000000000000000", - "0x480280007ff78001", - "0x480280017ff77ffe", - "0x400280027ff77ffe", + "0x480280007ff98001", + "0x480280017ff97ffe", + "0x400280027ff97ffe", "0x484480017ffe8000", "0x10000000000000000", - "0x40317ffc7fff7ff8", - "0x48487ffa7ffc8000", - "0x48487ffa7ffc8000", + "0x40317ffc7fff7ffa", + "0x48487ffc7ffc8000", + "0x48487ffc7ffc8000", "0x4824800180018002", "0xffffffffffffffff0000000000000000", - "0x480280037ff78001", - "0x480280047ff77fff", - "0x400280057ff77ffd", + "0x480280037ff98001", + "0x480280047ff97fff", + "0x400280057ff97ffd", "0x484480017ffd8000", "0x10000000000000000", "0x40307ffd7fff7ffb", @@ -16782,9 +18200,9 @@ "0x48307fff7ff98003", "0x482480017fff8000", "0xfffffffffffffffe0000000000000000", - "0x480280067ff77fff", - "0x480280077ff77ffd", - "0x400280087ff77ff0", + "0x480280067ff97fff", + "0x480280077ff97ffd", + "0x400280087ff97ff0", "0x404480017ffc7ffe", "0x100000000000000000000000000000000", "0x40307ff07ffe7fff", @@ -16793,19 +18211,19 @@ "0x2", "0x4824800180008002", "0xffffffffffffffff0000000000000000", - "0x480280097ff78001", - "0x4802800a7ff77ffe", - "0x4002800b7ff77ffe", + "0x480280097ff98001", + "0x4802800a7ff97ffe", + "0x4002800b7ff97ffe", "0x484480017ffe8000", "0x10000000000000000", - "0x40317ffc7fff7ff8", - "0x48487ffb7ffc8000", - "0x48487ffb7ffc8000", + "0x40317ffc7fff7ffa", + "0x48487ffd7ffc8000", + "0x48487ffd7ffc8000", "0x4824800180018002", "0xffffffffffffffff0000000000000000", - "0x4802800c7ff78001", - "0x4802800d7ff77fff", - "0x4002800e7ff77ffd", + "0x4802800c7ff98001", + "0x4802800d7ff97fff", + "0x4002800e7ff97ffd", "0x484480017ffd8000", "0x10000000000000000", "0x40307ffd7fff7ffb", @@ -16814,9 +18232,9 @@ "0x48307fff7ff98003", "0x482480017fff8000", "0xfffffffffffffffe0000000000000000", - "0x4802800f7ff77fff", - "0x480280107ff77ffd", - "0x400280117ff77ff0", + "0x4802800f7ff97fff", + "0x480280107ff97ffd", + "0x400280117ff97ff0", "0x404480017ffc7ffe", "0x100000000000000000000000000000000", "0x40307ff07ffe7fff", @@ -16826,20 +18244,20 @@ "0x7", "0x4824800180007fff", "0x100000000000000000000000000000000", - "0x400280127ff77fff", + "0x400280127ff97fff", "0x10780017fff7fff", "0xc", - "0x400280127ff77fff", + "0x400280127ff97fff", "0x40780017fff7fff", "0x1", - "0x482680017ff78000", + "0x482680017ff98000", "0x13", "0x48127ffd7fff8000", "0x480680017fff8000", "0x0", "0x10780017fff7fff", "0x7", - "0x482680017ff78000", + "0x482680017ff98000", "0x13", "0x48127ffe7fff8000", "0x480680017fff8000", @@ -16853,9 +18271,9 @@ "0x400080027ff87ffe", "0x484480017ffe8000", "0x10000000000000000", - "0x40317ffc7fff7ff9", - "0x48487ffa7ffc8000", - "0x48487ffa7ffc8000", + "0x40317ffc7fff7ffb", + "0x48487ffc7ffc8000", + "0x48487ffc7ffc8000", "0x4824800180018002", "0xffffffffffffffff0000000000000000", "0x480080037ff48001", @@ -16931,9 +18349,9 @@ "0x400080027ff87ffe", "0x484480017ffe8000", "0x10000000000000000", - "0x40317ffc7fff7ff9", - "0x48487ffb7ffc8000", - "0x48487ffb7ffc8000", + "0x40317ffc7fff7ffb", + "0x48487ffd7ffc8000", + "0x48487ffd7ffc8000", "0x4824800180018002", "0xffffffffffffffff0000000000000000", "0x480080037ff48001", @@ -16954,360 +18372,79 @@ "0x100000000000000000000000000000000", "0x40307ff07ffe7fff", "0x40307ffc7ff77fef", - "0x48307fee7fef8001", + "0x48307ff07fed8001", "0xa0680017fff7fff", "0x7", "0x4824800180007fff", "0x100000000000000000000000000000000", "0x400080097fe97fff", "0x10780017fff7fff", - "0xa", + "0xc", "0x400080097fea7fff", "0x40780017fff7fff", "0x1", "0x482480017fe98000", "0xa", "0x48127ffd7fff8000", - "0x10780017fff7fff", - "0x5", - "0x482480017fe98000", - "0xa", - "0x48127ffe7fff8000", - "0x48307feb7fe88001", - "0xa0680017fff7fff", - "0x7", - "0x4824800180007fff", - "0x100000000000000000000000000000000", - "0x400080007ffb7fff", - "0x10780017fff7fff", - "0xc", - "0x400080007ffc7fff", - "0x40780017fff7fff", - "0x1", - "0x482480017ffb8000", - "0x1", - "0x48127ffd7fff8000", "0x480680017fff8000", "0x0", "0x10780017fff7fff", "0x7", - "0x482480017ffb8000", - "0x1", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x1", - "0x48307fff7ff98001", - "0xa0680017fff7fff", - "0x7", - "0x4824800180007fff", - "0x100000000000000000000000000000000", - "0x400080007ffa7fff", - "0x10780017fff7fff", + "0x482480017fe98000", "0xa", - "0x400080007ffb7fff", - "0x40780017fff7fff", - "0x1", - "0x482480017ffa8000", - "0x1", - "0x48127ffd7fff8000", - "0x10780017fff7fff", - "0x5", - "0x482480017ffa8000", - "0x1", "0x48127ffe7fff8000", - "0x48307fd87fc18001", - "0xa0680017fff7fff", - "0x7", - "0x4824800180007fff", - "0x100000000000000000000000000000000", - "0x400080007ffb7fff", - "0x10780017fff7fff", - "0xa", - "0x400080007ffc7fff", - "0x40780017fff7fff", - "0x1", - "0x482480017ffb8000", - "0x1", - "0x48127ffd7fff8000", - "0x10780017fff7fff", - "0x5", - "0x482480017ffb8000", + "0x480680017fff8000", "0x1", - "0x48127ffe7fff8000", - "0x48307fff7ff48001", + "0x48307fe27fcb8000", + "0x48307fff7ffd8001", "0xa0680017fff7fff", "0x7", "0x4824800180007fff", "0x100000000000000000000000000000000", - "0x400080007ffb7fff", + "0x400080007ff97fff", "0x10780017fff7fff", "0xc", - "0x400080007ffc7fff", + "0x400080007ffa7fff", "0x40780017fff7fff", "0x1", - "0x482480017ffb8000", + "0x482480017ff98000", "0x1", "0x48127ffd7fff8000", "0x480680017fff8000", "0x0", "0x10780017fff7fff", "0x7", - "0x482480017ffb8000", + "0x482480017ff98000", "0x1", "0x48127ffe7fff8000", "0x480680017fff8000", "0x1", - "0x48307fff7ff48001", + "0x48307ff87fe18000", + "0x48307ffe7fff8000", + "0x48307fff7fe08001", "0xa0680017fff7fff", "0x7", "0x4824800180007fff", "0x100000000000000000000000000000000", - "0x400080007ffa7fff", + "0x400080007ff87fff", "0x10780017fff7fff", "0xa", - "0x400080007ffb7fff", + "0x400080007ff97fff", "0x40780017fff7fff", "0x1", - "0x482480017ffa8000", + "0x482480017ff88000", "0x1", "0x48127ffd7fff8000", "0x10780017fff7fff", "0x5", - "0x482480017ffa8000", + "0x482480017ff88000", "0x1", "0x48127ffe7fff8000", - "0x48127f8b7fff8000", - "0x48127fc67fff8000", - "0x48127ff77fff8000", - "0x48127ffc7fff8000", - "0x480080007ffa8000", - "0x480080017ff98000", - "0x480080027ff88000", - "0x480080037ff78000", - "0x480080047ff68000", - "0x480080057ff58000", - "0x48317fff80007ffd", - "0x40780017fff7fff", - "0xc", - "0x20680017fff7ff3", - "0x8", - "0x40317ff17ff47ffc", - "0x402480017ff57ff4", - "0x1", - "0x400080067fe77ff5", - "0x10780017fff7fff", - "0x3", - "0x400080067fe77ff3", - "0x48307ff17ff68000", - "0x48307fe880007fff", - "0x4844800180007fff", - "0x100000000000000000000000000000000", - "0x40507fff7fff7fff", - "0x48307ff47fff8000", - "0x48307ff47fff8000", - "0x48307ff57fff8000", - "0x48307fec7fff8000", - "0x48307fe380007fff", - "0x4844800180007fff", - "0x100000000000000000000000000000000", - "0x400080077fde7fff", - "0x482480017fff8000", - "0xfffffffffffffffffffffffffffffffc", - "0x400080087fdd7fff", - "0x48307fef7ffe8000", - "0x48307ff07fff8000", - "0x48307ff07fff8000", - "0x48307ff17fff8000", - "0x48307fdd80007fff", - "0x4844800180007fff", - "0x100000000000000000000000000000000", - "0x400080097fd77fff", - "0x482480017fff8000", - "0xfffffffffffffffffffffffffffffffc", - "0x4000800a7fd67fff", - "0xa0680017fff7fdf", - "0xc", - "0xa0680017fff8001", - "0x6", - "0x480a7ffd7fff7ffe", - "0x40127fdb7fff7ffe", - "0x10780017fff7fff", - "0x10", - "0x48127fdc7fff7ffe", - "0x400a7ffd7fff7ffe", - "0x10780017fff7fff", - "0xc", - "0x480780017fff7ffd", - "0x0", - "0xa0680017fff8000", - "0x6", - "0x400a7ffc7fff7ffd", - "0x40127fdc7fff7ffe", - "0x10780017fff7fff", - "0x4", - "0x40127fdc7fff7ffd", - "0x400a7ffc7fff7ffe", - "0x482480017ffd8000", - "0xffffffffffffffff0000000000000000", - "0x4000800b7fd27fff", - "0x48507ffd7ffc8000", - "0x48307fe97ff98000", - "0x48307fe67fff8000", - "0x40307ffd7fff7fd4", - "0x4824800180008002", - "0xffffffffffffffff0000000000000000", - "0x4800800c7fce8001", - "0x4800800d7fcd7ffe", - "0x4000800e7fcc7ffe", - "0x484480017ffe8000", - "0x10000000000000000", - "0x40307ffc7fff7fd3", - "0x48487ffc7ffc8000", - "0x48487ffc7ffc8000", - "0x4824800180018002", - "0xffffffffffffffff0000000000000000", - "0x4800800f7fc88001", - "0x480080107fc77fff", - "0x400080117fc67ffd", - "0x484480017ffd8000", - "0x10000000000000000", - "0x40307ffd7fff7ffb", - "0x484480017ffd8000", - "0x10000000000000000", - "0x48307fff7ff98003", - "0x482480017fff8000", - "0xfffffffffffffffe0000000000000000", - "0x480080127fc27fff", - "0x480080137fc17ffd", - "0x400080147fc07fd7", - "0x404480017ffc7ffe", - "0x100000000000000000000000000000000", - "0x40307fd77ffe7fff", - "0x40307ffc7ff77fd8", - "0x4824800180008002", - "0xffffffffffffffff0000000000000000", - "0x480080157fbf8001", - "0x480080167fbe7ffe", - "0x400080177fbd7ffe", - "0x484480017ffe8000", - "0x10000000000000000", - "0x40307ffc7fff7fc3", - "0x48487ffd7ffc8000", - "0x48487ffd7ffc8000", - "0x4824800180018002", - "0xffffffffffffffff0000000000000000", - "0x480080187fb98001", - "0x480080197fb87fff", - "0x4000801a7fb77ffd", - "0x484480017ffd8000", - "0x10000000000000000", - "0x40307ffd7fff7ffb", - "0x484480017ffd8000", - "0x10000000000000000", - "0x48307fff7ff98003", - "0x482480017fff8000", - "0xfffffffffffffffe0000000000000000", - "0x4800801b7fb37fff", - "0x4800801c7fb27ffd", - "0x4000801d7fb17fc6", - "0x404480017ffc7ffe", - "0x100000000000000000000000000000000", - "0x40307fc67ffe7fff", - "0x40307ffc7ff77fc7", - "0x4824800180008002", - "0xffffffffffffffff0000000000000000", - "0x4800801e7fb08001", - "0x4800801f7faf7ffe", - "0x400080207fae7ffe", - "0x484480017ffe8000", - "0x10000000000000000", - "0x40307ffc7fff7fb4", - "0x48487ffc7ffc8000", - "0x48487ffc7ffc8000", - "0x4824800180018002", - "0xffffffffffffffff0000000000000000", - "0x480080217faa8001", - "0x480080227fa97fff", - "0x400080237fa87ffd", - "0x484480017ffd8000", - "0x10000000000000000", - "0x40307ffd7fff7ffb", - "0x484480017ffd8000", - "0x10000000000000000", - "0x48307fff7ff98003", - "0x482480017fff8000", - "0xfffffffffffffffe0000000000000000", - "0x480080247fa47fff", - "0x480080257fa37ffd", - "0x400080267fa27fb3", - "0x404480017ffc7ffe", - "0x100000000000000000000000000000000", - "0x40307fb37ffe7fff", - "0x40307ffc7ff77fb4", - "0x4824800180008002", - "0xffffffffffffffff0000000000000000", - "0x480080277fa18001", - "0x480080287fa07ffe", - "0x400080297f9f7ffe", - "0x484480017ffe8000", - "0x10000000000000000", - "0x40307ffc7fff7fa4", - "0x48487ffd7ffc8000", - "0x48487ffd7ffc8000", - "0x4824800180018002", - "0xffffffffffffffff0000000000000000", - "0x4800802a7f9b8001", - "0x4800802b7f9a7fff", - "0x4000802c7f997ffd", - "0x484480017ffd8000", - "0x10000000000000000", - "0x40307ffd7fff7ffb", - "0x484480017ffd8000", - "0x10000000000000000", - "0x48307fff7ff98003", - "0x482480017fff8000", - "0xfffffffffffffffe0000000000000000", - "0x4800802d7f957fff", - "0x4800802e7f947ffd", - "0x4000802f7f937fa6", - "0x404480017ffc7ffe", - "0x100000000000000000000000000000000", - "0x40307fa67ffe7fff", - "0x40307ffc7ff77fa7", - "0x4824800180008002", - "0xffffffffffffffff0000000000000000", - "0x480080307f928001", - "0x480080317f917ffe", - "0x400080327f907ffe", - "0x484480017ffe8000", - "0x10000000000000000", - "0x40307ffc7fff7f95", - "0x48487ffc7ffc8000", - "0x48487ffc7ffc8000", - "0x4824800180018002", - "0xffffffffffffffff0000000000000000", - "0x480080337f8c8001", - "0x480080347f8b7fff", - "0x400080357f8a7ffd", - "0x484480017ffd8000", - "0x10000000000000000", - "0x40307ffd7fff7ffb", - "0x484480017ffd8000", - "0x10000000000000000", - "0x48307fff7ff98003", - "0x482480017fff8000", - "0xfffffffffffffffe0000000000000000", - "0x480080367f867fff", - "0x480080377f857ffd", - "0x400080387f847f93", - "0x404480017ffc7ffe", - "0x100000000000000000000000000000000", - "0x40307f937ffe7fff", - "0x40307ffc7ff77f94", - "0x482480017f848000", - "0x39", - "0x48127f8d7fff8000", - "0x48127f8d7fff8000", + "0x48127ffe7fff8000", + "0x48127f967fff8000", + "0x48127fd17fff8000", + "0x48127ff47fff8000", + "0x48127ffb7fff8000", "0x208b7fff7fff7ffe", "0xa0680017fff8000", "0x7", @@ -17809,6 +18946,8 @@ 241, 180, 291, + 290, + 133, 336, 178, 289, @@ -17840,6 +18979,7 @@ 250, 187, 92, + 94, 106, 205, 1205, @@ -17869,7 +19009,7 @@ 258, 97, 220, - 791, + 1242, 31, 1136, 66, @@ -17877,9 +19017,9 @@ 157, 83, 239, - 706, + 1156, 199, - 552, + 271, 131, 104, 232, @@ -18586,7 +19726,7 @@ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0xc94" + "Immediate": "0x0" }, "rhs": { "Deref": { @@ -18608,23 +19748,17 @@ { "TestLessThan": { "lhs": { - "BinOp": { - "op": "Add", - "a": { - "register": "FP", - "offset": 0 - }, - "b": { - "Immediate": "0x0" - } + "Deref": { + "register": "FP", + "offset": 1 } }, "rhs": { - "Immediate": "0x10000000000000000" + "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" }, "dst": { "register": "AP", - "offset": 0 + "offset": 4 } } } @@ -18638,33 +19772,49 @@ "value": { "Deref": { "register": "AP", - "offset": -1 + "offset": 3 } }, "scalar": { - "Immediate": "0x8000000000000110000000000000000" + "Immediate": "0x110000000000000000" }, "max_x": { - "Immediate": "0xfffffffffffffffffffffffffffffffe" + "Immediate": "0xffffffffffffffffffffffffffffffff" }, "x": { "register": "AP", - "offset": 0 + "offset": -2 }, "y": { "register": "AP", - "offset": 1 + "offset": -1 } } } ] ], [ - 793, + 762, [ { - "AllocSegment": { - "dst": { + "LinearSplit": { + "value": { + "Deref": { + "register": "FP", + "offset": 1 + } + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { "register": "AP", "offset": 0 } @@ -18673,7 +19823,7 @@ ] ], [ - 858, + 815, [ { "AllocSegment": { @@ -18686,7 +19836,7 @@ ] ], [ - 905, + 862, [ { "AllocSegment": { @@ -18699,12 +19849,12 @@ ] ], [ - 924, + 881, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x87a" + "Immediate": "0x5ca8" }, "rhs": { "Deref": { @@ -18721,7 +19871,7 @@ ] ], [ - 951, + 905, [ { "AllocSegment": { @@ -18734,7 +19884,7 @@ ] ], [ - 969, + 923, [ { "AllocSegment": { @@ -18747,7 +19897,7 @@ ] ], [ - 984, + 938, [ { "AllocSegment": { @@ -18760,7 +19910,7 @@ ] ], [ - 998, + 952, [ { "AllocSegment": { @@ -18773,7 +19923,7 @@ ] ], [ - 1019, + 973, [ { "AllocSegment": { @@ -18786,7 +19936,7 @@ ] ], [ - 1033, + 987, [ { "AllocSegment": { @@ -18799,7 +19949,7 @@ ] ], [ - 1048, + 1002, [ { "TestLessThanOrEqual": { @@ -18821,64 +19971,7 @@ ] ], [ - 1082, - [ - { - "TestLessThan": { - "lhs": { - "BinOp": { - "op": "Add", - "a": { - "register": "AP", - "offset": -1 - }, - "b": { - "Immediate": "0x0" - } - } - }, - "rhs": { - "Immediate": "0x10000000000000000" - }, - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 1086, - [ - { - "LinearSplit": { - "value": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "scalar": { - "Immediate": "0x8000000000000110000000000000000" - }, - "max_x": { - "Immediate": "0xfffffffffffffffffffffffffffffffe" - }, - "x": { - "register": "AP", - "offset": 0 - }, - "y": { - "register": "AP", - "offset": 1 - } - } - } - ] - ], - [ - 1111, + 1019, [ { "AllocSegment": { @@ -18891,17 +19984,17 @@ ] ], [ - 1130, + 1038, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x1248" + "Immediate": "0x1284" }, "rhs": { "Deref": { "register": "AP", - "offset": -16 + "offset": -7 } }, "dst": { @@ -18913,7 +20006,7 @@ ] ], [ - 1149, + 1065, [ { "SystemCall": { @@ -18928,7 +20021,7 @@ ] ], [ - 1152, + 1068, [ { "AllocSegment": { @@ -18941,7 +20034,7 @@ ] ], [ - 1175, + 1105, [ { "AllocSegment": { @@ -18954,7 +20047,7 @@ ] ], [ - 1197, + 1120, [ { "AllocSegment": { @@ -18967,10 +20060,19 @@ ] ], [ - 1211, + 1137, [ { - "AllocSegment": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0xc94" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, "dst": { "register": "AP", "offset": 0 @@ -18980,29 +20082,64 @@ ] ], [ - 1228, + 1171, [ { - "TestLessThanOrEqual": { + "TestLessThan": { "lhs": { - "Immediate": "0x8d54" + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": 0 + }, + "b": { + "Immediate": "0x0" + } + } }, "rhs": { + "Immediate": "0x10000000000000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1175, + [ + { + "LinearSplit": { + "value": { "Deref": { - "register": "FP", - "offset": -6 + "register": "AP", + "offset": -1 } }, - "dst": { + "scalar": { + "Immediate": "0x8000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, + "x": { "register": "AP", "offset": 0 + }, + "y": { + "register": "AP", + "offset": 1 } } } ] ], [ - 1327, + 1216, [ { "AllocSegment": { @@ -19015,19 +20152,10 @@ ] ], [ - 1346, + 1281, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x8070" - }, - "rhs": { - "Deref": { - "register": "AP", - "offset": -42 - } - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -19037,7 +20165,7 @@ ] ], [ - 1389, + 1328, [ { "AllocSegment": { @@ -19050,10 +20178,19 @@ ] ], [ - 1407, + 1347, [ { - "AllocSegment": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x87a" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -11 + } + }, "dst": { "register": "AP", "offset": 0 @@ -19063,7 +20200,7 @@ ] ], [ - 1422, + 1374, [ { "AllocSegment": { @@ -19076,7 +20213,7 @@ ] ], [ - 1436, + 1392, [ { "AllocSegment": { @@ -19089,7 +20226,7 @@ ] ], [ - 1450, + 1407, [ { "AllocSegment": { @@ -19102,7 +20239,7 @@ ] ], [ - 1464, + 1421, [ { "AllocSegment": { @@ -19115,7 +20252,7 @@ ] ], [ - 1486, + 1442, [ { "AllocSegment": { @@ -19128,7 +20265,7 @@ ] ], [ - 1500, + 1456, [ { "AllocSegment": { @@ -19141,7 +20278,7 @@ ] ], [ - 1517, + 1471, [ { "TestLessThanOrEqual": { @@ -19163,100 +20300,64 @@ ] ], [ - 1551, + 1505, [ { "TestLessThan": { "lhs": { - "Deref": { - "register": "FP", - "offset": 1 + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -1 + }, + "b": { + "Immediate": "0x0" + } } }, "rhs": { - "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" + "Immediate": "0x10000000000000000" }, "dst": { "register": "AP", - "offset": 4 + "offset": 0 } } } ] ], [ - 1555, + 1509, [ { "LinearSplit": { "value": { "Deref": { "register": "AP", - "offset": 3 - } - }, - "scalar": { - "Immediate": "0x110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -2 - }, - "y": { - "register": "AP", - "offset": -1 - } - } - } - ] - ], - [ - 1565, - [ - { - "LinearSplit": { - "value": { - "Deref": { - "register": "FP", - "offset": 1 + "offset": -1 } }, "scalar": { - "Immediate": "0x8000000000000000000000000000000" + "Immediate": "0x8000000000000110000000000000000" }, "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" + "Immediate": "0xfffffffffffffffffffffffffffffffe" }, "x": { "register": "AP", - "offset": -1 + "offset": 0 }, "y": { "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 1618, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 + "offset": 1 } } } ] ], [ - 1665, + 1534, [ { "AllocSegment": { @@ -19269,17 +20370,17 @@ ] ], [ - 1684, + 1553, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x28b4" + "Immediate": "0x1248" }, "rhs": { "Deref": { "register": "AP", - "offset": -11 + "offset": -16 } }, "dst": { @@ -19291,7 +20392,7 @@ ] ], [ - 1706, + 1572, [ { "SystemCall": { @@ -19306,7 +20407,7 @@ ] ], [ - 1727, + 1575, [ { "AllocSegment": { @@ -19319,7 +20420,7 @@ ] ], [ - 1742, + 1598, [ { "AllocSegment": { @@ -19332,7 +20433,7 @@ ] ], [ - 1756, + 1620, [ { "AllocSegment": { @@ -19345,7 +20446,7 @@ ] ], [ - 1777, + 1634, [ { "AllocSegment": { @@ -19358,25 +20459,12 @@ ] ], [ - 1791, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 1806, + 1651, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Immediate": "0x8d54" }, "rhs": { "Deref": { @@ -19393,90 +20481,32 @@ ] ], [ - 1839, + 1750, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "rhs": { - "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" - }, + "AllocSegment": { "dst": { "register": "AP", - "offset": 4 + "offset": 0 } } } ] ], [ - 1843, + 1769, [ { - "LinearSplit": { - "value": { - "Deref": { - "register": "AP", - "offset": 3 - } - }, - "scalar": { - "Immediate": "0x110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -2 + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x8070" }, - "y": { - "register": "AP", - "offset": -1 - } - } - } - ] - ], - [ - 1853, - [ - { - "LinearSplit": { - "value": { + "rhs": { "Deref": { "register": "AP", - "offset": -2 + "offset": -42 } }, - "scalar": { - "Immediate": "0x8000000000000000000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -1 - }, - "y": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 1952, - [ - { - "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -19486,19 +20516,10 @@ ] ], [ - 1971, + 1812, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x5622" - }, - "rhs": { - "Deref": { - "register": "AP", - "offset": -38 - } - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -19508,7 +20529,7 @@ ] ], [ - 2000, + 1830, [ { "AllocSegment": { @@ -19521,7 +20542,7 @@ ] ], [ - 2015, + 1845, [ { "AllocSegment": { @@ -19534,7 +20555,7 @@ ] ], [ - 2029, + 1859, [ { "AllocSegment": { @@ -19547,7 +20568,7 @@ ] ], [ - 2043, + 1873, [ { "AllocSegment": { @@ -19560,7 +20581,7 @@ ] ], [ - 2057, + 1887, [ { "AllocSegment": { @@ -19573,7 +20594,7 @@ ] ], [ - 2078, + 1909, [ { "AllocSegment": { @@ -19586,7 +20607,7 @@ ] ], [ - 2092, + 1923, [ { "AllocSegment": { @@ -19599,7 +20620,7 @@ ] ], [ - 2107, + 1940, [ { "TestLessThanOrEqual": { @@ -19621,14 +20642,14 @@ ] ], [ - 2140, + 1974, [ { "TestLessThan": { "lhs": { "Deref": { - "register": "AP", - "offset": -1 + "register": "FP", + "offset": 1 } }, "rhs": { @@ -19643,7 +20664,7 @@ ] ], [ - 2144, + 1978, [ { "LinearSplit": { @@ -19672,14 +20693,14 @@ ] ], [ - 2154, + 1988, [ { "LinearSplit": { "value": { "Deref": { - "register": "AP", - "offset": -2 + "register": "FP", + "offset": 1 } }, "scalar": { @@ -19701,7 +20722,7 @@ ] ], [ - 2169, + 2041, [ { "AllocSegment": { @@ -19714,17 +20735,30 @@ ] ], [ - 2188, + 2088, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 2107, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x128e" + "Immediate": "0x28b4" }, "rhs": { "Deref": { "register": "AP", - "offset": -18 + "offset": -11 } }, "dst": { @@ -19736,7 +20770,7 @@ ] ], [ - 2207, + 2129, [ { "SystemCall": { @@ -19751,20 +20785,7 @@ ] ], [ - 2210, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 2230, + 2150, [ { "AllocSegment": { @@ -19777,7 +20798,7 @@ ] ], [ - 2252, + 2165, [ { "AllocSegment": { @@ -19790,7 +20811,7 @@ ] ], [ - 2266, + 2179, [ { "AllocSegment": { @@ -19803,29 +20824,7 @@ ] ], [ - 2283, - [ - { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x0" - }, - "rhs": { - "Deref": { - "register": "FP", - "offset": -6 - } - }, - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 2338, + 2200, [ { "AllocSegment": { @@ -19838,7 +20837,7 @@ ] ], [ - 2385, + 2214, [ { "AllocSegment": { @@ -19851,17 +20850,17 @@ ] ], [ - 2404, + 2229, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x213e" + "Immediate": "0x0" }, "rhs": { "Deref": { - "register": "AP", - "offset": -11 + "register": "FP", + "offset": -6 } }, "dst": { @@ -19873,65 +20872,78 @@ ] ], [ - 2425, + 2262, [ { - "SystemCall": { - "system": { + "TestLessThan": { + "lhs": { "Deref": { - "register": "FP", - "offset": -5 + "register": "AP", + "offset": -1 } - } - } - } - ] - ], - [ - 2428, - [ - { - "AllocSegment": { + }, + "rhs": { + "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" + }, "dst": { "register": "AP", - "offset": 0 + "offset": 4 } } } ] ], [ - 2448, + 2266, [ { - "AllocSegment": { - "dst": { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 3 + } + }, + "scalar": { + "Immediate": "0x110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 2463, - [ - { - "AllocSegment": { - "dst": { + "offset": -2 + }, + "y": { "register": "AP", - "offset": 0 + "offset": -1 } } } ] ], [ - 2477, + 2276, [ { - "AllocSegment": { - "dst": { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { "register": "AP", "offset": 0 } @@ -19940,7 +20952,7 @@ ] ], [ - 2491, + 2375, [ { "AllocSegment": { @@ -19953,17 +20965,17 @@ ] ], [ - 2506, + 2394, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Immediate": "0x5622" }, "rhs": { "Deref": { - "register": "FP", - "offset": -6 + "register": "AP", + "offset": -38 } }, "dst": { @@ -19975,7 +20987,7 @@ ] ], [ - 2523, + 2423, [ { "AllocSegment": { @@ -19988,19 +21000,10 @@ ] ], [ - 2543, + 2438, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x41a" - }, - "rhs": { - "Deref": { - "register": "AP", - "offset": -7 - } - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -20010,22 +21013,20 @@ ] ], [ - 2555, + 2452, [ { - "AllocFelt252Dict": { - "segment_arena_ptr": { - "Deref": { - "register": "FP", - "offset": -7 - } + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 } } } ] ], [ - 2574, + 2466, [ { "AllocSegment": { @@ -20038,7 +21039,7 @@ ] ], [ - 2585, + 2480, [ { "AllocSegment": { @@ -20051,7 +21052,7 @@ ] ], [ - 2601, + 2501, [ { "AllocSegment": { @@ -20064,12 +21065,25 @@ ] ], [ - 2619, + 2515, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 2530, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x460" + "Immediate": "0x0" }, "rhs": { "Deref": { @@ -20086,14 +21100,14 @@ ] ], [ - 2653, + 2563, [ { "TestLessThan": { "lhs": { "Deref": { - "register": "FP", - "offset": 1 + "register": "AP", + "offset": -1 } }, "rhs": { @@ -20108,7 +21122,7 @@ ] ], [ - 2657, + 2567, [ { "LinearSplit": { @@ -20137,14 +21151,14 @@ ] ], [ - 2667, + 2577, [ { "LinearSplit": { "value": { "Deref": { - "register": "FP", - "offset": 1 + "register": "AP", + "offset": -2 } }, "scalar": { @@ -20166,7 +21180,7 @@ ] ], [ - 2720, + 2592, [ { "AllocSegment": { @@ -20179,25 +21193,12 @@ ] ], [ - 2797, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 2816, + 2611, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x2a94" + "Immediate": "0x128e" }, "rhs": { "Deref": { @@ -20214,7 +21215,7 @@ ] ], [ - 2842, + 2630, [ { "SystemCall": { @@ -20229,7 +21230,7 @@ ] ], [ - 2845, + 2633, [ { "AllocSegment": { @@ -20242,7 +21243,7 @@ ] ], [ - 2865, + 2653, [ { "AllocSegment": { @@ -20255,7 +21256,7 @@ ] ], [ - 2880, + 2675, [ { "AllocSegment": { @@ -20268,7 +21269,7 @@ ] ], [ - 2894, + 2689, [ { "AllocSegment": { @@ -20281,10 +21282,19 @@ ] ], [ - 2908, + 2706, [ { - "AllocSegment": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, "dst": { "register": "AP", "offset": 0 @@ -20294,7 +21304,7 @@ ] ], [ - 2929, + 2761, [ { "AllocSegment": { @@ -20307,7 +21317,7 @@ ] ], [ - 2943, + 2808, [ { "AllocSegment": { @@ -20320,17 +21330,17 @@ ] ], [ - 2958, + 2827, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Immediate": "0x213e" }, "rhs": { "Deref": { - "register": "FP", - "offset": -6 + "register": "AP", + "offset": -11 } }, "dst": { @@ -20342,42 +21352,22 @@ ] ], [ - 2975, + 2848, [ { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 2994, - [ - { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x76ca" - }, - "rhs": { + "SystemCall": { + "system": { "Deref": { - "register": "AP", - "offset": -7 + "register": "FP", + "offset": -5 } - }, - "dst": { - "register": "AP", - "offset": 0 } } } ] ], [ - 3014, + 2851, [ { "AllocSegment": { @@ -20390,7 +21380,7 @@ ] ], [ - 3032, + 2871, [ { "AllocSegment": { @@ -20403,7 +21393,7 @@ ] ], [ - 3047, + 2886, [ { "AllocSegment": { @@ -20416,19 +21406,10 @@ ] ], [ - 3062, + 2900, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x0" - }, - "rhs": { - "Deref": { - "register": "FP", - "offset": -6 - } - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -20438,7 +21419,7 @@ ] ], [ - 3079, + 2914, [ { "AllocSegment": { @@ -20451,17 +21432,17 @@ ] ], [ - 3098, + 2929, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x3c5a" + "Immediate": "0x0" }, "rhs": { "Deref": { - "register": "AP", - "offset": -7 + "register": "FP", + "offset": -6 } }, "dst": { @@ -20473,20 +21454,7 @@ ] ], [ - 3118, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 3136, + 2946, [ { "AllocSegment": { @@ -20499,30 +21467,17 @@ ] ], [ - 3151, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 3166, + 2966, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Immediate": "0x41a" }, "rhs": { "Deref": { - "register": "FP", - "offset": -6 + "register": "AP", + "offset": -7 } }, "dst": { @@ -20534,45 +21489,22 @@ ] ], [ - 3183, + 2978, [ { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 3208, - [ - { - "TestLessThanOrEqual": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "rhs": { + "AllocFelt252Dict": { + "segment_arena_ptr": { "Deref": { - "register": "AP", - "offset": -10 + "register": "FP", + "offset": -7 } - }, - "dst": { - "register": "AP", - "offset": 0 } } } ] ], [ - 3227, + 2997, [ { "AllocSegment": { @@ -20585,7 +21517,7 @@ ] ], [ - 3247, + 3008, [ { "AllocSegment": { @@ -20598,7 +21530,7 @@ ] ], [ - 3263, + 3024, [ { "AllocSegment": { @@ -20611,12 +21543,12 @@ ] ], [ - 3279, + 3042, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Immediate": "0x460" }, "rhs": { "Deref": { @@ -20633,46 +21565,78 @@ ] ], [ - 3296, + 3076, [ { - "AllocSegment": { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "FP", + "offset": 1 + } + }, + "rhs": { + "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" + }, "dst": { "register": "AP", - "offset": 0 + "offset": 4 } } } ] ], [ - 3315, + 3080, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x382d4" - }, - "rhs": { + "LinearSplit": { + "value": { "Deref": { "register": "AP", - "offset": -7 + "offset": 3 } }, - "dst": { + "scalar": { + "Immediate": "0x110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { "register": "AP", - "offset": 0 + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 } } } ] ], [ - 3335, + 3090, [ { - "AllocSegment": { - "dst": { + "LinearSplit": { + "value": { + "Deref": { + "register": "FP", + "offset": 1 + } + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { "register": "AP", "offset": 0 } @@ -20681,7 +21645,7 @@ ] ], [ - 3353, + 3143, [ { "AllocSegment": { @@ -20694,7 +21658,7 @@ ] ], [ - 3368, + 3220, [ { "AllocSegment": { @@ -20707,17 +21671,17 @@ ] ], [ - 3383, + 3239, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Immediate": "0x2a94" }, "rhs": { "Deref": { - "register": "FP", - "offset": -6 + "register": "AP", + "offset": -18 } }, "dst": { @@ -20729,32 +21693,25 @@ ] ], [ - 3442, + 3265, [ { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 + "SystemCall": { + "system": { + "Deref": { + "register": "FP", + "offset": -5 + } } } } ] ], [ - 3461, + 3268, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x0" - }, - "rhs": { - "Deref": { - "register": "AP", - "offset": -17 - } - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -20764,7 +21721,7 @@ ] ], [ - 3478, + 3288, [ { "AllocSegment": { @@ -20777,7 +21734,7 @@ ] ], [ - 3492, + 3303, [ { "AllocSegment": { @@ -20790,7 +21747,7 @@ ] ], [ - 3506, + 3317, [ { "AllocSegment": { @@ -20803,7 +21760,7 @@ ] ], [ - 3521, + 3331, [ { "AllocSegment": { @@ -20816,7 +21773,7 @@ ] ], [ - 3535, + 3352, [ { "AllocSegment": { @@ -20829,7 +21786,7 @@ ] ], [ - 3549, + 3366, [ { "AllocSegment": { @@ -20842,7 +21799,7 @@ ] ], [ - 3564, + 3381, [ { "TestLessThanOrEqual": { @@ -20864,20 +21821,7 @@ ] ], [ - 3597, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 3644, + 3398, [ { "AllocSegment": { @@ -20890,17 +21834,17 @@ ] ], [ - 3663, + 3417, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Immediate": "0x76ca" }, "rhs": { "Deref": { "register": "AP", - "offset": -11 + "offset": -7 } }, "dst": { @@ -20912,7 +21856,7 @@ ] ], [ - 3685, + 3437, [ { "AllocSegment": { @@ -20925,7 +21869,7 @@ ] ], [ - 3705, + 3455, [ { "AllocSegment": { @@ -20938,7 +21882,7 @@ ] ], [ - 3720, + 3470, [ { "AllocSegment": { @@ -20951,20 +21895,7 @@ ] ], [ - 3734, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 3749, + 3485, [ { "TestLessThanOrEqual": { @@ -20986,7 +21917,7 @@ ] ], [ - 3766, + 3502, [ { "AllocSegment": { @@ -20999,12 +21930,12 @@ ] ], [ - 3785, + 3521, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Immediate": "0x3c5a" }, "rhs": { "Deref": { @@ -21021,7 +21952,7 @@ ] ], [ - 3797, + 3541, [ { "AllocSegment": { @@ -21034,7 +21965,7 @@ ] ], [ - 3812, + 3559, [ { "AllocSegment": { @@ -21047,7 +21978,7 @@ ] ], [ - 3827, + 3574, [ { "AllocSegment": { @@ -21060,7 +21991,7 @@ ] ], [ - 3842, + 3589, [ { "TestLessThanOrEqual": { @@ -21082,7 +22013,7 @@ ] ], [ - 3880, + 3606, [ { "AllocSegment": { @@ -21095,17 +22026,81 @@ ] ], [ - 3899, + 3631, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Deref": { + "register": "AP", + "offset": -1 + } }, "rhs": { "Deref": { "register": "AP", - "offset": -12 + "offset": -10 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 3650, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 3670, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 3686, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 3702, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 } }, "dst": { @@ -21117,7 +22112,7 @@ ] ], [ - 3919, + 3719, [ { "AllocSegment": { @@ -21130,7 +22125,29 @@ ] ], [ - 3937, + 3738, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x371b8" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -7 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 3758, [ { "AllocSegment": { @@ -21143,7 +22160,7 @@ ] ], [ - 3952, + 3776, [ { "AllocSegment": { @@ -21156,7 +22173,7 @@ ] ], [ - 3966, + 3791, [ { "AllocSegment": { @@ -21169,7 +22186,7 @@ ] ], [ - 3981, + 3806, [ { "TestLessThanOrEqual": { @@ -21191,7 +22208,7 @@ ] ], [ - 4019, + 3865, [ { "AllocSegment": { @@ -21204,7 +22221,7 @@ ] ], [ - 4038, + 3884, [ { "TestLessThanOrEqual": { @@ -21214,7 +22231,7 @@ "rhs": { "Deref": { "register": "AP", - "offset": -12 + "offset": -17 } }, "dst": { @@ -21226,7 +22243,33 @@ ] ], [ - 4058, + 3901, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 3915, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 3929, [ { "AllocSegment": { @@ -21239,7 +22282,7 @@ ] ], [ - 4076, + 3944, [ { "AllocSegment": { @@ -21252,7 +22295,7 @@ ] ], [ - 4091, + 3958, [ { "AllocSegment": { @@ -21265,7 +22308,7 @@ ] ], [ - 4105, + 3972, [ { "AllocSegment": { @@ -21278,7 +22321,7 @@ ] ], [ - 4120, + 3987, [ { "TestLessThanOrEqual": { @@ -21300,78 +22343,59 @@ ] ], [ - 4153, + 4020, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "rhs": { - "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" - }, + "AllocSegment": { "dst": { "register": "AP", - "offset": 4 + "offset": 0 } } } ] ], [ - 4157, + 4067, [ { - "LinearSplit": { - "value": { - "Deref": { - "register": "AP", - "offset": 3 - } - }, - "scalar": { - "Immediate": "0x110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -2 - }, - "y": { + "AllocSegment": { + "dst": { "register": "AP", - "offset": -1 + "offset": 0 } } } ] ], [ - 4167, + 4086, [ { - "LinearSplit": { - "value": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { "Deref": { "register": "AP", - "offset": -2 + "offset": -11 } }, - "scalar": { - "Immediate": "0x8000000000000000000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { + "dst": { "register": "AP", - "offset": -1 - }, - "y": { + "offset": 0 + } + } + } + ] + ], + [ + 4108, + [ + { + "AllocSegment": { + "dst": { "register": "AP", "offset": 0 } @@ -21380,7 +22404,7 @@ ] ], [ - 4224, + 4128, [ { "AllocSegment": { @@ -21393,19 +22417,10 @@ ] ], [ - 4243, + 4143, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x1de2" - }, - "rhs": { - "Deref": { - "register": "AP", - "offset": -28 - } - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -21415,7 +22430,7 @@ ] ], [ - 4265, + 4157, [ { "AllocSegment": { @@ -21428,22 +22443,29 @@ ] ], [ - 4283, + 4172, [ { - "SystemCall": { - "system": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { "Deref": { "register": "FP", - "offset": -5 + "offset": -6 } + }, + "dst": { + "register": "AP", + "offset": 0 } } } ] ], [ - 4289, + 4189, [ { "AllocSegment": { @@ -21456,10 +22478,19 @@ ] ], [ - 4308, + 4208, [ { - "AllocSegment": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -7 + } + }, "dst": { "register": "AP", "offset": 0 @@ -21469,7 +22500,7 @@ ] ], [ - 4323, + 4220, [ { "AllocSegment": { @@ -21482,7 +22513,7 @@ ] ], [ - 4337, + 4235, [ { "AllocSegment": { @@ -21495,7 +22526,7 @@ ] ], [ - 4358, + 4250, [ { "AllocSegment": { @@ -21508,7 +22539,29 @@ ] ], [ - 4372, + 4265, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 4303, [ { "AllocSegment": { @@ -21521,7 +22574,7 @@ ] ], [ - 4387, + 4322, [ { "TestLessThanOrEqual": { @@ -21530,8 +22583,8 @@ }, "rhs": { "Deref": { - "register": "FP", - "offset": -6 + "register": "AP", + "offset": -12 } }, "dst": { @@ -21543,7 +22596,7 @@ ] ], [ - 4467, + 4342, [ { "AllocSegment": { @@ -21556,32 +22609,7 @@ ] ], [ - 4492, - [ - { - "TestLessThanOrEqual": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "rhs": { - "Deref": { - "register": "AP", - "offset": -25 - } - }, - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 4514, + 4360, [ { "AllocSegment": { @@ -21594,7 +22622,7 @@ ] ], [ - 4534, + 4375, [ { "AllocSegment": { @@ -21607,7 +22635,7 @@ ] ], [ - 4550, + 4389, [ { "AllocSegment": { @@ -21620,46 +22648,7 @@ ] ], [ - 4565, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 4580, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 4595, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 4611, + 4404, [ { "TestLessThanOrEqual": { @@ -21681,7 +22670,7 @@ ] ], [ - 4634, + 4442, [ { "AllocSegment": { @@ -21694,20 +22683,17 @@ ] ], [ - 4664, + 4461, [ { "TestLessThanOrEqual": { "lhs": { - "Deref": { - "register": "AP", - "offset": -1 - } + "Immediate": "0x0" }, "rhs": { "Deref": { "register": "AP", - "offset": -55 + "offset": -12 } }, "dst": { @@ -21719,7 +22705,7 @@ ] ], [ - 4687, + 4481, [ { "AllocSegment": { @@ -21732,7 +22718,7 @@ ] ], [ - 4709, + 4499, [ { "AllocSegment": { @@ -21745,7 +22731,7 @@ ] ], [ - 4726, + 4514, [ { "AllocSegment": { @@ -21758,7 +22744,7 @@ ] ], [ - 4742, + 4528, [ { "AllocSegment": { @@ -21771,12 +22757,12 @@ ] ], [ - 4759, + 4543, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x33e" + "Immediate": "0x0" }, "rhs": { "Deref": { @@ -21793,7 +22779,7 @@ ] ], [ - 4792, + 4576, [ { "TestLessThan": { @@ -21815,7 +22801,7 @@ ] ], [ - 4796, + 4580, [ { "LinearSplit": { @@ -21844,7 +22830,7 @@ ] ], [ - 4806, + 4590, [ { "LinearSplit": { @@ -21873,7 +22859,7 @@ ] ], [ - 4827, + 4647, [ { "AllocSegment": { @@ -21886,17 +22872,17 @@ ] ], [ - 4846, + 4666, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x2c24" + "Immediate": "0x1de2" }, "rhs": { "Deref": { "register": "AP", - "offset": -60 + "offset": -28 } }, "dst": { @@ -21908,7 +22894,7 @@ ] ], [ - 4858, + 4688, [ { "AllocSegment": { @@ -21921,7 +22907,7 @@ ] ], [ - 4878, + 4706, [ { "SystemCall": { @@ -21936,7 +22922,7 @@ ] ], [ - 4881, + 4712, [ { "AllocSegment": { @@ -21949,7 +22935,7 @@ ] ], [ - 4901, + 4731, [ { "AllocSegment": { @@ -21962,7 +22948,7 @@ ] ], [ - 4916, + 4746, [ { "AllocSegment": { @@ -21975,7 +22961,20 @@ ] ], [ - 4937, + 4760, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 4781, [ { "AllocSegment": { @@ -21988,7 +22987,7 @@ ] ], [ - 4951, + 4795, [ { "AllocSegment": { @@ -22001,7 +23000,7 @@ ] ], [ - 4966, + 4810, [ { "TestLessThanOrEqual": { @@ -22023,7 +23022,7 @@ ] ], [ - 4983, + 4890, [ { "AllocSegment": { @@ -22036,7 +23035,7 @@ ] ], [ - 5006, + 4915, [ { "TestLessThanOrEqual": { @@ -22049,7 +23048,7 @@ "rhs": { "Deref": { "register": "AP", - "offset": -9 + "offset": -25 } }, "dst": { @@ -22061,7 +23060,46 @@ ] ], [ - 5025, + 4937, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 4957, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 4973, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 4988, [ { "AllocSegment": { @@ -22074,7 +23112,7 @@ ] ], [ - 5045, + 5003, [ { "AllocSegment": { @@ -22087,7 +23125,7 @@ ] ], [ - 5061, + 5018, [ { "AllocSegment": { @@ -22100,7 +23138,7 @@ ] ], [ - 5077, + 5034, [ { "TestLessThanOrEqual": { @@ -22122,7 +23160,7 @@ ] ], [ - 5115, + 5057, [ { "AllocSegment": { @@ -22135,7 +23173,7 @@ ] ], [ - 5140, + 5087, [ { "TestLessThanOrEqual": { @@ -22148,7 +23186,7 @@ "rhs": { "Deref": { "register": "AP", - "offset": -15 + "offset": -55 } }, "dst": { @@ -22160,7 +23198,7 @@ ] ], [ - 5160, + 5110, [ { "AllocSegment": { @@ -22173,7 +23211,7 @@ ] ], [ - 5180, + 5132, [ { "AllocSegment": { @@ -22186,7 +23224,7 @@ ] ], [ - 5196, + 5149, [ { "AllocSegment": { @@ -22199,7 +23237,7 @@ ] ], [ - 5211, + 5165, [ { "AllocSegment": { @@ -22212,12 +23250,12 @@ ] ], [ - 5227, + 5182, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Immediate": "0x33e" }, "rhs": { "Deref": { @@ -22234,74 +23272,78 @@ ] ], [ - 5265, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 5284, + 5215, [ { - "TestLessThanOrEqual": { + "TestLessThan": { "lhs": { - "Immediate": "0x1220" - }, - "rhs": { "Deref": { "register": "AP", - "offset": -12 + "offset": -1 } }, + "rhs": { + "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" + }, "dst": { "register": "AP", - "offset": 0 + "offset": 4 } } } ] ], [ - 5296, + 5219, [ { - "AllocSegment": { - "dst": { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 3 + } + }, + "scalar": { + "Immediate": "0x110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { "register": "AP", - "offset": 0 + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 } } } ] ], [ - 5316, + 5229, [ { - "SystemCall": { - "system": { + "LinearSplit": { + "value": { "Deref": { - "register": "FP", - "offset": -5 + "register": "AP", + "offset": -2 } - } - } - } - ] - ], - [ - 5319, - [ - { - "AllocSegment": { - "dst": { + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { "register": "AP", "offset": 0 } @@ -22310,7 +23352,7 @@ ] ], [ - 5339, + 5250, [ { "AllocSegment": { @@ -22323,10 +23365,19 @@ ] ], [ - 5354, + 5269, [ { - "AllocSegment": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x2c24" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -60 + } + }, "dst": { "register": "AP", "offset": 0 @@ -22336,7 +23387,7 @@ ] ], [ - 5368, + 5281, [ { "AllocSegment": { @@ -22349,29 +23400,22 @@ ] ], [ - 5383, + 5301, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x0" - }, - "rhs": { + "SystemCall": { + "system": { "Deref": { "register": "FP", - "offset": -6 + "offset": -5 } - }, - "dst": { - "register": "AP", - "offset": 0 } } } ] ], [ - 5400, + 5304, [ { "AllocSegment": { @@ -22384,22 +23428,10 @@ ] ], [ - 5431, + 5324, [ { - "TestLessThanOrEqual": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "rhs": { - "Deref": { - "register": "AP", - "offset": -13 - } - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -22409,7 +23441,7 @@ ] ], [ - 5451, + 5339, [ { "AllocSegment": { @@ -22422,7 +23454,7 @@ ] ], [ - 5475, + 5360, [ { "AllocSegment": { @@ -22435,7 +23467,7 @@ ] ], [ - 5493, + 5374, [ { "AllocSegment": { @@ -22448,7 +23480,7 @@ ] ], [ - 5511, + 5389, [ { "TestLessThanOrEqual": { @@ -22470,7 +23502,7 @@ ] ], [ - 5528, + 5406, [ { "AllocSegment": { @@ -22483,17 +23515,20 @@ ] ], [ - 5548, + 5429, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Deref": { + "register": "AP", + "offset": -1 + } }, "rhs": { "Deref": { "register": "AP", - "offset": -7 + "offset": -9 } }, "dst": { @@ -22505,7 +23540,7 @@ ] ], [ - 5572, + 5448, [ { "AllocSegment": { @@ -22518,7 +23553,7 @@ ] ], [ - 5602, + 5468, [ { "AllocSegment": { @@ -22531,7 +23566,7 @@ ] ], [ - 5618, + 5484, [ { "AllocSegment": { @@ -22544,7 +23579,7 @@ ] ], [ - 5634, + 5500, [ { "TestLessThanOrEqual": { @@ -22566,7 +23601,7 @@ ] ], [ - 5693, + 5538, [ { "AllocSegment": { @@ -22579,17 +23614,20 @@ ] ], [ - 5712, + 5563, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Deref": { + "register": "AP", + "offset": -1 + } }, "rhs": { "Deref": { "register": "AP", - "offset": -17 + "offset": -15 } }, "dst": { @@ -22601,20 +23639,7 @@ ] ], [ - 5724, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 5737, + 5583, [ { "AllocSegment": { @@ -22627,7 +23652,7 @@ ] ], [ - 5752, + 5603, [ { "AllocSegment": { @@ -22640,7 +23665,7 @@ ] ], [ - 5766, + 5619, [ { "AllocSegment": { @@ -22653,7 +23678,7 @@ ] ], [ - 5780, + 5634, [ { "AllocSegment": { @@ -22666,7 +23691,7 @@ ] ], [ - 5795, + 5650, [ { "TestLessThanOrEqual": { @@ -22688,90 +23713,32 @@ ] ], [ - 5849, + 5688, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "rhs": { - "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" - }, + "AllocSegment": { "dst": { "register": "AP", - "offset": 4 + "offset": 0 } } } ] ], [ - 5853, + 5707, [ { - "LinearSplit": { - "value": { - "Deref": { - "register": "AP", - "offset": 3 - } - }, - "scalar": { - "Immediate": "0x110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -2 + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x1220" }, - "y": { - "register": "AP", - "offset": -1 - } - } - } - ] - ], - [ - 5863, - [ - { - "LinearSplit": { - "value": { + "rhs": { "Deref": { "register": "AP", - "offset": -2 + "offset": -12 } }, - "scalar": { - "Immediate": "0x8000000000000000000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -1 - }, - "y": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 5899, - [ - { - "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -22781,19 +23748,10 @@ ] ], [ - 5918, + 5719, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x1a5e" - }, - "rhs": { - "Deref": { - "register": "AP", - "offset": -28 - } - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -22803,7 +23761,7 @@ ] ], [ - 5941, + 5739, [ { "SystemCall": { @@ -22818,7 +23776,7 @@ ] ], [ - 5944, + 5742, [ { "AllocSegment": { @@ -22831,7 +23789,7 @@ ] ], [ - 5966, + 5762, [ { "AllocSegment": { @@ -22844,7 +23802,7 @@ ] ], [ - 5981, + 5777, [ { "AllocSegment": { @@ -22857,7 +23815,7 @@ ] ], [ - 6002, + 5791, [ { "AllocSegment": { @@ -22870,10 +23828,19 @@ ] ], [ - 6016, + 5806, [ { - "AllocSegment": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, "dst": { "register": "AP", "offset": 0 @@ -22883,7 +23850,7 @@ ] ], [ - 6030, + 5823, [ { "AllocSegment": { @@ -22896,17 +23863,20 @@ ] ], [ - 6045, + 5854, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x0" + "Deref": { + "register": "AP", + "offset": -1 + } }, "rhs": { "Deref": { - "register": "FP", - "offset": -6 + "register": "AP", + "offset": -13 } }, "dst": { @@ -22918,7 +23888,7 @@ ] ], [ - 6104, + 5874, [ { "AllocSegment": { @@ -22931,19 +23901,10 @@ ] ], [ - 6123, + 5898, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x1414" - }, - "rhs": { - "Deref": { - "register": "AP", - "offset": -17 - } - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -22953,22 +23914,7 @@ ] ], [ - 6149, - [ - { - "SystemCall": { - "system": { - "Deref": { - "register": "FP", - "offset": -5 - } - } - } - } - ] - ], - [ - 6152, + 5916, [ { "AllocSegment": { @@ -22981,10 +23927,19 @@ ] ], [ - 6174, + 5934, [ { - "AllocSegment": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, "dst": { "register": "AP", "offset": 0 @@ -22994,7 +23949,7 @@ ] ], [ - 6189, + 5951, [ { "AllocSegment": { @@ -23007,10 +23962,19 @@ ] ], [ - 6203, + 5971, [ { - "AllocSegment": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -7 + } + }, "dst": { "register": "AP", "offset": 0 @@ -23020,7 +23984,7 @@ ] ], [ - 6217, + 5995, [ { "AllocSegment": { @@ -23033,19 +23997,10 @@ ] ], [ - 6232, + 6025, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x942" - }, - "rhs": { - "Deref": { - "register": "FP", - "offset": -8 - } - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -23055,7 +24010,7 @@ ] ], [ - 6304, + 6041, [ { "AllocSegment": { @@ -23068,17 +24023,17 @@ ] ], [ - 6324, + 6057, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x3480" + "Immediate": "0x0" }, "rhs": { "Deref": { "register": "FP", - "offset": -10 + "offset": -6 } }, "dst": { @@ -23090,42 +24045,31 @@ ] ], [ - 6349, + 6116, [ { - "SystemCall": { - "system": { - "Deref": { - "register": "FP", - "offset": -9 - } + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 } } } ] ], [ - 6357, + 6135, [ { - "TestLessThan": { + "TestLessThanOrEqual": { "lhs": { - "BinOp": { - "op": "Add", - "a": { - "register": "FP", - "offset": -8 - }, - "b": { - "Deref": { - "register": "AP", - "offset": -3 - } - } - } + "Immediate": "0x0" }, "rhs": { - "Immediate": "0x10000000000000000" + "Deref": { + "register": "AP", + "offset": -17 + } }, "dst": { "register": "AP", @@ -23136,7 +24080,7 @@ ] ], [ - 6382, + 6147, [ { "AllocSegment": { @@ -23149,7 +24093,7 @@ ] ], [ - 6415, + 6160, [ { "AllocSegment": { @@ -23162,25 +24106,10 @@ ] ], [ - 6452, + 6175, [ { - "TestLessThan": { - "lhs": { - "BinOp": { - "op": "Add", - "a": { - "register": "AP", - "offset": -1 - }, - "b": { - "Immediate": "0x0" - } - } - }, - "rhs": { - "Immediate": "0x10000000000000000" - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -23190,54 +24119,23 @@ ] ], [ - 6456, + 6189, [ { - "LinearSplit": { - "value": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "scalar": { - "Immediate": "0x8000000000000110000000000000000" - }, - "max_x": { - "Immediate": "0xfffffffffffffffffffffffffffffffe" - }, - "x": { + "AllocSegment": { + "dst": { "register": "AP", "offset": 0 - }, - "y": { - "register": "AP", - "offset": 1 } } } ] ], [ - 6498, + 6203, [ { - "TestLessThan": { - "lhs": { - "BinOp": { - "op": "Add", - "a": { - "register": "AP", - "offset": -1 - }, - "b": { - "Immediate": "0x0" - } - } - }, - "rhs": { - "Immediate": "0x10000000000000000" - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -23247,36 +24145,29 @@ ] ], [ - 6502, + 6218, [ { - "LinearSplit": { - "value": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { "Deref": { - "register": "AP", - "offset": -1 + "register": "FP", + "offset": -6 } }, - "scalar": { - "Immediate": "0x8000000000000110000000000000000" - }, - "max_x": { - "Immediate": "0xfffffffffffffffffffffffffffffffe" - }, - "x": { + "dst": { "register": "AP", "offset": 0 - }, - "y": { - "register": "AP", - "offset": 1 } } } ] ], [ - 6543, + 6272, [ { "TestLessThan": { @@ -23298,7 +24189,7 @@ ] ], [ - 6547, + 6276, [ { "LinearSplit": { @@ -23327,7 +24218,7 @@ ] ], [ - 6557, + 6286, [ { "LinearSplit": { @@ -23356,99 +24247,60 @@ ] ], [ - 6681, + 6322, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "FP", - "offset": 2 - } - }, - "rhs": { - "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" - }, + "AllocSegment": { "dst": { "register": "AP", - "offset": 4 + "offset": 0 } } } ] ], [ - 6685, + 6341, [ { - "LinearSplit": { - "value": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x1a5e" + }, + "rhs": { "Deref": { "register": "AP", - "offset": 3 + "offset": -28 } }, - "scalar": { - "Immediate": "0x110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -2 - }, - "y": { + "dst": { "register": "AP", - "offset": -1 + "offset": 0 } } } ] ], [ - 6695, + 6364, [ { - "LinearSplit": { - "value": { + "SystemCall": { + "system": { "Deref": { "register": "FP", - "offset": 2 + "offset": -5 } - }, - "scalar": { - "Immediate": "0x8000000000000000000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -1 - }, - "y": { - "register": "AP", - "offset": 0 } } } ] ], [ - 6727, + 6367, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "FP", - "offset": 0 - } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -23458,33 +24310,20 @@ ] ], [ - 6729, + 6389, [ { - "DivMod": { - "lhs": { - "Deref": { - "register": "FP", - "offset": 0 - } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "quotient": { - "register": "AP", - "offset": 3 - }, - "remainder": { + "AllocSegment": { + "dst": { "register": "AP", - "offset": 4 + "offset": 0 } } } ] ], [ - 6849, + 6404, [ { "AllocSegment": { @@ -23497,19 +24336,10 @@ ] ], [ - 6963, + 6425, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -23519,51 +24349,23 @@ ] ], [ - 6965, + 6439, [ { - "DivMod": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -2 - } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "quotient": { - "register": "AP", - "offset": 3 - }, - "remainder": { + "AllocSegment": { + "dst": { "register": "AP", - "offset": 4 + "offset": 0 } } } ] ], [ - 7018, + 6453, [ { - "TestLessThan": { - "lhs": { - "BinOp": { - "op": "Add", - "a": { - "register": "AP", - "offset": -1 - }, - "b": { - "Immediate": "0x0" - } - } - }, - "rhs": { - "Immediate": "0x100000000" - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -23573,54 +24375,32 @@ ] ], [ - 7022, + 6468, [ { - "LinearSplit": { - "value": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { "Deref": { - "register": "AP", - "offset": -1 + "register": "FP", + "offset": -6 } }, - "scalar": { - "Immediate": "0x8000000000000110000000000000000" - }, - "max_x": { - "Immediate": "0xfffffffffffffffffffffffffffffffe" - }, - "x": { + "dst": { "register": "AP", "offset": 0 - }, - "y": { - "register": "AP", - "offset": 1 } } } ] ], [ - 7064, + 6527, [ { - "TestLessThan": { - "lhs": { - "BinOp": { - "op": "Add", - "a": { - "register": "AP", - "offset": -1 - }, - "b": { - "Immediate": "0x0" - } - } - }, - "rhs": { - "Immediate": "0x100000000" - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -23630,43 +24410,36 @@ ] ], [ - 7068, + 6546, [ { - "LinearSplit": { - "value": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x1414" + }, + "rhs": { "Deref": { "register": "AP", - "offset": -1 + "offset": -17 } }, - "scalar": { - "Immediate": "0x8000000000000110000000000000000" - }, - "max_x": { - "Immediate": "0xfffffffffffffffffffffffffffffffe" - }, - "x": { + "dst": { "register": "AP", "offset": 0 - }, - "y": { - "register": "AP", - "offset": 1 } } } ] ], [ - 7846, + 6572, [ { "SystemCall": { "system": { "Deref": { "register": "FP", - "offset": -26 + "offset": -5 } } } @@ -23674,7 +24447,7 @@ ] ], [ - 8079, + 6575, [ { "AllocSegment": { @@ -23687,7 +24460,7 @@ ] ], [ - 8093, + 6597, [ { "AllocSegment": { @@ -23700,7 +24473,7 @@ ] ], [ - 8107, + 6612, [ { "AllocSegment": { @@ -23713,7 +24486,7 @@ ] ], [ - 8171, + 6626, [ { "AllocSegment": { @@ -23726,7 +24499,7 @@ ] ], [ - 8185, + 6640, [ { "AllocSegment": { @@ -23739,7 +24512,29 @@ ] ], [ - 8208, + 6655, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x942" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -8 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 6727, [ { "AllocSegment": { @@ -23752,14 +24547,14 @@ ] ], [ - 8232, + 6755, [ { "SystemCall": { "system": { "Deref": { "register": "FP", - "offset": -8 + "offset": -7 } } } @@ -23767,7 +24562,7 @@ ] ], [ - 8235, + 6760, [ { "AllocSegment": { @@ -23780,7 +24575,7 @@ ] ], [ - 8251, + 6795, [ { "SystemCall": { @@ -23789,7 +24584,7 @@ "op": "Add", "a": { "register": "FP", - "offset": -8 + "offset": -7 }, "b": { "Immediate": "0xa" @@ -23801,78 +24596,46 @@ ] ], [ - 8288, - [ - { - "GetSegmentArenaIndex": { - "dict_end_ptr": { - "Deref": { - "register": "FP", - "offset": -3 - } - }, - "dict_index": { - "register": "FP", - "offset": 0 - } - } - } - ] - ], - [ - 8329, + 6816, [ { "AllocSegment": { "dst": { - "register": "FP", - "offset": 3 + "register": "AP", + "offset": 0 } } } ] ], [ - 8337, + 6841, [ { - "InitSquashData": { - "dict_accesses": { - "Deref": { - "register": "FP", - "offset": -4 - } + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x3480" }, - "ptr_diff": { + "rhs": { "Deref": { "register": "FP", - "offset": 0 - } - }, - "n_accesses": { - "Deref": { - "register": "AP", - "offset": -1 + "offset": -10 } }, - "big_keys": { - "register": "FP", - "offset": 2 - }, - "first_key": { - "register": "FP", - "offset": 1 + "dst": { + "register": "AP", + "offset": 0 } } } ] ], [ - 8356, + 6866, [ { - "GetCurrentAccessIndex": { - "range_check_ptr": { + "SystemCall": { + "system": { "Deref": { "register": "FP", "offset": -9 @@ -23883,24 +24646,42 @@ ] ], [ - 8369, + 6874, [ { - "ShouldSkipSquashLoop": { - "should_skip_loop": { + "TestLessThan": { + "lhs": { + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -8 + }, + "b": { + "Deref": { + "register": "AP", + "offset": -3 + } + } + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "dst": { "register": "AP", - "offset": -4 + "offset": 0 } } } ] ], [ - 8371, + 6899, [ { - "GetCurrentAccessDelta": { - "index_delta_minus1": { + "AllocSegment": { + "dst": { "register": "AP", "offset": 0 } @@ -23909,25 +24690,12 @@ ] ], [ - 8382, + 6932, [ { - "ShouldContinueSquashLoop": { - "should_continue": { + "AllocSegment": { + "dst": { "register": "AP", - "offset": -4 - } - } - } - ] - ], - [ - 8396, - [ - { - "GetNextDictKey": { - "next_key": { - "register": "FP", "offset": 0 } } @@ -23935,44 +24703,26 @@ ] ], [ - 8415, + 6969, [ { - "AssertLeFindSmallArcs": { - "range_check_ptr": { + "TestLessThan": { + "lhs": { "BinOp": { "op": "Add", "a": { "register": "AP", - "offset": -4 + "offset": -1 }, "b": { - "Immediate": "0x1" + "Immediate": "0x0" } } }, - "a": { - "Deref": { - "register": "FP", - "offset": -6 - } + "rhs": { + "Immediate": "0x10000000000000000" }, - "b": { - "Deref": { - "register": "FP", - "offset": 0 - } - } - } - } - ] - ], - [ - 8427, - [ - { - "AssertLeIsFirstArcExcluded": { - "skip_exclude_a_flag": { + "dst": { "register": "AP", "offset": 0 } @@ -23981,36 +24731,54 @@ ] ], [ - 8439, + 6973, [ { - "AssertLeIsSecondArcExcluded": { - "skip_exclude_b_minus_a": { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "scalar": { + "Immediate": "0x8000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, + "x": { "register": "AP", "offset": 0 - } - } - } - ] - ], - [ - 8470, - [ - { - "AllocSegment": { - "dst": { + }, + "y": { "register": "AP", - "offset": 0 + "offset": 1 } } } ] ], [ - 8478, + 7015, [ { - "AllocSegment": { + "TestLessThan": { + "lhs": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -1 + }, + "b": { + "Immediate": "0x0" + } + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, "dst": { "register": "AP", "offset": 0 @@ -24020,80 +24788,107 @@ ] ], [ - 8509, + 7019, [ { - "SystemCall": { - "system": { + "LinearSplit": { + "value": { "Deref": { - "register": "FP", - "offset": -3 + "register": "AP", + "offset": -1 } - } - } - } - ] - ], - [ - 8523, - [ - { - "AllocSegment": { - "dst": { + }, + "scalar": { + "Immediate": "0x8000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, + "x": { "register": "AP", "offset": 0 - } - } - } - ] - ], - [ - 8543, - [ - { - "AllocSegment": { - "dst": { + }, + "y": { "register": "AP", - "offset": 0 + "offset": 1 } } } ] ], [ - 8557, + 7060, [ { - "AllocSegment": { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" + }, "dst": { "register": "AP", - "offset": 0 + "offset": 4 } } } ] ], [ - 8571, + 7064, [ { - "SystemCall": { - "system": { + "LinearSplit": { + "value": { "Deref": { "register": "AP", - "offset": -9 + "offset": 3 } + }, + "scalar": { + "Immediate": "0x110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 } } } ] ], [ - 8574, + 7074, [ { - "AllocSegment": { - "dst": { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { "register": "AP", "offset": 0 } @@ -24102,62 +24897,78 @@ ] ], [ - 8597, + 7198, [ { "TestLessThan": { "lhs": { "Deref": { - "register": "AP", - "offset": -4 + "register": "FP", + "offset": 2 } }, "rhs": { - "Deref": { - "register": "AP", - "offset": -1 - } + "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" }, "dst": { "register": "AP", - "offset": 0 + "offset": 4 } } } ] ], [ - 8625, + 7202, [ { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 8639, - [ - { - "AllocSegment": { - "dst": { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 3 + } + }, + "scalar": { + "Immediate": "0x110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { "register": "AP", - "offset": 0 + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 } } } ] ], [ - 8682, + 7212, [ { - "AllocSegment": { - "dst": { + "LinearSplit": { + "value": { + "Deref": { + "register": "FP", + "offset": 2 + } + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { "register": "AP", "offset": 0 } @@ -24166,10 +24977,19 @@ ] ], [ - 8721, + 7244, [ { - "AllocSegment": { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "FP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, "dst": { "register": "AP", "offset": 0 @@ -24179,22 +24999,33 @@ ] ], [ - 8781, + 7246, [ { - "SystemCall": { - "system": { + "DivMod": { + "lhs": { "Deref": { "register": "FP", - "offset": -3 + "offset": 0 } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 } } } ] ], [ - 8791, + 7366, [ { "AllocSegment": { @@ -24207,25 +25038,19 @@ ] ], [ - 8822, + 7480, [ { - "SystemCall": { - "system": { + "TestLessThan": { + "lhs": { "Deref": { "register": "AP", - "offset": -6 + "offset": -1 } - } - } - } - ] - ], - [ - 8825, - [ - { - "AllocSegment": { + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, "dst": { "register": "AP", "offset": 0 @@ -24235,65 +25060,108 @@ ] ], [ - 8849, + 7482, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -4 + "offset": -2 } }, "rhs": { - "Deref": { - "register": "AP", - "offset": -1 - } + "Immediate": "0x100000000000000000000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": 0 + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 } } } ] ], [ - 8883, + 7535, [ { - "SystemCall": { - "system": { - "Deref": { - "register": "AP", - "offset": -14 + "TestLessThan": { + "lhs": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -1 + }, + "b": { + "Immediate": "0x0" + } } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": 0 } } } ] ], [ - 8898, + 7539, [ { - "SystemCall": { - "system": { + "LinearSplit": { + "value": { "Deref": { "register": "AP", - "offset": -2 + "offset": -1 } + }, + "scalar": { + "Immediate": "0x8000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, + "x": { + "register": "AP", + "offset": 0 + }, + "y": { + "register": "AP", + "offset": 1 } } } ] ], [ - 8944, + 7581, [ { - "AllocSegment": { + "TestLessThan": { + "lhs": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -1 + }, + "b": { + "Immediate": "0x0" + } + } + }, + "rhs": { + "Immediate": "0x100000000" + }, "dst": { "register": "AP", "offset": 0 @@ -24303,58 +25171,64 @@ ] ], [ - 8963, + 7585, [ { - "DivMod": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -2 - } - }, - "rhs": { + "LinearSplit": { + "value": { "Deref": { "register": "AP", "offset": -1 } }, - "quotient": { + "scalar": { + "Immediate": "0x8000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, + "x": { "register": "AP", - "offset": 5 + "offset": 0 }, - "remainder": { + "y": { "register": "AP", - "offset": 6 + "offset": 1 } } } ] ], [ - 8969, + 8363, [ { - "TestLessThan": { - "lhs": { + "SystemCall": { + "system": { "Deref": { - "register": "AP", - "offset": 0 + "register": "FP", + "offset": -26 } - }, - "rhs": { - "Immediate": "0x10000000000000000" - }, + } + } + } + ] + ], + [ + 8596, + [ + { + "AllocSegment": { "dst": { "register": "AP", - "offset": -3 + "offset": 0 } } } ] ], [ - 9020, + 8610, [ { "AllocSegment": { @@ -24367,7 +25241,7 @@ ] ], [ - 9051, + 8624, [ { "AllocSegment": { @@ -24380,7 +25254,7 @@ ] ], [ - 9076, + 8688, [ { "AllocSegment": { @@ -24393,7 +25267,20 @@ ] ], [ - 9091, + 8702, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 8725, [ { "AllocSegment": { @@ -24406,14 +25293,14 @@ ] ], [ - 9133, + 8749, [ { "SystemCall": { "system": { "Deref": { "register": "FP", - "offset": -3 + "offset": -8 } } } @@ -24421,7 +25308,7 @@ ] ], [ - 9145, + 8752, [ { "AllocSegment": { @@ -24434,67 +25321,102 @@ ] ], [ - 9175, + 8768, [ { "SystemCall": { "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -8 + }, + "b": { + "Immediate": "0xa" + } + } + } + } + } + ] + ], + [ + 8805, + [ + { + "GetSegmentArenaIndex": { + "dict_end_ptr": { "Deref": { - "register": "AP", - "offset": -6 + "register": "FP", + "offset": -3 } + }, + "dict_index": { + "register": "FP", + "offset": 0 } } } ] ], [ - 9180, + 8846, [ { "AllocSegment": { "dst": { - "register": "AP", - "offset": 0 + "register": "FP", + "offset": 3 } } } ] ], [ - 9203, + 8854, [ { - "TestLessThan": { - "lhs": { + "InitSquashData": { + "dict_accesses": { "Deref": { - "register": "AP", + "register": "FP", "offset": -4 } }, - "rhs": { + "ptr_diff": { + "Deref": { + "register": "FP", + "offset": 0 + } + }, + "n_accesses": { "Deref": { "register": "AP", "offset": -1 } }, - "dst": { - "register": "AP", - "offset": 0 + "big_keys": { + "register": "FP", + "offset": 2 + }, + "first_key": { + "register": "FP", + "offset": 1 } } } ] ], [ - 9237, + 8873, [ { - "SystemCall": { - "system": { + "GetCurrentAccessIndex": { + "range_check_ptr": { "Deref": { - "register": "AP", - "offset": -14 + "register": "FP", + "offset": -9 } } } @@ -24502,26 +25424,24 @@ ] ], [ - 9252, + 8886, [ { - "SystemCall": { - "system": { - "Deref": { - "register": "AP", - "offset": -2 - } + "ShouldSkipSquashLoop": { + "should_skip_loop": { + "register": "AP", + "offset": -4 } } } ] ], [ - 9300, + 8888, [ { - "AllocSegment": { - "dst": { + "GetCurrentAccessDelta": { + "index_delta_minus1": { "register": "AP", "offset": 0 } @@ -24530,65 +25450,58 @@ ] ], [ - 9318, + 8899, [ { - "DivMod": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -2 - } - }, - "rhs": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "quotient": { - "register": "AP", - "offset": 5 - }, - "remainder": { + "ShouldContinueSquashLoop": { + "should_continue": { "register": "AP", - "offset": 6 + "offset": -4 } } } ] ], [ - 9324, + 8913, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": 0 - } - }, - "rhs": { - "Immediate": "0x10000000000000000" - }, - "dst": { - "register": "AP", - "offset": -3 + "GetNextDictKey": { + "next_key": { + "register": "FP", + "offset": 0 } } } ] ], [ - 9353, + 8932, [ { - "SystemCall": { - "system": { + "AssertLeFindSmallArcs": { + "range_check_ptr": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -4 + }, + "b": { + "Immediate": "0x1" + } + } + }, + "a": { "Deref": { - "register": "AP", - "offset": -22 + "register": "FP", + "offset": -6 + } + }, + "b": { + "Deref": { + "register": "FP", + "offset": 0 } } } @@ -24596,11 +25509,11 @@ ] ], [ - 9403, + 8944, [ { - "AllocSegment": { - "dst": { + "AssertLeIsFirstArcExcluded": { + "skip_exclude_a_flag": { "register": "AP", "offset": 0 } @@ -24609,11 +25522,11 @@ ] ], [ - 9441, + 8956, [ { - "AllocSegment": { - "dst": { + "AssertLeIsSecondArcExcluded": { + "skip_exclude_b_minus_a": { "register": "AP", "offset": 0 } @@ -24622,7 +25535,7 @@ ] ], [ - 9468, + 8987, [ { "AllocSegment": { @@ -24635,7 +25548,7 @@ ] ], [ - 9484, + 8995, [ { "AllocSegment": { @@ -24648,122 +25561,52 @@ ] ], [ - 9510, + 9026, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x3a84" - }, - "rhs": { + "SystemCall": { + "system": { "Deref": { "register": "FP", - "offset": -6 + "offset": -3 } - }, - "dst": { - "register": "AP", - "offset": 0 } } } ] ], [ - 9524, + 9040, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": 0 - } - }, - "rhs": { - "Immediate": "0x100000000" - }, + "AllocSegment": { "dst": { "register": "AP", - "offset": -1 + "offset": 0 } } } ] ], [ - 9599, + 9060, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -11 - } - }, - "rhs": { - "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" - }, + "AllocSegment": { "dst": { "register": "AP", - "offset": 4 - } - } - } - ] - ], - [ - 9603, - [ - { - "LinearSplit": { - "value": { - "Deref": { - "register": "AP", - "offset": 3 - } - }, - "scalar": { - "Immediate": "0x110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -2 - }, - "y": { - "register": "AP", - "offset": -1 + "offset": 0 } } } ] ], [ - 9613, + 9074, [ { - "LinearSplit": { - "value": { - "Deref": { - "register": "AP", - "offset": -12 - } - }, - "scalar": { - "Immediate": "0x8000000000000000000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -1 - }, - "y": { + "AllocSegment": { + "dst": { "register": "AP", "offset": 0 } @@ -24772,14 +25615,14 @@ ] ], [ - 9631, + 9088, [ { "SystemCall": { "system": { "Deref": { - "register": "FP", - "offset": -5 + "register": "AP", + "offset": -9 } } } @@ -24787,7 +25630,7 @@ ] ], [ - 9649, + 9091, [ { "AllocSegment": { @@ -24800,78 +25643,75 @@ ] ], [ - 9668, + 9114, [ { "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": -12 + "offset": -4 } }, "rhs": { - "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" + "Deref": { + "register": "AP", + "offset": -1 + } }, "dst": { "register": "AP", - "offset": 4 + "offset": 0 } } } ] ], [ - 9672, + 9142, [ { - "LinearSplit": { - "value": { - "Deref": { - "register": "AP", - "offset": 3 - } - }, - "scalar": { - "Immediate": "0x110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -2 - }, - "y": { + "AllocSegment": { + "dst": { "register": "AP", - "offset": -1 + "offset": 0 } } } ] ], [ - 9682, + 9156, [ { - "LinearSplit": { - "value": { - "Deref": { - "register": "AP", - "offset": -13 - } - }, - "scalar": { - "Immediate": "0x8000000000000000000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { + "AllocSegment": { + "dst": { "register": "AP", - "offset": -1 - }, - "y": { + "offset": 0 + } + } + } + ] + ], + [ + 9199, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 9238, + [ + { + "AllocSegment": { + "dst": { "register": "AP", "offset": 0 } @@ -24880,14 +25720,14 @@ ] ], [ - 9700, + 9298, [ { "SystemCall": { "system": { "Deref": { "register": "FP", - "offset": -5 + "offset": -3 } } } @@ -24895,7 +25735,7 @@ ] ], [ - 9718, + 9308, [ { "AllocSegment": { @@ -24908,20 +25748,22 @@ ] ], [ - 9749, + 9339, [ { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 + "SystemCall": { + "system": { + "Deref": { + "register": "AP", + "offset": -6 + } } } } ] ], [ - 9773, + 9342, [ { "AllocSegment": { @@ -24934,10 +25776,22 @@ ] ], [ - 9787, + 9366, [ { - "AllocSegment": { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -4 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, "dst": { "register": "AP", "offset": 0 @@ -24947,33 +25801,37 @@ ] ], [ - 9801, + 9400, [ { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 + "SystemCall": { + "system": { + "Deref": { + "register": "AP", + "offset": -14 + } } } } ] ], [ - 9815, + 9415, [ { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 + "SystemCall": { + "system": { + "Deref": { + "register": "AP", + "offset": -2 + } } } } ] ], [ - 9830, + 9461, [ { "AllocSegment": { @@ -24986,29 +25844,58 @@ ] ], [ - 9845, + 9480, [ { - "TestLessThanOrEqual": { + "DivMod": { "lhs": { - "Immediate": "0x42e" + "Deref": { + "register": "AP", + "offset": -2 + } }, "rhs": { "Deref": { - "register": "FP", - "offset": -4 + "register": "AP", + "offset": -1 } }, + "quotient": { + "register": "AP", + "offset": 5 + }, + "remainder": { + "register": "AP", + "offset": 6 + } + } + } + ] + ], + [ + 9486, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, "dst": { "register": "AP", - "offset": 0 + "offset": -3 } } } ] ], [ - 9859, + 9537, [ { "AllocSegment": { @@ -25021,7 +25908,7 @@ ] ], [ - 9879, + 9568, [ { "AllocSegment": { @@ -25034,19 +25921,10 @@ ] ], [ - 9893, + 9593, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x42e" - }, - "rhs": { - "Deref": { - "register": "FP", - "offset": -4 - } - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -25056,7 +25934,7 @@ ] ], [ - 9923, + 9608, [ { "AllocSegment": { @@ -25069,94 +25947,95 @@ ] ], [ - 9942, + 9650, [ { - "TestLessThan": { - "lhs": { + "SystemCall": { + "system": { "Deref": { - "register": "AP", - "offset": -1 + "register": "FP", + "offset": -3 } - }, - "rhs": { - "Immediate": "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" - }, + } + } + } + ] + ], + [ + 9662, + [ + { + "AllocSegment": { "dst": { "register": "AP", - "offset": 5 + "offset": 0 } } } ] ], [ - 9946, + 9692, [ { - "LinearSplit": { - "value": { + "SystemCall": { + "system": { "Deref": { "register": "AP", - "offset": 4 + "offset": -6 } - }, - "scalar": { - "Immediate": "0x110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -2 - }, - "y": { + } + } + } + ] + ], + [ + 9697, + [ + { + "AllocSegment": { + "dst": { "register": "AP", - "offset": -1 + "offset": 0 } } } ] ], [ - 9957, + 9720, [ { - "LinearSplit": { - "value": { + "TestLessThan": { + "lhs": { "Deref": { "register": "AP", - "offset": 4 + "offset": -4 } }, - "scalar": { - "Immediate": "0x8000000000000000000000000000000" - }, - "max_x": { - "Immediate": "0xfffffffffffffffffffffffffffffffe" - }, - "x": { - "register": "AP", - "offset": -2 + "rhs": { + "Deref": { + "register": "AP", + "offset": -1 + } }, - "y": { + "dst": { "register": "AP", - "offset": -1 + "offset": 0 } } } ] ], [ - 9983, + 9754, [ { "SystemCall": { "system": { "Deref": { - "register": "FP", - "offset": -6 + "register": "AP", + "offset": -14 } } } @@ -25164,20 +26043,14 @@ ] ], [ - 9998, + 9769, [ { "SystemCall": { "system": { - "BinOp": { - "op": "Add", - "a": { - "register": "FP", - "offset": -6 - }, - "b": { - "Immediate": "0x7" - } + "Deref": { + "register": "AP", + "offset": -2 } } } @@ -25185,100 +26058,78 @@ ] ], [ - 10006, + 9817, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "rhs": { - "Immediate": "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" - }, + "AllocSegment": { "dst": { "register": "AP", - "offset": 5 + "offset": 0 } } } ] ], [ - 10010, + 9835, [ { - "LinearSplit": { - "value": { + "DivMod": { + "lhs": { "Deref": { "register": "AP", - "offset": 4 + "offset": -2 } }, - "scalar": { - "Immediate": "0x110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" + "rhs": { + "Deref": { + "register": "AP", + "offset": -1 + } }, - "x": { + "quotient": { "register": "AP", - "offset": -2 + "offset": 5 }, - "y": { + "remainder": { "register": "AP", - "offset": -1 + "offset": 6 } } } ] ], [ - 10021, + 9841, [ { - "LinearSplit": { - "value": { + "TestLessThan": { + "lhs": { "Deref": { "register": "AP", - "offset": 4 + "offset": 0 } }, - "scalar": { - "Immediate": "0x8000000000000000000000000000000" - }, - "max_x": { - "Immediate": "0xfffffffffffffffffffffffffffffffe" - }, - "x": { - "register": "AP", - "offset": -2 + "rhs": { + "Immediate": "0x10000000000000000" }, - "y": { + "dst": { "register": "AP", - "offset": -1 + "offset": -3 } } } ] ], [ - 10051, + 9870, [ { "SystemCall": { "system": { - "BinOp": { - "op": "Add", - "a": { - "register": "FP", - "offset": -6 - }, - "b": { - "Immediate": "0xe" - } + "Deref": { + "register": "AP", + "offset": -22 } } } @@ -25286,40 +26137,23 @@ ] ], [ - 10067, + 9920, [ { - "SystemCall": { - "system": { - "BinOp": { - "op": "Add", - "a": { - "register": "FP", - "offset": -6 - }, - "b": { - "Immediate": "0x15" - } - } + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 } } } ] ], [ - 10175, + 9958, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -25329,44 +26163,44 @@ ] ], [ - 10177, + 9985, [ { - "DivMod": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -2 - } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "quotient": { + "AllocSegment": { + "dst": { "register": "AP", - "offset": 3 - }, - "remainder": { + "offset": 0 + } + } + } + ] + ], + [ + 10001, + [ + { + "AllocSegment": { + "dst": { "register": "AP", - "offset": 4 + "offset": 0 } } } ] ], [ - 10222, + 10027, [ { - "TestLessThan": { + "TestLessThanOrEqual": { "lhs": { - "Deref": { - "register": "AP", - "offset": -1 - } + "Immediate": "0x3a84" }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "Deref": { + "register": "FP", + "offset": -6 + } }, "dst": { "register": "AP", @@ -25377,62 +26211,58 @@ ] ], [ - 10224, + 10041, [ { - "DivMod": { + "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": -2 + "offset": 0 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "quotient": { - "register": "AP", - "offset": 3 + "Immediate": "0x100000000" }, - "remainder": { + "dst": { "register": "AP", - "offset": 4 + "offset": -1 } } } ] ], [ - 10333, + 10116, [ { "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": -1 + "offset": -11 } }, "rhs": { - "Immediate": "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" }, "dst": { "register": "AP", - "offset": 5 + "offset": 4 } } } ] ], [ - 10337, + 10120, [ { "LinearSplit": { "value": { "Deref": { "register": "AP", - "offset": 4 + "offset": 3 } }, "scalar": { @@ -25454,43 +26284,43 @@ ] ], [ - 10348, + 10130, [ { "LinearSplit": { "value": { "Deref": { "register": "AP", - "offset": 4 + "offset": -12 } }, "scalar": { "Immediate": "0x8000000000000000000000000000000" }, "max_x": { - "Immediate": "0xfffffffffffffffffffffffffffffffe" + "Immediate": "0xffffffffffffffffffffffffffffffff" }, "x": { "register": "AP", - "offset": -2 + "offset": -1 }, "y": { "register": "AP", - "offset": -1 + "offset": 0 } } } ] ], [ - 10374, + 10148, [ { "SystemCall": { "system": { "Deref": { "register": "FP", - "offset": -6 + "offset": -5 } } } @@ -25498,89 +26328,91 @@ ] ], [ - 10389, + 10166, [ { - "SystemCall": { - "system": { - "BinOp": { - "op": "Add", - "a": { - "register": "FP", - "offset": -6 - }, - "b": { - "Immediate": "0x7" - } - } + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 } } } ] ], [ - 10396, + 10185, [ { "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": -6 + "offset": -12 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" }, "dst": { "register": "AP", - "offset": 0 + "offset": 4 } } } ] ], [ - 10398, + 10189, [ { - "DivMod": { - "lhs": { + "LinearSplit": { + "value": { "Deref": { "register": "AP", - "offset": -7 + "offset": 3 } }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "scalar": { + "Immediate": "0x110000000000000000" }, - "quotient": { + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { "register": "AP", - "offset": 3 + "offset": -2 }, - "remainder": { + "y": { "register": "AP", - "offset": 4 + "offset": -1 } } } ] ], [ - 10419, + 10199, [ { - "TestLessThan": { - "lhs": { + "LinearSplit": { + "value": { "Deref": { "register": "AP", - "offset": -2 + "offset": -13 } }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "scalar": { + "Immediate": "0x8000000000000000000000000000000" }, - "dst": { + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { "register": "AP", "offset": 0 } @@ -25589,55 +26421,218 @@ ] ], [ - 10421, + 10217, [ { - "DivMod": { - "lhs": { + "SystemCall": { + "system": { "Deref": { - "register": "AP", - "offset": -3 + "register": "FP", + "offset": -5 } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "quotient": { + } + } + } + ] + ], + [ + 10235, + [ + { + "AllocSegment": { + "dst": { "register": "AP", - "offset": 3 - }, - "remainder": { + "offset": 0 + } + } + } + ] + ], + [ + 10266, + [ + { + "AllocSegment": { + "dst": { "register": "AP", - "offset": 4 + "offset": 0 } } } ] ], [ - 10451, + 10290, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -1 - } - }, - "rhs": { - "Immediate": "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" - }, + "AllocSegment": { "dst": { "register": "AP", - "offset": 5 + "offset": 0 } } } ] ], [ - 10455, + 10304, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 10318, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 10332, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 10347, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 10362, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x42e" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -4 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 10376, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 10396, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 10410, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x42e" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -4 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 10440, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 10459, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + }, + "dst": { + "register": "AP", + "offset": 5 + } + } + } + ] + ], + [ + 10463, [ { "LinearSplit": { @@ -25666,7 +26661,7 @@ ] ], [ - 10466, + 10474, [ { "LinearSplit": { @@ -25695,14 +26690,14 @@ ] ], [ - 10497, + 10500, [ { "SystemCall": { "system": { "Deref": { - "register": "AP", - "offset": -20 + "register": "FP", + "offset": -6 } } } @@ -25710,7 +26705,7 @@ ] ], [ - 10512, + 10515, [ { "SystemCall": { @@ -25718,8 +26713,8 @@ "BinOp": { "op": "Add", "a": { - "register": "AP", - "offset": -25 + "register": "FP", + "offset": -6 }, "b": { "Immediate": "0x7" @@ -25731,109 +26726,100 @@ ] ], [ - 10556, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 10575, + 10523, [ { - "AllocSegment": { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + }, "dst": { "register": "AP", - "offset": 0 + "offset": 5 } } } ] ], [ - 10657, + 10527, [ { - "RandomEcPoint": { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 4 + } + }, + "scalar": { + "Immediate": "0x110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, "x": { "register": "AP", - "offset": 4 + "offset": -2 }, "y": { "register": "AP", - "offset": 5 - } - } - }, - { - "AllocConstantSize": { - "size": { - "Immediate": "0x2" - }, - "dst": { - "register": "AP", - "offset": 6 + "offset": -1 } } } ] ], [ - 10721, + 10538, [ { - "RandomEcPoint": { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 4 + } + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, "x": { "register": "AP", - "offset": 4 + "offset": -2 }, "y": { "register": "AP", - "offset": 5 - } - } - }, - { - "AllocConstantSize": { - "size": { - "Immediate": "0x2" - }, - "dst": { - "register": "AP", - "offset": 6 - } - } - } - ] - ], - [ - 10791, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 + "offset": -1 } } } ] ], [ - 10817, + 10568, [ { "SystemCall": { "system": { - "Deref": { - "register": "FP", - "offset": -3 + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -6 + }, + "b": { + "Immediate": "0xe" + } } } } @@ -25841,7 +26827,7 @@ ] ], [ - 10834, + 10584, [ { "SystemCall": { @@ -25850,10 +26836,10 @@ "op": "Add", "a": { "register": "FP", - "offset": -3 + "offset": -6 }, "b": { - "Immediate": "0x7" + "Immediate": "0x15" } } } @@ -25862,10 +26848,19 @@ ] ], [ - 10876, + 10692, [ { - "AllocSegment": { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, "dst": { "register": "AP", "offset": 0 @@ -25875,10 +26870,45 @@ ] ], [ - 10893, + 10694, [ { - "AllocSegment": { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 10739, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, "dst": { "register": "AP", "offset": 0 @@ -25888,22 +26918,33 @@ ] ], [ - 10912, + 10741, [ { - "SystemCall": { - "system": { + "DivMod": { + "lhs": { "Deref": { - "register": "FP", - "offset": -4 + "register": "AP", + "offset": -2 } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 } } } ] ], [ - 10922, + 10850, [ { "TestLessThan": { @@ -25925,7 +26966,7 @@ ] ], [ - 10926, + 10854, [ { "LinearSplit": { @@ -25954,7 +26995,7 @@ ] ], [ - 10937, + 10865, [ { "LinearSplit": { @@ -25983,20 +27024,14 @@ ] ], [ - 10981, + 10891, [ { "SystemCall": { "system": { - "BinOp": { - "op": "Add", - "a": { - "register": "FP", - "offset": -4 - }, - "b": { - "Immediate": "0x5" - } + "Deref": { + "register": "FP", + "offset": -6 } } } @@ -26004,7 +27039,7 @@ ] ], [ - 10996, + 10906, [ { "SystemCall": { @@ -26013,10 +27048,10 @@ "op": "Add", "a": { "register": "FP", - "offset": -4 + "offset": -6 }, "b": { - "Immediate": "0xc" + "Immediate": "0x7" } } } @@ -26025,21 +27060,18 @@ ] ], [ - 11006, + 10913, [ { "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": -5 + "offset": -6 } }, "rhs": { - "Deref": { - "register": "AP", - "offset": -1 - } + "Immediate": "0x100000000000000000000000000000000" }, "dst": { "register": "AP", @@ -26050,22 +27082,45 @@ ] ], [ - 11021, + 10915, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -3 + "offset": -7 } }, "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 10936, + [ + { + "TestLessThan": { + "lhs": { "Deref": { "register": "AP", - "offset": -1 + "offset": -2 } }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, "dst": { "register": "AP", "offset": 0 @@ -26075,7 +27130,33 @@ ] ], [ - 11037, + 10938, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -3 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 10968, [ { "TestLessThan": { @@ -26097,7 +27178,7 @@ ] ], [ - 11041, + 10972, [ { "LinearSplit": { @@ -26126,7 +27207,7 @@ ] ], [ - 11052, + 10983, [ { "LinearSplit": { @@ -26155,14 +27236,14 @@ ] ], [ - 11081, + 11014, [ { "SystemCall": { "system": { "Deref": { "register": "AP", - "offset": -29 + "offset": -20 } } } @@ -26170,7 +27251,7 @@ ] ], [ - 11097, + 11029, [ { "SystemCall": { @@ -26179,7 +27260,7 @@ "op": "Add", "a": { "register": "AP", - "offset": -35 + "offset": -25 }, "b": { "Immediate": "0x7" @@ -26191,7 +27272,7 @@ ] ], [ - 11139, + 11073, [ { "AllocSegment": { @@ -26204,7 +27285,7 @@ ] ], [ - 11157, + 11092, [ { "AllocSegment": { @@ -26217,53 +27298,63 @@ ] ], [ - 11259, + 11174, [ { - "AllocSegment": { + "RandomEcPoint": { + "x": { + "register": "AP", + "offset": 4 + }, + "y": { + "register": "AP", + "offset": 5 + } + } + }, + { + "AllocConstantSize": { + "size": { + "Immediate": "0x2" + }, "dst": { "register": "AP", - "offset": 0 + "offset": 6 } } } ] ], [ - 11334, + 11238, [ { - "EvalCircuit": { - "n_add_mods": { - "Deref": { - "register": "AP", - "offset": -6 - } - }, - "add_mod_builtin": { - "Deref": { - "register": "FP", - "offset": -6 - } + "RandomEcPoint": { + "x": { + "register": "AP", + "offset": 4 }, - "n_mul_mods": { - "Deref": { - "register": "AP", - "offset": -4 - } + "y": { + "register": "AP", + "offset": 5 + } + } + }, + { + "AllocConstantSize": { + "size": { + "Immediate": "0x2" }, - "mul_mod_builtin": { - "Deref": { - "register": "FP", - "offset": -5 - } + "dst": { + "register": "AP", + "offset": 6 } } } ] ], [ - 11391, + 11308, [ { "AllocSegment": { @@ -26276,33 +27367,43 @@ ] ], [ - 11447, + 11334, [ { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 + "SystemCall": { + "system": { + "Deref": { + "register": "FP", + "offset": -3 + } } } } ] ], [ - 11540, + 11351, [ { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -3 + }, + "b": { + "Immediate": "0x7" + } + } } } } ] ], [ - 11561, + 11393, [ { "AllocSegment": { @@ -26315,7 +27416,7 @@ ] ], [ - 11632, + 11410, [ { "AllocSegment": { @@ -26328,27 +27429,467 @@ ] ], [ - 11660, + 11429, [ { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 + "SystemCall": { + "system": { + "Deref": { + "register": "FP", + "offset": -4 + } } } } ] ], [ - 11731, + 11439, [ { "TestLessThan": { "lhs": { - "BinOp": { - "op": "Add", - "a": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + }, + "dst": { + "register": "AP", + "offset": 5 + } + } + } + ] + ], + [ + 11443, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 4 + } + }, + "scalar": { + "Immediate": "0x110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 11454, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 4 + } + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, + "x": { + "register": "AP", + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 11498, + [ + { + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -4 + }, + "b": { + "Immediate": "0x5" + } + } + } + } + } + ] + ], + [ + 11513, + [ + { + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -4 + }, + "b": { + "Immediate": "0xc" + } + } + } + } + } + ] + ], + [ + 11523, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -5 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 11538, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -3 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 11554, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + }, + "dst": { + "register": "AP", + "offset": 5 + } + } + } + ] + ], + [ + 11558, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 4 + } + }, + "scalar": { + "Immediate": "0x110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 11569, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 4 + } + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, + "x": { + "register": "AP", + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 11598, + [ + { + "SystemCall": { + "system": { + "Deref": { + "register": "AP", + "offset": -29 + } + } + } + } + ] + ], + [ + 11614, + [ + { + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -35 + }, + "b": { + "Immediate": "0x7" + } + } + } + } + } + ] + ], + [ + 11656, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 11674, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 11776, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 11851, + [ + { + "EvalCircuit": { + "n_add_mods": { + "Deref": { + "register": "AP", + "offset": -6 + } + }, + "add_mod_builtin": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "n_mul_mods": { + "Deref": { + "register": "AP", + "offset": -4 + } + }, + "mul_mod_builtin": { + "Deref": { + "register": "FP", + "offset": -5 + } + } + } + } + ] + ], + [ + 11908, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 11964, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 12057, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 12078, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 12149, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 12177, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 12248, + [ + { + "TestLessThan": { + "lhs": { + "BinOp": { + "op": "Add", + "a": { "register": "AP", "offset": -1 }, @@ -26369,7 +27910,7 @@ ] ], [ - 11735, + 12252, [ { "LinearSplit": { @@ -26398,7 +27939,7 @@ ] ], [ - 11757, + 12274, [ { "TestLessThanOrEqual": { @@ -26423,7 +27964,7 @@ ] ], [ - 11771, + 12288, [ { "TestLessThan": { @@ -26445,7 +27986,7 @@ ] ], [ - 11781, + 12298, [ { "TestLessThanOrEqual": { @@ -26470,7 +28011,7 @@ ] ], [ - 11804, + 12321, [ { "AllocSegment": { @@ -26483,7 +28024,7 @@ ] ], [ - 11825, + 12342, [ { "AllocSegment": { @@ -26496,7 +28037,7 @@ ] ], [ - 11846, + 12363, [ { "AllocSegment": { @@ -26509,7 +28050,7 @@ ] ], [ - 11894, + 12411, [ { "TestLessThanOrEqual": { @@ -26531,7 +28072,7 @@ ] ], [ - 11954, + 12471, [ { "AllocSegment": { @@ -26544,7 +28085,7 @@ ] ], [ - 11974, + 12491, [ { "TestLessThanOrEqual": { @@ -26566,7 +28107,7 @@ ] ], [ - 12053, + 12570, [ { "AllocSegment": { @@ -26579,7 +28120,7 @@ ] ], [ - 12083, + 12600, [ { "AllocSegment": { @@ -26592,7 +28133,7 @@ ] ], [ - 12103, + 12620, [ { "TestLessThanOrEqual": { @@ -26614,7 +28155,7 @@ ] ], [ - 12204, + 12721, [ { "AllocSegment": { @@ -26627,7 +28168,7 @@ ] ], [ - 12234, + 12751, [ { "AllocSegment": { @@ -26640,7 +28181,7 @@ ] ], [ - 12254, + 12771, [ { "TestLessThanOrEqual": { @@ -26662,7 +28203,7 @@ ] ], [ - 12325, + 12842, [ { "AllocSegment": { @@ -26675,7 +28216,7 @@ ] ], [ - 12346, + 12863, [ { "DivMod": { @@ -26704,7 +28245,7 @@ ] ], [ - 12404, + 12921, [ { "AllocSegment": { @@ -26717,7 +28258,7 @@ ] ], [ - 12457, + 12974, [ { "AllocSegment": { @@ -26730,7 +28271,7 @@ ] ], [ - 12470, + 12987, [ { "DivMod": { @@ -26759,7 +28300,7 @@ ] ], [ - 12478, + 12995, [ { "TestLessThan": { @@ -26790,7 +28331,7 @@ ] ], [ - 12495, + 13012, [ { "AllocSegment": { @@ -26803,7 +28344,7 @@ ] ], [ - 12527, + 13044, [ { "TestLessThan": { @@ -26825,7 +28366,7 @@ ] ], [ - 12544, + 13061, [ { "AllocSegment": { @@ -26838,7 +28379,7 @@ ] ], [ - 12560, + 13077, [ { "TestLessThan": { @@ -26869,7 +28410,7 @@ ] ], [ - 12582, + 13099, [ { "AllocSegment": { @@ -26882,7 +28423,7 @@ ] ], [ - 12639, + 13156, [ { "DivMod": { @@ -26911,7 +28452,7 @@ ] ], [ - 12648, + 13165, [ { "TestLessThan": { @@ -26933,7 +28474,7 @@ ] ], [ - 12658, + 13175, [ { "TestLessThan": { @@ -26964,7 +28505,7 @@ ] ], [ - 12680, + 13197, [ { "AllocSegment": { @@ -26977,7 +28518,7 @@ ] ], [ - 12695, + 13212, [ { "AllocSegment": { @@ -26990,7 +28531,7 @@ ] ], [ - 12720, + 13237, [ { "TestLessThan": { @@ -27021,7 +28562,7 @@ ] ], [ - 12734, + 13251, [ { "DivMod": { @@ -27050,7 +28591,7 @@ ] ], [ - 12751, + 13268, [ { "TestLessThan": { @@ -27072,7 +28613,7 @@ ] ], [ - 12763, + 13280, [ { "TestLessThan": { @@ -27094,7 +28635,7 @@ ] ], [ - 12773, + 13290, [ { "TestLessThan": { @@ -27125,7 +28666,7 @@ ] ], [ - 12796, + 13313, [ { "AllocSegment": { @@ -27138,7 +28679,7 @@ ] ], [ - 12811, + 13328, [ { "AllocSegment": { @@ -27151,7 +28692,7 @@ ] ], [ - 12826, + 13343, [ { "AllocSegment": { @@ -27164,7 +28705,7 @@ ] ], [ - 12841, + 13358, [ { "AllocSegment": { @@ -27177,7 +28718,7 @@ ] ], [ - 12854, + 13371, [ { "TestLessThanOrEqual": { @@ -27199,7 +28740,7 @@ ] ], [ - 12864, + 13381, [ { "TestLessThanOrEqualAddress": { @@ -27230,7 +28771,7 @@ ] ], [ - 12901, + 13418, [ { "SystemCall": { @@ -27245,7 +28786,7 @@ ] ], [ - 12934, + 13451, [ { "AllocSegment": { @@ -27258,7 +28799,7 @@ ] ], [ - 12968, + 13485, [ { "TestLessThan": { @@ -27280,7 +28821,7 @@ ] ], [ - 12990, + 13507, [ { "TestLessThan": { @@ -27302,7 +28843,7 @@ ] ], [ - 13027, + 13544, [ { "TestLessThan": { @@ -27324,7 +28865,7 @@ ] ], [ - 13049, + 13566, [ { "TestLessThan": { @@ -27346,7 +28887,7 @@ ] ], [ - 13125, + 13642, [ { "AllocSegment": { @@ -27359,7 +28900,7 @@ ] ], [ - 13190, + 13707, [ { "TestLessThan": { @@ -27381,7 +28922,7 @@ ] ], [ - 13214, + 13731, [ { "TestLessThan": { @@ -27403,7 +28944,7 @@ ] ], [ - 13255, + 13772, [ { "TestLessThan": { @@ -27425,7 +28966,7 @@ ] ], [ - 13281, + 13798, [ { "TestLessThan": { @@ -27447,7 +28988,7 @@ ] ], [ - 13325, + 13842, [ { "U256InvModN": { @@ -27504,7 +29045,7 @@ ] ], [ - 13343, + 13860, [ { "WideMul128": { @@ -27701,7 +29242,7 @@ ] ], [ - 13396, + 13913, [ { "WideMul128": { @@ -27754,7 +29295,7 @@ ] ], [ - 13400, + 13917, [ { "TestLessThan": { @@ -27776,7 +29317,7 @@ ] ], [ - 13414, + 13931, [ { "TestLessThan": { @@ -27798,7 +29339,7 @@ ] ], [ - 13427, + 13944, [ { "DivMod": { @@ -27824,7 +29365,7 @@ ] ], [ - 13437, + 13954, [ { "DivMod": { @@ -27850,7 +29391,7 @@ ] ], [ - 13448, + 13965, [ { "DivMod": { @@ -27876,7 +29417,7 @@ ] ], [ - 13457, + 13974, [ { "DivMod": { @@ -27902,7 +29443,7 @@ ] ], [ - 13467, + 13984, [ { "DivMod": { @@ -27928,7 +29469,7 @@ ] ], [ - 13478, + 13995, [ { "DivMod": { @@ -27954,7 +29495,7 @@ ] ], [ - 13487, + 14004, [ { "DivMod": { @@ -27980,7 +29521,7 @@ ] ], [ - 13497, + 14014, [ { "DivMod": { @@ -28006,7 +29547,7 @@ ] ], [ - 13508, + 14025, [ { "DivMod": { @@ -28032,7 +29573,7 @@ ] ], [ - 13517, + 14034, [ { "DivMod": { @@ -28058,7 +29599,7 @@ ] ], [ - 13527, + 14044, [ { "DivMod": { @@ -28084,7 +29625,7 @@ ] ], [ - 13538, + 14055, [ { "DivMod": { @@ -28110,7 +29651,7 @@ ] ], [ - 13547, + 14064, [ { "DivMod": { @@ -28136,7 +29677,7 @@ ] ], [ - 13557, + 14074, [ { "DivMod": { @@ -28162,7 +29703,7 @@ ] ], [ - 13568, + 14085, [ { "DivMod": { @@ -28188,7 +29729,7 @@ ] ], [ - 13577, + 14094, [ { "DivMod": { @@ -28214,7 +29755,7 @@ ] ], [ - 13587, + 14104, [ { "DivMod": { @@ -28240,7 +29781,7 @@ ] ], [ - 13598, + 14115, [ { "DivMod": { @@ -28266,7 +29807,7 @@ ] ], [ - 13607, + 14124, [ { "DivMod": { @@ -28292,7 +29833,7 @@ ] ], [ - 13617, + 14134, [ { "DivMod": { @@ -28318,7 +29859,7 @@ ] ], [ - 13628, + 14145, [ { "DivMod": { @@ -28344,7 +29885,7 @@ ] ], [ - 13637, + 14154, [ { "DivMod": { @@ -28370,7 +29911,7 @@ ] ], [ - 13647, + 14164, [ { "DivMod": { @@ -28396,7 +29937,7 @@ ] ], [ - 13658, + 14175, [ { "DivMod": { @@ -28422,120 +29963,336 @@ ] ], [ - 13706, + 14196, [ { - "SystemCall": { - "system": { + "Uint512DivModByUint256": { + "dividend0": { "Deref": { - "register": "FP", - "offset": -10 + "register": "AP", + "offset": -6 + } + }, + "dividend1": { + "Deref": { + "register": "AP", + "offset": -5 + } + }, + "dividend2": { + "Deref": { + "register": "AP", + "offset": -4 + } + }, + "dividend3": { + "Deref": { + "register": "AP", + "offset": -3 + } + }, + "divisor0": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "divisor1": { + "Deref": { + "register": "AP", + "offset": -1 } + }, + "quotient0": { + "register": "AP", + "offset": 0 + }, + "quotient1": { + "register": "AP", + "offset": 1 + }, + "quotient2": { + "register": "AP", + "offset": 2 + }, + "quotient3": { + "register": "AP", + "offset": 3 + }, + "remainder0": { + "register": "AP", + "offset": 4 + }, + "remainder1": { + "register": "AP", + "offset": 5 } } } ] ], [ - 13723, + 14214, [ { - "SystemCall": { - "system": { + "WideMul128": { + "lhs": { "Deref": { "register": "AP", - "offset": -2 + "offset": -19 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -21 + } + }, + "high": { + "register": "AP", + "offset": -9 + }, + "low": { + "register": "AP", + "offset": -10 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -18 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -21 + } + }, + "high": { + "register": "AP", + "offset": -7 + }, + "low": { + "register": "AP", + "offset": -8 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -19 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -20 + } + }, + "high": { + "register": "AP", + "offset": -5 + }, + "low": { + "register": "AP", + "offset": -6 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -18 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -20 + } + }, + "high": { + "register": "AP", + "offset": -3 + }, + "low": { + "register": "AP", + "offset": -4 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -17 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -21 } + }, + "high": { + "register": "AP", + "offset": -1 + }, + "low": { + "register": "AP", + "offset": -2 } } } ] ], [ - 13735, + 14243, [ { - "SystemCall": { - "system": { - "BinOp": { - "op": "Add", - "a": { - "register": "AP", - "offset": -6 - }, - "b": { - "Immediate": "0x8" - } + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -35 } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -38 + } + }, + "dst": { + "register": "AP", + "offset": 1 } } } ] ], [ - 13746, + 14255, [ { - "SystemCall": { - "system": { - "BinOp": { - "op": "Add", - "a": { - "register": "AP", - "offset": -10 - }, - "b": { - "Immediate": "0x10" - } + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -35 } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -40 + } + }, + "dst": { + "register": "AP", + "offset": 0 } } } ] ], [ - 13756, + 14270, [ { - "SystemCall": { - "system": { - "BinOp": { - "op": "Add", - "a": { - "register": "AP", - "offset": -14 - }, - "b": { - "Immediate": "0x17" - } + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -41 } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 1 + }, + "remainder": { + "register": "AP", + "offset": 0 } } } ] ], [ - 13841, + 14280, [ { - "AllocSegment": { - "dst": { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { "register": "AP", "offset": 0 + }, + "remainder": { + "register": "AP", + "offset": 1 } } } ] ], [ - 13870, + 14291, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -669 + "offset": 2 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { + "register": "AP", + "offset": -1 + }, + "remainder": { + "register": "AP", + "offset": -38 + } + } + } + ] + ], + [ + 14300, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -57 } }, "rhs": { @@ -28554,7 +30311,7 @@ ] ], [ - 13880, + 14310, [ { "DivMod": { @@ -28580,7 +30337,7 @@ ] ], [ - 13891, + 14321, [ { "DivMod": { @@ -28599,21 +30356,21 @@ }, "remainder": { "register": "AP", - "offset": -683 + "offset": -55 } } } ] ], [ - 13900, + 14330, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -684 + "offset": -72 } }, "rhs": { @@ -28632,7 +30389,7 @@ ] ], [ - 13910, + 14340, [ { "DivMod": { @@ -28658,7 +30415,7 @@ ] ], [ - 13921, + 14351, [ { "DivMod": { @@ -28676,19 +30433,32 @@ "offset": -1 }, "remainder": { - "register": "FP", - "offset": -5 + "register": "AP", + "offset": -74 } } } ] ], [ - 13930, + 14360, [ { - "AllocSegment": { - "dst": { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -88 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 1 + }, + "remainder": { "register": "AP", "offset": 0 } @@ -28697,308 +30467,398 @@ ] ], [ - 13999, + 14370, [ { - "TestLessThan": { + "DivMod": { "lhs": { - "BinOp": { - "op": "Add", - "a": { - "register": "FP", - "offset": -5 - }, - "b": { - "Deref": { - "register": "FP", - "offset": -3 - } - } + "Deref": { + "register": "AP", + "offset": -1 } }, "rhs": { - "Immediate": "0x100000000" + "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", "offset": 0 + }, + "remainder": { + "register": "AP", + "offset": 1 } } } ] ], [ - 14014, + 14381, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": 2 } }, "rhs": { - "Immediate": "0x100000000" + "Immediate": "0x100000000000000000000000000000000" }, - "dst": { + "quotient": { "register": "AP", "offset": -1 + }, + "remainder": { + "register": "AP", + "offset": -87 } } } ] ], [ - 14033, + 14390, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -103 } }, "rhs": { - "Immediate": "0x100000000" + "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": -1 + "offset": 1 + }, + "remainder": { + "register": "AP", + "offset": 0 } } } ] ], [ - 14052, + 14400, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -1 } }, "rhs": { - "Immediate": "0x100000000" + "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": -1 + "offset": 0 + }, + "remainder": { + "register": "AP", + "offset": 1 } } } ] ], [ - 14062, + 14411, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { - "register": "FP", - "offset": -4 + "register": "AP", + "offset": 2 } }, "rhs": { "Immediate": "0x100000000000000000000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": 0 + "offset": -1 + }, + "remainder": { + "register": "AP", + "offset": -106 } } } ] ], [ - 14064, + 14432, [ { - "DivMod": { - "lhs": { + "Uint512DivModByUint256": { + "dividend0": { "Deref": { - "register": "FP", + "register": "AP", + "offset": -6 + } + }, + "dividend1": { + "Deref": { + "register": "AP", + "offset": -5 + } + }, + "dividend2": { + "Deref": { + "register": "AP", "offset": -4 } }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "dividend3": { + "Deref": { + "register": "AP", + "offset": -3 + } }, - "quotient": { + "divisor0": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "divisor1": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "quotient0": { + "register": "AP", + "offset": 0 + }, + "quotient1": { + "register": "AP", + "offset": 1 + }, + "quotient2": { + "register": "AP", + "offset": 2 + }, + "quotient3": { "register": "AP", "offset": 3 }, - "remainder": { + "remainder0": { "register": "AP", "offset": 4 + }, + "remainder1": { + "register": "AP", + "offset": 5 } } } ] ], [ - 14101, + 14450, [ { - "TestLessThan": { + "WideMul128": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -19 } }, "rhs": { - "Immediate": "0x100000000" + "Deref": { + "register": "AP", + "offset": -21 + } }, - "dst": { + "high": { "register": "AP", - "offset": -1 + "offset": -9 + }, + "low": { + "register": "AP", + "offset": -10 } } - } - ] - ], - [ - 14120, - [ + }, { - "AllocSegment": { - "dst": { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -18 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -21 + } + }, + "high": { "register": "AP", - "offset": 0 + "offset": -7 + }, + "low": { + "register": "AP", + "offset": -8 } } - } - ] - ], - [ - 14131, - [ + }, { - "DivMod": { + "WideMul128": { "lhs": { "Deref": { "register": "AP", - "offset": -18 + "offset": -19 } }, "rhs": { "Deref": { "register": "AP", - "offset": -1 + "offset": -20 } }, - "quotient": { + "high": { "register": "AP", - "offset": 5 + "offset": -5 }, - "remainder": { + "low": { "register": "AP", - "offset": 6 + "offset": -6 } } - } - ] - ], - [ - 14137, - [ + }, { - "TestLessThan": { + "WideMul128": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -18 } }, "rhs": { - "Immediate": "0x10000000000000000" + "Deref": { + "register": "AP", + "offset": -20 + } }, - "dst": { + "high": { "register": "AP", "offset": -3 + }, + "low": { + "register": "AP", + "offset": -4 } } - } - ] - ], - [ - 14151, - [ + }, { - "TestLessThan": { + "WideMul128": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -17 } }, "rhs": { - "Immediate": "0x100000000" + "Deref": { + "register": "AP", + "offset": -21 + } }, - "dst": { + "high": { "register": "AP", "offset": -1 + }, + "low": { + "register": "AP", + "offset": -2 } } } ] ], [ - 14165, + 14479, [ { "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -35 } }, "rhs": { - "Immediate": "0x100000000" + "Deref": { + "register": "AP", + "offset": -38 + } }, "dst": { "register": "AP", - "offset": -1 + "offset": 1 } } } ] ], [ - 14176, + 14491, [ { "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -35 } }, "rhs": { - "Immediate": "0x100000000" + "Deref": { + "register": "AP", + "offset": -40 + } }, "dst": { "register": "AP", - "offset": -1 + "offset": 0 } } } ] ], [ - 14205, + 14506, [ { - "AllocSegment": { - "dst": { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -41 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 1 + }, + "remainder": { "register": "AP", "offset": 0 } @@ -29007,10 +30867,10 @@ ] ], [ - 14230, + 14516, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", @@ -29018,67 +30878,65 @@ } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000000000000000000000000000000000" + "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": 4 + "offset": 0 + }, + "remainder": { + "register": "AP", + "offset": 1 } } } ] ], [ - 14234, + 14527, [ { - "LinearSplit": { - "value": { + "DivMod": { + "lhs": { "Deref": { "register": "AP", - "offset": 3 + "offset": 2 } }, - "scalar": { - "Immediate": "0x7000000000000110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" + "rhs": { + "Immediate": "0x100000000000000000000000000000000" }, - "x": { + "quotient": { "register": "AP", - "offset": -2 + "offset": -1 }, - "y": { + "remainder": { "register": "AP", - "offset": -1 + "offset": -38 } } } ] ], [ - 14244, + 14536, [ { - "LinearSplit": { - "value": { + "DivMod": { + "lhs": { "Deref": { "register": "AP", - "offset": -2 + "offset": -57 } }, - "scalar": { - "Immediate": "0x1000000000000000000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" + "rhs": { + "Immediate": "0x10000000000000000" }, - "x": { + "quotient": { "register": "AP", - "offset": -1 + "offset": 1 }, - "y": { + "remainder": { "register": "AP", "offset": 0 } @@ -29087,37 +30945,76 @@ ] ], [ - 14264, + 14546, [ { - "AllocSegment": { - "dst": { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { "register": "AP", "offset": 0 + }, + "remainder": { + "register": "AP", + "offset": 1 } } } ] ], [ - 14285, + 14557, [ { - "AllocSegment": { - "dst": { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 2 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { "register": "AP", - "offset": 0 + "offset": -1 + }, + "remainder": { + "register": "AP", + "offset": -55 } } } ] ], [ - 14306, + 14566, [ { - "AllocSegment": { - "dst": { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -72 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 1 + }, + "remainder": { "register": "AP", "offset": 0 } @@ -29126,36 +31023,40 @@ ] ], [ - 14326, + 14576, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { - "register": "FP", - "offset": -4 + "register": "AP", + "offset": -1 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", "offset": 0 + }, + "remainder": { + "register": "AP", + "offset": 1 } } } ] ], [ - 14328, + 14587, [ { "DivMod": { "lhs": { "Deref": { - "register": "FP", - "offset": -4 + "register": "AP", + "offset": 2 } }, "rhs": { @@ -29163,22 +31064,35 @@ }, "quotient": { "register": "AP", - "offset": 3 + "offset": -1 }, "remainder": { "register": "AP", - "offset": 4 + "offset": -74 } } } ] ], [ - 14372, + 14596, [ { - "AllocSegment": { - "dst": { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -88 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 1 + }, + "remainder": { "register": "AP", "offset": 0 } @@ -29187,146 +31101,230 @@ ] ], [ - 14383, + 14606, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -16 + "offset": -1 } }, "rhs": { - "Deref": { - "register": "AP", - "offset": -1 - } + "Immediate": "0x10000000000000000" }, "quotient": { "register": "AP", - "offset": 5 + "offset": 0 }, "remainder": { "register": "AP", - "offset": 6 + "offset": 1 } } } ] ], [ - 14389, + 14617, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": 2 } }, "rhs": { - "Immediate": "0x10000000000000000" + "Immediate": "0x100000000000000000000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": -3 + "offset": -1 + }, + "remainder": { + "register": "AP", + "offset": -87 } } } ] ], [ - 14403, + 14626, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -103 } }, "rhs": { - "Immediate": "0x100000000" + "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": -1 + "offset": 1 + }, + "remainder": { + "register": "AP", + "offset": 0 } } } ] ], [ - 14421, + 14636, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -1 } }, "rhs": { - "Immediate": "0x100000000" + "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": -1 + "offset": 0 + }, + "remainder": { + "register": "AP", + "offset": 1 } } } ] ], [ - 14434, + 14647, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": 2 } }, "rhs": { - "Immediate": "0x100000000" + "Immediate": "0x100000000000000000000000000000000" }, - "dst": { + "quotient": { "register": "AP", "offset": -1 + }, + "remainder": { + "register": "AP", + "offset": -106 } } } ] ], [ - 14445, + 14674, [ { - "TestLessThan": { - "lhs": { + "SystemCall": { + "system": { + "Deref": { + "register": "FP", + "offset": -10 + } + } + } + } + ] + ], + [ + 14691, + [ + { + "SystemCall": { + "system": { "Deref": { "register": "AP", - "offset": 0 + "offset": -2 + } + } + } + } + ] + ], + [ + 14703, + [ + { + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -6 + }, + "b": { + "Immediate": "0x8" + } + } + } + } + } + ] + ], + [ + 14714, + [ + { + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -10 + }, + "b": { + "Immediate": "0x10" + } + } + } + } + } + ] + ], + [ + 14724, + [ + { + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -14 + }, + "b": { + "Immediate": "0x17" + } } - }, - "rhs": { - "Immediate": "0x100000000" - }, - "dst": { - "register": "AP", - "offset": -1 } } } ] ], [ - 14474, + 14809, [ { "AllocSegment": { @@ -29339,91 +31337,102 @@ ] ], [ - 14499, + 14838, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -1 + "offset": -642 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000000000000000000000000000000000" + "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": 4 + "offset": 1 + }, + "remainder": { + "register": "AP", + "offset": 0 } } } ] ], [ - 14503, + 14848, [ { - "LinearSplit": { - "value": { + "DivMod": { + "lhs": { "Deref": { "register": "AP", - "offset": 3 + "offset": -1 } }, - "scalar": { - "Immediate": "0x7000000000000110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" + "rhs": { + "Immediate": "0x10000000000000000" }, - "x": { + "quotient": { "register": "AP", - "offset": -2 + "offset": 0 }, - "y": { + "remainder": { "register": "AP", - "offset": -1 + "offset": 1 } } } ] ], [ - 14513, + 14859, [ { - "LinearSplit": { - "value": { + "DivMod": { + "lhs": { "Deref": { "register": "AP", - "offset": -2 + "offset": 2 } }, - "scalar": { - "Immediate": "0x1000000000000000000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" + "rhs": { + "Immediate": "0x100000000000000000000000000000000" }, - "x": { + "quotient": { "register": "AP", "offset": -1 }, - "y": { + "remainder": { "register": "AP", - "offset": 0 + "offset": -656 } } } ] ], [ - 14533, + 14868, [ { - "AllocSegment": { - "dst": { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -657 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 1 + }, + "remainder": { "register": "AP", "offset": 0 } @@ -29432,45 +31441,62 @@ ] ], [ - 14554, + 14878, [ { - "AllocSegment": { - "dst": { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { "register": "AP", "offset": 0 + }, + "remainder": { + "register": "AP", + "offset": 1 } } } ] ], [ - 14575, + 14889, [ { - "AllocSegment": { - "dst": { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 2 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { "register": "AP", - "offset": 0 + "offset": -1 + }, + "remainder": { + "register": "FP", + "offset": -5 } } } ] ], [ - 14604, + 14898, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "FP", - "offset": -4 - } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -29480,33 +31506,38 @@ ] ], [ - 14606, + 14967, [ { - "DivMod": { + "TestLessThan": { "lhs": { - "Deref": { - "register": "FP", - "offset": -4 + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -5 + }, + "b": { + "Deref": { + "register": "FP", + "offset": -3 + } + } } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "quotient": { - "register": "AP", - "offset": 3 + "Immediate": "0x100000000" }, - "remainder": { + "dst": { "register": "AP", - "offset": 4 + "offset": 0 } } } ] ], [ - 14643, + 14982, [ { "TestLessThan": { @@ -29528,7 +31559,7 @@ ] ], [ - 14654, + 15001, [ { "TestLessThan": { @@ -29550,7 +31581,7 @@ ] ], [ - 14665, + 15020, [ { "TestLessThan": { @@ -29572,10 +31603,19 @@ ] ], [ - 14694, + 15030, [ { - "AllocSegment": { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "FP", + "offset": -4 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, "dst": { "register": "AP", "offset": 0 @@ -29585,20 +31625,24 @@ ] ], [ - 14719, + 15032, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { - "register": "AP", - "offset": -1 + "register": "FP", + "offset": -4 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000000000000000000000000000000000" + "Immediate": "0x100000000000000000000000000000000" }, - "dst": { + "quotient": { + "register": "AP", + "offset": 3 + }, + "remainder": { "register": "AP", "offset": 4 } @@ -29607,27 +31651,20 @@ ] ], [ - 14723, + 15069, [ { - "LinearSplit": { - "value": { + "TestLessThan": { + "lhs": { "Deref": { "register": "AP", - "offset": 3 + "offset": 0 } }, - "scalar": { - "Immediate": "0x7000000000000110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -2 + "rhs": { + "Immediate": "0x100000000" }, - "y": { + "dst": { "register": "AP", "offset": -1 } @@ -29636,27 +31673,11 @@ ] ], [ - 14733, + 15088, [ { - "LinearSplit": { - "value": { - "Deref": { - "register": "AP", - "offset": -2 - } - }, - "scalar": { - "Immediate": "0x1000000000000000000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -1 - }, - "y": { + "AllocSegment": { + "dst": { "register": "AP", "offset": 0 } @@ -29665,46 +31686,80 @@ ] ], [ - 14759, + 15099, [ { - "AllocSegment": { - "dst": { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -18 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "quotient": { "register": "AP", - "offset": 0 + "offset": 5 + }, + "remainder": { + "register": "AP", + "offset": 6 } } } ] ], [ - 14780, + 15105, [ { - "AllocSegment": { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, "dst": { "register": "AP", - "offset": 0 + "offset": -3 } } } ] ], [ - 14802, + 15119, [ { - "AllocSegment": { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000" + }, "dst": { "register": "AP", - "offset": 0 + "offset": -1 } } } ] ], [ - 14824, + 15133, [ { "TestLessThan": { @@ -29726,7 +31781,7 @@ ] ], [ - 14835, + 15144, [ { "TestLessThan": { @@ -29748,7 +31803,7 @@ ] ], [ - 14864, + 15173, [ { "AllocSegment": { @@ -29761,7 +31816,7 @@ ] ], [ - 14889, + 15198, [ { "TestLessThan": { @@ -29783,7 +31838,7 @@ ] ], [ - 14893, + 15202, [ { "LinearSplit": { @@ -29812,7 +31867,7 @@ ] ], [ - 14903, + 15212, [ { "LinearSplit": { @@ -29841,7 +31896,7 @@ ] ], [ - 14926, + 15232, [ { "AllocSegment": { @@ -29854,51 +31909,20 @@ ] ], [ - 14971, - [ - { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": 0 - } - }, - "rhs": { - "Immediate": "0x100000000" - }, - "dst": { - "register": "AP", - "offset": -1 - } - } - } - ] - ], - [ - 14982, + 15253, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": 0 - } - }, - "rhs": { - "Immediate": "0x100000000" - }, + "AllocSegment": { "dst": { "register": "AP", - "offset": -1 + "offset": 0 } } } ] ], [ - 15011, + 15274, [ { "AllocSegment": { @@ -29911,27 +31935,18 @@ ] ], [ - 15034, + 15294, [ { "TestLessThan": { "lhs": { - "BinOp": { - "op": "Add", - "a": { - "register": "FP", - "offset": -5 - }, - "b": { - "Deref": { - "register": "FP", - "offset": -3 - } - } + "Deref": { + "register": "FP", + "offset": -4 } }, "rhs": { - "Immediate": "0x100000000" + "Immediate": "0x100000000000000000000000000000000" }, "dst": { "register": "AP", @@ -29942,20 +31957,33 @@ ] ], [ - 15058, + 15296, [ { - "AllocSegment": { - "dst": { + "DivMod": { + "lhs": { + "Deref": { + "register": "FP", + "offset": -4 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { "register": "AP", - "offset": 0 + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 } } } ] ], [ - 15102, + 15340, [ { "AllocSegment": { @@ -29968,156 +31996,937 @@ ] ], [ - 15129, + 15351, [ { - "TestLessThanOrEqual": { + "DivMod": { "lhs": { - "Immediate": "0x8de" + "Deref": { + "register": "AP", + "offset": -16 + } }, "rhs": { "Deref": { - "register": "FP", - "offset": -7 + "register": "AP", + "offset": -1 } }, - "dst": { + "quotient": { "register": "AP", - "offset": 0 + "offset": 5 + }, + "remainder": { + "register": "AP", + "offset": 6 } } } ] ], [ - 15181, + 15357, [ { - "AllocSegment": { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, "dst": { "register": "AP", - "offset": 0 + "offset": -3 } } } ] ], [ - 15238, + 15371, [ { "TestLessThan": { "lhs": { - "BinOp": { - "op": "Add", - "a": { - "register": "AP", - "offset": -1 - }, - "b": { - "Immediate": "0x0" - } + "Deref": { + "register": "AP", + "offset": 0 } }, "rhs": { - "Immediate": "0x10000000000000000" + "Immediate": "0x100000000" }, "dst": { "register": "AP", - "offset": 0 + "offset": -1 } } } ] ], [ - 15242, + 15389, [ { - "LinearSplit": { - "value": { + "TestLessThan": { + "lhs": { "Deref": { "register": "AP", - "offset": -1 + "offset": 0 } }, - "scalar": { - "Immediate": "0x8000000000000110000000000000000" - }, - "max_x": { - "Immediate": "0xfffffffffffffffffffffffffffffffe" - }, - "x": { - "register": "AP", - "offset": 0 + "rhs": { + "Immediate": "0x100000000" }, - "y": { + "dst": { "register": "AP", - "offset": 1 + "offset": -1 } } } ] ], [ - 15284, + 15402, [ { "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": -1 + "offset": 0 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "Immediate": "0x100000000" }, "dst": { "register": "AP", - "offset": 0 + "offset": -1 } } } ] ], [ - 15286, + 15413, [ { - "DivMod": { + "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": -2 + "offset": 0 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "quotient": { - "register": "AP", - "offset": 3 + "Immediate": "0x100000000" }, - "remainder": { + "dst": { "register": "AP", - "offset": 4 + "offset": -1 } } } ] ], [ - 15373, + 15442, [ { - "DivMod": { - "lhs": { - "Deref": { - "register": "FP", - "offset": -4 - } - }, + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15467, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 15471, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 3 + } + }, + "scalar": { + "Immediate": "0x7000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 15481, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "scalar": { + "Immediate": "0x1000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15501, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15522, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15543, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15572, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "FP", + "offset": -4 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15574, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "FP", + "offset": -4 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 15611, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 15622, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 15633, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 15662, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15687, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 15691, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 3 + } + }, + "scalar": { + "Immediate": "0x7000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 15701, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "scalar": { + "Immediate": "0x1000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15727, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15748, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15770, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15792, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 15803, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 15832, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15857, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 15861, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 3 + } + }, + "scalar": { + "Immediate": "0x7000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 15871, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "scalar": { + "Immediate": "0x1000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15894, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 15939, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 15950, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 15979, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 16002, + [ + { + "TestLessThan": { + "lhs": { + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -5 + }, + "b": { + "Deref": { + "register": "FP", + "offset": -3 + } + } + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 16026, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 16070, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 16097, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x8de" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -7 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 16149, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 16206, + [ + { + "TestLessThan": { + "lhs": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -1 + }, + "b": { + "Immediate": "0x0" + } + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 16210, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "scalar": { + "Immediate": "0x8000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, + "x": { + "register": "AP", + "offset": 0 + }, + "y": { + "register": "AP", + "offset": 1 + } + } + } + ] + ], + [ + 16252, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 16254, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 16341, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "FP", + "offset": -4 + } + }, "rhs": { "Deref": { "register": "AP", @@ -30137,7 +32946,7 @@ ] ], [ - 15379, + 16347, [ { "TestLessThan": { @@ -30159,7 +32968,7 @@ ] ], [ - 15390, + 16358, [ { "TestLessThan": { @@ -30181,7 +32990,7 @@ ] ], [ - 15400, + 16368, [ { "TestLessThan": { @@ -30203,7 +33012,7 @@ ] ], [ - 15414, + 16382, [ { "DivMod": { @@ -30232,7 +33041,7 @@ ] ], [ - 15420, + 16388, [ { "TestLessThan": { @@ -30254,7 +33063,7 @@ ] ], [ - 15434, + 16402, [ { "TestLessThan": { @@ -30276,7 +33085,7 @@ ] ], [ - 15444, + 16412, [ { "TestLessThan": { @@ -30298,7 +33107,7 @@ ] ], [ - 15466, + 16434, [ { "AllocSegment": { @@ -30311,7 +33120,7 @@ ] ], [ - 15480, + 16448, [ { "AllocSegment": { @@ -30324,7 +33133,7 @@ ] ], [ - 15498, + 16466, [ { "AllocSegment": { @@ -30337,7 +33146,7 @@ ] ], [ - 15512, + 16480, [ { "AllocSegment": { @@ -30350,7 +33159,7 @@ ] ], [ - 15528, + 16496, [ { "TestLessThanOrEqual": { @@ -30372,7 +33181,7 @@ ] ], [ - 15555, + 16523, [ { "TestLessThan": { @@ -30394,7 +33203,7 @@ ] ], [ - 15572, + 16540, [ { "AllocSegment": { @@ -30407,7 +33216,7 @@ ] ], [ - 15597, + 16565, [ { "AllocSegment": { @@ -30420,7 +33229,7 @@ ] ], [ - 15857, + 16825, [ { "SystemCall": { @@ -30435,380 +33244,848 @@ ] ], [ - 15883, + 16851, + [ + { + "SystemCall": { + "system": { + "Deref": { + "register": "AP", + "offset": -6 + } + } + } + } + ] + ], + [ + 16865, + [ + { + "U256InvModN": { + "b0": { + "Deref": { + "register": "FP", + "offset": -7 + } + }, + "b1": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "n0": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "n1": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "g0_or_no_inv": { + "register": "AP", + "offset": 0 + }, + "g1_option": { + "register": "AP", + "offset": 1 + }, + "s_or_r0": { + "register": "AP", + "offset": 2 + }, + "s_or_r1": { + "register": "AP", + "offset": 3 + }, + "t_or_k0": { + "register": "AP", + "offset": 4 + }, + "t_or_k1": { + "register": "AP", + "offset": 5 + } + } + } + ] + ], + [ + 16883, + [ + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -22 + } + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -7 + } + }, + "high": { + "register": "AP", + "offset": -14 + }, + "low": { + "register": "AP", + "offset": -15 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -22 + } + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "high": { + "register": "AP", + "offset": -12 + }, + "low": { + "register": "AP", + "offset": -13 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -21 + } + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -7 + } + }, + "high": { + "register": "AP", + "offset": -10 + }, + "low": { + "register": "AP", + "offset": -11 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -21 + } + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "high": { + "register": "AP", + "offset": -8 + }, + "low": { + "register": "AP", + "offset": -9 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -26 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -20 + } + }, + "high": { + "register": "AP", + "offset": -6 + }, + "low": { + "register": "AP", + "offset": -7 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -26 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -19 + } + }, + "high": { + "register": "AP", + "offset": -4 + }, + "low": { + "register": "AP", + "offset": -5 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -25 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -20 + } + }, + "high": { + "register": "AP", + "offset": -2 + }, + "low": { + "register": "AP", + "offset": -3 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -25 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -19 + } + }, + "high": { + "register": "AP", + "offset": 0 + }, + "low": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 16936, + [ + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -7 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -5 + } + }, + "high": { + "register": "AP", + "offset": 0 + }, + "low": { + "register": "FP", + "offset": -7 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -7 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -3 + } + }, + "high": { + "register": "AP", + "offset": 1 + }, + "low": { + "register": "AP", + "offset": -9 + } + } + } + ] + ], + [ + 16940, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -10 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "dst": { + "register": "AP", + "offset": 2 + } + } + } + ] + ], + [ + 16954, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -11 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 16967, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -47 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 1 + }, + "remainder": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 16977, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 0 + }, + "remainder": { + "register": "AP", + "offset": 1 + } + } + } + ] + ], + [ + 16988, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 2 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { + "register": "AP", + "offset": -1 + }, + "remainder": { + "register": "AP", + "offset": -35 + } + } + } + ] + ], + [ + 16997, [ { - "SystemCall": { - "system": { + "DivMod": { + "lhs": { "Deref": { "register": "AP", - "offset": -6 + "offset": -62 } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 1 + }, + "remainder": { + "register": "AP", + "offset": 0 } } } ] ], [ - 15897, + 17007, [ { - "U256InvModN": { - "b0": { - "Deref": { - "register": "FP", - "offset": -7 - } - }, - "b1": { - "Deref": { - "register": "FP", - "offset": -6 - } - }, - "n0": { - "Deref": { - "register": "AP", - "offset": -2 - } - }, - "n1": { + "DivMod": { + "lhs": { "Deref": { "register": "AP", "offset": -1 } }, - "g0_or_no_inv": { + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { "register": "AP", "offset": 0 }, - "g1_option": { + "remainder": { "register": "AP", "offset": 1 + } + } + } + ] + ], + [ + 17018, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 2 + } }, - "s_or_r0": { - "register": "AP", - "offset": 2 - }, - "s_or_r1": { - "register": "AP", - "offset": 3 + "rhs": { + "Immediate": "0x100000000000000000000000000000000" }, - "t_or_k0": { + "quotient": { "register": "AP", - "offset": 4 + "offset": -1 }, - "t_or_k1": { + "remainder": { "register": "AP", - "offset": 5 + "offset": -52 } } } ] ], [ - 15915, + 17027, [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -22 + "offset": -78 } }, "rhs": { - "Deref": { - "register": "FP", - "offset": -7 - } + "Immediate": "0x10000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": -14 + "offset": 1 }, - "low": { + "remainder": { "register": "AP", - "offset": -15 + "offset": 0 } } - }, + } + ] + ], + [ + 17037, + [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -22 + "offset": -1 } }, "rhs": { - "Deref": { - "register": "FP", - "offset": -6 - } + "Immediate": "0x10000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": -12 + "offset": 0 }, - "low": { + "remainder": { "register": "AP", - "offset": -13 + "offset": 1 } } - }, + } + ] + ], + [ + 17048, + [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -21 + "offset": 2 } }, "rhs": { - "Deref": { - "register": "FP", - "offset": -7 - } + "Immediate": "0x100000000000000000000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": -10 + "offset": -1 }, - "low": { + "remainder": { "register": "AP", - "offset": -11 + "offset": -69 } } - }, + } + ] + ], + [ + 17057, + [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -21 + "offset": -93 } }, "rhs": { - "Deref": { - "register": "FP", - "offset": -6 - } + "Immediate": "0x10000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": -8 + "offset": 1 }, - "low": { + "remainder": { "register": "AP", - "offset": -9 + "offset": 0 } } - }, + } + ] + ], + [ + 17067, + [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -26 + "offset": -1 } }, "rhs": { - "Deref": { - "register": "AP", - "offset": -20 - } + "Immediate": "0x10000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": -6 + "offset": 0 }, - "low": { + "remainder": { "register": "AP", - "offset": -7 + "offset": 1 } } - }, + } + ] + ], + [ + 17078, + [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -26 + "offset": 2 } }, "rhs": { - "Deref": { - "register": "AP", - "offset": -19 - } + "Immediate": "0x100000000000000000000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": -4 + "offset": -1 }, - "low": { + "remainder": { "register": "AP", - "offset": -5 + "offset": -86 } } - }, + } + ] + ], + [ + 17087, + [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -25 + "offset": -103 } }, "rhs": { - "Deref": { - "register": "AP", - "offset": -20 - } + "Immediate": "0x10000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": -2 + "offset": 1 }, - "low": { + "remainder": { "register": "AP", - "offset": -3 + "offset": 0 } } - }, + } + ] + ], + [ + 17097, + [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -25 + "offset": -1 } }, "rhs": { - "Deref": { - "register": "AP", - "offset": -19 - } + "Immediate": "0x10000000000000000" }, - "high": { + "quotient": { "register": "AP", "offset": 0 }, - "low": { + "remainder": { "register": "AP", - "offset": -1 + "offset": 1 } } } ] ], [ - 15968, + 17108, [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -7 + "offset": 2 } }, "rhs": { - "Deref": { - "register": "AP", - "offset": -5 - } + "Immediate": "0x100000000000000000000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": 0 + "offset": -1 }, - "low": { - "register": "FP", - "offset": -7 + "remainder": { + "register": "AP", + "offset": -103 } } - }, + } + ] + ], + [ + 17117, + [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -7 + "offset": -118 } }, "rhs": { - "Deref": { - "register": "AP", - "offset": -3 - } + "Immediate": "0x10000000000000000" }, - "high": { + "quotient": { "register": "AP", "offset": 1 }, - "low": { + "remainder": { "register": "AP", - "offset": -9 + "offset": 0 } } } ] ], [ - 15972, + 17127, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -10 + "offset": -1 } }, "rhs": { "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": 2 + "offset": 0 + }, + "remainder": { + "register": "AP", + "offset": 1 } } } ] ], [ - 15986, + 17138, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -11 + "offset": 2 } }, "rhs": { - "Immediate": "0x10000000000000000" + "Immediate": "0x100000000000000000000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": 0 + "offset": -1 + }, + "remainder": { + "register": "AP", + "offset": -120 } } } ] ], [ - 15999, + 17147, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -47 + "offset": -134 } }, "rhs": { @@ -30827,7 +34104,7 @@ ] ], [ - 16009, + 17157, [ { "DivMod": { @@ -30853,7 +34130,7 @@ ] ], [ - 16020, + 17168, [ { "DivMod": { @@ -30872,21 +34149,21 @@ }, "remainder": { "register": "AP", - "offset": -35 + "offset": -137 } } } ] ], [ - 16029, + 17177, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -62 + "offset": -149 } }, "rhs": { @@ -30905,7 +34182,7 @@ ] ], [ - 16039, + 17187, [ { "DivMod": { @@ -30931,7 +34208,7 @@ ] ], [ - 16050, + 17198, [ { "DivMod": { @@ -30950,57 +34227,224 @@ }, "remainder": { "register": "AP", - "offset": -52 + "offset": -154 } } } ] ], [ - 16059, + 17219, [ { - "DivMod": { + "Uint512DivModByUint256": { + "dividend0": { + "Deref": { + "register": "AP", + "offset": -6 + } + }, + "dividend1": { + "Deref": { + "register": "AP", + "offset": -5 + } + }, + "dividend2": { + "Deref": { + "register": "AP", + "offset": -4 + } + }, + "dividend3": { + "Deref": { + "register": "AP", + "offset": -3 + } + }, + "divisor0": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "divisor1": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "quotient0": { + "register": "AP", + "offset": 0 + }, + "quotient1": { + "register": "AP", + "offset": 1 + }, + "quotient2": { + "register": "AP", + "offset": 2 + }, + "quotient3": { + "register": "AP", + "offset": 3 + }, + "remainder0": { + "register": "AP", + "offset": 4 + }, + "remainder1": { + "register": "AP", + "offset": 5 + } + } + } + ] + ], + [ + 17237, + [ + { + "WideMul128": { "lhs": { "Deref": { "register": "AP", - "offset": -78 + "offset": -19 } }, "rhs": { - "Immediate": "0x10000000000000000" + "Deref": { + "register": "AP", + "offset": -21 + } }, - "quotient": { + "high": { "register": "AP", - "offset": 1 + "offset": -9 }, - "remainder": { + "low": { "register": "AP", - "offset": 0 + "offset": -10 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -18 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -21 + } + }, + "high": { + "register": "AP", + "offset": -7 + }, + "low": { + "register": "AP", + "offset": -8 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -19 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -20 + } + }, + "high": { + "register": "AP", + "offset": -5 + }, + "low": { + "register": "AP", + "offset": -6 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -18 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -20 + } + }, + "high": { + "register": "AP", + "offset": -3 + }, + "low": { + "register": "AP", + "offset": -4 + } + } + }, + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -17 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -21 + } + }, + "high": { + "register": "AP", + "offset": -1 + }, + "low": { + "register": "AP", + "offset": -2 } } } ] ], [ - 16069, + 17266, [ { - "DivMod": { + "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": -1 + "offset": -35 } }, "rhs": { - "Immediate": "0x10000000000000000" - }, - "quotient": { - "register": "AP", - "offset": 0 + "Deref": { + "register": "AP", + "offset": -38 + } }, - "remainder": { + "dst": { "register": "AP", "offset": 1 } @@ -31009,40 +34453,39 @@ ] ], [ - 16080, + 17278, [ { - "DivMod": { + "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": 2 + "offset": -35 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "quotient": { - "register": "AP", - "offset": -1 + "Deref": { + "register": "AP", + "offset": -40 + } }, - "remainder": { + "dst": { "register": "AP", - "offset": -69 + "offset": 0 } } } ] ], [ - 16089, + 17293, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -93 + "offset": -41 } }, "rhs": { @@ -31061,7 +34504,7 @@ ] ], [ - 16099, + 17303, [ { "DivMod": { @@ -31087,7 +34530,7 @@ ] ], [ - 16110, + 17314, [ { "DivMod": { @@ -31106,21 +34549,21 @@ }, "remainder": { "register": "AP", - "offset": -86 + "offset": -38 } } } ] ], [ - 16119, + 17323, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -103 + "offset": -57 } }, "rhs": { @@ -31139,7 +34582,7 @@ ] ], [ - 16129, + 17333, [ { "DivMod": { @@ -31165,7 +34608,7 @@ ] ], [ - 16140, + 17344, [ { "DivMod": { @@ -31184,21 +34627,21 @@ }, "remainder": { "register": "AP", - "offset": -103 + "offset": -55 } } } ] ], [ - 16149, + 17353, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -118 + "offset": -72 } }, "rhs": { @@ -31217,7 +34660,7 @@ ] ], [ - 16159, + 17363, [ { "DivMod": { @@ -31243,7 +34686,7 @@ ] ], [ - 16170, + 17374, [ { "DivMod": { @@ -31262,21 +34705,21 @@ }, "remainder": { "register": "AP", - "offset": -120 + "offset": -74 } } } ] ], [ - 16179, + 17383, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -134 + "offset": -88 } }, "rhs": { @@ -31295,7 +34738,7 @@ ] ], [ - 16189, + 17393, [ { "DivMod": { @@ -31321,7 +34764,7 @@ ] ], [ - 16200, + 17404, [ { "DivMod": { @@ -31340,21 +34783,21 @@ }, "remainder": { "register": "AP", - "offset": -137 + "offset": -87 } } } ] ], [ - 16209, + 17413, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -149 + "offset": -103 } }, "rhs": { @@ -31373,7 +34816,7 @@ ] ], [ - 16219, + 17423, [ { "DivMod": { @@ -31399,7 +34842,7 @@ ] ], [ - 16230, + 17434, [ { "DivMod": { @@ -31418,14 +34861,14 @@ }, "remainder": { "register": "AP", - "offset": -154 + "offset": -106 } } } ] ], [ - 16254, + 17446, [ { "TestLessThan": { @@ -31447,7 +34890,7 @@ ] ], [ - 16279, + 17471, [ { "TestLessThan": { @@ -31469,7 +34912,7 @@ ] ], [ - 16299, + 17491, [ { "TestLessThan": { @@ -31491,512 +34934,258 @@ ] ], [ - 16344, + 17527, [ { - "SystemCall": { - "system": { + "Uint512DivModByUint256": { + "dividend0": { "Deref": { "register": "AP", - "offset": -695 - } - } - } - } - ] - ], - [ - 16356, - [ - { - "SystemCall": { - "system": { - "BinOp": { - "op": "Add", - "a": { - "register": "AP", - "offset": -699 - }, - "b": { - "Immediate": "0x8" - } - } - } - } - } - ] - ], - [ - 16367, - [ - { - "SystemCall": { - "system": { - "BinOp": { - "op": "Add", - "a": { - "register": "AP", - "offset": -703 - }, - "b": { - "Immediate": "0x10" - } + "offset": -6 } - } - } - } - ] - ], - [ - 16413, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 16429, - [ - { - "DivMod": { - "lhs": { + }, + "dividend1": { "Deref": { "register": "AP", - "offset": -669 + "offset": -5 } }, - "rhs": { - "Immediate": "0x10000000000000000" - }, - "quotient": { - "register": "AP", - "offset": 1 - }, - "remainder": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 16439, - [ - { - "DivMod": { - "lhs": { + "dividend2": { "Deref": { "register": "AP", - "offset": -1 + "offset": -4 } }, - "rhs": { - "Immediate": "0x10000000000000000" - }, - "quotient": { - "register": "AP", - "offset": 0 - }, - "remainder": { - "register": "AP", - "offset": 1 - } - } - } - ] - ], - [ - 16450, - [ - { - "DivMod": { - "lhs": { + "dividend3": { "Deref": { "register": "AP", - "offset": 2 + "offset": -3 } }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "quotient": { - "register": "AP", - "offset": -1 - }, - "remainder": { - "register": "AP", - "offset": -683 - } - } - } - ] - ], - [ - 16459, - [ - { - "DivMod": { - "lhs": { + "divisor0": { "Deref": { "register": "AP", - "offset": -684 + "offset": -2 } }, - "rhs": { - "Immediate": "0x10000000000000000" - }, - "quotient": { - "register": "AP", - "offset": 1 - }, - "remainder": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 16469, - [ - { - "DivMod": { - "lhs": { + "divisor1": { "Deref": { "register": "AP", "offset": -1 } }, - "rhs": { - "Immediate": "0x10000000000000000" - }, - "quotient": { + "quotient0": { "register": "AP", "offset": 0 }, - "remainder": { + "quotient1": { "register": "AP", "offset": 1 - } - } - } - ] - ], - [ - 16480, - [ - { - "DivMod": { - "lhs": { - "Deref": { - "register": "AP", - "offset": 2 - } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" }, - "quotient": { + "quotient2": { "register": "AP", - "offset": -1 + "offset": 2 }, - "remainder": { - "register": "FP", - "offset": -7 - } - } - } - ] - ], - [ - 16489, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 16506, - [ - { - "AllocSegment": { - "dst": { + "quotient3": { "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 16563, - [ - { - "SystemCall": { - "system": { - "Deref": { - "register": "FP", - "offset": -4 - } - } - } - } - ] - ], - [ - 16570, - [ - { - "AllocConstantSize": { - "size": { - "Immediate": "0x4" + "offset": 3 }, - "dst": { + "remainder0": { "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 16574, - [ - { - "AllocSegment": { - "dst": { + "offset": 4 + }, + "remainder1": { "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 16609, - [ - { - "SystemCall": { - "system": { - "Deref": { - "register": "FP", - "offset": 1 - } + "offset": 5 } } } ] ], [ - 16682, + 17545, [ { - "DivMod": { + "WideMul128": { "lhs": { "Deref": { "register": "AP", - "offset": -2 + "offset": -19 } }, "rhs": { "Deref": { "register": "AP", - "offset": -1 + "offset": -21 } }, - "quotient": { + "high": { "register": "AP", - "offset": 5 + "offset": -9 }, - "remainder": { + "low": { "register": "AP", - "offset": 6 + "offset": -10 } } - } - ] - ], - [ - 16688, - [ + }, { - "TestLessThan": { + "WideMul128": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -18 } }, "rhs": { - "Immediate": "0x10000000000000000" + "Deref": { + "register": "AP", + "offset": -21 + } }, - "dst": { + "high": { "register": "AP", - "offset": -3 + "offset": -7 + }, + "low": { + "register": "AP", + "offset": -8 } } - } - ] - ], - [ - 16755, - [ + }, { "WideMul128": { "lhs": { "Deref": { - "register": "FP", - "offset": -8 + "register": "AP", + "offset": -19 } }, "rhs": { "Deref": { - "register": "FP", - "offset": -6 + "register": "AP", + "offset": -20 } }, "high": { "register": "AP", - "offset": 0 + "offset": -5 }, "low": { "register": "AP", - "offset": 1 + "offset": -6 } } - } - ] - ], - [ - 16757, - [ + }, { - "DivMod": { + "WideMul128": { "lhs": { "Deref": { - "register": "FP", - "offset": -8 + "register": "AP", + "offset": -18 } }, "rhs": { - "Immediate": "0x10000000000000000" + "Deref": { + "register": "AP", + "offset": -20 + } }, - "quotient": { + "high": { "register": "AP", - "offset": 1 + "offset": -3 }, - "remainder": { + "low": { "register": "AP", - "offset": 0 + "offset": -4 } } - } - ] - ], - [ - 16767, - [ + }, { - "DivMod": { + "WideMul128": { "lhs": { "Deref": { "register": "AP", - "offset": -1 + "offset": -17 } }, "rhs": { - "Immediate": "0x10000000000000000" + "Deref": { + "register": "AP", + "offset": -21 + } }, - "quotient": { + "high": { "register": "AP", - "offset": 0 + "offset": -1 }, - "remainder": { + "low": { "register": "AP", - "offset": 1 + "offset": -2 } } } ] ], [ - 16778, + 17574, [ { - "DivMod": { + "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": 2 + "offset": -35 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "quotient": { - "register": "AP", - "offset": -1 + "Deref": { + "register": "AP", + "offset": -38 + } }, - "remainder": { + "dst": { "register": "AP", - "offset": -13 + "offset": 1 } } } ] ], [ - 16787, + 17586, [ { - "WideMul128": { + "TestLessThan": { "lhs": { "Deref": { - "register": "FP", - "offset": -8 + "register": "AP", + "offset": -35 } }, "rhs": { "Deref": { - "register": "FP", - "offset": -5 + "register": "AP", + "offset": -40 } }, - "high": { + "dst": { "register": "AP", "offset": 0 - }, - "low": { - "register": "AP", - "offset": 1 } } } ] ], [ - 16789, + 17601, [ { "DivMod": { "lhs": { "Deref": { - "register": "FP", - "offset": -8 + "register": "AP", + "offset": -41 } }, "rhs": { @@ -32015,7 +35204,7 @@ ] ], [ - 16799, + 17611, [ { "DivMod": { @@ -32041,91 +35230,40 @@ ] ], [ - 16810, + 17622, [ { "DivMod": { "lhs": { "Deref": { - "register": "AP", - "offset": 2 - } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "quotient": { - "register": "AP", - "offset": -1 - }, - "remainder": { - "register": "AP", - "offset": -13 - } - } - } - ] - ], - [ - 16820, - [ - { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": 0 - } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "dst": { - "register": "AP", - "offset": -1 - } - } - } - ] - ], - [ - 16842, - [ - { - "WideMul128": { - "lhs": { - "Deref": { - "register": "FP", - "offset": -7 + "register": "AP", + "offset": 2 } }, "rhs": { - "Deref": { - "register": "FP", - "offset": -6 - } + "Immediate": "0x100000000000000000000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": 0 + "offset": -1 }, - "low": { + "remainder": { "register": "AP", - "offset": 1 + "offset": -38 } } } ] ], [ - 16844, + 17631, [ { "DivMod": { "lhs": { "Deref": { - "register": "FP", - "offset": -7 + "register": "AP", + "offset": -57 } }, "rhs": { @@ -32144,7 +35282,7 @@ ] ], [ - 16854, + 17641, [ { "DivMod": { @@ -32170,7 +35308,7 @@ ] ], [ - 16865, + 17652, [ { "DivMod": { @@ -32189,94 +35327,99 @@ }, "remainder": { "register": "AP", - "offset": -13 + "offset": -55 } } } ] ], [ - 16875, + 17661, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -72 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": -1 + "offset": 1 + }, + "remainder": { + "register": "AP", + "offset": 0 } } } ] ], [ - 16898, + 17671, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -1 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": -1 + "offset": 0 + }, + "remainder": { + "register": "AP", + "offset": 1 } } } ] ], [ - 16920, + 17682, [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { - "register": "FP", - "offset": -7 + "register": "AP", + "offset": 2 } }, "rhs": { - "Deref": { - "register": "FP", - "offset": -5 - } + "Immediate": "0x100000000000000000000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": 0 + "offset": -1 }, - "low": { + "remainder": { "register": "AP", - "offset": 1 + "offset": -74 } } } ] ], [ - 16922, + 17691, [ { "DivMod": { "lhs": { "Deref": { - "register": "FP", - "offset": -7 + "register": "AP", + "offset": -88 } }, "rhs": { @@ -32295,7 +35438,7 @@ ] ], [ - 16932, + 17701, [ { "DivMod": { @@ -32321,7 +35464,7 @@ ] ], [ - 16943, + 17712, [ { "DivMod": { @@ -32340,379 +35483,364 @@ }, "remainder": { "register": "AP", - "offset": -13 + "offset": -87 } } } ] ], [ - 16953, + 17721, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -103 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": -1 + "offset": 1 + }, + "remainder": { + "register": "AP", + "offset": 0 } } } ] ], [ - 16972, + 17731, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": -1 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "Immediate": "0x10000000000000000" }, - "dst": { + "quotient": { "register": "AP", - "offset": -1 + "offset": 0 + }, + "remainder": { + "register": "AP", + "offset": 1 } } } ] ], [ - 16995, + 17742, [ { - "TestLessThan": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 0 + "offset": 2 } }, "rhs": { "Immediate": "0x100000000000000000000000000000000" }, - "dst": { + "quotient": { "register": "AP", "offset": -1 + }, + "remainder": { + "register": "AP", + "offset": -106 } } } ] ], [ - 17014, + 17762, [ { - "TestLessThan": { - "lhs": { + "SystemCall": { + "system": { "Deref": { "register": "AP", - "offset": 0 + "offset": -668 } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "dst": { - "register": "AP", - "offset": -1 } } } ] ], [ - 17033, + 17774, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": 0 + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -672 + }, + "b": { + "Immediate": "0x8" + } } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, - "dst": { - "register": "AP", - "offset": -1 } } } ] ], [ - 17056, + 17785, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": 0 + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -676 + }, + "b": { + "Immediate": "0x10" + } } - }, - "rhs": { - "Immediate": "0x100000000000000000000000000000000" - }, + } + } + } + ] + ], + [ + 17831, + [ + { + "AllocSegment": { "dst": { "register": "AP", - "offset": -1 + "offset": 0 } } } ] ], [ - 17078, + 17847, [ { - "Uint512DivModByUint256": { - "dividend0": { - "Deref": { - "register": "AP", - "offset": -4 - } - }, - "dividend1": { - "Deref": { - "register": "AP", - "offset": -3 - } - }, - "dividend2": { - "Deref": { - "register": "AP", - "offset": -2 - } - }, - "dividend3": { + "DivMod": { + "lhs": { "Deref": { "register": "AP", - "offset": -1 - } - }, - "divisor0": { - "Deref": { - "register": "FP", - "offset": -4 + "offset": -642 } }, - "divisor1": { - "Deref": { - "register": "FP", - "offset": -3 - } - }, - "quotient0": { - "register": "AP", - "offset": 0 + "rhs": { + "Immediate": "0x10000000000000000" }, - "quotient1": { + "quotient": { "register": "AP", "offset": 1 }, - "quotient2": { - "register": "AP", - "offset": 2 - }, - "quotient3": { - "register": "AP", - "offset": 3 - }, - "remainder0": { - "register": "AP", - "offset": 4 - }, - "remainder1": { + "remainder": { "register": "AP", - "offset": 5 + "offset": 0 } } } ] ], [ - 17096, + 17857, [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -19 + "offset": -1 } }, "rhs": { - "Deref": { - "register": "FP", - "offset": -4 - } + "Immediate": "0x10000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": -9 + "offset": 0 }, - "low": { + "remainder": { "register": "AP", - "offset": -10 + "offset": 1 } } - }, + } + ] + ], + [ + 17868, + [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -18 + "offset": 2 } }, "rhs": { - "Deref": { - "register": "FP", - "offset": -4 - } + "Immediate": "0x100000000000000000000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": -7 + "offset": -1 }, - "low": { + "remainder": { "register": "AP", - "offset": -8 + "offset": -656 } } - }, + } + ] + ], + [ + 17877, + [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -19 + "offset": -657 } }, "rhs": { - "Deref": { - "register": "FP", - "offset": -3 - } + "Immediate": "0x10000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": -5 + "offset": 1 }, - "low": { + "remainder": { "register": "AP", - "offset": -6 + "offset": 0 } } - }, + } + ] + ], + [ + 17887, + [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -18 + "offset": -1 } }, "rhs": { - "Deref": { - "register": "FP", - "offset": -3 - } + "Immediate": "0x10000000000000000" }, - "high": { + "quotient": { "register": "AP", - "offset": -3 + "offset": 0 }, - "low": { + "remainder": { "register": "AP", - "offset": -4 + "offset": 1 } } - }, + } + ] + ], + [ + 17898, + [ { - "WideMul128": { + "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -17 + "offset": 2 } }, "rhs": { - "Deref": { - "register": "FP", - "offset": -4 - } + "Immediate": "0x100000000000000000000000000000000" }, - "high": { + "quotient": { "register": "AP", "offset": -1 }, - "low": { + "remainder": { + "register": "FP", + "offset": -7 + } + } + } + ] + ], + [ + 17907, + [ + { + "AllocSegment": { + "dst": { "register": "AP", - "offset": -2 + "offset": 0 } } } ] ], [ - 17125, + 17924, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -35 - } - }, - "rhs": { - "Deref": { - "register": "FP", - "offset": -3 - } - }, + "AllocSegment": { "dst": { "register": "AP", - "offset": 1 + "offset": 0 } } } ] ], [ - 17137, + 17981, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -35 - } - }, - "rhs": { + "SystemCall": { + "system": { "Deref": { "register": "FP", "offset": -4 } + } + } + } + ] + ], + [ + 17988, + [ + { + "AllocConstantSize": { + "size": { + "Immediate": "0x4" }, "dst": { "register": "AP", @@ -32723,24 +35851,11 @@ ] ], [ - 17152, + 17992, [ { - "DivMod": { - "lhs": { - "Deref": { - "register": "AP", - "offset": -41 - } - }, - "rhs": { - "Immediate": "0x10000000000000000" - }, - "quotient": { - "register": "AP", - "offset": 1 - }, - "remainder": { + "AllocSegment": { + "dst": { "register": "AP", "offset": 0 } @@ -32749,102 +35864,93 @@ ] ], [ - 17162, + 18027, [ { - "DivMod": { - "lhs": { + "SystemCall": { + "system": { "Deref": { - "register": "AP", - "offset": -1 + "register": "FP", + "offset": 1 } - }, - "rhs": { - "Immediate": "0x10000000000000000" - }, - "quotient": { - "register": "AP", - "offset": 0 - }, - "remainder": { - "register": "AP", - "offset": 1 } } } ] ], [ - 17173, + 18100, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": 2 + "offset": -2 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "Deref": { + "register": "AP", + "offset": -1 + } }, "quotient": { "register": "AP", - "offset": -1 + "offset": 5 }, "remainder": { "register": "AP", - "offset": -38 + "offset": 6 } } } ] ], [ - 17182, + 18106, [ { - "DivMod": { + "TestLessThan": { "lhs": { "Deref": { "register": "AP", - "offset": -57 + "offset": 0 } }, "rhs": { "Immediate": "0x10000000000000000" }, - "quotient": { - "register": "AP", - "offset": 1 - }, - "remainder": { + "dst": { "register": "AP", - "offset": 0 + "offset": -3 } } } ] ], [ - 17192, + 18173, [ { - "DivMod": { + "WideMul128": { "lhs": { "Deref": { - "register": "AP", - "offset": -1 + "register": "FP", + "offset": -6 } }, "rhs": { - "Immediate": "0x10000000000000000" + "Deref": { + "register": "FP", + "offset": -4 + } }, - "quotient": { + "high": { "register": "AP", "offset": 0 }, - "remainder": { + "low": { "register": "AP", "offset": 1 } @@ -32853,40 +35959,40 @@ ] ], [ - 17203, + 18175, [ { "DivMod": { "lhs": { "Deref": { - "register": "AP", - "offset": 2 + "register": "FP", + "offset": -6 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "Immediate": "0x10000000000000000" }, "quotient": { "register": "AP", - "offset": -1 + "offset": 1 }, "remainder": { "register": "AP", - "offset": -55 + "offset": 0 } } } ] ], [ - 17212, + 18185, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -72 + "offset": -1 } }, "rhs": { @@ -32894,77 +36000,80 @@ }, "quotient": { "register": "AP", - "offset": 1 + "offset": 0 }, "remainder": { "register": "AP", - "offset": 0 + "offset": 1 } } } ] ], [ - 17222, + 18196, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -1 + "offset": 2 } }, "rhs": { - "Immediate": "0x10000000000000000" + "Immediate": "0x100000000000000000000000000000000" }, "quotient": { "register": "AP", - "offset": 0 + "offset": -1 }, "remainder": { "register": "AP", - "offset": 1 + "offset": -13 } } } ] ], [ - 17233, + 18205, [ { - "DivMod": { + "WideMul128": { "lhs": { "Deref": { - "register": "AP", - "offset": 2 + "register": "FP", + "offset": -6 } }, "rhs": { - "Immediate": "0x100000000000000000000000000000000" + "Deref": { + "register": "FP", + "offset": -3 + } }, - "quotient": { + "high": { "register": "AP", - "offset": -1 + "offset": 0 }, - "remainder": { + "low": { "register": "AP", - "offset": -74 + "offset": 1 } } } ] ], [ - 17242, + 18207, [ { "DivMod": { "lhs": { "Deref": { - "register": "AP", - "offset": -88 + "register": "FP", + "offset": -6 } }, "rhs": { @@ -32983,7 +36092,7 @@ ] ], [ - 17252, + 18217, [ { "DivMod": { @@ -33009,7 +36118,7 @@ ] ], [ - 17263, + 18228, [ { "DivMod": { @@ -33028,40 +36137,242 @@ }, "remainder": { "register": "AP", - "offset": -87 + "offset": -13 + } + } + } + ] + ], + [ + 18238, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 18260, + [ + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "FP", + "offset": -5 + } + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -4 + } + }, + "high": { + "register": "AP", + "offset": 0 + }, + "low": { + "register": "AP", + "offset": 1 } } } ] ], [ - 17272, + 18262, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "FP", + "offset": -5 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 1 + }, + "remainder": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 18272, [ { "DivMod": { "lhs": { "Deref": { "register": "AP", - "offset": -103 + "offset": -1 } }, "rhs": { "Immediate": "0x10000000000000000" }, "quotient": { + "register": "AP", + "offset": 0 + }, + "remainder": { "register": "AP", "offset": 1 + } + } + } + ] + ], + [ + 18283, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 2 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "quotient": { + "register": "AP", + "offset": -1 }, "remainder": { + "register": "AP", + "offset": -13 + } + } + } + ] + ], + [ + 18293, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 18316, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 18338, + [ + { + "WideMul128": { + "lhs": { + "Deref": { + "register": "FP", + "offset": -5 + } + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -3 + } + }, + "high": { "register": "AP", "offset": 0 + }, + "low": { + "register": "AP", + "offset": 1 } } } ] ], [ - 17282, + 18340, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "FP", + "offset": -5 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "quotient": { + "register": "AP", + "offset": 1 + }, + "remainder": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 18350, [ { "DivMod": { @@ -33087,7 +36398,7 @@ ] ], [ - 17293, + 18361, [ { "DivMod": { @@ -33106,14 +36417,80 @@ }, "remainder": { "register": "AP", - "offset": -106 + "offset": -13 + } + } + } + ] + ], + [ + 18371, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 18395, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": -1 } } } ] ], [ - 17307, + 18420, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 18444, [ { "TestLessThan": { @@ -33135,7 +36512,7 @@ ] ], [ - 17425, + 18562, [ { "AllocSegment": { @@ -33148,7 +36525,7 @@ ] ], [ - 17448, + 18585, [ { "TestLessThanOrEqual": { @@ -33173,7 +36550,7 @@ ] ], [ - 17523, + 18660, [ { "AllocSegment": { @@ -33186,7 +36563,7 @@ ] ], [ - 17578, + 18715, [ { "DivMod": { @@ -33215,7 +36592,7 @@ ] ], [ - 17584, + 18721, [ { "TestLessThan": { @@ -33237,7 +36614,7 @@ ] ], [ - 17597, + 18734, [ { "TestLessThan": { @@ -33259,7 +36636,7 @@ ] ], [ - 17607, + 18744, [ { "TestLessThan": { @@ -33281,7 +36658,7 @@ ] ], [ - 17655, + 18792, [ { "DivMod": { @@ -33310,7 +36687,7 @@ ] ], [ - 17661, + 18798, [ { "TestLessThan": { @@ -33332,7 +36709,7 @@ ] ], [ - 17677, + 18814, [ { "TestLessThan": { @@ -33354,7 +36731,7 @@ ] ], [ - 17687, + 18824, [ { "TestLessThan": { @@ -33376,7 +36753,7 @@ ] ], [ - 17710, + 18847, [ { "AllocSegment": { @@ -33389,7 +36766,7 @@ ] ], [ - 17724, + 18861, [ { "AllocSegment": { @@ -33402,7 +36779,7 @@ ] ], [ - 17743, + 18880, [ { "AllocSegment": { @@ -33415,7 +36792,7 @@ ] ], [ - 17757, + 18894, [ { "AllocSegment": { @@ -33432,14 +36809,14 @@ "EXTERNAL": [ { "selector": "0x1143aa89c8e3ebf8ed14df2a3606c1cd2dd513fac8040b0f8ab441f5c52fe4", - "offset": 3981, + "offset": 4404, "builtins": [ "range_check" ] }, { "selector": "0x3541591104188daef4379e06e92ecce09094a3b381da2e654eb041d00566d8", - "offset": 5511, + "offset": 5934, "builtins": [ "range_check", "range_check96" @@ -33447,35 +36824,35 @@ }, { "selector": "0x3c118a68e16e12e97ed25cb4901c12f4d3162818669cc44c391d8049924c14", - "offset": 1226, + "offset": 1649, "builtins": [ "range_check" ] }, { "selector": "0x5562b3e932b4d139366854d5a2e578382e6a3b6572ac9943d55e7efbe43d00", - "offset": 3383, + "offset": 3806, "builtins": [ "range_check" ] }, { "selector": "0x600c98a299d72ef1e09a2e1503206fbc76081233172c65f7e2438ef0069d8d", - "offset": 4120, + "offset": 4543, "builtins": [ "range_check" ] }, { "selector": "0x62c83572d28cb834a3de3c1e94977a4191469a4a8c26d1d7bc55305e640ed5", - "offset": 3564, + "offset": 3987, "builtins": [ "range_check" ] }, { "selector": "0x679c22735055a10db4f275395763a3752a1e3a3043c192299ab6b574fba8d6", - "offset": 4966, + "offset": 5389, "builtins": [ "range_check", "ec_op" @@ -33483,7 +36860,7 @@ }, { "selector": "0x7772be8b80a8a33dc6c1f9a6ab820c02e537c73e859de67f288c70f92571bb", - "offset": 4611, + "offset": 5034, "builtins": [ "pedersen", "range_check", @@ -33499,21 +36876,21 @@ }, { "selector": "0xe7510edcf6e9f1b70f7bd1f488767b50f0363422f3c563160ab77adf62467b", - "offset": 2107, + "offset": 2530, "builtins": [ "range_check" ] }, { "selector": "0xf818e4530ec36b83dfe702489b4df537308c3b798b0cc120e32c2056d68b7d", - "offset": 2958, + "offset": 3381, "builtins": [ "range_check" ] }, { "selector": "0x10d2fede95e3ec06a875a67219425c27c5bd734d57f1b221d729a2337b6b556", - "offset": 2506, + "offset": 2929, "builtins": [ "range_check", "segment_arena" @@ -33521,36 +36898,43 @@ }, { "selector": "0x12ead94ae9d3f9d2bdb6b847cf255f1f398193a1f88884a0ae8e18f24a037b6", - "offset": 5227, + "offset": 5650, "builtins": [ "range_check" ] }, { "selector": "0x14dae1999ae9ab799bc72def6dc6e90890cf8ac0d64525021b7e71d05cb13e8", - "offset": 712, + "offset": 1135, "builtins": [ "range_check" ] }, { "selector": "0x169f135eddda5ab51886052d777a57f2ea9c162d713691b5e04a6d4ed71d47f", - "offset": 2617, + "offset": 3040, "builtins": [ "range_check" ] }, { "selector": "0x1ae1a515cf2d214b29bdf63a79ee2d490efd4dd1acc99d383a8e549c3cecb5d", - "offset": 5077, + "offset": 5500, "builtins": [ "pedersen", "range_check" ] }, + { + "selector": "0x1e4089d1f1349077b1970f9937c904e27c4582b49a60b6078946dba95bc3c08", + "offset": 1002, + "builtins": [ + "range_check" + ] + }, { "selector": "0x23039bef544cff56442d9f61ae9b13cf9e36fcce009102c5b678aac93f37b36", - "offset": 1048, + "offset": 1471, "builtins": [ "range_check" ] @@ -33564,21 +36948,28 @@ }, { "selector": "0x2d7cf5d5a324a320f9f37804b1615a533fde487400b41af80f13f7ac5581325", - "offset": 2281, + "offset": 2704, "builtins": [ "range_check" ] }, { "selector": "0x30f842021fbf02caf80d09a113997c1e00a32870eee0c6136bed27acb348bea", - "offset": 4759, + "offset": 5182, + "builtins": [ + "range_check" + ] + }, + { + "selector": "0x31401f504973a5e8e1bb41e9c592519e3aa0b8cf6bbfb9c91b532aab8db54b0", + "offset": 712, "builtins": [ "range_check" ] }, { "selector": "0x317eb442b72a9fae758d4fb26830ed0d9f31c8e7da4dbff4e8c59ea6a158e7f", - "offset": 4387, + "offset": 4810, "builtins": [ "pedersen", "range_check" @@ -33586,28 +36977,28 @@ }, { "selector": "0x32564d7e0fe091d49b4c20f4632191e4ed6986bf993849879abfef9465def25", - "offset": 3749, + "offset": 4172, "builtins": [ "range_check" ] }, { "selector": "0x3604cea1cdb094a73a31144f14a3e5861613c008e1e879939ebc4827d10cd50", - "offset": 1515, + "offset": 1938, "builtins": [ "range_check" ] }, { "selector": "0x382be990ca34815134e64a9ac28f41a907c62e5ad10547f97174362ab94dc89", - "offset": 3062, + "offset": 3485, "builtins": [ "range_check" ] }, { "selector": "0x38be5d5f7bf135b52888ba3e440a457d11107aca3f6542e574b016bf3f074d8", - "offset": 3166, + "offset": 3589, "builtins": [ "range_check", "bitwise" @@ -33615,7 +37006,7 @@ }, { "selector": "0x3a6a8bae4c51d5959683ae246347ffdd96aa5b2bfa68cc8c3a6a7c2ed0be331", - "offset": 1806, + "offset": 2229, "builtins": [ "range_check" ] @@ -33629,7 +37020,7 @@ }, { "selector": "0x3d3da80997f8be5d16e9ae7ee6a4b5f7191d60765a1a6c219ab74269c85cf97", - "offset": 5383, + "offset": 5806, "builtins": [ "range_check", "range_check96", @@ -33639,14 +37030,14 @@ }, { "selector": "0x3d95049b565ec2d4197a55108ef03996381d31c84acf392a0a42b28163d69d1", - "offset": 3279, + "offset": 3702, "builtins": [ "range_check" ] }, { "selector": "0x3eb640b15f75fcc06d43182cdb94ed38c8e71755d5fb57c16dd673b466db1d4", - "offset": 3842, + "offset": 4265, "builtins": [ "range_check" ] @@ -33655,14 +37046,14 @@ "L1_HANDLER": [ { "selector": "0x205500a208d0d49d79197fea83cc3f5fde99ac2e1909ae0a5d9f394c0c52ed0", - "offset": 5795, + "offset": 6218, "builtins": [ "range_check" ] }, { "selector": "0x39edbbb129ad752107a94d40c3873cae369a46fd2fc578d075679aa67e85d12", - "offset": 5634, + "offset": 6057, "builtins": [ "range_check" ] @@ -33671,11 +37062,11 @@ "CONSTRUCTOR": [ { "selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194", - "offset": 6045, + "offset": 6468, "builtins": [ "range_check" ] } ] } -} +} \ No newline at end of file diff --git a/crates/blockifier/feature_contracts/cairo1/test_contract.cairo b/crates/blockifier/feature_contracts/cairo1/test_contract.cairo index 604c9f278bf..d9f4aa56683 100644 --- a/crates/blockifier/feature_contracts/cairo1/test_contract.cairo +++ b/crates/blockifier/feature_contracts/cairo1/test_contract.cairo @@ -71,6 +71,30 @@ mod TestContract { .span() } + + #[external(v0)] + fn test_call_contract_revert( + ref self: ContractState, + contract_address: ContractAddress, + entry_point_selector: felt252, + calldata: Array:: + ) { + match syscalls::call_contract_syscall( + contract_address, entry_point_selector, calldata.span()) + { + Result::Ok(_) => panic!("Expected revert"), + Result::Err(_) => {}, + }; + assert(self.my_storage_var.read() == 0, 'values should not change.'); + } + + + #[external(v0)] + fn test_revert_helper(ref self: ContractState) { + self.my_storage_var.write(17); + panic!("test_revert_helper"); + } + #[external(v0)] fn test_emit_events( self: @ContractState, events_number: u64, keys: Array::, data: Array:: diff --git a/crates/blockifier/src/execution/entry_point_execution.rs b/crates/blockifier/src/execution/entry_point_execution.rs index 3ebae0ad8ed..ba8ff203ec9 100644 --- a/crates/blockifier/src/execution/entry_point_execution.rs +++ b/crates/blockifier/src/execution/entry_point_execution.rs @@ -103,11 +103,6 @@ pub fn execute_entry_point_call( n_total_args, program_extra_data_length, )?; - if call_info.execution.failed { - return Err(EntryPointExecutionError::ExecutionFailed { - error_data: call_info.execution.retdata.0, - }); - } Ok(call_info) } @@ -355,7 +350,7 @@ fn maybe_fill_holes( pub fn finalize_execution( mut runner: CairoRunner, - syscall_handler: SyscallHintProcessor<'_>, + mut syscall_handler: SyscallHintProcessor<'_>, previous_resources: ExecutionResources, n_total_args: usize, program_extra_data_length: usize, @@ -377,6 +372,10 @@ pub fn finalize_execution( let call_result = get_call_result(&runner, &syscall_handler)?; + if call_result.failed { + syscall_handler.revert(); + } + // Take into account the VM execution resources of the current call, without inner calls. // Has to happen after marking holes in segments as accessed. let mut vm_resources_without_inner_calls = runner diff --git a/crates/blockifier/src/execution/syscalls/hint_processor.rs b/crates/blockifier/src/execution/syscalls/hint_processor.rs index 1c1a9cb9c9b..efb96f25963 100644 --- a/crates/blockifier/src/execution/syscalls/hint_processor.rs +++ b/crates/blockifier/src/execution/syscalls/hint_processor.rs @@ -230,6 +230,8 @@ pub struct SyscallHintProcessor<'a> { pub read_values: Vec, pub accessed_keys: HashSet, + pub orig_values: HashMap, + // Secp hint processors. pub secp256k1_hint_processor: SecpHintProcessor, pub secp256r1_hint_processor: SecpHintProcessor, @@ -265,6 +267,7 @@ impl<'a> SyscallHintProcessor<'a> { syscall_ptr: initial_syscall_ptr, read_values: vec![], accessed_keys: HashSet::new(), + orig_values: HashMap::new(), hints, execution_info_ptr: None, secp256k1_hint_processor: SecpHintProcessor::default(), @@ -521,6 +524,7 @@ impl<'a> SyscallHintProcessor<'a> { // Execute. let mut remaining_gas = gas_counter - required_gas; let original_response = execute_callback(request, vm, self, &mut remaining_gas); + eprintln!("original_response: {:?}", original_response); let response = match original_response { Ok(response) => { SyscallResponseWrapper::Success { gas_counter: remaining_gas, response } @@ -528,7 +532,10 @@ impl<'a> SyscallHintProcessor<'a> { Err(SyscallExecutionError::SyscallError { error_data: data }) => { SyscallResponseWrapper::Failure { gas_counter: remaining_gas, error_data: data } } - Err(error) => return Err(error.into()), + Err(error) => { + eprintln!("error: {:?}", error); + return Err(error.into()); + } }; response.write(vm, &mut self.syscall_ptr)?; @@ -692,11 +699,22 @@ impl<'a> SyscallHintProcessor<'a> { key: StorageKey, value: Felt, ) -> SyscallResult { + let contract_address = self.storage_address(); + self.orig_values + .entry(key) + .or_insert_with(|| self.state.get_storage_at(contract_address, key).unwrap()); self.accessed_keys.insert(key); - self.state.set_storage_at(self.storage_address(), key, value)?; + self.state.set_storage_at(contract_address, key, value)?; Ok(StorageWriteResponse {}) } + + pub fn revert(&mut self) { + let contract_address = self.storage_address(); + for (key, value) in self.orig_values.iter() { + self.state.set_storage_at(contract_address, *key, *value).unwrap(); + } + } } /// Retrieves a [Relocatable] from the VM given a [ResOperand]. @@ -796,19 +814,20 @@ pub fn execute_inner_call( ) -> SyscallResult { let call_info = call.execute(syscall_handler.state, syscall_handler.resources, syscall_handler.context)?; - let raw_retdata = &call_info.execution.retdata.0; + let raw_retdata = call_info.execution.retdata.0.clone(); - if call_info.execution.failed { - // TODO(spapini): Append an error word according to starknet spec if needed. - // Something like "EXECUTION_ERROR". - return Err(SyscallExecutionError::SyscallError { error_data: raw_retdata.clone() }); - } - - let retdata_segment = create_retdata_segment(vm, syscall_handler, raw_retdata)?; update_remaining_gas(remaining_gas, &call_info); + let failed = call_info.execution.failed; syscall_handler.inner_calls.push(call_info); + if failed { + // TODO(spapini): Append an error word according to starknet spec if needed. + // Something like "EXECUTION_ERROR". + return Err(SyscallExecutionError::SyscallError { error_data: raw_retdata }); + } + + let retdata_segment = create_retdata_segment(vm, syscall_handler, &raw_retdata)?; Ok(retdata_segment) } diff --git a/crates/blockifier/src/execution/syscalls/mod.rs b/crates/blockifier/src/execution/syscalls/mod.rs index 9e31c9ab9b6..68a9893ba80 100644 --- a/crates/blockifier/src/execution/syscalls/mod.rs +++ b/crates/blockifier/src/execution/syscalls/mod.rs @@ -108,10 +108,12 @@ impl SyscallResponse for SyscallResponseWrapper { // Write the error data to a new memory segment. let revert_reason_start = vm.add_memory_segment(); - let revert_reason_end = vm.load_data( - revert_reason_start, - &error_data.into_iter().map(Into::into).collect::>(), - )?; + let revert_reason_end = vm + .load_data( + revert_reason_start, + &error_data.into_iter().map(Into::into).collect::>(), + ) + .unwrap(); // Write the start and end pointers of the error data. write_maybe_relocatable(vm, ptr, revert_reason_start)?; @@ -200,8 +202,9 @@ pub fn call_contract( initial_gas: *remaining_gas, }; let retdata_segment = execute_inner_call(entry_point, vm, syscall_handler, remaining_gas) - .map_err(|error| { - error.as_call_contract_execution_error(class_hash, storage_address, selector) + .map_err(|error| match error { + SyscallExecutionError::SyscallError { .. } => error, + _ => error.as_call_contract_execution_error(class_hash, storage_address, selector), })?; Ok(CallContractResponse { segment: retdata_segment }) diff --git a/crates/blockifier/src/execution/syscalls/syscalls_test.rs b/crates/blockifier/src/execution/syscalls/syscalls_test.rs index 70a65018eb3..d0ad8a6807f 100644 --- a/crates/blockifier/src/execution/syscalls/syscalls_test.rs +++ b/crates/blockifier/src/execution/syscalls/syscalls_test.rs @@ -149,6 +149,36 @@ fn test_call_contract() { ); } +#[test] +fn test_call_contract_that_panics() { + let test_contract = FeatureContract::TestContract(CairoVersion::Cairo1); + let chain_info = &ChainInfo::create_for_testing(); + let mut state = test_state(chain_info, BALANCE, &[(test_contract, 1)]); + + let outer_entry_point_selector = selector_from_name("test_call_contract_revert"); + let calldata = create_calldata( + FeatureContract::TestContract(CairoVersion::Cairo1).get_instance_address(0), + "test_revert_helper", + &[], + ); + let entry_point_call = CallEntryPoint { + entry_point_selector: outer_entry_point_selector, + calldata, + ..trivial_external_entry_point_new(test_contract) + }; + + let res = entry_point_call.execute_directly(&mut state).unwrap(); + assert_eq!( + res.execution, + CallExecution { + retdata: retdata![], + gas_consumed: 101830, + failed: false, + ..CallExecution::default() + } + ); +} + #[test] fn test_emit_event() { let versioned_constants = VersionedConstants::create_for_testing(); diff --git a/crates/blockifier/src/transaction/account_transactions_test.rs b/crates/blockifier/src/transaction/account_transactions_test.rs index 3f48297d157..6a472cb3ee1 100644 --- a/crates/blockifier/src/transaction/account_transactions_test.rs +++ b/crates/blockifier/src/transaction/account_transactions_test.rs @@ -89,13 +89,15 @@ fn test_circuit(block_context: BlockContext, max_resource_bounds: ResourceBounds let account_address = account.get_instance_address(0); let mut nonce_manager = NonceManager::default(); + let calldata = create_calldata(test_contract_address, "test_call_contract", &[]); + // Invoke a function that changes the state and reverts. let tx_args = invoke_tx_args! { sender_address: account_address, calldata: create_calldata( test_contract_address, - "test_circuit", - &[] + "test_call_contract", + &calldata.0, ), nonce: nonce_manager.next(account_address) }; @@ -110,7 +112,7 @@ fn test_circuit(block_context: BlockContext, max_resource_bounds: ResourceBounds .unwrap(); assert!(tx_execution_info.revert_error.is_none()); - assert_eq!(tx_execution_info.receipt.gas, GasVector::from_l1_gas(6682)); + assert_eq!(tx_execution_info.receipt.gas, GasVector::from_l1_gas(7649)); } #[rstest]