// ************************************************************************** //
//                                                                            //
//    eses                   eses                                             //
//   eses                     eses                                            //
//  eses    eseses  esesese    eses   Embedded Systems Group                  //
//  ese    ese  ese ese         ese                                           //
//  ese    eseseses eseseses    ese   Department of Computer Science          //
//  eses   eses          ese   eses                                           //
//   eses   eseses  eseseses  eses    University of Kaiserslautern            //
//    eses                   eses                                             //
//                                                                            //
// ************************************************************************** //


nat x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62,x63,x64,x65,x66,x67,x68,x69,x70,x71,x72,x73,x74,x75,x76,x77,x78,x79,x80,x81,x82,x83,x84,x85,x86,x87,x88,x89,x90,x91,x92,x93,x94,x95,x96,x97,x98,x99,x100,x101,x102,x103,x104,x105,x106,x107,x108,x109,x110,x111,x112,x113,x114,x115,x116,x117,x118,x119,x120,x121,x122,x123,x124,x125,x126,x127,x128,x129,x130,x131,x132,x133,x134,x135,x136,x137,x138,x139,x140,x141,x142,x143,x144,x145,x146,x147,x148,x149,x150,x151,x152,x153,x154,x155,x156,x157,x158,x159,x160,x161,x162,x163,x164,x165,x166,x167,x168,x169,x170,x171,x172,x173,x174,x175,x176,x177,x178,x179,x180,x181,x182,x183,x184,x185,x186,x187,x188,x189,x190,x191,x192,x193,x194,x195,x196,x197,x198,x199,x200,x201,x202,x203,x204,x205,x206,x207,x208,x209,x210,x211,x212,x213,x214,x215,x216,x217,x218,x219,x220,x221,x222,x223,x224,x225,x226,x227,x228,x229,x230,x231,x232,x233,x234,x235,x236,x237,x238,x239,x240,x241,x242,x243,x244,x245,x246,x247,x248,x249,x250,x251,x252,x253,x254,x255;
nat y0,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31,y32,y33,y34,y35,y36,y37,y38,y39,y40,y41,y42,y43,y44,y45,y46,y47,y48,y49,y50,y51,y52,y53,y54,y55,y56,y57,y58,y59,y60,y61,y62,y63,y64,y65,y66,y67,y68,y69,y70,y71,y72,y73,y74,y75,y76,y77,y78,y79,y80,y81,y82,y83,y84,y85,y86,y87,y88,y89,y90,y91,y92,y93,y94,y95,y96,y97,y98,y99,y100,y101,y102,y103,y104,y105,y106,y107,y108,y109,y110,y111,y112,y113,y114,y115,y116,y117,y118,y119,y120,y121,y122,y123,y124,y125,y126,y127,y128,y129,y130,y131,y132,y133,y134,y135,y136,y137,y138,y139,y140,y141,y142,y143,y144,y145,y146,y147,y148,y149,y150,y151,y152,y153,y154,y155,y156,y157,y158,y159,y160,y161,y162,y163,y164,y165,y166,y167,y168,y169,y170,y171,y172,y173,y174,y175,y176,y177,y178,y179,y180,y181,y182,y183,y184,y185,y186,y187,y188,y189,y190,y191,y192,y193,y194,y195,y196,y197,y198,y199,y200,y201,y202,y203,y204,y205,y206,y207,y208,y209,y210,y211,y212,y213,y214,y215,y216,y217,y218,y219,y220,y221,y222,y223,y224,y225,y226,y227,y228,y229,y230,y231,y232,y233,y234,y235,y236,y237,y238,y239,y240,y241,y242,y243,y244,y245,y246,y247,y248,y249,y250,y251,y252,y253,y254,y255;
nat s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s20,s21,s22,s23,s24,s25,s26,s27,s28,s29,s30,s31,s32,s33,s34,s35,s36,s37,s38,s39,s40,s41,s42,s43,s44,s45,s46,s47,s48,s49,s50,s51,s52,s53,s54,s55,s56,s57,s58,s59,s60,s61,s62,s63,s64,s65,s66,s67,s68,s69,s70,s71,s72,s73,s74,s75,s76,s77,s78,s79,s80,s81,s82,s83,s84,s85,s86,s87,s88,s89,s90,s91,s92,s93,s94,s95,s96,s97,s98,s99,s100,s101,s102,s103,s104,s105,s106,s107,s108,s109,s110,s111,s112,s113,s114,s115,s116,s117,s118,s119,s120,s121,s122,s123,s124,s125,s126,s127,s128,s129,s130,s131,s132,s133,s134,s135,s136,s137,s138,s139,s140,s141,s142,s143,s144,s145,s146,s147,s148,s149,s150,s151,s152,s153,s154,s155,s156,s157,s158,s159,s160,s161,s162,s163,s164,s165,s166,s167,s168,s169,s170,s171,s172,s173,s174,s175,s176,s177,s178,s179,s180,s181,s182,s183,s184,s185,s186,s187,s188,s189,s190,s191,s192,s193,s194,s195,s196,s197,s198,s199,s200,s201,s202,s203,s204,s205,s206,s207,s208,s209,s210,s211,s212,s213,s214,s215,s216,s217,s218,s219,s220,s221,s222,s223,s224,s225,s226,s227,s228,s229,s230,s231,s232,s233,s234,s235,s236,s237,s238,s239,s240,s241,s242,s243,s244,s245,s246,s247,s248,s249,s250,s251,s252,s253,s254,s255,s256;

thread RadixBAddCarryLookahead256 {
    bool g0,g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,g11,g12,g13,g14,g15,g16,g17,g18,g19,g20,g21,g22,g23,g24,g25,g26,g27,g28,g29,g30,g31,g32,g33,g34,g35,g36,g37,g38,g39,g40,g41,g42,g43,g44,g45,g46,g47,g48,g49,g50,g51,g52,g53,g54,g55,g56,g57,g58,g59,g60,g61,g62,g63,g64,g65,g66,g67,g68,g69,g70,g71,g72,g73,g74,g75,g76,g77,g78,g79,g80,g81,g82,g83,g84,g85,g86,g87,g88,g89,g90,g91,g92,g93,g94,g95,g96,g97,g98,g99,g100,g101,g102,g103,g104,g105,g106,g107,g108,g109,g110,g111,g112,g113,g114,g115,g116,g117,g118,g119,g120,g121,g122,g123,g124,g125,g126,g127,g128,g129,g130,g131,g132,g133,g134,g135,g136,g137,g138,g139,g140,g141,g142,g143,g144,g145,g146,g147,g148,g149,g150,g151,g152,g153,g154,g155,g156,g157,g158,g159,g160,g161,g162,g163,g164,g165,g166,g167,g168,g169,g170,g171,g172,g173,g174,g175,g176,g177,g178,g179,g180,g181,g182,g183,g184,g185,g186,g187,g188,g189,g190,g191,g192,g193,g194,g195,g196,g197,g198,g199,g200,g201,g202,g203,g204,g205,g206,g207,g208,g209,g210,g211,g212,g213,g214,g215,g216,g217,g218,g219,g220,g221,g222,g223,g224,g225,g226,g227,g228,g229,g230,g231,g232,g233,g234,g235,g236,g237,g238,g239,g240,g241,g242,g243,g244,g245,g246,g247,g248,g249,g250,g251,g252,g253,g254,g255;
    bool p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100,p101,p102,p103,p104,p105,p106,p107,p108,p109,p110,p111,p112,p113,p114,p115,p116,p117,p118,p119,p120,p121,p122,p123,p124,p125,p126,p127,p128,p129,p130,p131,p132,p133,p134,p135,p136,p137,p138,p139,p140,p141,p142,p143,p144,p145,p146,p147,p148,p149,p150,p151,p152,p153,p154,p155,p156,p157,p158,p159,p160,p161,p162,p163,p164,p165,p166,p167,p168,p169,p170,p171,p172,p173,p174,p175,p176,p177,p178,p179,p180,p181,p182,p183,p184,p185,p186,p187,p188,p189,p190,p191,p192,p193,p194,p195,p196,p197,p198,p199,p200,p201,p202,p203,p204,p205,p206,p207,p208,p209,p210,p211,p212,p213,p214,p215,p216,p217,p218,p219,p220,p221,p222,p223,p224,p225,p226,p227,p228,p229,p230,p231,p232,p233,p234,p235,p236,p237,p238,p239,p240,p241,p242,p243,p244,p245,p246,p247,p248,p249,p250,p251,p252,p253,p254,p255;
    // preliminary sum digits
    s0 = x0 + y0;
    s1 = x1 + y1;
    s2 = x2 + y2;
    s3 = x3 + y3;
    s4 = x4 + y4;
    s5 = x5 + y5;
    s6 = x6 + y6;
    s7 = x7 + y7;
    s8 = x8 + y8;
    s9 = x9 + y9;
    s10 = x10 + y10;
    s11 = x11 + y11;
    s12 = x12 + y12;
    s13 = x13 + y13;
    s14 = x14 + y14;
    s15 = x15 + y15;
    s16 = x16 + y16;
    s17 = x17 + y17;
    s18 = x18 + y18;
    s19 = x19 + y19;
    s20 = x20 + y20;
    s21 = x21 + y21;
    s22 = x22 + y22;
    s23 = x23 + y23;
    s24 = x24 + y24;
    s25 = x25 + y25;
    s26 = x26 + y26;
    s27 = x27 + y27;
    s28 = x28 + y28;
    s29 = x29 + y29;
    s30 = x30 + y30;
    s31 = x31 + y31;
    s32 = x32 + y32;
    s33 = x33 + y33;
    s34 = x34 + y34;
    s35 = x35 + y35;
    s36 = x36 + y36;
    s37 = x37 + y37;
    s38 = x38 + y38;
    s39 = x39 + y39;
    s40 = x40 + y40;
    s41 = x41 + y41;
    s42 = x42 + y42;
    s43 = x43 + y43;
    s44 = x44 + y44;
    s45 = x45 + y45;
    s46 = x46 + y46;
    s47 = x47 + y47;
    s48 = x48 + y48;
    s49 = x49 + y49;
    s50 = x50 + y50;
    s51 = x51 + y51;
    s52 = x52 + y52;
    s53 = x53 + y53;
    s54 = x54 + y54;
    s55 = x55 + y55;
    s56 = x56 + y56;
    s57 = x57 + y57;
    s58 = x58 + y58;
    s59 = x59 + y59;
    s60 = x60 + y60;
    s61 = x61 + y61;
    s62 = x62 + y62;
    s63 = x63 + y63;
    s64 = x64 + y64;
    s65 = x65 + y65;
    s66 = x66 + y66;
    s67 = x67 + y67;
    s68 = x68 + y68;
    s69 = x69 + y69;
    s70 = x70 + y70;
    s71 = x71 + y71;
    s72 = x72 + y72;
    s73 = x73 + y73;
    s74 = x74 + y74;
    s75 = x75 + y75;
    s76 = x76 + y76;
    s77 = x77 + y77;
    s78 = x78 + y78;
    s79 = x79 + y79;
    s80 = x80 + y80;
    s81 = x81 + y81;
    s82 = x82 + y82;
    s83 = x83 + y83;
    s84 = x84 + y84;
    s85 = x85 + y85;
    s86 = x86 + y86;
    s87 = x87 + y87;
    s88 = x88 + y88;
    s89 = x89 + y89;
    s90 = x90 + y90;
    s91 = x91 + y91;
    s92 = x92 + y92;
    s93 = x93 + y93;
    s94 = x94 + y94;
    s95 = x95 + y95;
    s96 = x96 + y96;
    s97 = x97 + y97;
    s98 = x98 + y98;
    s99 = x99 + y99;
    s100 = x100 + y100;
    s101 = x101 + y101;
    s102 = x102 + y102;
    s103 = x103 + y103;
    s104 = x104 + y104;
    s105 = x105 + y105;
    s106 = x106 + y106;
    s107 = x107 + y107;
    s108 = x108 + y108;
    s109 = x109 + y109;
    s110 = x110 + y110;
    s111 = x111 + y111;
    s112 = x112 + y112;
    s113 = x113 + y113;
    s114 = x114 + y114;
    s115 = x115 + y115;
    s116 = x116 + y116;
    s117 = x117 + y117;
    s118 = x118 + y118;
    s119 = x119 + y119;
    s120 = x120 + y120;
    s121 = x121 + y121;
    s122 = x122 + y122;
    s123 = x123 + y123;
    s124 = x124 + y124;
    s125 = x125 + y125;
    s126 = x126 + y126;
    s127 = x127 + y127;
    s128 = x128 + y128;
    s129 = x129 + y129;
    s130 = x130 + y130;
    s131 = x131 + y131;
    s132 = x132 + y132;
    s133 = x133 + y133;
    s134 = x134 + y134;
    s135 = x135 + y135;
    s136 = x136 + y136;
    s137 = x137 + y137;
    s138 = x138 + y138;
    s139 = x139 + y139;
    s140 = x140 + y140;
    s141 = x141 + y141;
    s142 = x142 + y142;
    s143 = x143 + y143;
    s144 = x144 + y144;
    s145 = x145 + y145;
    s146 = x146 + y146;
    s147 = x147 + y147;
    s148 = x148 + y148;
    s149 = x149 + y149;
    s150 = x150 + y150;
    s151 = x151 + y151;
    s152 = x152 + y152;
    s153 = x153 + y153;
    s154 = x154 + y154;
    s155 = x155 + y155;
    s156 = x156 + y156;
    s157 = x157 + y157;
    s158 = x158 + y158;
    s159 = x159 + y159;
    s160 = x160 + y160;
    s161 = x161 + y161;
    s162 = x162 + y162;
    s163 = x163 + y163;
    s164 = x164 + y164;
    s165 = x165 + y165;
    s166 = x166 + y166;
    s167 = x167 + y167;
    s168 = x168 + y168;
    s169 = x169 + y169;
    s170 = x170 + y170;
    s171 = x171 + y171;
    s172 = x172 + y172;
    s173 = x173 + y173;
    s174 = x174 + y174;
    s175 = x175 + y175;
    s176 = x176 + y176;
    s177 = x177 + y177;
    s178 = x178 + y178;
    s179 = x179 + y179;
    s180 = x180 + y180;
    s181 = x181 + y181;
    s182 = x182 + y182;
    s183 = x183 + y183;
    s184 = x184 + y184;
    s185 = x185 + y185;
    s186 = x186 + y186;
    s187 = x187 + y187;
    s188 = x188 + y188;
    s189 = x189 + y189;
    s190 = x190 + y190;
    s191 = x191 + y191;
    s192 = x192 + y192;
    s193 = x193 + y193;
    s194 = x194 + y194;
    s195 = x195 + y195;
    s196 = x196 + y196;
    s197 = x197 + y197;
    s198 = x198 + y198;
    s199 = x199 + y199;
    s200 = x200 + y200;
    s201 = x201 + y201;
    s202 = x202 + y202;
    s203 = x203 + y203;
    s204 = x204 + y204;
    s205 = x205 + y205;
    s206 = x206 + y206;
    s207 = x207 + y207;
    s208 = x208 + y208;
    s209 = x209 + y209;
    s210 = x210 + y210;
    s211 = x211 + y211;
    s212 = x212 + y212;
    s213 = x213 + y213;
    s214 = x214 + y214;
    s215 = x215 + y215;
    s216 = x216 + y216;
    s217 = x217 + y217;
    s218 = x218 + y218;
    s219 = x219 + y219;
    s220 = x220 + y220;
    s221 = x221 + y221;
    s222 = x222 + y222;
    s223 = x223 + y223;
    s224 = x224 + y224;
    s225 = x225 + y225;
    s226 = x226 + y226;
    s227 = x227 + y227;
    s228 = x228 + y228;
    s229 = x229 + y229;
    s230 = x230 + y230;
    s231 = x231 + y231;
    s232 = x232 + y232;
    s233 = x233 + y233;
    s234 = x234 + y234;
    s235 = x235 + y235;
    s236 = x236 + y236;
    s237 = x237 + y237;
    s238 = x238 + y238;
    s239 = x239 + y239;
    s240 = x240 + y240;
    s241 = x241 + y241;
    s242 = x242 + y242;
    s243 = x243 + y243;
    s244 = x244 + y244;
    s245 = x245 + y245;
    s246 = x246 + y246;
    s247 = x247 + y247;
    s248 = x248 + y248;
    s249 = x249 + y249;
    s250 = x250 + y250;
    s251 = x251 + y251;
    s252 = x252 + y252;
    s253 = x253 + y253;
    s254 = x254 + y254;
    s255 = x255 + y255;
    // initial generate conditions
    g0 = s0>255;
    g1 = s1>255;
    g2 = s2>255;
    g3 = s3>255;
    g4 = s4>255;
    g5 = s5>255;
    g6 = s6>255;
    g7 = s7>255;
    g8 = s8>255;
    g9 = s9>255;
    g10 = s10>255;
    g11 = s11>255;
    g12 = s12>255;
    g13 = s13>255;
    g14 = s14>255;
    g15 = s15>255;
    g16 = s16>255;
    g17 = s17>255;
    g18 = s18>255;
    g19 = s19>255;
    g20 = s20>255;
    g21 = s21>255;
    g22 = s22>255;
    g23 = s23>255;
    g24 = s24>255;
    g25 = s25>255;
    g26 = s26>255;
    g27 = s27>255;
    g28 = s28>255;
    g29 = s29>255;
    g30 = s30>255;
    g31 = s31>255;
    g32 = s32>255;
    g33 = s33>255;
    g34 = s34>255;
    g35 = s35>255;
    g36 = s36>255;
    g37 = s37>255;
    g38 = s38>255;
    g39 = s39>255;
    g40 = s40>255;
    g41 = s41>255;
    g42 = s42>255;
    g43 = s43>255;
    g44 = s44>255;
    g45 = s45>255;
    g46 = s46>255;
    g47 = s47>255;
    g48 = s48>255;
    g49 = s49>255;
    g50 = s50>255;
    g51 = s51>255;
    g52 = s52>255;
    g53 = s53>255;
    g54 = s54>255;
    g55 = s55>255;
    g56 = s56>255;
    g57 = s57>255;
    g58 = s58>255;
    g59 = s59>255;
    g60 = s60>255;
    g61 = s61>255;
    g62 = s62>255;
    g63 = s63>255;
    g64 = s64>255;
    g65 = s65>255;
    g66 = s66>255;
    g67 = s67>255;
    g68 = s68>255;
    g69 = s69>255;
    g70 = s70>255;
    g71 = s71>255;
    g72 = s72>255;
    g73 = s73>255;
    g74 = s74>255;
    g75 = s75>255;
    g76 = s76>255;
    g77 = s77>255;
    g78 = s78>255;
    g79 = s79>255;
    g80 = s80>255;
    g81 = s81>255;
    g82 = s82>255;
    g83 = s83>255;
    g84 = s84>255;
    g85 = s85>255;
    g86 = s86>255;
    g87 = s87>255;
    g88 = s88>255;
    g89 = s89>255;
    g90 = s90>255;
    g91 = s91>255;
    g92 = s92>255;
    g93 = s93>255;
    g94 = s94>255;
    g95 = s95>255;
    g96 = s96>255;
    g97 = s97>255;
    g98 = s98>255;
    g99 = s99>255;
    g100 = s100>255;
    g101 = s101>255;
    g102 = s102>255;
    g103 = s103>255;
    g104 = s104>255;
    g105 = s105>255;
    g106 = s106>255;
    g107 = s107>255;
    g108 = s108>255;
    g109 = s109>255;
    g110 = s110>255;
    g111 = s111>255;
    g112 = s112>255;
    g113 = s113>255;
    g114 = s114>255;
    g115 = s115>255;
    g116 = s116>255;
    g117 = s117>255;
    g118 = s118>255;
    g119 = s119>255;
    g120 = s120>255;
    g121 = s121>255;
    g122 = s122>255;
    g123 = s123>255;
    g124 = s124>255;
    g125 = s125>255;
    g126 = s126>255;
    g127 = s127>255;
    g128 = s128>255;
    g129 = s129>255;
    g130 = s130>255;
    g131 = s131>255;
    g132 = s132>255;
    g133 = s133>255;
    g134 = s134>255;
    g135 = s135>255;
    g136 = s136>255;
    g137 = s137>255;
    g138 = s138>255;
    g139 = s139>255;
    g140 = s140>255;
    g141 = s141>255;
    g142 = s142>255;
    g143 = s143>255;
    g144 = s144>255;
    g145 = s145>255;
    g146 = s146>255;
    g147 = s147>255;
    g148 = s148>255;
    g149 = s149>255;
    g150 = s150>255;
    g151 = s151>255;
    g152 = s152>255;
    g153 = s153>255;
    g154 = s154>255;
    g155 = s155>255;
    g156 = s156>255;
    g157 = s157>255;
    g158 = s158>255;
    g159 = s159>255;
    g160 = s160>255;
    g161 = s161>255;
    g162 = s162>255;
    g163 = s163>255;
    g164 = s164>255;
    g165 = s165>255;
    g166 = s166>255;
    g167 = s167>255;
    g168 = s168>255;
    g169 = s169>255;
    g170 = s170>255;
    g171 = s171>255;
    g172 = s172>255;
    g173 = s173>255;
    g174 = s174>255;
    g175 = s175>255;
    g176 = s176>255;
    g177 = s177>255;
    g178 = s178>255;
    g179 = s179>255;
    g180 = s180>255;
    g181 = s181>255;
    g182 = s182>255;
    g183 = s183>255;
    g184 = s184>255;
    g185 = s185>255;
    g186 = s186>255;
    g187 = s187>255;
    g188 = s188>255;
    g189 = s189>255;
    g190 = s190>255;
    g191 = s191>255;
    g192 = s192>255;
    g193 = s193>255;
    g194 = s194>255;
    g195 = s195>255;
    g196 = s196>255;
    g197 = s197>255;
    g198 = s198>255;
    g199 = s199>255;
    g200 = s200>255;
    g201 = s201>255;
    g202 = s202>255;
    g203 = s203>255;
    g204 = s204>255;
    g205 = s205>255;
    g206 = s206>255;
    g207 = s207>255;
    g208 = s208>255;
    g209 = s209>255;
    g210 = s210>255;
    g211 = s211>255;
    g212 = s212>255;
    g213 = s213>255;
    g214 = s214>255;
    g215 = s215>255;
    g216 = s216>255;
    g217 = s217>255;
    g218 = s218>255;
    g219 = s219>255;
    g220 = s220>255;
    g221 = s221>255;
    g222 = s222>255;
    g223 = s223>255;
    g224 = s224>255;
    g225 = s225>255;
    g226 = s226>255;
    g227 = s227>255;
    g228 = s228>255;
    g229 = s229>255;
    g230 = s230>255;
    g231 = s231>255;
    g232 = s232>255;
    g233 = s233>255;
    g234 = s234>255;
    g235 = s235>255;
    g236 = s236>255;
    g237 = s237>255;
    g238 = s238>255;
    g239 = s239>255;
    g240 = s240>255;
    g241 = s241>255;
    g242 = s242>255;
    g243 = s243>255;
    g244 = s244>255;
    g245 = s245>255;
    g246 = s246>255;
    g247 = s247>255;
    g248 = s248>255;
    g249 = s249>255;
    g250 = s250>255;
    g251 = s251>255;
    g252 = s252>255;
    g253 = s253>255;
    g254 = s254>255;
    g255 = s255>255;
    // initial propagate conditions
    p0 = s0==255;
    p1 = s1==255;
    p2 = s2==255;
    p3 = s3==255;
    p4 = s4==255;
    p5 = s5==255;
    p6 = s6==255;
    p7 = s7==255;
    p8 = s8==255;
    p9 = s9==255;
    p10 = s10==255;
    p11 = s11==255;
    p12 = s12==255;
    p13 = s13==255;
    p14 = s14==255;
    p15 = s15==255;
    p16 = s16==255;
    p17 = s17==255;
    p18 = s18==255;
    p19 = s19==255;
    p20 = s20==255;
    p21 = s21==255;
    p22 = s22==255;
    p23 = s23==255;
    p24 = s24==255;
    p25 = s25==255;
    p26 = s26==255;
    p27 = s27==255;
    p28 = s28==255;
    p29 = s29==255;
    p30 = s30==255;
    p31 = s31==255;
    p32 = s32==255;
    p33 = s33==255;
    p34 = s34==255;
    p35 = s35==255;
    p36 = s36==255;
    p37 = s37==255;
    p38 = s38==255;
    p39 = s39==255;
    p40 = s40==255;
    p41 = s41==255;
    p42 = s42==255;
    p43 = s43==255;
    p44 = s44==255;
    p45 = s45==255;
    p46 = s46==255;
    p47 = s47==255;
    p48 = s48==255;
    p49 = s49==255;
    p50 = s50==255;
    p51 = s51==255;
    p52 = s52==255;
    p53 = s53==255;
    p54 = s54==255;
    p55 = s55==255;
    p56 = s56==255;
    p57 = s57==255;
    p58 = s58==255;
    p59 = s59==255;
    p60 = s60==255;
    p61 = s61==255;
    p62 = s62==255;
    p63 = s63==255;
    p64 = s64==255;
    p65 = s65==255;
    p66 = s66==255;
    p67 = s67==255;
    p68 = s68==255;
    p69 = s69==255;
    p70 = s70==255;
    p71 = s71==255;
    p72 = s72==255;
    p73 = s73==255;
    p74 = s74==255;
    p75 = s75==255;
    p76 = s76==255;
    p77 = s77==255;
    p78 = s78==255;
    p79 = s79==255;
    p80 = s80==255;
    p81 = s81==255;
    p82 = s82==255;
    p83 = s83==255;
    p84 = s84==255;
    p85 = s85==255;
    p86 = s86==255;
    p87 = s87==255;
    p88 = s88==255;
    p89 = s89==255;
    p90 = s90==255;
    p91 = s91==255;
    p92 = s92==255;
    p93 = s93==255;
    p94 = s94==255;
    p95 = s95==255;
    p96 = s96==255;
    p97 = s97==255;
    p98 = s98==255;
    p99 = s99==255;
    p100 = s100==255;
    p101 = s101==255;
    p102 = s102==255;
    p103 = s103==255;
    p104 = s104==255;
    p105 = s105==255;
    p106 = s106==255;
    p107 = s107==255;
    p108 = s108==255;
    p109 = s109==255;
    p110 = s110==255;
    p111 = s111==255;
    p112 = s112==255;
    p113 = s113==255;
    p114 = s114==255;
    p115 = s115==255;
    p116 = s116==255;
    p117 = s117==255;
    p118 = s118==255;
    p119 = s119==255;
    p120 = s120==255;
    p121 = s121==255;
    p122 = s122==255;
    p123 = s123==255;
    p124 = s124==255;
    p125 = s125==255;
    p126 = s126==255;
    p127 = s127==255;
    p128 = s128==255;
    p129 = s129==255;
    p130 = s130==255;
    p131 = s131==255;
    p132 = s132==255;
    p133 = s133==255;
    p134 = s134==255;
    p135 = s135==255;
    p136 = s136==255;
    p137 = s137==255;
    p138 = s138==255;
    p139 = s139==255;
    p140 = s140==255;
    p141 = s141==255;
    p142 = s142==255;
    p143 = s143==255;
    p144 = s144==255;
    p145 = s145==255;
    p146 = s146==255;
    p147 = s147==255;
    p148 = s148==255;
    p149 = s149==255;
    p150 = s150==255;
    p151 = s151==255;
    p152 = s152==255;
    p153 = s153==255;
    p154 = s154==255;
    p155 = s155==255;
    p156 = s156==255;
    p157 = s157==255;
    p158 = s158==255;
    p159 = s159==255;
    p160 = s160==255;
    p161 = s161==255;
    p162 = s162==255;
    p163 = s163==255;
    p164 = s164==255;
    p165 = s165==255;
    p166 = s166==255;
    p167 = s167==255;
    p168 = s168==255;
    p169 = s169==255;
    p170 = s170==255;
    p171 = s171==255;
    p172 = s172==255;
    p173 = s173==255;
    p174 = s174==255;
    p175 = s175==255;
    p176 = s176==255;
    p177 = s177==255;
    p178 = s178==255;
    p179 = s179==255;
    p180 = s180==255;
    p181 = s181==255;
    p182 = s182==255;
    p183 = s183==255;
    p184 = s184==255;
    p185 = s185==255;
    p186 = s186==255;
    p187 = s187==255;
    p188 = s188==255;
    p189 = s189==255;
    p190 = s190==255;
    p191 = s191==255;
    p192 = s192==255;
    p193 = s193==255;
    p194 = s194==255;
    p195 = s195==255;
    p196 = s196==255;
    p197 = s197==255;
    p198 = s198==255;
    p199 = s199==255;
    p200 = s200==255;
    p201 = s201==255;
    p202 = s202==255;
    p203 = s203==255;
    p204 = s204==255;
    p205 = s205==255;
    p206 = s206==255;
    p207 = s207==255;
    p208 = s208==255;
    p209 = s209==255;
    p210 = s210==255;
    p211 = s211==255;
    p212 = s212==255;
    p213 = s213==255;
    p214 = s214==255;
    p215 = s215==255;
    p216 = s216==255;
    p217 = s217==255;
    p218 = s218==255;
    p219 = s219==255;
    p220 = s220==255;
    p221 = s221==255;
    p222 = s222==255;
    p223 = s223==255;
    p224 = s224==255;
    p225 = s225==255;
    p226 = s226==255;
    p227 = s227==255;
    p228 = s228==255;
    p229 = s229==255;
    p230 = s230==255;
    p231 = s231==255;
    p232 = s232==255;
    p233 = s233==255;
    p234 = s234==255;
    p235 = s235==255;
    p236 = s236==255;
    p237 = s237==255;
    p238 = s238==255;
    p239 = s239==255;
    p240 = s240==255;
    p241 = s241==255;
    p242 = s242==255;
    p243 = s243==255;
    p244 = s244==255;
    p245 = s245==255;
    p246 = s246==255;
    p247 = s247==255;
    p248 = s248==255;
    p249 = s249==255;
    p250 = s250==255;
    p251 = s251==255;
    p252 = s252==255;
    p253 = s253==255;
    p254 = s254==255;
    p255 = s255==255;
    // carry propagation prefix tree
    // up-level 1
    g1 = g0 & p1 | g1;
    p1 = p1 & p0;
    g3 = g2 & p3 | g3;
    p3 = p3 & p2;
    g5 = g4 & p5 | g5;
    p5 = p5 & p4;
    g7 = g6 & p7 | g7;
    p7 = p7 & p6;
    g9 = g8 & p9 | g9;
    p9 = p9 & p8;
    g11 = g10 & p11 | g11;
    p11 = p11 & p10;
    g13 = g12 & p13 | g13;
    p13 = p13 & p12;
    g15 = g14 & p15 | g15;
    p15 = p15 & p14;
    g17 = g16 & p17 | g17;
    p17 = p17 & p16;
    g19 = g18 & p19 | g19;
    p19 = p19 & p18;
    g21 = g20 & p21 | g21;
    p21 = p21 & p20;
    g23 = g22 & p23 | g23;
    p23 = p23 & p22;
    g25 = g24 & p25 | g25;
    p25 = p25 & p24;
    g27 = g26 & p27 | g27;
    p27 = p27 & p26;
    g29 = g28 & p29 | g29;
    p29 = p29 & p28;
    g31 = g30 & p31 | g31;
    p31 = p31 & p30;
    g33 = g32 & p33 | g33;
    p33 = p33 & p32;
    g35 = g34 & p35 | g35;
    p35 = p35 & p34;
    g37 = g36 & p37 | g37;
    p37 = p37 & p36;
    g39 = g38 & p39 | g39;
    p39 = p39 & p38;
    g41 = g40 & p41 | g41;
    p41 = p41 & p40;
    g43 = g42 & p43 | g43;
    p43 = p43 & p42;
    g45 = g44 & p45 | g45;
    p45 = p45 & p44;
    g47 = g46 & p47 | g47;
    p47 = p47 & p46;
    g49 = g48 & p49 | g49;
    p49 = p49 & p48;
    g51 = g50 & p51 | g51;
    p51 = p51 & p50;
    g53 = g52 & p53 | g53;
    p53 = p53 & p52;
    g55 = g54 & p55 | g55;
    p55 = p55 & p54;
    g57 = g56 & p57 | g57;
    p57 = p57 & p56;
    g59 = g58 & p59 | g59;
    p59 = p59 & p58;
    g61 = g60 & p61 | g61;
    p61 = p61 & p60;
    g63 = g62 & p63 | g63;
    p63 = p63 & p62;
    g65 = g64 & p65 | g65;
    p65 = p65 & p64;
    g67 = g66 & p67 | g67;
    p67 = p67 & p66;
    g69 = g68 & p69 | g69;
    p69 = p69 & p68;
    g71 = g70 & p71 | g71;
    p71 = p71 & p70;
    g73 = g72 & p73 | g73;
    p73 = p73 & p72;
    g75 = g74 & p75 | g75;
    p75 = p75 & p74;
    g77 = g76 & p77 | g77;
    p77 = p77 & p76;
    g79 = g78 & p79 | g79;
    p79 = p79 & p78;
    g81 = g80 & p81 | g81;
    p81 = p81 & p80;
    g83 = g82 & p83 | g83;
    p83 = p83 & p82;
    g85 = g84 & p85 | g85;
    p85 = p85 & p84;
    g87 = g86 & p87 | g87;
    p87 = p87 & p86;
    g89 = g88 & p89 | g89;
    p89 = p89 & p88;
    g91 = g90 & p91 | g91;
    p91 = p91 & p90;
    g93 = g92 & p93 | g93;
    p93 = p93 & p92;
    g95 = g94 & p95 | g95;
    p95 = p95 & p94;
    g97 = g96 & p97 | g97;
    p97 = p97 & p96;
    g99 = g98 & p99 | g99;
    p99 = p99 & p98;
    g101 = g100 & p101 | g101;
    p101 = p101 & p100;
    g103 = g102 & p103 | g103;
    p103 = p103 & p102;
    g105 = g104 & p105 | g105;
    p105 = p105 & p104;
    g107 = g106 & p107 | g107;
    p107 = p107 & p106;
    g109 = g108 & p109 | g109;
    p109 = p109 & p108;
    g111 = g110 & p111 | g111;
    p111 = p111 & p110;
    g113 = g112 & p113 | g113;
    p113 = p113 & p112;
    g115 = g114 & p115 | g115;
    p115 = p115 & p114;
    g117 = g116 & p117 | g117;
    p117 = p117 & p116;
    g119 = g118 & p119 | g119;
    p119 = p119 & p118;
    g121 = g120 & p121 | g121;
    p121 = p121 & p120;
    g123 = g122 & p123 | g123;
    p123 = p123 & p122;
    g125 = g124 & p125 | g125;
    p125 = p125 & p124;
    g127 = g126 & p127 | g127;
    p127 = p127 & p126;
    g129 = g128 & p129 | g129;
    p129 = p129 & p128;
    g131 = g130 & p131 | g131;
    p131 = p131 & p130;
    g133 = g132 & p133 | g133;
    p133 = p133 & p132;
    g135 = g134 & p135 | g135;
    p135 = p135 & p134;
    g137 = g136 & p137 | g137;
    p137 = p137 & p136;
    g139 = g138 & p139 | g139;
    p139 = p139 & p138;
    g141 = g140 & p141 | g141;
    p141 = p141 & p140;
    g143 = g142 & p143 | g143;
    p143 = p143 & p142;
    g145 = g144 & p145 | g145;
    p145 = p145 & p144;
    g147 = g146 & p147 | g147;
    p147 = p147 & p146;
    g149 = g148 & p149 | g149;
    p149 = p149 & p148;
    g151 = g150 & p151 | g151;
    p151 = p151 & p150;
    g153 = g152 & p153 | g153;
    p153 = p153 & p152;
    g155 = g154 & p155 | g155;
    p155 = p155 & p154;
    g157 = g156 & p157 | g157;
    p157 = p157 & p156;
    g159 = g158 & p159 | g159;
    p159 = p159 & p158;
    g161 = g160 & p161 | g161;
    p161 = p161 & p160;
    g163 = g162 & p163 | g163;
    p163 = p163 & p162;
    g165 = g164 & p165 | g165;
    p165 = p165 & p164;
    g167 = g166 & p167 | g167;
    p167 = p167 & p166;
    g169 = g168 & p169 | g169;
    p169 = p169 & p168;
    g171 = g170 & p171 | g171;
    p171 = p171 & p170;
    g173 = g172 & p173 | g173;
    p173 = p173 & p172;
    g175 = g174 & p175 | g175;
    p175 = p175 & p174;
    g177 = g176 & p177 | g177;
    p177 = p177 & p176;
    g179 = g178 & p179 | g179;
    p179 = p179 & p178;
    g181 = g180 & p181 | g181;
    p181 = p181 & p180;
    g183 = g182 & p183 | g183;
    p183 = p183 & p182;
    g185 = g184 & p185 | g185;
    p185 = p185 & p184;
    g187 = g186 & p187 | g187;
    p187 = p187 & p186;
    g189 = g188 & p189 | g189;
    p189 = p189 & p188;
    g191 = g190 & p191 | g191;
    p191 = p191 & p190;
    g193 = g192 & p193 | g193;
    p193 = p193 & p192;
    g195 = g194 & p195 | g195;
    p195 = p195 & p194;
    g197 = g196 & p197 | g197;
    p197 = p197 & p196;
    g199 = g198 & p199 | g199;
    p199 = p199 & p198;
    g201 = g200 & p201 | g201;
    p201 = p201 & p200;
    g203 = g202 & p203 | g203;
    p203 = p203 & p202;
    g205 = g204 & p205 | g205;
    p205 = p205 & p204;
    g207 = g206 & p207 | g207;
    p207 = p207 & p206;
    g209 = g208 & p209 | g209;
    p209 = p209 & p208;
    g211 = g210 & p211 | g211;
    p211 = p211 & p210;
    g213 = g212 & p213 | g213;
    p213 = p213 & p212;
    g215 = g214 & p215 | g215;
    p215 = p215 & p214;
    g217 = g216 & p217 | g217;
    p217 = p217 & p216;
    g219 = g218 & p219 | g219;
    p219 = p219 & p218;
    g221 = g220 & p221 | g221;
    p221 = p221 & p220;
    g223 = g222 & p223 | g223;
    p223 = p223 & p222;
    g225 = g224 & p225 | g225;
    p225 = p225 & p224;
    g227 = g226 & p227 | g227;
    p227 = p227 & p226;
    g229 = g228 & p229 | g229;
    p229 = p229 & p228;
    g231 = g230 & p231 | g231;
    p231 = p231 & p230;
    g233 = g232 & p233 | g233;
    p233 = p233 & p232;
    g235 = g234 & p235 | g235;
    p235 = p235 & p234;
    g237 = g236 & p237 | g237;
    p237 = p237 & p236;
    g239 = g238 & p239 | g239;
    p239 = p239 & p238;
    g241 = g240 & p241 | g241;
    p241 = p241 & p240;
    g243 = g242 & p243 | g243;
    p243 = p243 & p242;
    g245 = g244 & p245 | g245;
    p245 = p245 & p244;
    g247 = g246 & p247 | g247;
    p247 = p247 & p246;
    g249 = g248 & p249 | g249;
    p249 = p249 & p248;
    g251 = g250 & p251 | g251;
    p251 = p251 & p250;
    g253 = g252 & p253 | g253;
    p253 = p253 & p252;
    g255 = g254 & p255 | g255;
    p255 = p255 & p254;
    // up-level 2
    g3 = g1 & p3 | g3;
    p3 = p3 & p1;
    g7 = g5 & p7 | g7;
    p7 = p7 & p5;
    g11 = g9 & p11 | g11;
    p11 = p11 & p9;
    g15 = g13 & p15 | g15;
    p15 = p15 & p13;
    g19 = g17 & p19 | g19;
    p19 = p19 & p17;
    g23 = g21 & p23 | g23;
    p23 = p23 & p21;
    g27 = g25 & p27 | g27;
    p27 = p27 & p25;
    g31 = g29 & p31 | g31;
    p31 = p31 & p29;
    g35 = g33 & p35 | g35;
    p35 = p35 & p33;
    g39 = g37 & p39 | g39;
    p39 = p39 & p37;
    g43 = g41 & p43 | g43;
    p43 = p43 & p41;
    g47 = g45 & p47 | g47;
    p47 = p47 & p45;
    g51 = g49 & p51 | g51;
    p51 = p51 & p49;
    g55 = g53 & p55 | g55;
    p55 = p55 & p53;
    g59 = g57 & p59 | g59;
    p59 = p59 & p57;
    g63 = g61 & p63 | g63;
    p63 = p63 & p61;
    g67 = g65 & p67 | g67;
    p67 = p67 & p65;
    g71 = g69 & p71 | g71;
    p71 = p71 & p69;
    g75 = g73 & p75 | g75;
    p75 = p75 & p73;
    g79 = g77 & p79 | g79;
    p79 = p79 & p77;
    g83 = g81 & p83 | g83;
    p83 = p83 & p81;
    g87 = g85 & p87 | g87;
    p87 = p87 & p85;
    g91 = g89 & p91 | g91;
    p91 = p91 & p89;
    g95 = g93 & p95 | g95;
    p95 = p95 & p93;
    g99 = g97 & p99 | g99;
    p99 = p99 & p97;
    g103 = g101 & p103 | g103;
    p103 = p103 & p101;
    g107 = g105 & p107 | g107;
    p107 = p107 & p105;
    g111 = g109 & p111 | g111;
    p111 = p111 & p109;
    g115 = g113 & p115 | g115;
    p115 = p115 & p113;
    g119 = g117 & p119 | g119;
    p119 = p119 & p117;
    g123 = g121 & p123 | g123;
    p123 = p123 & p121;
    g127 = g125 & p127 | g127;
    p127 = p127 & p125;
    g131 = g129 & p131 | g131;
    p131 = p131 & p129;
    g135 = g133 & p135 | g135;
    p135 = p135 & p133;
    g139 = g137 & p139 | g139;
    p139 = p139 & p137;
    g143 = g141 & p143 | g143;
    p143 = p143 & p141;
    g147 = g145 & p147 | g147;
    p147 = p147 & p145;
    g151 = g149 & p151 | g151;
    p151 = p151 & p149;
    g155 = g153 & p155 | g155;
    p155 = p155 & p153;
    g159 = g157 & p159 | g159;
    p159 = p159 & p157;
    g163 = g161 & p163 | g163;
    p163 = p163 & p161;
    g167 = g165 & p167 | g167;
    p167 = p167 & p165;
    g171 = g169 & p171 | g171;
    p171 = p171 & p169;
    g175 = g173 & p175 | g175;
    p175 = p175 & p173;
    g179 = g177 & p179 | g179;
    p179 = p179 & p177;
    g183 = g181 & p183 | g183;
    p183 = p183 & p181;
    g187 = g185 & p187 | g187;
    p187 = p187 & p185;
    g191 = g189 & p191 | g191;
    p191 = p191 & p189;
    g195 = g193 & p195 | g195;
    p195 = p195 & p193;
    g199 = g197 & p199 | g199;
    p199 = p199 & p197;
    g203 = g201 & p203 | g203;
    p203 = p203 & p201;
    g207 = g205 & p207 | g207;
    p207 = p207 & p205;
    g211 = g209 & p211 | g211;
    p211 = p211 & p209;
    g215 = g213 & p215 | g215;
    p215 = p215 & p213;
    g219 = g217 & p219 | g219;
    p219 = p219 & p217;
    g223 = g221 & p223 | g223;
    p223 = p223 & p221;
    g227 = g225 & p227 | g227;
    p227 = p227 & p225;
    g231 = g229 & p231 | g231;
    p231 = p231 & p229;
    g235 = g233 & p235 | g235;
    p235 = p235 & p233;
    g239 = g237 & p239 | g239;
    p239 = p239 & p237;
    g243 = g241 & p243 | g243;
    p243 = p243 & p241;
    g247 = g245 & p247 | g247;
    p247 = p247 & p245;
    g251 = g249 & p251 | g251;
    p251 = p251 & p249;
    g255 = g253 & p255 | g255;
    p255 = p255 & p253;
    // up-level 3
    g7 = g3 & p7 | g7;
    p7 = p7 & p3;
    g15 = g11 & p15 | g15;
    p15 = p15 & p11;
    g23 = g19 & p23 | g23;
    p23 = p23 & p19;
    g31 = g27 & p31 | g31;
    p31 = p31 & p27;
    g39 = g35 & p39 | g39;
    p39 = p39 & p35;
    g47 = g43 & p47 | g47;
    p47 = p47 & p43;
    g55 = g51 & p55 | g55;
    p55 = p55 & p51;
    g63 = g59 & p63 | g63;
    p63 = p63 & p59;
    g71 = g67 & p71 | g71;
    p71 = p71 & p67;
    g79 = g75 & p79 | g79;
    p79 = p79 & p75;
    g87 = g83 & p87 | g87;
    p87 = p87 & p83;
    g95 = g91 & p95 | g95;
    p95 = p95 & p91;
    g103 = g99 & p103 | g103;
    p103 = p103 & p99;
    g111 = g107 & p111 | g111;
    p111 = p111 & p107;
    g119 = g115 & p119 | g119;
    p119 = p119 & p115;
    g127 = g123 & p127 | g127;
    p127 = p127 & p123;
    g135 = g131 & p135 | g135;
    p135 = p135 & p131;
    g143 = g139 & p143 | g143;
    p143 = p143 & p139;
    g151 = g147 & p151 | g151;
    p151 = p151 & p147;
    g159 = g155 & p159 | g159;
    p159 = p159 & p155;
    g167 = g163 & p167 | g167;
    p167 = p167 & p163;
    g175 = g171 & p175 | g175;
    p175 = p175 & p171;
    g183 = g179 & p183 | g183;
    p183 = p183 & p179;
    g191 = g187 & p191 | g191;
    p191 = p191 & p187;
    g199 = g195 & p199 | g199;
    p199 = p199 & p195;
    g207 = g203 & p207 | g207;
    p207 = p207 & p203;
    g215 = g211 & p215 | g215;
    p215 = p215 & p211;
    g223 = g219 & p223 | g223;
    p223 = p223 & p219;
    g231 = g227 & p231 | g231;
    p231 = p231 & p227;
    g239 = g235 & p239 | g239;
    p239 = p239 & p235;
    g247 = g243 & p247 | g247;
    p247 = p247 & p243;
    g255 = g251 & p255 | g255;
    p255 = p255 & p251;
    // up-level 4
    g15 = g7 & p15 | g15;
    p15 = p15 & p7;
    g31 = g23 & p31 | g31;
    p31 = p31 & p23;
    g47 = g39 & p47 | g47;
    p47 = p47 & p39;
    g63 = g55 & p63 | g63;
    p63 = p63 & p55;
    g79 = g71 & p79 | g79;
    p79 = p79 & p71;
    g95 = g87 & p95 | g95;
    p95 = p95 & p87;
    g111 = g103 & p111 | g111;
    p111 = p111 & p103;
    g127 = g119 & p127 | g127;
    p127 = p127 & p119;
    g143 = g135 & p143 | g143;
    p143 = p143 & p135;
    g159 = g151 & p159 | g159;
    p159 = p159 & p151;
    g175 = g167 & p175 | g175;
    p175 = p175 & p167;
    g191 = g183 & p191 | g191;
    p191 = p191 & p183;
    g207 = g199 & p207 | g207;
    p207 = p207 & p199;
    g223 = g215 & p223 | g223;
    p223 = p223 & p215;
    g239 = g231 & p239 | g239;
    p239 = p239 & p231;
    g255 = g247 & p255 | g255;
    p255 = p255 & p247;
    // up-level 5
    g31 = g15 & p31 | g31;
    p31 = p31 & p15;
    g63 = g47 & p63 | g63;
    p63 = p63 & p47;
    g95 = g79 & p95 | g95;
    p95 = p95 & p79;
    g127 = g111 & p127 | g127;
    p127 = p127 & p111;
    g159 = g143 & p159 | g159;
    p159 = p159 & p143;
    g191 = g175 & p191 | g191;
    p191 = p191 & p175;
    g223 = g207 & p223 | g223;
    p223 = p223 & p207;
    g255 = g239 & p255 | g255;
    p255 = p255 & p239;
    // up-level 6
    g63 = g31 & p63 | g63;
    p63 = p63 & p31;
    g127 = g95 & p127 | g127;
    p127 = p127 & p95;
    g191 = g159 & p191 | g191;
    p191 = p191 & p159;
    g255 = g223 & p255 | g255;
    p255 = p255 & p223;
    // up-level 7
    g127 = g63 & p127 | g127;
    p127 = p127 & p63;
    g255 = g191 & p255 | g255;
    p255 = p255 & p191;
    // up-level 8
    g255 = g127 & p255 | g255;
    p255 = p255 & p127;
    // down-level 10
    // down-level 11
    g191 = g127 & p191 | g191;
    p191 = p191 & p127;
    // down-level 12
    g95 = g63 & p95 | g95;
    p95 = p95 & p63;
    g159 = g127 & p159 | g159;
    p159 = p159 & p127;
    g223 = g191 & p223 | g223;
    p223 = p223 & p191;
    // down-level 13
    g47 = g31 & p47 | g47;
    p47 = p47 & p31;
    g79 = g63 & p79 | g79;
    p79 = p79 & p63;
    g111 = g95 & p111 | g111;
    p111 = p111 & p95;
    g143 = g127 & p143 | g143;
    p143 = p143 & p127;
    g175 = g159 & p175 | g175;
    p175 = p175 & p159;
    g207 = g191 & p207 | g207;
    p207 = p207 & p191;
    g239 = g223 & p239 | g239;
    p239 = p239 & p223;
    // down-level 14
    g23 = g15 & p23 | g23;
    p23 = p23 & p15;
    g39 = g31 & p39 | g39;
    p39 = p39 & p31;
    g55 = g47 & p55 | g55;
    p55 = p55 & p47;
    g71 = g63 & p71 | g71;
    p71 = p71 & p63;
    g87 = g79 & p87 | g87;
    p87 = p87 & p79;
    g103 = g95 & p103 | g103;
    p103 = p103 & p95;
    g119 = g111 & p119 | g119;
    p119 = p119 & p111;
    g135 = g127 & p135 | g135;
    p135 = p135 & p127;
    g151 = g143 & p151 | g151;
    p151 = p151 & p143;
    g167 = g159 & p167 | g167;
    p167 = p167 & p159;
    g183 = g175 & p183 | g183;
    p183 = p183 & p175;
    g199 = g191 & p199 | g199;
    p199 = p199 & p191;
    g215 = g207 & p215 | g215;
    p215 = p215 & p207;
    g231 = g223 & p231 | g231;
    p231 = p231 & p223;
    g247 = g239 & p247 | g247;
    p247 = p247 & p239;
    // down-level 15
    g11 = g7 & p11 | g11;
    p11 = p11 & p7;
    g19 = g15 & p19 | g19;
    p19 = p19 & p15;
    g27 = g23 & p27 | g27;
    p27 = p27 & p23;
    g35 = g31 & p35 | g35;
    p35 = p35 & p31;
    g43 = g39 & p43 | g43;
    p43 = p43 & p39;
    g51 = g47 & p51 | g51;
    p51 = p51 & p47;
    g59 = g55 & p59 | g59;
    p59 = p59 & p55;
    g67 = g63 & p67 | g67;
    p67 = p67 & p63;
    g75 = g71 & p75 | g75;
    p75 = p75 & p71;
    g83 = g79 & p83 | g83;
    p83 = p83 & p79;
    g91 = g87 & p91 | g91;
    p91 = p91 & p87;
    g99 = g95 & p99 | g99;
    p99 = p99 & p95;
    g107 = g103 & p107 | g107;
    p107 = p107 & p103;
    g115 = g111 & p115 | g115;
    p115 = p115 & p111;
    g123 = g119 & p123 | g123;
    p123 = p123 & p119;
    g131 = g127 & p131 | g131;
    p131 = p131 & p127;
    g139 = g135 & p139 | g139;
    p139 = p139 & p135;
    g147 = g143 & p147 | g147;
    p147 = p147 & p143;
    g155 = g151 & p155 | g155;
    p155 = p155 & p151;
    g163 = g159 & p163 | g163;
    p163 = p163 & p159;
    g171 = g167 & p171 | g171;
    p171 = p171 & p167;
    g179 = g175 & p179 | g179;
    p179 = p179 & p175;
    g187 = g183 & p187 | g187;
    p187 = p187 & p183;
    g195 = g191 & p195 | g195;
    p195 = p195 & p191;
    g203 = g199 & p203 | g203;
    p203 = p203 & p199;
    g211 = g207 & p211 | g211;
    p211 = p211 & p207;
    g219 = g215 & p219 | g219;
    p219 = p219 & p215;
    g227 = g223 & p227 | g227;
    p227 = p227 & p223;
    g235 = g231 & p235 | g235;
    p235 = p235 & p231;
    g243 = g239 & p243 | g243;
    p243 = p243 & p239;
    g251 = g247 & p251 | g251;
    p251 = p251 & p247;
    // down-level 16
    g5 = g3 & p5 | g5;
    p5 = p5 & p3;
    g9 = g7 & p9 | g9;
    p9 = p9 & p7;
    g13 = g11 & p13 | g13;
    p13 = p13 & p11;
    g17 = g15 & p17 | g17;
    p17 = p17 & p15;
    g21 = g19 & p21 | g21;
    p21 = p21 & p19;
    g25 = g23 & p25 | g25;
    p25 = p25 & p23;
    g29 = g27 & p29 | g29;
    p29 = p29 & p27;
    g33 = g31 & p33 | g33;
    p33 = p33 & p31;
    g37 = g35 & p37 | g37;
    p37 = p37 & p35;
    g41 = g39 & p41 | g41;
    p41 = p41 & p39;
    g45 = g43 & p45 | g45;
    p45 = p45 & p43;
    g49 = g47 & p49 | g49;
    p49 = p49 & p47;
    g53 = g51 & p53 | g53;
    p53 = p53 & p51;
    g57 = g55 & p57 | g57;
    p57 = p57 & p55;
    g61 = g59 & p61 | g61;
    p61 = p61 & p59;
    g65 = g63 & p65 | g65;
    p65 = p65 & p63;
    g69 = g67 & p69 | g69;
    p69 = p69 & p67;
    g73 = g71 & p73 | g73;
    p73 = p73 & p71;
    g77 = g75 & p77 | g77;
    p77 = p77 & p75;
    g81 = g79 & p81 | g81;
    p81 = p81 & p79;
    g85 = g83 & p85 | g85;
    p85 = p85 & p83;
    g89 = g87 & p89 | g89;
    p89 = p89 & p87;
    g93 = g91 & p93 | g93;
    p93 = p93 & p91;
    g97 = g95 & p97 | g97;
    p97 = p97 & p95;
    g101 = g99 & p101 | g101;
    p101 = p101 & p99;
    g105 = g103 & p105 | g105;
    p105 = p105 & p103;
    g109 = g107 & p109 | g109;
    p109 = p109 & p107;
    g113 = g111 & p113 | g113;
    p113 = p113 & p111;
    g117 = g115 & p117 | g117;
    p117 = p117 & p115;
    g121 = g119 & p121 | g121;
    p121 = p121 & p119;
    g125 = g123 & p125 | g125;
    p125 = p125 & p123;
    g129 = g127 & p129 | g129;
    p129 = p129 & p127;
    g133 = g131 & p133 | g133;
    p133 = p133 & p131;
    g137 = g135 & p137 | g137;
    p137 = p137 & p135;
    g141 = g139 & p141 | g141;
    p141 = p141 & p139;
    g145 = g143 & p145 | g145;
    p145 = p145 & p143;
    g149 = g147 & p149 | g149;
    p149 = p149 & p147;
    g153 = g151 & p153 | g153;
    p153 = p153 & p151;
    g157 = g155 & p157 | g157;
    p157 = p157 & p155;
    g161 = g159 & p161 | g161;
    p161 = p161 & p159;
    g165 = g163 & p165 | g165;
    p165 = p165 & p163;
    g169 = g167 & p169 | g169;
    p169 = p169 & p167;
    g173 = g171 & p173 | g173;
    p173 = p173 & p171;
    g177 = g175 & p177 | g177;
    p177 = p177 & p175;
    g181 = g179 & p181 | g181;
    p181 = p181 & p179;
    g185 = g183 & p185 | g185;
    p185 = p185 & p183;
    g189 = g187 & p189 | g189;
    p189 = p189 & p187;
    g193 = g191 & p193 | g193;
    p193 = p193 & p191;
    g197 = g195 & p197 | g197;
    p197 = p197 & p195;
    g201 = g199 & p201 | g201;
    p201 = p201 & p199;
    g205 = g203 & p205 | g205;
    p205 = p205 & p203;
    g209 = g207 & p209 | g209;
    p209 = p209 & p207;
    g213 = g211 & p213 | g213;
    p213 = p213 & p211;
    g217 = g215 & p217 | g217;
    p217 = p217 & p215;
    g221 = g219 & p221 | g221;
    p221 = p221 & p219;
    g225 = g223 & p225 | g225;
    p225 = p225 & p223;
    g229 = g227 & p229 | g229;
    p229 = p229 & p227;
    g233 = g231 & p233 | g233;
    p233 = p233 & p231;
    g237 = g235 & p237 | g237;
    p237 = p237 & p235;
    g241 = g239 & p241 | g241;
    p241 = p241 & p239;
    g245 = g243 & p245 | g245;
    p245 = p245 & p243;
    g249 = g247 & p249 | g249;
    p249 = p249 & p247;
    g253 = g251 & p253 | g253;
    p253 = p253 & p251;
    // down-level 17
    g2 = g1 & p2 | g2;
    p2 = p2 & p1;
    g4 = g3 & p4 | g4;
    p4 = p4 & p3;
    g6 = g5 & p6 | g6;
    p6 = p6 & p5;
    g8 = g7 & p8 | g8;
    p8 = p8 & p7;
    g10 = g9 & p10 | g10;
    p10 = p10 & p9;
    g12 = g11 & p12 | g12;
    p12 = p12 & p11;
    g14 = g13 & p14 | g14;
    p14 = p14 & p13;
    g16 = g15 & p16 | g16;
    p16 = p16 & p15;
    g18 = g17 & p18 | g18;
    p18 = p18 & p17;
    g20 = g19 & p20 | g20;
    p20 = p20 & p19;
    g22 = g21 & p22 | g22;
    p22 = p22 & p21;
    g24 = g23 & p24 | g24;
    p24 = p24 & p23;
    g26 = g25 & p26 | g26;
    p26 = p26 & p25;
    g28 = g27 & p28 | g28;
    p28 = p28 & p27;
    g30 = g29 & p30 | g30;
    p30 = p30 & p29;
    g32 = g31 & p32 | g32;
    p32 = p32 & p31;
    g34 = g33 & p34 | g34;
    p34 = p34 & p33;
    g36 = g35 & p36 | g36;
    p36 = p36 & p35;
    g38 = g37 & p38 | g38;
    p38 = p38 & p37;
    g40 = g39 & p40 | g40;
    p40 = p40 & p39;
    g42 = g41 & p42 | g42;
    p42 = p42 & p41;
    g44 = g43 & p44 | g44;
    p44 = p44 & p43;
    g46 = g45 & p46 | g46;
    p46 = p46 & p45;
    g48 = g47 & p48 | g48;
    p48 = p48 & p47;
    g50 = g49 & p50 | g50;
    p50 = p50 & p49;
    g52 = g51 & p52 | g52;
    p52 = p52 & p51;
    g54 = g53 & p54 | g54;
    p54 = p54 & p53;
    g56 = g55 & p56 | g56;
    p56 = p56 & p55;
    g58 = g57 & p58 | g58;
    p58 = p58 & p57;
    g60 = g59 & p60 | g60;
    p60 = p60 & p59;
    g62 = g61 & p62 | g62;
    p62 = p62 & p61;
    g64 = g63 & p64 | g64;
    p64 = p64 & p63;
    g66 = g65 & p66 | g66;
    p66 = p66 & p65;
    g68 = g67 & p68 | g68;
    p68 = p68 & p67;
    g70 = g69 & p70 | g70;
    p70 = p70 & p69;
    g72 = g71 & p72 | g72;
    p72 = p72 & p71;
    g74 = g73 & p74 | g74;
    p74 = p74 & p73;
    g76 = g75 & p76 | g76;
    p76 = p76 & p75;
    g78 = g77 & p78 | g78;
    p78 = p78 & p77;
    g80 = g79 & p80 | g80;
    p80 = p80 & p79;
    g82 = g81 & p82 | g82;
    p82 = p82 & p81;
    g84 = g83 & p84 | g84;
    p84 = p84 & p83;
    g86 = g85 & p86 | g86;
    p86 = p86 & p85;
    g88 = g87 & p88 | g88;
    p88 = p88 & p87;
    g90 = g89 & p90 | g90;
    p90 = p90 & p89;
    g92 = g91 & p92 | g92;
    p92 = p92 & p91;
    g94 = g93 & p94 | g94;
    p94 = p94 & p93;
    g96 = g95 & p96 | g96;
    p96 = p96 & p95;
    g98 = g97 & p98 | g98;
    p98 = p98 & p97;
    g100 = g99 & p100 | g100;
    p100 = p100 & p99;
    g102 = g101 & p102 | g102;
    p102 = p102 & p101;
    g104 = g103 & p104 | g104;
    p104 = p104 & p103;
    g106 = g105 & p106 | g106;
    p106 = p106 & p105;
    g108 = g107 & p108 | g108;
    p108 = p108 & p107;
    g110 = g109 & p110 | g110;
    p110 = p110 & p109;
    g112 = g111 & p112 | g112;
    p112 = p112 & p111;
    g114 = g113 & p114 | g114;
    p114 = p114 & p113;
    g116 = g115 & p116 | g116;
    p116 = p116 & p115;
    g118 = g117 & p118 | g118;
    p118 = p118 & p117;
    g120 = g119 & p120 | g120;
    p120 = p120 & p119;
    g122 = g121 & p122 | g122;
    p122 = p122 & p121;
    g124 = g123 & p124 | g124;
    p124 = p124 & p123;
    g126 = g125 & p126 | g126;
    p126 = p126 & p125;
    g128 = g127 & p128 | g128;
    p128 = p128 & p127;
    g130 = g129 & p130 | g130;
    p130 = p130 & p129;
    g132 = g131 & p132 | g132;
    p132 = p132 & p131;
    g134 = g133 & p134 | g134;
    p134 = p134 & p133;
    g136 = g135 & p136 | g136;
    p136 = p136 & p135;
    g138 = g137 & p138 | g138;
    p138 = p138 & p137;
    g140 = g139 & p140 | g140;
    p140 = p140 & p139;
    g142 = g141 & p142 | g142;
    p142 = p142 & p141;
    g144 = g143 & p144 | g144;
    p144 = p144 & p143;
    g146 = g145 & p146 | g146;
    p146 = p146 & p145;
    g148 = g147 & p148 | g148;
    p148 = p148 & p147;
    g150 = g149 & p150 | g150;
    p150 = p150 & p149;
    g152 = g151 & p152 | g152;
    p152 = p152 & p151;
    g154 = g153 & p154 | g154;
    p154 = p154 & p153;
    g156 = g155 & p156 | g156;
    p156 = p156 & p155;
    g158 = g157 & p158 | g158;
    p158 = p158 & p157;
    g160 = g159 & p160 | g160;
    p160 = p160 & p159;
    g162 = g161 & p162 | g162;
    p162 = p162 & p161;
    g164 = g163 & p164 | g164;
    p164 = p164 & p163;
    g166 = g165 & p166 | g166;
    p166 = p166 & p165;
    g168 = g167 & p168 | g168;
    p168 = p168 & p167;
    g170 = g169 & p170 | g170;
    p170 = p170 & p169;
    g172 = g171 & p172 | g172;
    p172 = p172 & p171;
    g174 = g173 & p174 | g174;
    p174 = p174 & p173;
    g176 = g175 & p176 | g176;
    p176 = p176 & p175;
    g178 = g177 & p178 | g178;
    p178 = p178 & p177;
    g180 = g179 & p180 | g180;
    p180 = p180 & p179;
    g182 = g181 & p182 | g182;
    p182 = p182 & p181;
    g184 = g183 & p184 | g184;
    p184 = p184 & p183;
    g186 = g185 & p186 | g186;
    p186 = p186 & p185;
    g188 = g187 & p188 | g188;
    p188 = p188 & p187;
    g190 = g189 & p190 | g190;
    p190 = p190 & p189;
    g192 = g191 & p192 | g192;
    p192 = p192 & p191;
    g194 = g193 & p194 | g194;
    p194 = p194 & p193;
    g196 = g195 & p196 | g196;
    p196 = p196 & p195;
    g198 = g197 & p198 | g198;
    p198 = p198 & p197;
    g200 = g199 & p200 | g200;
    p200 = p200 & p199;
    g202 = g201 & p202 | g202;
    p202 = p202 & p201;
    g204 = g203 & p204 | g204;
    p204 = p204 & p203;
    g206 = g205 & p206 | g206;
    p206 = p206 & p205;
    g208 = g207 & p208 | g208;
    p208 = p208 & p207;
    g210 = g209 & p210 | g210;
    p210 = p210 & p209;
    g212 = g211 & p212 | g212;
    p212 = p212 & p211;
    g214 = g213 & p214 | g214;
    p214 = p214 & p213;
    g216 = g215 & p216 | g216;
    p216 = p216 & p215;
    g218 = g217 & p218 | g218;
    p218 = p218 & p217;
    g220 = g219 & p220 | g220;
    p220 = p220 & p219;
    g222 = g221 & p222 | g222;
    p222 = p222 & p221;
    g224 = g223 & p224 | g224;
    p224 = p224 & p223;
    g226 = g225 & p226 | g226;
    p226 = p226 & p225;
    g228 = g227 & p228 | g228;
    p228 = p228 & p227;
    g230 = g229 & p230 | g230;
    p230 = p230 & p229;
    g232 = g231 & p232 | g232;
    p232 = p232 & p231;
    g234 = g233 & p234 | g234;
    p234 = p234 & p233;
    g236 = g235 & p236 | g236;
    p236 = p236 & p235;
    g238 = g237 & p238 | g238;
    p238 = p238 & p237;
    g240 = g239 & p240 | g240;
    p240 = p240 & p239;
    g242 = g241 & p242 | g242;
    p242 = p242 & p241;
    g244 = g243 & p244 | g244;
    p244 = p244 & p243;
    g246 = g245 & p246 | g246;
    p246 = p246 & p245;
    g248 = g247 & p248 | g248;
    p248 = p248 & p247;
    g250 = g249 & p250 | g250;
    p250 = p250 & p249;
    g252 = g251 & p252 | g252;
    p252 = p252 & p251;
    g254 = g253 & p254 | g254;
    p254 = p254 & p253;
    // compute final sum digits
    s0 = s0 % 256;
    s1 = (s1+(g0?1:0)) % 256;
    s2 = (s2+(g1?1:0)) % 256;
    s3 = (s3+(g2?1:0)) % 256;
    s4 = (s4+(g3?1:0)) % 256;
    s5 = (s5+(g4?1:0)) % 256;
    s6 = (s6+(g5?1:0)) % 256;
    s7 = (s7+(g6?1:0)) % 256;
    s8 = (s8+(g7?1:0)) % 256;
    s9 = (s9+(g8?1:0)) % 256;
    s10 = (s10+(g9?1:0)) % 256;
    s11 = (s11+(g10?1:0)) % 256;
    s12 = (s12+(g11?1:0)) % 256;
    s13 = (s13+(g12?1:0)) % 256;
    s14 = (s14+(g13?1:0)) % 256;
    s15 = (s15+(g14?1:0)) % 256;
    s16 = (s16+(g15?1:0)) % 256;
    s17 = (s17+(g16?1:0)) % 256;
    s18 = (s18+(g17?1:0)) % 256;
    s19 = (s19+(g18?1:0)) % 256;
    s20 = (s20+(g19?1:0)) % 256;
    s21 = (s21+(g20?1:0)) % 256;
    s22 = (s22+(g21?1:0)) % 256;
    s23 = (s23+(g22?1:0)) % 256;
    s24 = (s24+(g23?1:0)) % 256;
    s25 = (s25+(g24?1:0)) % 256;
    s26 = (s26+(g25?1:0)) % 256;
    s27 = (s27+(g26?1:0)) % 256;
    s28 = (s28+(g27?1:0)) % 256;
    s29 = (s29+(g28?1:0)) % 256;
    s30 = (s30+(g29?1:0)) % 256;
    s31 = (s31+(g30?1:0)) % 256;
    s32 = (s32+(g31?1:0)) % 256;
    s33 = (s33+(g32?1:0)) % 256;
    s34 = (s34+(g33?1:0)) % 256;
    s35 = (s35+(g34?1:0)) % 256;
    s36 = (s36+(g35?1:0)) % 256;
    s37 = (s37+(g36?1:0)) % 256;
    s38 = (s38+(g37?1:0)) % 256;
    s39 = (s39+(g38?1:0)) % 256;
    s40 = (s40+(g39?1:0)) % 256;
    s41 = (s41+(g40?1:0)) % 256;
    s42 = (s42+(g41?1:0)) % 256;
    s43 = (s43+(g42?1:0)) % 256;
    s44 = (s44+(g43?1:0)) % 256;
    s45 = (s45+(g44?1:0)) % 256;
    s46 = (s46+(g45?1:0)) % 256;
    s47 = (s47+(g46?1:0)) % 256;
    s48 = (s48+(g47?1:0)) % 256;
    s49 = (s49+(g48?1:0)) % 256;
    s50 = (s50+(g49?1:0)) % 256;
    s51 = (s51+(g50?1:0)) % 256;
    s52 = (s52+(g51?1:0)) % 256;
    s53 = (s53+(g52?1:0)) % 256;
    s54 = (s54+(g53?1:0)) % 256;
    s55 = (s55+(g54?1:0)) % 256;
    s56 = (s56+(g55?1:0)) % 256;
    s57 = (s57+(g56?1:0)) % 256;
    s58 = (s58+(g57?1:0)) % 256;
    s59 = (s59+(g58?1:0)) % 256;
    s60 = (s60+(g59?1:0)) % 256;
    s61 = (s61+(g60?1:0)) % 256;
    s62 = (s62+(g61?1:0)) % 256;
    s63 = (s63+(g62?1:0)) % 256;
    s64 = (s64+(g63?1:0)) % 256;
    s65 = (s65+(g64?1:0)) % 256;
    s66 = (s66+(g65?1:0)) % 256;
    s67 = (s67+(g66?1:0)) % 256;
    s68 = (s68+(g67?1:0)) % 256;
    s69 = (s69+(g68?1:0)) % 256;
    s70 = (s70+(g69?1:0)) % 256;
    s71 = (s71+(g70?1:0)) % 256;
    s72 = (s72+(g71?1:0)) % 256;
    s73 = (s73+(g72?1:0)) % 256;
    s74 = (s74+(g73?1:0)) % 256;
    s75 = (s75+(g74?1:0)) % 256;
    s76 = (s76+(g75?1:0)) % 256;
    s77 = (s77+(g76?1:0)) % 256;
    s78 = (s78+(g77?1:0)) % 256;
    s79 = (s79+(g78?1:0)) % 256;
    s80 = (s80+(g79?1:0)) % 256;
    s81 = (s81+(g80?1:0)) % 256;
    s82 = (s82+(g81?1:0)) % 256;
    s83 = (s83+(g82?1:0)) % 256;
    s84 = (s84+(g83?1:0)) % 256;
    s85 = (s85+(g84?1:0)) % 256;
    s86 = (s86+(g85?1:0)) % 256;
    s87 = (s87+(g86?1:0)) % 256;
    s88 = (s88+(g87?1:0)) % 256;
    s89 = (s89+(g88?1:0)) % 256;
    s90 = (s90+(g89?1:0)) % 256;
    s91 = (s91+(g90?1:0)) % 256;
    s92 = (s92+(g91?1:0)) % 256;
    s93 = (s93+(g92?1:0)) % 256;
    s94 = (s94+(g93?1:0)) % 256;
    s95 = (s95+(g94?1:0)) % 256;
    s96 = (s96+(g95?1:0)) % 256;
    s97 = (s97+(g96?1:0)) % 256;
    s98 = (s98+(g97?1:0)) % 256;
    s99 = (s99+(g98?1:0)) % 256;
    s100 = (s100+(g99?1:0)) % 256;
    s101 = (s101+(g100?1:0)) % 256;
    s102 = (s102+(g101?1:0)) % 256;
    s103 = (s103+(g102?1:0)) % 256;
    s104 = (s104+(g103?1:0)) % 256;
    s105 = (s105+(g104?1:0)) % 256;
    s106 = (s106+(g105?1:0)) % 256;
    s107 = (s107+(g106?1:0)) % 256;
    s108 = (s108+(g107?1:0)) % 256;
    s109 = (s109+(g108?1:0)) % 256;
    s110 = (s110+(g109?1:0)) % 256;
    s111 = (s111+(g110?1:0)) % 256;
    s112 = (s112+(g111?1:0)) % 256;
    s113 = (s113+(g112?1:0)) % 256;
    s114 = (s114+(g113?1:0)) % 256;
    s115 = (s115+(g114?1:0)) % 256;
    s116 = (s116+(g115?1:0)) % 256;
    s117 = (s117+(g116?1:0)) % 256;
    s118 = (s118+(g117?1:0)) % 256;
    s119 = (s119+(g118?1:0)) % 256;
    s120 = (s120+(g119?1:0)) % 256;
    s121 = (s121+(g120?1:0)) % 256;
    s122 = (s122+(g121?1:0)) % 256;
    s123 = (s123+(g122?1:0)) % 256;
    s124 = (s124+(g123?1:0)) % 256;
    s125 = (s125+(g124?1:0)) % 256;
    s126 = (s126+(g125?1:0)) % 256;
    s127 = (s127+(g126?1:0)) % 256;
    s128 = (s128+(g127?1:0)) % 256;
    s129 = (s129+(g128?1:0)) % 256;
    s130 = (s130+(g129?1:0)) % 256;
    s131 = (s131+(g130?1:0)) % 256;
    s132 = (s132+(g131?1:0)) % 256;
    s133 = (s133+(g132?1:0)) % 256;
    s134 = (s134+(g133?1:0)) % 256;
    s135 = (s135+(g134?1:0)) % 256;
    s136 = (s136+(g135?1:0)) % 256;
    s137 = (s137+(g136?1:0)) % 256;
    s138 = (s138+(g137?1:0)) % 256;
    s139 = (s139+(g138?1:0)) % 256;
    s140 = (s140+(g139?1:0)) % 256;
    s141 = (s141+(g140?1:0)) % 256;
    s142 = (s142+(g141?1:0)) % 256;
    s143 = (s143+(g142?1:0)) % 256;
    s144 = (s144+(g143?1:0)) % 256;
    s145 = (s145+(g144?1:0)) % 256;
    s146 = (s146+(g145?1:0)) % 256;
    s147 = (s147+(g146?1:0)) % 256;
    s148 = (s148+(g147?1:0)) % 256;
    s149 = (s149+(g148?1:0)) % 256;
    s150 = (s150+(g149?1:0)) % 256;
    s151 = (s151+(g150?1:0)) % 256;
    s152 = (s152+(g151?1:0)) % 256;
    s153 = (s153+(g152?1:0)) % 256;
    s154 = (s154+(g153?1:0)) % 256;
    s155 = (s155+(g154?1:0)) % 256;
    s156 = (s156+(g155?1:0)) % 256;
    s157 = (s157+(g156?1:0)) % 256;
    s158 = (s158+(g157?1:0)) % 256;
    s159 = (s159+(g158?1:0)) % 256;
    s160 = (s160+(g159?1:0)) % 256;
    s161 = (s161+(g160?1:0)) % 256;
    s162 = (s162+(g161?1:0)) % 256;
    s163 = (s163+(g162?1:0)) % 256;
    s164 = (s164+(g163?1:0)) % 256;
    s165 = (s165+(g164?1:0)) % 256;
    s166 = (s166+(g165?1:0)) % 256;
    s167 = (s167+(g166?1:0)) % 256;
    s168 = (s168+(g167?1:0)) % 256;
    s169 = (s169+(g168?1:0)) % 256;
    s170 = (s170+(g169?1:0)) % 256;
    s171 = (s171+(g170?1:0)) % 256;
    s172 = (s172+(g171?1:0)) % 256;
    s173 = (s173+(g172?1:0)) % 256;
    s174 = (s174+(g173?1:0)) % 256;
    s175 = (s175+(g174?1:0)) % 256;
    s176 = (s176+(g175?1:0)) % 256;
    s177 = (s177+(g176?1:0)) % 256;
    s178 = (s178+(g177?1:0)) % 256;
    s179 = (s179+(g178?1:0)) % 256;
    s180 = (s180+(g179?1:0)) % 256;
    s181 = (s181+(g180?1:0)) % 256;
    s182 = (s182+(g181?1:0)) % 256;
    s183 = (s183+(g182?1:0)) % 256;
    s184 = (s184+(g183?1:0)) % 256;
    s185 = (s185+(g184?1:0)) % 256;
    s186 = (s186+(g185?1:0)) % 256;
    s187 = (s187+(g186?1:0)) % 256;
    s188 = (s188+(g187?1:0)) % 256;
    s189 = (s189+(g188?1:0)) % 256;
    s190 = (s190+(g189?1:0)) % 256;
    s191 = (s191+(g190?1:0)) % 256;
    s192 = (s192+(g191?1:0)) % 256;
    s193 = (s193+(g192?1:0)) % 256;
    s194 = (s194+(g193?1:0)) % 256;
    s195 = (s195+(g194?1:0)) % 256;
    s196 = (s196+(g195?1:0)) % 256;
    s197 = (s197+(g196?1:0)) % 256;
    s198 = (s198+(g197?1:0)) % 256;
    s199 = (s199+(g198?1:0)) % 256;
    s200 = (s200+(g199?1:0)) % 256;
    s201 = (s201+(g200?1:0)) % 256;
    s202 = (s202+(g201?1:0)) % 256;
    s203 = (s203+(g202?1:0)) % 256;
    s204 = (s204+(g203?1:0)) % 256;
    s205 = (s205+(g204?1:0)) % 256;
    s206 = (s206+(g205?1:0)) % 256;
    s207 = (s207+(g206?1:0)) % 256;
    s208 = (s208+(g207?1:0)) % 256;
    s209 = (s209+(g208?1:0)) % 256;
    s210 = (s210+(g209?1:0)) % 256;
    s211 = (s211+(g210?1:0)) % 256;
    s212 = (s212+(g211?1:0)) % 256;
    s213 = (s213+(g212?1:0)) % 256;
    s214 = (s214+(g213?1:0)) % 256;
    s215 = (s215+(g214?1:0)) % 256;
    s216 = (s216+(g215?1:0)) % 256;
    s217 = (s217+(g216?1:0)) % 256;
    s218 = (s218+(g217?1:0)) % 256;
    s219 = (s219+(g218?1:0)) % 256;
    s220 = (s220+(g219?1:0)) % 256;
    s221 = (s221+(g220?1:0)) % 256;
    s222 = (s222+(g221?1:0)) % 256;
    s223 = (s223+(g222?1:0)) % 256;
    s224 = (s224+(g223?1:0)) % 256;
    s225 = (s225+(g224?1:0)) % 256;
    s226 = (s226+(g225?1:0)) % 256;
    s227 = (s227+(g226?1:0)) % 256;
    s228 = (s228+(g227?1:0)) % 256;
    s229 = (s229+(g228?1:0)) % 256;
    s230 = (s230+(g229?1:0)) % 256;
    s231 = (s231+(g230?1:0)) % 256;
    s232 = (s232+(g231?1:0)) % 256;
    s233 = (s233+(g232?1:0)) % 256;
    s234 = (s234+(g233?1:0)) % 256;
    s235 = (s235+(g234?1:0)) % 256;
    s236 = (s236+(g235?1:0)) % 256;
    s237 = (s237+(g236?1:0)) % 256;
    s238 = (s238+(g237?1:0)) % 256;
    s239 = (s239+(g238?1:0)) % 256;
    s240 = (s240+(g239?1:0)) % 256;
    s241 = (s241+(g240?1:0)) % 256;
    s242 = (s242+(g241?1:0)) % 256;
    s243 = (s243+(g242?1:0)) % 256;
    s244 = (s244+(g243?1:0)) % 256;
    s245 = (s245+(g244?1:0)) % 256;
    s246 = (s246+(g245?1:0)) % 256;
    s247 = (s247+(g246?1:0)) % 256;
    s248 = (s248+(g247?1:0)) % 256;
    s249 = (s249+(g248?1:0)) % 256;
    s250 = (s250+(g249?1:0)) % 256;
    s251 = (s251+(g250?1:0)) % 256;
    s252 = (s252+(g251?1:0)) % 256;
    s253 = (s253+(g252?1:0)) % 256;
    s254 = (s254+(g253?1:0)) % 256;
    s255 = (s255+(g254?1:0)) % 256;
    s256 = (g255?1:0);
}