in_sync

Program secret_custody_protocol.aleo

Program ID
secret_custody_protocol.aleo
Owner signature
sign1f6w8s7jvaere4hpqwwk6qmkymeuqpytzcatqclgvzv6qdt7rucq5djvwxx2sp7qkf7dd4zhxdnknvdr8787q3q6ntf72q7ld3xxcuqqh7y00jwagn9ae9ytnk5qj7za66k5nruz2ex0y87flnlkctk2eqq62xlryqk35v7q8k82fxepzes2rqz8rhsaz07yqr0p85g3mhrpssxzef5m
Times called
0
Similar programs
Mappings
-
Structs
Proposal
CustodyState
Share
Custody
ValidatorShareData
Records
-
Functions
-
Transitions
custody_data_as_program(scalar, [field; 15u32], public [address; 16u32], u8) -> ()
request_data_as_program(address, address, u8, public [address; 16u32], public u64, credits.aleo/credits) -> credits.aleo/credits
assert_completed_as_program(address, public u8) -> () finalize(field, u8)
Program Source Code (Aleo Instruction) Upload Leo source

import credits.aleo;
import protocol_core.aleo;
import protocol_transfers.aleo;

program secret_custody_protocol.aleo;

struct Proposal:
    validators as [address; 16u32];
    threshold as u8;
    current_validator_set_index as u64;

struct CustodyState:
    validator_set_index as u64;
    validator_fee as u64;
    requested as boolean;
    submitted_shares as u8;

struct Share:
    share_val as field;
    index as field;

struct Custody:
    initiator as address;
    data_address as address;
    threshold as u8;

struct ValidatorShareData:
    validator as address;
    share as Share;

function custody_data_as_program:
    input r0 as scalar.private;
    input r1 as [field; 15u32].private;
    input r2 as [address; 16u32].public;
    input r3 as u8.private;
    assert.neq self.caller self.signer;
    is.neq r1[0] 0field into r4;
    is.neq r1[1] 0field into r5;
    and r4 r5 into r6;
    is.neq r1[2] 0field into r7;
    and r6 r7 into r8;
    is.neq r1[3] 0field into r9;
    and r8 r9 into r10;
    is.neq r1[4] 0field into r11;
    and r10 r11 into r12;
    is.neq r1[5] 0field into r13;
    and r12 r13 into r14;
    is.neq r1[6] 0field into r15;
    and r14 r15 into r16;
    is.neq r1[7] 0field into r17;
    and r16 r17 into r18;
    is.neq r1[8] 0field into r19;
    and r18 r19 into r20;
    is.neq r1[9] 0field into r21;
    and r20 r21 into r22;
    is.neq r1[10] 0field into r23;
    and r22 r23 into r24;
    is.neq r1[11] 0field into r25;
    and r24 r25 into r26;
    is.neq r1[12] 0field into r27;
    and r26 r27 into r28;
    is.neq r1[13] 0field into r29;
    and r28 r29 into r30;
    is.neq r1[14] 0field into r31;
    and r30 r31 into r32;
    assert.eq r32 true;
    cast r0 into r33 as field;
    mul r0 1540945439182663264862696551825005342995406165131907382295858612069623286213group into r34;
    cast r34 into r35 as address;
    cast self.caller r35 r3 into r36 as Custody;
    hash.bhp256 r36 into r37 as field;
    mul 1field 1field into r38;
    sub r3 1u8 into r39;
    lt 0u8 r39 into r40;
    mul r1[0] r38 into r41;
    ternary r40 r41 0field into r42;
    add r33 r42 into r43;
    mul r38 1field into r44;
    sub r3 1u8 into r45;
    lt 1u8 r45 into r46;
    mul r1[1] r44 into r47;
    ternary r46 r47 0field into r48;
    add r43 r48 into r49;
    mul r44 1field into r50;
    sub r3 1u8 into r51;
    lt 2u8 r51 into r52;
    mul r1[2] r50 into r53;
    ternary r52 r53 0field into r54;
    add r49 r54 into r55;
    mul r50 1field into r56;
    sub r3 1u8 into r57;
    lt 3u8 r57 into r58;
    mul r1[3] r56 into r59;
    ternary r58 r59 0field into r60;
    add r55 r60 into r61;
    mul r56 1field into r62;
    sub r3 1u8 into r63;
    lt 4u8 r63 into r64;
    mul r1[4] r62 into r65;
    ternary r64 r65 0field into r66;
    add r61 r66 into r67;
    mul r62 1field into r68;
    sub r3 1u8 into r69;
    lt 5u8 r69 into r70;
    mul r1[5] r68 into r71;
    ternary r70 r71 0field into r72;
    add r67 r72 into r73;
    mul r68 1field into r74;
    sub r3 1u8 into r75;
    lt 6u8 r75 into r76;
    mul r1[6] r74 into r77;
    ternary r76 r77 0field into r78;
    add r73 r78 into r79;
    mul r74 1field into r80;
    sub r3 1u8 into r81;
    lt 7u8 r81 into r82;
    mul r1[7] r80 into r83;
    ternary r82 r83 0field into r84;
    add r79 r84 into r85;
    mul r80 1field into r86;
    sub r3 1u8 into r87;
    lt 8u8 r87 into r88;
    mul r1[8] r86 into r89;
    ternary r88 r89 0field into r90;
    add r85 r90 into r91;
    mul r86 1field into r92;
    sub r3 1u8 into r93;
    lt 9u8 r93 into r94;
    mul r1[9] r92 into r95;
    ternary r94 r95 0field into r96;
    add r91 r96 into r97;
    mul r92 1field into r98;
    sub r3 1u8 into r99;
    lt 10u8 r99 into r100;
    mul r1[10] r98 into r101;
    ternary r100 r101 0field into r102;
    add r97 r102 into r103;
    mul r98 1field into r104;
    sub r3 1u8 into r105;
    lt 11u8 r105 into r106;
    mul r1[11] r104 into r107;
    ternary r106 r107 0field into r108;
    add r103 r108 into r109;
    mul r104 1field into r110;
    sub r3 1u8 into r111;
    lt 12u8 r111 into r112;
    mul r1[12] r110 into r113;
    ternary r112 r113 0field into r114;
    add r109 r114 into r115;
    mul r110 1field into r116;
    sub r3 1u8 into r117;
    lt 13u8 r117 into r118;
    mul r1[13] r116 into r119;
    ternary r118 r119 0field into r120;
    add r115 r120 into r121;
    cast r121 1field into r122 as Share;
    cast r2[0] r122 into r123 as ValidatorShareData;
    mul 1field 2field into r124;
    sub r3 1u8 into r125;
    lt 0u8 r125 into r126;
    mul r1[0] r124 into r127;
    ternary r126 r127 0field into r128;
    add r33 r128 into r129;
    mul r124 2field into r130;
    sub r3 1u8 into r131;
    lt 1u8 r131 into r132;
    mul r1[1] r130 into r133;
    ternary r132 r133 0field into r134;
    add r129 r134 into r135;
    mul r130 2field into r136;
    sub r3 1u8 into r137;
    lt 2u8 r137 into r138;
    mul r1[2] r136 into r139;
    ternary r138 r139 0field into r140;
    add r135 r140 into r141;
    mul r136 2field into r142;
    sub r3 1u8 into r143;
    lt 3u8 r143 into r144;
    mul r1[3] r142 into r145;
    ternary r144 r145 0field into r146;
    add r141 r146 into r147;
    mul r142 2field into r148;
    sub r3 1u8 into r149;
    lt 4u8 r149 into r150;
    mul r1[4] r148 into r151;
    ternary r150 r151 0field into r152;
    add r147 r152 into r153;
    mul r148 2field into r154;
    sub r3 1u8 into r155;
    lt 5u8 r155 into r156;
    mul r1[5] r154 into r157;
    ternary r156 r157 0field into r158;
    add r153 r158 into r159;
    mul r154 2field into r160;
    sub r3 1u8 into r161;
    lt 6u8 r161 into r162;
    mul r1[6] r160 into r163;
    ternary r162 r163 0field into r164;
    add r159 r164 into r165;
    mul r160 2field into r166;
    sub r3 1u8 into r167;
    lt 7u8 r167 into r168;
    mul r1[7] r166 into r169;
    ternary r168 r169 0field into r170;
    add r165 r170 into r171;
    mul r166 2field into r172;
    sub r3 1u8 into r173;
    lt 8u8 r173 into r174;
    mul r1[8] r172 into r175;
    ternary r174 r175 0field into r176;
    add r171 r176 into r177;
    mul r172 2field into r178;
    sub r3 1u8 into r179;
    lt 9u8 r179 into r180;
    mul r1[9] r178 into r181;
    ternary r180 r181 0field into r182;
    add r177 r182 into r183;
    mul r178 2field into r184;
    sub r3 1u8 into r185;
    lt 10u8 r185 into r186;
    mul r1[10] r184 into r187;
    ternary r186 r187 0field into r188;
    add r183 r188 into r189;
    mul r184 2field into r190;
    sub r3 1u8 into r191;
    lt 11u8 r191 into r192;
    mul r1[11] r190 into r193;
    ternary r192 r193 0field into r194;
    add r189 r194 into r195;
    mul r190 2field into r196;
    sub r3 1u8 into r197;
    lt 12u8 r197 into r198;
    mul r1[12] r196 into r199;
    ternary r198 r199 0field into r200;
    add r195 r200 into r201;
    mul r196 2field into r202;
    sub r3 1u8 into r203;
    lt 13u8 r203 into r204;
    mul r1[13] r202 into r205;
    ternary r204 r205 0field into r206;
    add r201 r206 into r207;
    cast r207 2field into r208 as Share;
    cast r2[1] r208 into r209 as ValidatorShareData;
    mul 1field 3field into r210;
    sub r3 1u8 into r211;
    lt 0u8 r211 into r212;
    mul r1[0] r210 into r213;
    ternary r212 r213 0field into r214;
    add r33 r214 into r215;
    mul r210 3field into r216;
    sub r3 1u8 into r217;
    lt 1u8 r217 into r218;
    mul r1[1] r216 into r219;
    ternary r218 r219 0field into r220;
    add r215 r220 into r221;
    mul r216 3field into r222;
    sub r3 1u8 into r223;
    lt 2u8 r223 into r224;
    mul r1[2] r222 into r225;
    ternary r224 r225 0field into r226;
    add r221 r226 into r227;
    mul r222 3field into r228;
    sub r3 1u8 into r229;
    lt 3u8 r229 into r230;
    mul r1[3] r228 into r231;
    ternary r230 r231 0field into r232;
    add r227 r232 into r233;
    mul r228 3field into r234;
    sub r3 1u8 into r235;
    lt 4u8 r235 into r236;
    mul r1[4] r234 into r237;
    ternary r236 r237 0field into r238;
    add r233 r238 into r239;
    mul r234 3field into r240;
    sub r3 1u8 into r241;
    lt 5u8 r241 into r242;
    mul r1[5] r240 into r243;
    ternary r242 r243 0field into r244;
    add r239 r244 into r245;
    mul r240 3field into r246;
    sub r3 1u8 into r247;
    lt 6u8 r247 into r248;
    mul r1[6] r246 into r249;
    ternary r248 r249 0field into r250;
    add r245 r250 into r251;
    mul r246 3field into r252;
    sub r3 1u8 into r253;
    lt 7u8 r253 into r254;
    mul r1[7] r252 into r255;
    ternary r254 r255 0field into r256;
    add r251 r256 into r257;
    mul r252 3field into r258;
    sub r3 1u8 into r259;
    lt 8u8 r259 into r260;
    mul r1[8] r258 into r261;
    ternary r260 r261 0field into r262;
    add r257 r262 into r263;
    mul r258 3field into r264;
    sub r3 1u8 into r265;
    lt 9u8 r265 into r266;
    mul r1[9] r264 into r267;
    ternary r266 r267 0field into r268;
    add r263 r268 into r269;
    mul r264 3field into r270;
    sub r3 1u8 into r271;
    lt 10u8 r271 into r272;
    mul r1[10] r270 into r273;
    ternary r272 r273 0field into r274;
    add r269 r274 into r275;
    mul r270 3field into r276;
    sub r3 1u8 into r277;
    lt 11u8 r277 into r278;
    mul r1[11] r276 into r279;
    ternary r278 r279 0field into r280;
    add r275 r280 into r281;
    mul r276 3field into r282;
    sub r3 1u8 into r283;
    lt 12u8 r283 into r284;
    mul r1[12] r282 into r285;
    ternary r284 r285 0field into r286;
    add r281 r286 into r287;
    mul r282 3field into r288;
    sub r3 1u8 into r289;
    lt 13u8 r289 into r290;
    mul r1[13] r288 into r291;
    ternary r290 r291 0field into r292;
    add r287 r292 into r293;
    cast r293 3field into r294 as Share;
    cast r2[2] r294 into r295 as ValidatorShareData;
    mul 1field 4field into r296;
    sub r3 1u8 into r297;
    lt 0u8 r297 into r298;
    mul r1[0] r296 into r299;
    ternary r298 r299 0field into r300;
    add r33 r300 into r301;
    mul r296 4field into r302;
    sub r3 1u8 into r303;
    lt 1u8 r303 into r304;
    mul r1[1] r302 into r305;
    ternary r304 r305 0field into r306;
    add r301 r306 into r307;
    mul r302 4field into r308;
    sub r3 1u8 into r309;
    lt 2u8 r309 into r310;
    mul r1[2] r308 into r311;
    ternary r310 r311 0field into r312;
    add r307 r312 into r313;
    mul r308 4field into r314;
    sub r3 1u8 into r315;
    lt 3u8 r315 into r316;
    mul r1[3] r314 into r317;
    ternary r316 r317 0field into r318;
    add r313 r318 into r319;
    mul r314 4field into r320;
    sub r3 1u8 into r321;
    lt 4u8 r321 into r322;
    mul r1[4] r320 into r323;
    ternary r322 r323 0field into r324;
    add r319 r324 into r325;
    mul r320 4field into r326;
    sub r3 1u8 into r327;
    lt 5u8 r327 into r328;
    mul r1[5] r326 into r329;
    ternary r328 r329 0field into r330;
    add r325 r330 into r331;
    mul r326 4field into r332;
    sub r3 1u8 into r333;
    lt 6u8 r333 into r334;
    mul r1[6] r332 into r335;
    ternary r334 r335 0field into r336;
    add r331 r336 into r337;
    mul r332 4field into r338;
    sub r3 1u8 into r339;
    lt 7u8 r339 into r340;
    mul r1[7] r338 into r341;
    ternary r340 r341 0field into r342;
    add r337 r342 into r343;
    mul r338 4field into r344;
    sub r3 1u8 into r345;
    lt 8u8 r345 into r346;
    mul r1[8] r344 into r347;
    ternary r346 r347 0field into r348;
    add r343 r348 into r349;
    mul r344 4field into r350;
    sub r3 1u8 into r351;
    lt 9u8 r351 into r352;
    mul r1[9] r350 into r353;
    ternary r352 r353 0field into r354;
    add r349 r354 into r355;
    mul r350 4field into r356;
    sub r3 1u8 into r357;
    lt 10u8 r357 into r358;
    mul r1[10] r356 into r359;
    ternary r358 r359 0field into r360;
    add r355 r360 into r361;
    mul r356 4field into r362;
    sub r3 1u8 into r363;
    lt 11u8 r363 into r364;
    mul r1[11] r362 into r365;
    ternary r364 r365 0field into r366;
    add r361 r366 into r367;
    mul r362 4field into r368;
    sub r3 1u8 into r369;
    lt 12u8 r369 into r370;
    mul r1[12] r368 into r371;
    ternary r370 r371 0field into r372;
    add r367 r372 into r373;
    mul r368 4field into r374;
    sub r3 1u8 into r375;
    lt 13u8 r375 into r376;
    mul r1[13] r374 into r377;
    ternary r376 r377 0field into r378;
    add r373 r378 into r379;
    cast r379 4field into r380 as Share;
    cast r2[3] r380 into r381 as ValidatorShareData;
    mul 1field 5field into r382;
    sub r3 1u8 into r383;
    lt 0u8 r383 into r384;
    mul r1[0] r382 into r385;
    ternary r384 r385 0field into r386;
    add r33 r386 into r387;
    mul r382 5field into r388;
    sub r3 1u8 into r389;
    lt 1u8 r389 into r390;
    mul r1[1] r388 into r391;
    ternary r390 r391 0field into r392;
    add r387 r392 into r393;
    mul r388 5field into r394;
    sub r3 1u8 into r395;
    lt 2u8 r395 into r396;
    mul r1[2] r394 into r397;
    ternary r396 r397 0field into r398;
    add r393 r398 into r399;
    mul r394 5field into r400;
    sub r3 1u8 into r401;
    lt 3u8 r401 into r402;
    mul r1[3] r400 into r403;
    ternary r402 r403 0field into r404;
    add r399 r404 into r405;
    mul r400 5field into r406;
    sub r3 1u8 into r407;
    lt 4u8 r407 into r408;
    mul r1[4] r406 into r409;
    ternary r408 r409 0field into r410;
    add r405 r410 into r411;
    mul r406 5field into r412;
    sub r3 1u8 into r413;
    lt 5u8 r413 into r414;
    mul r1[5] r412 into r415;
    ternary r414 r415 0field into r416;
    add r411 r416 into r417;
    mul r412 5field into r418;
    sub r3 1u8 into r419;
    lt 6u8 r419 into r420;
    mul r1[6] r418 into r421;
    ternary r420 r421 0field into r422;
    add r417 r422 into r423;
    mul r418 5field into r424;
    sub r3 1u8 into r425;
    lt 7u8 r425 into r426;
    mul r1[7] r424 into r427;
    ternary r426 r427 0field into r428;
    add r423 r428 into r429;
    mul r424 5field into r430;
    sub r3 1u8 into r431;
    lt 8u8 r431 into r432;
    mul r1[8] r430 into r433;
    ternary r432 r433 0field into r434;
    add r429 r434 into r435;
    mul r430 5field into r436;
    sub r3 1u8 into r437;
    lt 9u8 r437 into r438;
    mul r1[9] r436 into r439;
    ternary r438 r439 0field into r440;
    add r435 r440 into r441;
    mul r436 5field into r442;
    sub r3 1u8 into r443;
    lt 10u8 r443 into r444;
    mul r1[10] r442 into r445;
    ternary r444 r445 0field into r446;
    add r441 r446 into r447;
    mul r442 5field into r448;
    sub r3 1u8 into r449;
    lt 11u8 r449 into r450;
    mul r1[11] r448 into r451;
    ternary r450 r451 0field into r452;
    add r447 r452 into r453;
    mul r448 5field into r454;
    sub r3 1u8 into r455;
    lt 12u8 r455 into r456;
    mul r1[12] r454 into r457;
    ternary r456 r457 0field into r458;
    add r453 r458 into r459;
    mul r454 5field into r460;
    sub r3 1u8 into r461;
    lt 13u8 r461 into r462;
    mul r1[13] r460 into r463;
    ternary r462 r463 0field into r464;
    add r459 r464 into r465;
    cast r465 5field into r466 as Share;
    cast r2[4] r466 into r467 as ValidatorShareData;
    mul 1field 6field into r468;
    sub r3 1u8 into r469;
    lt 0u8 r469 into r470;
    mul r1[0] r468 into r471;
    ternary r470 r471 0field into r472;
    add r33 r472 into r473;
    mul r468 6field into r474;
    sub r3 1u8 into r475;
    lt 1u8 r475 into r476;
    mul r1[1] r474 into r477;
    ternary r476 r477 0field into r478;
    add r473 r478 into r479;
    mul r474 6field into r480;
    sub r3 1u8 into r481;
    lt 2u8 r481 into r482;
    mul r1[2] r480 into r483;
    ternary r482 r483 0field into r484;
    add r479 r484 into r485;
    mul r480 6field into r486;
    sub r3 1u8 into r487;
    lt 3u8 r487 into r488;
    mul r1[3] r486 into r489;
    ternary r488 r489 0field into r490;
    add r485 r490 into r491;
    mul r486 6field into r492;
    sub r3 1u8 into r493;
    lt 4u8 r493 into r494;
    mul r1[4] r492 into r495;
    ternary r494 r495 0field into r496;
    add r491 r496 into r497;
    mul r492 6field into r498;
    sub r3 1u8 into r499;
    lt 5u8 r499 into r500;
    mul r1[5] r498 into r501;
    ternary r500 r501 0field into r502;
    add r497 r502 into r503;
    mul r498 6field into r504;
    sub r3 1u8 into r505;
    lt 6u8 r505 into r506;
    mul r1[6] r504 into r507;
    ternary r506 r507 0field into r508;
    add r503 r508 into r509;
    mul r504 6field into r510;
    sub r3 1u8 into r511;
    lt 7u8 r511 into r512;
    mul r1[7] r510 into r513;
    ternary r512 r513 0field into r514;
    add r509 r514 into r515;
    mul r510 6field into r516;
    sub r3 1u8 into r517;
    lt 8u8 r517 into r518;
    mul r1[8] r516 into r519;
    ternary r518 r519 0field into r520;
    add r515 r520 into r521;
    mul r516 6field into r522;
    sub r3 1u8 into r523;
    lt 9u8 r523 into r524;
    mul r1[9] r522 into r525;
    ternary r524 r525 0field into r526;
    add r521 r526 into r527;
    mul r522 6field into r528;
    sub r3 1u8 into r529;
    lt 10u8 r529 into r530;
    mul r1[10] r528 into r531;
    ternary r530 r531 0field into r532;
    add r527 r532 into r533;
    mul r528 6field into r534;
    sub r3 1u8 into r535;
    lt 11u8 r535 into r536;
    mul r1[11] r534 into r537;
    ternary r536 r537 0field into r538;
    add r533 r538 into r539;
    mul r534 6field into r540;
    sub r3 1u8 into r541;
    lt 12u8 r541 into r542;
    mul r1[12] r540 into r543;
    ternary r542 r543 0field into r544;
    add r539 r544 into r545;
    mul r540 6field into r546;
    sub r3 1u8 into r547;
    lt 13u8 r547 into r548;
    mul r1[13] r546 into r549;
    ternary r548 r549 0field into r550;
    add r545 r550 into r551;
    cast r551 6field into r552 as Share;
    cast r2[5] r552 into r553 as ValidatorShareData;
    mul 1field 7field into r554;
    sub r3 1u8 into r555;
    lt 0u8 r555 into r556;
    mul r1[0] r554 into r557;
    ternary r556 r557 0field into r558;
    add r33 r558 into r559;
    mul r554 7field into r560;
    sub r3 1u8 into r561;
    lt 1u8 r561 into r562;
    mul r1[1] r560 into r563;
    ternary r562 r563 0field into r564;
    add r559 r564 into r565;
    mul r560 7field into r566;
    sub r3 1u8 into r567;
    lt 2u8 r567 into r568;
    mul r1[2] r566 into r569;
    ternary r568 r569 0field into r570;
    add r565 r570 into r571;
    mul r566 7field into r572;
    sub r3 1u8 into r573;
    lt 3u8 r573 into r574;
    mul r1[3] r572 into r575;
    ternary r574 r575 0field into r576;
    add r571 r576 into r577;
    mul r572 7field into r578;
    sub r3 1u8 into r579;
    lt 4u8 r579 into r580;
    mul r1[4] r578 into r581;
    ternary r580 r581 0field into r582;
    add r577 r582 into r583;
    mul r578 7field into r584;
    sub r3 1u8 into r585;
    lt 5u8 r585 into r586;
    mul r1[5] r584 into r587;
    ternary r586 r587 0field into r588;
    add r583 r588 into r589;
    mul r584 7field into r590;
    sub r3 1u8 into r591;
    lt 6u8 r591 into r592;
    mul r1[6] r590 into r593;
    ternary r592 r593 0field into r594;
    add r589 r594 into r595;
    mul r590 7field into r596;
    sub r3 1u8 into r597;
    lt 7u8 r597 into r598;
    mul r1[7] r596 into r599;
    ternary r598 r599 0field into r600;
    add r595 r600 into r601;
    mul r596 7field into r602;
    sub r3 1u8 into r603;
    lt 8u8 r603 into r604;
    mul r1[8] r602 into r605;
    ternary r604 r605 0field into r606;
    add r601 r606 into r607;
    mul r602 7field into r608;
    sub r3 1u8 into r609;
    lt 9u8 r609 into r610;
    mul r1[9] r608 into r611;
    ternary r610 r611 0field into r612;
    add r607 r612 into r613;
    mul r608 7field into r614;
    sub r3 1u8 into r615;
    lt 10u8 r615 into r616;
    mul r1[10] r614 into r617;
    ternary r616 r617 0field into r618;
    add r613 r618 into r619;
    mul r614 7field into r620;
    sub r3 1u8 into r621;
    lt 11u8 r621 into r622;
    mul r1[11] r620 into r623;
    ternary r622 r623 0field into r624;
    add r619 r624 into r625;
    mul r620 7field into r626;
    sub r3 1u8 into r627;
    lt 12u8 r627 into r628;
    mul r1[12] r626 into r629;
    ternary r628 r629 0field into r630;
    add r625 r630 into r631;
    mul r626 7field into r632;
    sub r3 1u8 into r633;
    lt 13u8 r633 into r634;
    mul r1[13] r632 into r635;
    ternary r634 r635 0field into r636;
    add r631 r636 into r637;
    cast r637 7field into r638 as Share;
    cast r2[6] r638 into r639 as ValidatorShareData;
    mul 1field 8field into r640;
    sub r3 1u8 into r641;
    lt 0u8 r641 into r642;
    mul r1[0] r640 into r643;
    ternary r642 r643 0field into r644;
    add r33 r644 into r645;
    mul r640 8field into r646;
    sub r3 1u8 into r647;
    lt 1u8 r647 into r648;
    mul r1[1] r646 into r649;
    ternary r648 r649 0field into r650;
    add r645 r650 into r651;
    mul r646 8field into r652;
    sub r3 1u8 into r653;
    lt 2u8 r653 into r654;
    mul r1[2] r652 into r655;
    ternary r654 r655 0field into r656;
    add r651 r656 into r657;
    mul r652 8field into r658;
    sub r3 1u8 into r659;
    lt 3u8 r659 into r660;
    mul r1[3] r658 into r661;
    ternary r660 r661 0field into r662;
    add r657 r662 into r663;
    mul r658 8field into r664;
    sub r3 1u8 into r665;
    lt 4u8 r665 into r666;
    mul r1[4] r664 into r667;
    ternary r666 r667 0field into r668;
    add r663 r668 into r669;
    mul r664 8field into r670;
    sub r3 1u8 into r671;
    lt 5u8 r671 into r672;
    mul r1[5] r670 into r673;
    ternary r672 r673 0field into r674;
    add r669 r674 into r675;
    mul r670 8field into r676;
    sub r3 1u8 into r677;
    lt 6u8 r677 into r678;
    mul r1[6] r676 into r679;
    ternary r678 r679 0field into r680;
    add r675 r680 into r681;
    mul r676 8field into r682;
    sub r3 1u8 into r683;
    lt 7u8 r683 into r684;
    mul r1[7] r682 into r685;
    ternary r684 r685 0field into r686;
    add r681 r686 into r687;
    mul r682 8field into r688;
    sub r3 1u8 into r689;
    lt 8u8 r689 into r690;
    mul r1[8] r688 into r691;
    ternary r690 r691 0field into r692;
    add r687 r692 into r693;
    mul r688 8field into r694;
    sub r3 1u8 into r695;
    lt 9u8 r695 into r696;
    mul r1[9] r694 into r697;
    ternary r696 r697 0field into r698;
    add r693 r698 into r699;
    mul r694 8field into r700;
    sub r3 1u8 into r701;
    lt 10u8 r701 into r702;
    mul r1[10] r700 into r703;
    ternary r702 r703 0field into r704;
    add r699 r704 into r705;
    mul r700 8field into r706;
    sub r3 1u8 into r707;
    lt 11u8 r707 into r708;
    mul r1[11] r706 into r709;
    ternary r708 r709 0field into r710;
    add r705 r710 into r711;
    mul r706 8field into r712;
    sub r3 1u8 into r713;
    lt 12u8 r713 into r714;
    mul r1[12] r712 into r715;
    ternary r714 r715 0field into r716;
    add r711 r716 into r717;
    mul r712 8field into r718;
    sub r3 1u8 into r719;
    lt 13u8 r719 into r720;
    mul r1[13] r718 into r721;
    ternary r720 r721 0field into r722;
    add r717 r722 into r723;
    cast r723 8field into r724 as Share;
    cast r2[7] r724 into r725 as ValidatorShareData;
    mul 1field 9field into r726;
    sub r3 1u8 into r727;
    lt 0u8 r727 into r728;
    mul r1[0] r726 into r729;
    ternary r728 r729 0field into r730;
    add r33 r730 into r731;
    mul r726 9field into r732;
    sub r3 1u8 into r733;
    lt 1u8 r733 into r734;
    mul r1[1] r732 into r735;
    ternary r734 r735 0field into r736;
    add r731 r736 into r737;
    mul r732 9field into r738;
    sub r3 1u8 into r739;
    lt 2u8 r739 into r740;
    mul r1[2] r738 into r741;
    ternary r740 r741 0field into r742;
    add r737 r742 into r743;
    mul r738 9field into r744;
    sub r3 1u8 into r745;
    lt 3u8 r745 into r746;
    mul r1[3] r744 into r747;
    ternary r746 r747 0field into r748;
    add r743 r748 into r749;
    mul r744 9field into r750;
    sub r3 1u8 into r751;
    lt 4u8 r751 into r752;
    mul r1[4] r750 into r753;
    ternary r752 r753 0field into r754;
    add r749 r754 into r755;
    mul r750 9field into r756;
    sub r3 1u8 into r757;
    lt 5u8 r757 into r758;
    mul r1[5] r756 into r759;
    ternary r758 r759 0field into r760;
    add r755 r760 into r761;
    mul r756 9field into r762;
    sub r3 1u8 into r763;
    lt 6u8 r763 into r764;
    mul r1[6] r762 into r765;
    ternary r764 r765 0field into r766;
    add r761 r766 into r767;
    mul r762 9field into r768;
    sub r3 1u8 into r769;
    lt 7u8 r769 into r770;
    mul r1[7] r768 into r771;
    ternary r770 r771 0field into r772;
    add r767 r772 into r773;
    mul r768 9field into r774;
    sub r3 1u8 into r775;
    lt 8u8 r775 into r776;
    mul r1[8] r774 into r777;
    ternary r776 r777 0field into r778;
    add r773 r778 into r779;
    mul r774 9field into r780;
    sub r3 1u8 into r781;
    lt 9u8 r781 into r782;
    mul r1[9] r780 into r783;
    ternary r782 r783 0field into r784;
    add r779 r784 into r785;
    mul r780 9field into r786;
    sub r3 1u8 into r787;
    lt 10u8 r787 into r788;
    mul r1[10] r786 into r789;
    ternary r788 r789 0field into r790;
    add r785 r790 into r791;
    mul r786 9field into r792;
    sub r3 1u8 into r793;
    lt 11u8 r793 into r794;
    mul r1[11] r792 into r795;
    ternary r794 r795 0field into r796;
    add r791 r796 into r797;
    mul r792 9field into r798;
    sub r3 1u8 into r799;
    lt 12u8 r799 into r800;
    mul r1[12] r798 into r801;
    ternary r800 r801 0field into r802;
    add r797 r802 into r803;
    mul r798 9field into r804;
    sub r3 1u8 into r805;
    lt 13u8 r805 into r806;
    mul r1[13] r804 into r807;
    ternary r806 r807 0field into r808;
    add r803 r808 into r809;
    cast r809 9field into r810 as Share;
    cast r2[8] r810 into r811 as ValidatorShareData;
    mul 1field 10field into r812;
    sub r3 1u8 into r813;
    lt 0u8 r813 into r814;
    mul r1[0] r812 into r815;
    ternary r814 r815 0field into r816;
    add r33 r816 into r817;
    mul r812 10field into r818;
    sub r3 1u8 into r819;
    lt 1u8 r819 into r820;
    mul r1[1] r818 into r821;
    ternary r820 r821 0field into r822;
    add r817 r822 into r823;
    mul r818 10field into r824;
    sub r3 1u8 into r825;
    lt 2u8 r825 into r826;
    mul r1[2] r824 into r827;
    ternary r826 r827 0field into r828;
    add r823 r828 into r829;
    mul r824 10field into r830;
    sub r3 1u8 into r831;
    lt 3u8 r831 into r832;
    mul r1[3] r830 into r833;
    ternary r832 r833 0field into r834;
    add r829 r834 into r835;
    mul r830 10field into r836;
    sub r3 1u8 into r837;
    lt 4u8 r837 into r838;
    mul r1[4] r836 into r839;
    ternary r838 r839 0field into r840;
    add r835 r840 into r841;
    mul r836 10field into r842;
    sub r3 1u8 into r843;
    lt 5u8 r843 into r844;
    mul r1[5] r842 into r845;
    ternary r844 r845 0field into r846;
    add r841 r846 into r847;
    mul r842 10field into r848;
    sub r3 1u8 into r849;
    lt 6u8 r849 into r850;
    mul r1[6] r848 into r851;
    ternary r850 r851 0field into r852;
    add r847 r852 into r853;
    mul r848 10field into r854;
    sub r3 1u8 into r855;
    lt 7u8 r855 into r856;
    mul r1[7] r854 into r857;
    ternary r856 r857 0field into r858;
    add r853 r858 into r859;
    mul r854 10field into r860;
    sub r3 1u8 into r861;
    lt 8u8 r861 into r862;
    mul r1[8] r860 into r863;
    ternary r862 r863 0field into r864;
    add r859 r864 into r865;
    mul r860 10field into r866;
    sub r3 1u8 into r867;
    lt 9u8 r867 into r868;
    mul r1[9] r866 into r869;
    ternary r868 r869 0field into r870;
    add r865 r870 into r871;
    mul r866 10field into r872;
    sub r3 1u8 into r873;
    lt 10u8 r873 into r874;
    mul r1[10] r872 into r875;
    ternary r874 r875 0field into r876;
    add r871 r876 into r877;
    mul r872 10field into r878;
    sub r3 1u8 into r879;
    lt 11u8 r879 into r880;
    mul r1[11] r878 into r881;
    ternary r880 r881 0field into r882;
    add r877 r882 into r883;
    mul r878 10field into r884;
    sub r3 1u8 into r885;
    lt 12u8 r885 into r886;
    mul r1[12] r884 into r887;
    ternary r886 r887 0field into r888;
    add r883 r888 into r889;
    mul r884 10field into r890;
    sub r3 1u8 into r891;
    lt 13u8 r891 into r892;
    mul r1[13] r890 into r893;
    ternary r892 r893 0field into r894;
    add r889 r894 into r895;
    cast r895 10field into r896 as Share;
    cast r2[9] r896 into r897 as ValidatorShareData;
    mul 1field 11field into r898;
    sub r3 1u8 into r899;
    lt 0u8 r899 into r900;
    mul r1[0] r898 into r901;
    ternary r900 r901 0field into r902;
    add r33 r902 into r903;
    mul r898 11field into r904;
    sub r3 1u8 into r905;
    lt 1u8 r905 into r906;
    mul r1[1] r904 into r907;
    ternary r906 r907 0field into r908;
    add r903 r908 into r909;
    mul r904 11field into r910;
    sub r3 1u8 into r911;
    lt 2u8 r911 into r912;
    mul r1[2] r910 into r913;
    ternary r912 r913 0field into r914;
    add r909 r914 into r915;
    mul r910 11field into r916;
    sub r3 1u8 into r917;
    lt 3u8 r917 into r918;
    mul r1[3] r916 into r919;
    ternary r918 r919 0field into r920;
    add r915 r920 into r921;
    mul r916 11field into r922;
    sub r3 1u8 into r923;
    lt 4u8 r923 into r924;
    mul r1[4] r922 into r925;
    ternary r924 r925 0field into r926;
    add r921 r926 into r927;
    mul r922 11field into r928;
    sub r3 1u8 into r929;
    lt 5u8 r929 into r930;
    mul r1[5] r928 into r931;
    ternary r930 r931 0field into r932;
    add r927 r932 into r933;
    mul r928 11field into r934;
    sub r3 1u8 into r935;
    lt 6u8 r935 into r936;
    mul r1[6] r934 into r937;
    ternary r936 r937 0field into r938;
    add r933 r938 into r939;
    mul r934 11field into r940;
    sub r3 1u8 into r941;
    lt 7u8 r941 into r942;
    mul r1[7] r940 into r943;
    ternary r942 r943 0field into r944;
    add r939 r944 into r945;
    mul r940 11field into r946;
    sub r3 1u8 into r947;
    lt 8u8 r947 into r948;
    mul r1[8] r946 into r949;
    ternary r948 r949 0field into r950;
    add r945 r950 into r951;
    mul r946 11field into r952;
    sub r3 1u8 into r953;
    lt 9u8 r953 into r954;
    mul r1[9] r952 into r955;
    ternary r954 r955 0field into r956;
    add r951 r956 into r957;
    mul r952 11field into r958;
    sub r3 1u8 into r959;
    lt 10u8 r959 into r960;
    mul r1[10] r958 into r961;
    ternary r960 r961 0field into r962;
    add r957 r962 into r963;
    mul r958 11field into r964;
    sub r3 1u8 into r965;
    lt 11u8 r965 into r966;
    mul r1[11] r964 into r967;
    ternary r966 r967 0field into r968;
    add r963 r968 into r969;
    mul r964 11field into r970;
    sub r3 1u8 into r971;
    lt 12u8 r971 into r972;
    mul r1[12] r970 into r973;
    ternary r972 r973 0field into r974;
    add r969 r974 into r975;
    mul r970 11field into r976;
    sub r3 1u8 into r977;
    lt 13u8 r977 into r978;
    mul r1[13] r976 into r979;
    ternary r978 r979 0field into r980;
    add r975 r980 into r981;
    cast r981 11field into r982 as Share;
    cast r2[10] r982 into r983 as ValidatorShareData;
    mul 1field 12field into r984;
    sub r3 1u8 into r985;
    lt 0u8 r985 into r986;
    mul r1[0] r984 into r987;
    ternary r986 r987 0field into r988;
    add r33 r988 into r989;
    mul r984 12field into r990;
    sub r3 1u8 into r991;
    lt 1u8 r991 into r992;
    mul r1[1] r990 into r993;
    ternary r992 r993 0field into r994;
    add r989 r994 into r995;
    mul r990 12field into r996;
    sub r3 1u8 into r997;
    lt 2u8 r997 into r998;
    mul r1[2] r996 into r999;
    ternary r998 r999 0field into r1000;
    add r995 r1000 into r1001;
    mul r996 12field into r1002;
    sub r3 1u8 into r1003;
    lt 3u8 r1003 into r1004;
    mul r1[3] r1002 into r1005;
    ternary r1004 r1005 0field into r1006;
    add r1001 r1006 into r1007;
    mul r1002 12field into r1008;
    sub r3 1u8 into r1009;
    lt 4u8 r1009 into r1010;
    mul r1[4] r1008 into r1011;
    ternary r1010 r1011 0field into r1012;
    add r1007 r1012 into r1013;
    mul r1008 12field into r1014;
    sub r3 1u8 into r1015;
    lt 5u8 r1015 into r1016;
    mul r1[5] r1014 into r1017;
    ternary r1016 r1017 0field into r1018;
    add r1013 r1018 into r1019;
    mul r1014 12field into r1020;
    sub r3 1u8 into r1021;
    lt 6u8 r1021 into r1022;
    mul r1[6] r1020 into r1023;
    ternary r1022 r1023 0field into r1024;
    add r1019 r1024 into r1025;
    mul r1020 12field into r1026;
    sub r3 1u8 into r1027;
    lt 7u8 r1027 into r1028;
    mul r1[7] r1026 into r1029;
    ternary r1028 r1029 0field into r1030;
    add r1025 r1030 into r1031;
    mul r1026 12field into r1032;
    sub r3 1u8 into r1033;
    lt 8u8 r1033 into r1034;
    mul r1[8] r1032 into r1035;
    ternary r1034 r1035 0field into r1036;
    add r1031 r1036 into r1037;
    mul r1032 12field into r1038;
    sub r3 1u8 into r1039;
    lt 9u8 r1039 into r1040;
    mul r1[9] r1038 into r1041;
    ternary r1040 r1041 0field into r1042;
    add r1037 r1042 into r1043;
    mul r1038 12field into r1044;
    sub r3 1u8 into r1045;
    lt 10u8 r1045 into r1046;
    mul r1[10] r1044 into r1047;
    ternary r1046 r1047 0field into r1048;
    add r1043 r1048 into r1049;
    mul r1044 12field into r1050;
    sub r3 1u8 into r1051;
    lt 11u8 r1051 into r1052;
    mul r1[11] r1050 into r1053;
    ternary r1052 r1053 0field into r1054;
    add r1049 r1054 into r1055;
    mul r1050 12field into r1056;
    sub r3 1u8 into r1057;
    lt 12u8 r1057 into r1058;
    mul r1[12] r1056 into r1059;
    ternary r1058 r1059 0field into r1060;
    add r1055 r1060 into r1061;
    mul r1056 12field into r1062;
    sub r3 1u8 into r1063;
    lt 13u8 r1063 into r1064;
    mul r1[13] r1062 into r1065;
    ternary r1064 r1065 0field into r1066;
    add r1061 r1066 into r1067;
    cast r1067 12field into r1068 as Share;
    cast r2[11] r1068 into r1069 as ValidatorShareData;
    mul 1field 13field into r1070;
    sub r3 1u8 into r1071;
    lt 0u8 r1071 into r1072;
    mul r1[0] r1070 into r1073;
    ternary r1072 r1073 0field into r1074;
    add r33 r1074 into r1075;
    mul r1070 13field into r1076;
    sub r3 1u8 into r1077;
    lt 1u8 r1077 into r1078;
    mul r1[1] r1076 into r1079;
    ternary r1078 r1079 0field into r1080;
    add r1075 r1080 into r1081;
    mul r1076 13field into r1082;
    sub r3 1u8 into r1083;
    lt 2u8 r1083 into r1084;
    mul r1[2] r1082 into r1085;
    ternary r1084 r1085 0field into r1086;
    add r1081 r1086 into r1087;
    mul r1082 13field into r1088;
    sub r3 1u8 into r1089;
    lt 3u8 r1089 into r1090;
    mul r1[3] r1088 into r1091;
    ternary r1090 r1091 0field into r1092;
    add r1087 r1092 into r1093;
    mul r1088 13field into r1094;
    sub r3 1u8 into r1095;
    lt 4u8 r1095 into r1096;
    mul r1[4] r1094 into r1097;
    ternary r1096 r1097 0field into r1098;
    add r1093 r1098 into r1099;
    mul r1094 13field into r1100;
    sub r3 1u8 into r1101;
    lt 5u8 r1101 into r1102;
    mul r1[5] r1100 into r1103;
    ternary r1102 r1103 0field into r1104;
    add r1099 r1104 into r1105;
    mul r1100 13field into r1106;
    sub r3 1u8 into r1107;
    lt 6u8 r1107 into r1108;
    mul r1[6] r1106 into r1109;
    ternary r1108 r1109 0field into r1110;
    add r1105 r1110 into r1111;
    mul r1106 13field into r1112;
    sub r3 1u8 into r1113;
    lt 7u8 r1113 into r1114;
    mul r1[7] r1112 into r1115;
    ternary r1114 r1115 0field into r1116;
    add r1111 r1116 into r1117;
    mul r1112 13field into r1118;
    sub r3 1u8 into r1119;
    lt 8u8 r1119 into r1120;
    mul r1[8] r1118 into r1121;
    ternary r1120 r1121 0field into r1122;
    add r1117 r1122 into r1123;
    mul r1118 13field into r1124;
    sub r3 1u8 into r1125;
    lt 9u8 r1125 into r1126;
    mul r1[9] r1124 into r1127;
    ternary r1126 r1127 0field into r1128;
    add r1123 r1128 into r1129;
    mul r1124 13field into r1130;
    sub r3 1u8 into r1131;
    lt 10u8 r1131 into r1132;
    mul r1[10] r1130 into r1133;
    ternary r1132 r1133 0field into r1134;
    add r1129 r1134 into r1135;
    mul r1130 13field into r1136;
    sub r3 1u8 into r1137;
    lt 11u8 r1137 into r1138;
    mul r1[11] r1136 into r1139;
    ternary r1138 r1139 0field into r1140;
    add r1135 r1140 into r1141;
    mul r1136 13field into r1142;
    sub r3 1u8 into r1143;
    lt 12u8 r1143 into r1144;
    mul r1[12] r1142 into r1145;
    ternary r1144 r1145 0field into r1146;
    add r1141 r1146 into r1147;
    mul r1142 13field into r1148;
    sub r3 1u8 into r1149;
    lt 13u8 r1149 into r1150;
    mul r1[13] r1148 into r1151;
    ternary r1150 r1151 0field into r1152;
    add r1147 r1152 into r1153;
    cast r1153 13field into r1154 as Share;
    cast r2[12] r1154 into r1155 as ValidatorShareData;
    mul 1field 14field into r1156;
    sub r3 1u8 into r1157;
    lt 0u8 r1157 into r1158;
    mul r1[0] r1156 into r1159;
    ternary r1158 r1159 0field into r1160;
    add r33 r1160 into r1161;
    mul r1156 14field into r1162;
    sub r3 1u8 into r1163;
    lt 1u8 r1163 into r1164;
    mul r1[1] r1162 into r1165;
    ternary r1164 r1165 0field into r1166;
    add r1161 r1166 into r1167;
    mul r1162 14field into r1168;
    sub r3 1u8 into r1169;
    lt 2u8 r1169 into r1170;
    mul r1[2] r1168 into r1171;
    ternary r1170 r1171 0field into r1172;
    add r1167 r1172 into r1173;
    mul r1168 14field into r1174;
    sub r3 1u8 into r1175;
    lt 3u8 r1175 into r1176;
    mul r1[3] r1174 into r1177;
    ternary r1176 r1177 0field into r1178;
    add r1173 r1178 into r1179;
    mul r1174 14field into r1180;
    sub r3 1u8 into r1181;
    lt 4u8 r1181 into r1182;
    mul r1[4] r1180 into r1183;
    ternary r1182 r1183 0field into r1184;
    add r1179 r1184 into r1185;
    mul r1180 14field into r1186;
    sub r3 1u8 into r1187;
    lt 5u8 r1187 into r1188;
    mul r1[5] r1186 into r1189;
    ternary r1188 r1189 0field into r1190;
    add r1185 r1190 into r1191;
    mul r1186 14field into r1192;
    sub r3 1u8 into r1193;
    lt 6u8 r1193 into r1194;
    mul r1[6] r1192 into r1195;
    ternary r1194 r1195 0field into r1196;
    add r1191 r1196 into r1197;
    mul r1192 14field into r1198;
    sub r3 1u8 into r1199;
    lt 7u8 r1199 into r1200;
    mul r1[7] r1198 into r1201;
    ternary r1200 r1201 0field into r1202;
    add r1197 r1202 into r1203;
    mul r1198 14field into r1204;
    sub r3 1u8 into r1205;
    lt 8u8 r1205 into r1206;
    mul r1[8] r1204 into r1207;
    ternary r1206 r1207 0field into r1208;
    add r1203 r1208 into r1209;
    mul r1204 14field into r1210;
    sub r3 1u8 into r1211;
    lt 9u8 r1211 into r1212;
    mul r1[9] r1210 into r1213;
    ternary r1212 r1213 0field into r1214;
    add r1209 r1214 into r1215;
    mul r1210 14field into r1216;
    sub r3 1u8 into r1217;
    lt 10u8 r1217 into r1218;
    mul r1[10] r1216 into r1219;
    ternary r1218 r1219 0field into r1220;
    add r1215 r1220 into r1221;
    mul r1216 14field into r1222;
    sub r3 1u8 into r1223;
    lt 11u8 r1223 into r1224;
    mul r1[11] r1222 into r1225;
    ternary r1224 r1225 0field into r1226;
    add r1221 r1226 into r1227;
    mul r1222 14field into r1228;
    sub r3 1u8 into r1229;
    lt 12u8 r1229 into r1230;
    mul r1[12] r1228 into r1231;
    ternary r1230 r1231 0field into r1232;
    add r1227 r1232 into r1233;
    mul r1228 14field into r1234;
    sub r3 1u8 into r1235;
    lt 13u8 r1235 into r1236;
    mul r1[13] r1234 into r1237;
    ternary r1236 r1237 0field into r1238;
    add r1233 r1238 into r1239;
    cast r1239 14field into r1240 as Share;
    cast r2[13] r1240 into r1241 as ValidatorShareData;
    mul 1field 15field into r1242;
    sub r3 1u8 into r1243;
    lt 0u8 r1243 into r1244;
    mul r1[0] r1242 into r1245;
    ternary r1244 r1245 0field into r1246;
    add r33 r1246 into r1247;
    mul r1242 15field into r1248;
    sub r3 1u8 into r1249;
    lt 1u8 r1249 into r1250;
    mul r1[1] r1248 into r1251;
    ternary r1250 r1251 0field into r1252;
    add r1247 r1252 into r1253;
    mul r1248 15field into r1254;
    sub r3 1u8 into r1255;
    lt 2u8 r1255 into r1256;
    mul r1[2] r1254 into r1257;
    ternary r1256 r1257 0field into r1258;
    add r1253 r1258 into r1259;
    mul r1254 15field into r1260;
    sub r3 1u8 into r1261;
    lt 3u8 r1261 into r1262;
    mul r1[3] r1260 into r1263;
    ternary r1262 r1263 0field into r1264;
    add r1259 r1264 into r1265;
    mul r1260 15field into r1266;
    sub r3 1u8 into r1267;
    lt 4u8 r1267 into r1268;
    mul r1[4] r1266 into r1269;
    ternary r1268 r1269 0field into r1270;
    add r1265 r1270 into r1271;
    mul r1266 15field into r1272;
    sub r3 1u8 into r1273;
    lt 5u8 r1273 into r1274;
    mul r1[5] r1272 into r1275;
    ternary r1274 r1275 0field into r1276;
    add r1271 r1276 into r1277;
    mul r1272 15field into r1278;
    sub r3 1u8 into r1279;
    lt 6u8 r1279 into r1280;
    mul r1[6] r1278 into r1281;
    ternary r1280 r1281 0field into r1282;
    add r1277 r1282 into r1283;
    mul r1278 15field into r1284;
    sub r3 1u8 into r1285;
    lt 7u8 r1285 into r1286;
    mul r1[7] r1284 into r1287;
    ternary r1286 r1287 0field into r1288;
    add r1283 r1288 into r1289;
    mul r1284 15field into r1290;
    sub r3 1u8 into r1291;
    lt 8u8 r1291 into r1292;
    mul r1[8] r1290 into r1293;
    ternary r1292 r1293 0field into r1294;
    add r1289 r1294 into r1295;
    mul r1290 15field into r1296;
    sub r3 1u8 into r1297;
    lt 9u8 r1297 into r1298;
    mul r1[9] r1296 into r1299;
    ternary r1298 r1299 0field into r1300;
    add r1295 r1300 into r1301;
    mul r1296 15field into r1302;
    sub r3 1u8 into r1303;
    lt 10u8 r1303 into r1304;
    mul r1[10] r1302 into r1305;
    ternary r1304 r1305 0field into r1306;
    add r1301 r1306 into r1307;
    mul r1302 15field into r1308;
    sub r3 1u8 into r1309;
    lt 11u8 r1309 into r1310;
    mul r1[11] r1308 into r1311;
    ternary r1310 r1311 0field into r1312;
    add r1307 r1312 into r1313;
    mul r1308 15field into r1314;
    sub r3 1u8 into r1315;
    lt 12u8 r1315 into r1316;
    mul r1[12] r1314 into r1317;
    ternary r1316 r1317 0field into r1318;
    add r1313 r1318 into r1319;
    mul r1314 15field into r1320;
    sub r3 1u8 into r1321;
    lt 13u8 r1321 into r1322;
    mul r1[13] r1320 into r1323;
    ternary r1322 r1323 0field into r1324;
    add r1319 r1324 into r1325;
    cast r1325 15field into r1326 as Share;
    cast r2[14] r1326 into r1327 as ValidatorShareData;
    mul 1field 16field into r1328;
    sub r3 1u8 into r1329;
    lt 0u8 r1329 into r1330;
    mul r1[0] r1328 into r1331;
    ternary r1330 r1331 0field into r1332;
    add r33 r1332 into r1333;
    mul r1328 16field into r1334;
    sub r3 1u8 into r1335;
    lt 1u8 r1335 into r1336;
    mul r1[1] r1334 into r1337;
    ternary r1336 r1337 0field into r1338;
    add r1333 r1338 into r1339;
    mul r1334 16field into r1340;
    sub r3 1u8 into r1341;
    lt 2u8 r1341 into r1342;
    mul r1[2] r1340 into r1343;
    ternary r1342 r1343 0field into r1344;
    add r1339 r1344 into r1345;
    mul r1340 16field into r1346;
    sub r3 1u8 into r1347;
    lt 3u8 r1347 into r1348;
    mul r1[3] r1346 into r1349;
    ternary r1348 r1349 0field into r1350;
    add r1345 r1350 into r1351;
    mul r1346 16field into r1352;
    sub r3 1u8 into r1353;
    lt 4u8 r1353 into r1354;
    mul r1[4] r1352 into r1355;
    ternary r1354 r1355 0field into r1356;
    add r1351 r1356 into r1357;
    mul r1352 16field into r1358;
    sub r3 1u8 into r1359;
    lt 5u8 r1359 into r1360;
    mul r1[5] r1358 into r1361;
    ternary r1360 r1361 0field into r1362;
    add r1357 r1362 into r1363;
    mul r1358 16field into r1364;
    sub r3 1u8 into r1365;
    lt 6u8 r1365 into r1366;
    mul r1[6] r1364 into r1367;
    ternary r1366 r1367 0field into r1368;
    add r1363 r1368 into r1369;
    mul r1364 16field into r1370;
    sub r3 1u8 into r1371;
    lt 7u8 r1371 into r1372;
    mul r1[7] r1370 into r1373;
    ternary r1372 r1373 0field into r1374;
    add r1369 r1374 into r1375;
    mul r1370 16field into r1376;
    sub r3 1u8 into r1377;
    lt 8u8 r1377 into r1378;
    mul r1[8] r1376 into r1379;
    ternary r1378 r1379 0field into r1380;
    add r1375 r1380 into r1381;
    mul r1376 16field into r1382;
    sub r3 1u8 into r1383;
    lt 9u8 r1383 into r1384;
    mul r1[9] r1382 into r1385;
    ternary r1384 r1385 0field into r1386;
    add r1381 r1386 into r1387;
    mul r1382 16field into r1388;
    sub r3 1u8 into r1389;
    lt 10u8 r1389 into r1390;
    mul r1[10] r1388 into r1391;
    ternary r1390 r1391 0field into r1392;
    add r1387 r1392 into r1393;
    mul r1388 16field into r1394;
    sub r3 1u8 into r1395;
    lt 11u8 r1395 into r1396;
    mul r1[11] r1394 into r1397;
    ternary r1396 r1397 0field into r1398;
    add r1393 r1398 into r1399;
    mul r1394 16field into r1400;
    sub r3 1u8 into r1401;
    lt 12u8 r1401 into r1402;
    mul r1[12] r1400 into r1403;
    ternary r1402 r1403 0field into r1404;
    add r1399 r1404 into r1405;
    mul r1400 16field into r1406;
    sub r3 1u8 into r1407;
    lt 13u8 r1407 into r1408;
    mul r1[13] r1406 into r1409;
    ternary r1408 r1409 0field into r1410;
    add r1405 r1410 into r1411;
    cast r1411 16field into r1412 as Share;
    cast r2[15] r1412 into r1413 as ValidatorShareData;
    cast r123 r209 r295 r381 r467 r553 r639 r725 r811 r897 r983 r1069 r1155 r1241 r1327 r1413 into r1414 as [ValidatorShareData; 16u32];
    call protocol_transfers.aleo/submit_shares_to_validators r1414 r36 into r1415 r1416 r1417 r1418 r1419 r1420 r1421 r1422 r1423 r1424 r1425 r1426 r1427 r1428 r1429 r1430;
    call protocol_core.aleo/custody_data_as_program r37 r2 into r1431;
    async custody_data_as_program r1431 into r1432;
    output r1432 as secret_custody_protocol.aleo/custody_data_as_program.future;
finalize custody_data_as_program:
    input r0 as protocol_core.aleo/custody_data_as_program.future;
    await r0;

function request_data_as_program:
    input r0 as address.private;
    input r1 as address.private;
    input r2 as u8.private;
    input r3 as [address; 16u32].public;
    input r4 as u64.public;
    input r5 as credits.aleo/credits.record;
    assert.neq self.caller self.signer;
    cast self.caller r0 r2 into r6 as Custody;
    hash.bhp256 r6 into r7 as field;
    cast r3[0] r3[1] r3[2] r3[3] r3[4] r3[5] r3[6] r3[7] r3[8] r3[9] r3[10] r3[11] r3[12] r3[13] r3[14] r3[15] into r8 as [address; 16u32];
    call protocol_transfers.aleo/submit_requests_to_validators r8 r7 r1 into r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24;
    cast r2 into r25 as u64;
    mul r25 r4 into r26;
    call credits.aleo/transfer_private_to_public r5 secret_custody_protocol.aleo r26 into r27 r28;
    call protocol_core.aleo/request_data_as_program r7 r3 r4 into r29;
    async request_data_as_program r29 r28 into r30;
    output r27 as credits.aleo/credits.record;
    output r30 as secret_custody_protocol.aleo/request_data_as_program.future;
finalize request_data_as_program:
    input r0 as protocol_core.aleo/request_data_as_program.future;
    input r1 as credits.aleo/transfer_private_to_public.future;
    await r0;
    await r1;

function assert_completed_as_program:
    input r0 as address.private;
    input r1 as u8.public;
    assert.neq self.caller self.signer;
    cast self.caller r0 r1 into r2 as Custody;
    hash.bhp256 r2 into r3 as field;
    async assert_completed_as_program r3 r1 into r4;
    output r4 as secret_custody_protocol.aleo/assert_completed_as_program.future;
finalize assert_completed_as_program:
    input r0 as field.public;
    input r1 as u8.public;
    get protocol_core.aleo/custodies[r0] into r2;
    gte r2.submitted_shares r1 into r3;
    assert.eq r3 true;

Block heightTimestampTransition IDFunction callState
Program has no mappings.
Not implemented