quine golf: optimise font, 64x64 grid 4079B

This commit is contained in:
Crispy 2024-08-13 18:03:59 +02:00
parent e8c3f6640e
commit 76f5b9040f
3 changed files with 5 additions and 5 deletions

View file

@ -1,4 +1,4 @@
Shader"S"{SubShader{Pass{CGPROGRAM#pragma vertex a Shader"S"{SubShader{Pass{CGPROGRAM#pragma vertex a
#pragma fragment f #pragma fragment f
#include"UnityCG.cginc" #include"UnityCG.cginc"
struct A{float4 v:POSITION;float2 u:TEXCOORD0;UNITY_VERTEX_INPUT_INSTANCE_ID};struct V{float2 u:TEXCOORD0;float4 v:SV_POSITION;UNITY_VERTEX_OUTPUT_STEREO};V a(A v){V o;UNITY_SETUP_INSTANCE_ID(v);UNITY_INITIALIZE_OUTPUT(V,o);UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);o.v=UnityObjectToClipPos(v.v);o.u=v.u;return o;}float3 f(V U):SV_Target{const uint t[]={0x2f00576f,0x33f2c1f7,0x2f1fb204,0x1b49dda7,0x3d618237,0x42c83a2e,0x4541a121,0x53a72e14,0x1adea1c5,0x5d3cd90b,0x603c289b,0x568d5310,0x339e664f,0x62d0e527,0x51d53c3a,0x3b06de0b,0x62ec13db,0x45bce019,0x620fc24a,0x5d6c6c36,0x00f4742a,0x70a7a790,0x5bc6aa73,0x76b38992,0x7d04286b,0x5cdd77af,0x793c758e,0x4a25d683,0x6a865f87,0x8a7a6d41,0x80979732,0x3e5dcab0,0x7aab42e2,0x4386c736,0x8f2b05f5,0x3b014639,0x38a8286b,0x5cdd77af,0x793c758e,0x4a25d683,0x285ca196,0x0c38abc3,0x8ce0fa73,0x76b38992,0x7dd7e131,0x8802215d,0x793c7e9e,0x6a7c4ea1,0x8951495d,0x7fe41a29,0x005bbcb0,0x5c2c10d0,0x71e0b2d0,0x79542e24,0x78f372b0,0x7aab42e2,0x4386c736,0x9131fc1b,0x7b8dda68,0x76bb5f80,0x4d905394,0x89a6a269,0x6a7fa4e2,0x7227c8a2,0x76b440b0,0x7b8dd81f,0x966a1e78,0x8cc22484,0x831d7ba1,0x3e5dca93,0x793a255e,0x91784c1e,0x6f044498,0x6546356c,0x9cb68111,0x712516f2,0x3e72fc95,0x6f03fc1e,0x6e9eb2bd,0x3c2881d6,0x3b3ff82e,0x7e49bd4e,0x1c044410,0x91c85dac,0x735912b1,0x1b827fd6,0x38911a9a,0x5cc864f8,0x5cc9ca92,0x9a8869fd,0x718915e0,0x3bdc43e0,0x48cf55c7,0x02fdec45,0x114e19a7,0x16307b32,0x076b20e2,0x0ef5e343,0x1600e954,0x2c214599,0x2c30e687,0x027939a4,0x0528e8d4,0x056eec44,0x111f52a7,0x0ef46dd1,0x11a45131,0x02bfd142,0x076ad596,0x09ecd345,0x0288d9a7,0x0528a0a9,0x114e474a,0x02fe5131,0x052149a2,0x0c4d2181,0x13b0d341,0x04fa0892,0x0501c2a2,0x0c73b523,0x0a13e2a1,0x1640315a,0x2c28fba1,0x2c11a68a,0x075c9393,0x112f6cd1,0x2c212dd7,0x2c313093,0x0509aba2,0x09e38ce1,0x2c2948d8,0x115e04a7,0x09e40ad4,0x16866a35,0x077a2c32,0x05112ce6,0x02b804a3,0x07919b3a,0x1414d4d8,0x09dc0924,0x2c01d3e2,0x07998262,0x09e372f7,0x13a902a3,0x1881d4a8,0x0cc1d2aa,0x0ec703e3,0x16123483,0x13c702a9,0x114de398,0x0cc26997,0x0f32d255,0x18a11552,0x09e421f7,0x2c115a95,0x076c33e7,0x13af5d42,0x04fa56a3,0x02a7e2a9,0x2c0204a3,0x027a9485,0x02b031d8,0x2c118d35,0x04f23842,0x0528cf81,0x13906ba2,0x09d3eb55,0x2c30e686,0x1879d7a2,0x1609388a,0x02a1a344,0x05303b8a,0x2c219185,0x079b1342,0x2c21a998,0x164112f3,0x0c3d8093,0x2c09a341,0x18a966a2,0x04f24ff3,0x0f32d259,0x077a43f2,0x0511dd25,0x1899dfa5,0x0ef46b51,0x2c194529,0x0edd64a4,0x05217be6,0x0f3304f2,0x09e40b32,0x09e38b5a,0x11a3d396,0x0ec5f4a8,0x051996a3,0x0772f0e5,0x11a468fa,0x0ed51521,0x2c195d31,0x188990aa,0x0ee49aea,0x07dfeba2,0x02905953,0x02fded37,0x09cc7853,0x285ca196,0x075665db,0x6e9f0d36,0x7d428da6,0x00675ee2,0x86d8e0d2,0x6e66dc6f,0x5465ec19,0x9b73c677,0x0e558203,0x114ae7e0,0x91522795,0x1348ac18,0x09dc531c,0x3892c999,0xa89c8fbc,0xb248e1fd,0x9a3b993a,0x9077ae85,0x948f80bd,0x9bbb629a,0x052cf996,0xa0820695,0x0c797372,0x06ec8c1b,0x15a8e57d,0xa8926238,0x94574cd7,0x0516d142,0x7e49a43a,0x2556c6cf,0x91522795,0x15634bf9,0x0a0f4f4f,0x5ec5e876,0xa2b20e75,0x915284b6,0x7dca59c3,0x6632f6cd,0xb9081183,0x21fd79d1,0x7e4d92eb,0x5465f1c7,0x94882f25,0x9b9f5021,0xaa1900f7,0x7d2892f8,0x348353d8,0x10815451,0x21c78c1b,0x837db3f6,0x94a6f22a,0x807fee8c,0x8f64ca00,};const uint R[]={0,234663,68679,2265159,3280003,5348,7376003,3185831,233604,6592806,6600966,2234534,34023,6182,8665390,6601774,4267074,301257,134,14719239,1088809,6210,337920,4262980,5286,7642145,133250,6587686,6337838,7642409,15255086,2270697,18732593,11512810,3312673,12923174,11953,5282,72774,8661474,7465,1049633,33826,304422,567426,128,206118,131200,7407687,32641156,18470705,131204,7375911,18157905,3319079,567428,31,574788,2240642,2130978,1116225,1082415,15994959,459200,4198566,3179555,3213379,332096,145536,7168,2236546,72955190,4260932,9570592,211030020,266305};float2 p=U.u*65;uint c,i,Y,X=p.x;Y=p.y;i=X+(64-Y)*65;if(i>446&&i<3285){c=(i-447)%11;c=c<2?(c<<4)+1:c==10?18:(t[(i-447)/11]>>(7-((c-2)&7))*4&15)+1;}else{i-=(i>447)*2838;c=t[i/5];for(i%=5;i<4;i++)c/=80;c%=80;}Y=(p.y-Y)*6;X=(p.x-X)*6;return(X<5)*R[c]>>(X+Y*5)&1;}ENDCG}}} struct A{float4 v:POSITION;float2 u:TEXCOORD0;UNITY_VERTEX_INPUT_INSTANCE_ID};struct V{float2 u:TEXCOORD0;float4 v:SV_POSITION;UNITY_VERTEX_OUTPUT_STEREO};V a(A v){V o;UNITY_SETUP_INSTANCE_ID(v);UNITY_INITIALIZE_OUTPUT(V,o);UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);o.v=UnityObjectToClipPos(v.v);o.u=v.u;return o;}float3 f(V U):SV_Target{const uint t[]={0x2f00576f,0x33f2c1f7,0x2f1fb204,0x1b49dda7,0x3d618237,0x42c83a2e,0x4541a121,0x53a72e14,0x1adea1c5,0x5d3cd90b,0x603c289b,0x568d5310,0x339e664f,0x62d0e527,0x51d53c3a,0x3b06de0b,0x62ec13db,0x45bce019,0x620fc24a,0x5d6c6c36,0x00f4742a,0x70a7a790,0x5bc6aa73,0x76b38992,0x7d04286b,0x5cdd77af,0x793c758e,0x4a25d683,0x6a865f87,0x8a7a6d41,0x80979732,0x3e5dcab0,0x7aab42e2,0x4386c736,0x8f2b05f5,0x3b014639,0x38a8286b,0x5cdd77af,0x793c758e,0x4a25d683,0x285ca196,0x0c38abc3,0x8ce0fa73,0x76b38992,0x7dd7e131,0x8802215d,0x793c7e9e,0x6a7c4ea1,0x8951495d,0x7fe41a29,0x005bbcb0,0x5c2c10d0,0x71e0b2d0,0x79542e24,0x78f372b0,0x7aab42e2,0x4386c736,0x9131fc1b,0x7b8dda68,0x76bb5f80,0x4d905394,0x89a6a269,0x6a7fa4e2,0x7227c8a2,0x76b440b0,0x7b8dd81f,0x966a1e78,0x8cc22484,0x831d7ba1,0x3e5dca93,0x793a255e,0x91784c1e,0x6f044498,0x6546356c,0x9cb68111,0x712516f2,0x3e72fc95,0x6f03fc1e,0x6e9eb2bd,0x3c2881d6,0x3b3ff82e,0x7e49bd4e,0x1c044410,0x91c85dac,0x735912b1,0x1b827fd6,0x38911a9a,0x5cc864f8,0x5cc9ca92,0x9a8869fd,0x718915e0,0x3bdc43e0,0x48cf55c7,0x02fdec45,0x114e19a7,0x16307b32,0x076b20e2,0x0ef5e343,0x1600e954,0x2c214599,0x2c30e687,0x027939a4,0x0528e8d4,0x056eec44,0x111f52a7,0x0ef46dd1,0x11a45131,0x02bfd142,0x076ad596,0x09ecd345,0x0288d9a7,0x0528a0a9,0x114e474a,0x02fe5131,0x052149a2,0x0c4d2181,0x13b0d341,0x04fa0892,0x1147a434,0x09cc8042,0x2c01bbd9,0x1601cfa7,0x0762bea4,0x0a037af1,0x2c195d33,0x18b06ea6,0x079a04a8,0x113e5ba5,0x0f32d344,0x0781fea7,0x0eed1a39,0x11a45044,0x13ceb6e2,0x09e372f9,0x02c0e436,0x1899c389,0x2c09bd81,0x1165eda6,0x16284724,0x2c01d3e2,0x07998262,0x09e372f7,0x13a902a3,0x1881d4a8,0x0cc1d2aa,0x0ec703e3,0x16123483,0x13c702a3,0x13a05337,0x2c30ff36,0x2c01ba9a,0x1136a9a4,0x0a0a9d42,0x09cc4e93,0x07e03838,0x0c4d24a4,0x07dfeb57,0x04f286a2,0x09d3eb51,0x2c30fd58,0x115e1da3,0x09d42021,0x2c115b37,0x028262a4,0x04f98a02,0x13a809ea,0x04f362a9,0x0511ab21,0x0f330542,0x18729b32,0x0edd7993,0x168604b2,0x0ee4ff89,0x1685ebf5,0x02a82e02,0x0763045a,0x13d012a2,0x0518fbf6,0x2c11a6d4,0x056ed3ea,0x18920bea,0x2c09be27,0x027a92f1,0x18b86d38,0x2c11748a,0x0ed57ba4,0x07630548,0x18f6d437,0x0298f6a8,0x079231e2,0x139851e2,0x04f1d4d3,0x13a90483,0x189976aa,0x02fe1df7,0x02bf8502,0x1899a856,0x188332f2,0x04ea3451,0x075c92f7,0x11365b1a,0x7d04286b,0x5cdd7adf,0x6a5cfcf7,0x0dc5d4f8,0x5cc74ac9,0x2da182cf,0x54634927,0x9add12f3,0x660a727b,0x113d0e6c,0xa3ca3d19,0x28e106e5,0x0c72b559,0xafe78ce3,0x933108eb,0x66348e98,0x94b682d3,0x21aa8b83,0xb6784bc8,0x0e1064cf,0x21af57a1,0xb4ba8feb,0x5ec7a015,0x0c5ceb0b,0x04f82826,0x90504fab,0x21d86e07,0x1562b0f5,0xad674904,0x06761eda,0x3ff17c15,0x9ba006e5,0x0c7970f3,0x160175fd,0x9afe461b,0x10aea02e,0x3516080f,0x10388785,0x7dca097c,0x220d19d1,0x7cefc4b9,0x04052b6f,0x91191305,0x88224d63,0x8356fdcd,0x2ba15003,0x12a781d6,0x3b400aa5,0xaffcd10d,0x9f1d1826,0x91afc573,0x1081afd3,0x8f3532fb,0x4626dc20,};const uint R[]={0,234663,68679,2265159,3280003,5348,7376003,3185831,233604,6592806,6600966,2234534,34023,6182,8665390,6601774,4267074,301257,65,6330631,1088809,6210,337920,4262980,5286,7642145,133250,6587686,6337838,3312809,6595878,2270697,585393,11512810,3312673,12923174,11953,5282,72774,272866,7465,1049633,33826,304422,567426,32,206118,131200,7407687,231490,306601,131202,7375911,18157905,3319079,567428,31,574788,2240642,2130978,1116225,33831,15994959,229600,2099267,3179555,3213379,166048,72768,7168,1118273,72955190,4260932,9570592,211030020,266305};float2 p=U.u*64;uint c,i,Y,X=p.x;Y=p.y;i=X+(63-Y)*64;if(i>446&&i<3252){c=(i-447)%11;c=c<2?(c<<4)+1:c==10?18:(t[(i-447)/11]>>(7-((c-2)&7))*4&15)+1;}else{i-=(i>447)*2805;c=t[i/5];for(i%=5;i<4;i++)c/=80;c%=80;}Y=(p.y-Y)*6;X=(p.x-X)*6;return(X<5)*R[c]>>(X+Y*5)&1;}ENDCG}}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8 KiB

After

Width:  |  Height:  |  Size: 8 KiB

View file

@ -1,5 +1,5 @@
const uint t[]={0x2f00576f,0x33f2c1f7,0x2f1fb204,0x1b49dda7,0x3d618237,0x42c83a2e,0x4541a121,0x53a72e14,0x1adea1c5,0x5d3cd90b,0x603c289b,0x568d5310,0x339e664f,0x62d0e527,0x51d53c3a,0x3b06de0b,0x62ec13db,0x45bce019,0x620fc24a,0x5d6c6c36,0x00f4742a,0x70a7a790,0x5bc6aa73,0x76b38992,0x7d04286b,0x5cdd77af,0x793c758e,0x4a25d683,0x6a865f87,0x8a7a6d41,0x80979732,0x3e5dcab0,0x7aab42e2,0x4386c736,0x8f2b05f5,0x3b014639,0x38a8286b,0x5cdd77af,0x793c758e,0x4a25d683,0x285ca196,0x0c38abc3,0x8ce0fa73,0x76b38992,0x7dd7e131,0x8802215d,0x793c7e9e,0x6a7c4ea1,0x8951495d,0x7fe41a29,0x005bbcb0,0x5c2c10d0,0x71e0b2d0,0x79542e24,0x78f372b0,0x7aab42e2,0x4386c736,0x9131fc1b,0x7b8dda68,0x76bb5f80,0x4d905394,0x89a6a269,0x6a7fa4e2,0x7227c8a2,0x76b440b0,0x7b8dd81f,0x966a1e78,0x8cc22484,0x831d7ba1,0x3e5dca93,0x793a255e,0x91784c1e,0x6f044498,0x6546356c,0x9cb68111,0x712516f2,0x3e72fc95,0x6f03fc1e,0x6e9eb2bd,0x3c2881d6,0x3b3ff82e,0x7e49bd4e,0x1c044410,0x91c85dac,0x735912b1,0x1b827fd6,0x38911a9a,0x5cc864f8,0x5cc9ca92,0x9a8869fd,0x718915e0,0x3bdc43e0,0x48cf55c7,0x02fdec45,0x114e19a7,0x16307b32,0x076b20e2,0x0ef5e343,0x1600e954,0x2c214599,0x2c30e687,0x027939a4,0x0528e8d4,0x056eec44,0x111f52a7,0x0ef46dd1,0x11a45131,0x02bfd142,0x076ad596,0x09ecd345,0x0288d9a7,0x0528a0a9,0x114e474a,0x02fe5131,0x052149a2,0x0c4d2181,0x13b0d341,0x04fa0892,0x0501c2a2,0x0c73b523,0x0a13e2a1,0x1640315a,0x2c28fba1,0x2c11a68a,0x075c9393,0x112f6cd1,0x2c212dd7,0x2c313093,0x0509aba2,0x09e38ce1,0x2c2948d8,0x115e04a7,0x09e40ad4,0x16866a35,0x077a2c32,0x05112ce6,0x02b804a3,0x07919b3a,0x1414d4d8,0x09dc0924,0x2c01d3e2,0x07998262,0x09e372f7,0x13a902a3,0x1881d4a8,0x0cc1d2aa,0x0ec703e3,0x16123483,0x13c702a9,0x114de398,0x0cc26997,0x0f32d255,0x18a11552,0x09e421f7,0x2c115a95,0x076c33e7,0x13af5d42,0x04fa56a3,0x02a7e2a9,0x2c0204a3,0x027a9485,0x02b031d8,0x2c118d35,0x04f23842,0x0528cf81,0x13906ba2,0x09d3eb55,0x2c30e686,0x1879d7a2,0x1609388a,0x02a1a344,0x05303b8a,0x2c219185,0x079b1342,0x2c21a998,0x164112f3,0x0c3d8093,0x2c09a341,0x18a966a2,0x04f24ff3,0x0f32d259,0x077a43f2,0x0511dd25,0x1899dfa5,0x0ef46b51,0x2c194529,0x0edd64a4,0x05217be6,0x0f3304f2,0x09e40b32,0x09e38b5a,0x11a3d396,0x0ec5f4a8,0x051996a3,0x0772f0e5,0x11a468fa,0x0ed51521,0x2c195d31,0x188990aa,0x0ee49aea,0x07dfeba2,0x02905953,0x02fded37,0x09cc7853,0x285ca196,0x075665db,0x6e9f0d36,0x7d428da6,0x00675ee2,0x86d8e0d2,0x6e66dc6f,0x5465ec19,0x9b73c677,0x0e558203,0x114ae7e0,0x91522795,0x1348ac18,0x09dc531c,0x3892c999,0xa89c8fbc,0xb248e1fd,0x9a3b993a,0x9077ae85,0x948f80bd,0x9bbb629a,0x052cf996,0xa0820695,0x0c797372,0x06ec8c1b,0x15a8e57d,0xa8926238,0x94574cd7,0x0516d142,0x7e49a43a,0x2556c6cf,0x91522795,0x15634bf9,0x0a0f4f4f,0x5ec5e876,0xa2b20e75,0x915284b6,0x7dca59c3,0x6632f6cd,0xb9081183,0x21fd79d1,0x7e4d92eb,0x5465f1c7,0x94882f25,0x9b9f5021,0xaa1900f7,0x7d2892f8,0x348353d8,0x10815451,0x21c78c1b,0x837db3f6,0x94a6f22a,0x807fee8c,0x8f64ca00,}; const uint t[]={0x2f00576f,0x33f2c1f7,0x2f1fb204,0x1b49dda7,0x3d618237,0x42c83a2e,0x4541a121,0x53a72e14,0x1adea1c5,0x5d3cd90b,0x603c289b,0x568d5310,0x339e664f,0x62d0e527,0x51d53c3a,0x3b06de0b,0x62ec13db,0x45bce019,0x620fc24a,0x5d6c6c36,0x00f4742a,0x70a7a790,0x5bc6aa73,0x76b38992,0x7d04286b,0x5cdd77af,0x793c758e,0x4a25d683,0x6a865f87,0x8a7a6d41,0x80979732,0x3e5dcab0,0x7aab42e2,0x4386c736,0x8f2b05f5,0x3b014639,0x38a8286b,0x5cdd77af,0x793c758e,0x4a25d683,0x285ca196,0x0c38abc3,0x8ce0fa73,0x76b38992,0x7dd7e131,0x8802215d,0x793c7e9e,0x6a7c4ea1,0x8951495d,0x7fe41a29,0x005bbcb0,0x5c2c10d0,0x71e0b2d0,0x79542e24,0x78f372b0,0x7aab42e2,0x4386c736,0x9131fc1b,0x7b8dda68,0x76bb5f80,0x4d905394,0x89a6a269,0x6a7fa4e2,0x7227c8a2,0x76b440b0,0x7b8dd81f,0x966a1e78,0x8cc22484,0x831d7ba1,0x3e5dca93,0x793a255e,0x91784c1e,0x6f044498,0x6546356c,0x9cb68111,0x712516f2,0x3e72fc95,0x6f03fc1e,0x6e9eb2bd,0x3c2881d6,0x3b3ff82e,0x7e49bd4e,0x1c044410,0x91c85dac,0x735912b1,0x1b827fd6,0x38911a9a,0x5cc864f8,0x5cc9ca92,0x9a8869fd,0x718915e0,0x3bdc43e0,0x48cf55c7,0x02fdec45,0x114e19a7,0x16307b32,0x076b20e2,0x0ef5e343,0x1600e954,0x2c214599,0x2c30e687,0x027939a4,0x0528e8d4,0x056eec44,0x111f52a7,0x0ef46dd1,0x11a45131,0x02bfd142,0x076ad596,0x09ecd345,0x0288d9a7,0x0528a0a9,0x114e474a,0x02fe5131,0x052149a2,0x0c4d2181,0x13b0d341,0x04fa0892,0x1147a434,0x09cc8042,0x2c01bbd9,0x1601cfa7,0x0762bea4,0x0a037af1,0x2c195d33,0x18b06ea6,0x079a04a8,0x113e5ba5,0x0f32d344,0x0781fea7,0x0eed1a39,0x11a45044,0x13ceb6e2,0x09e372f9,0x02c0e436,0x1899c389,0x2c09bd81,0x1165eda6,0x16284724,0x2c01d3e2,0x07998262,0x09e372f7,0x13a902a3,0x1881d4a8,0x0cc1d2aa,0x0ec703e3,0x16123483,0x13c702a3,0x13a05337,0x2c30ff36,0x2c01ba9a,0x1136a9a4,0x0a0a9d42,0x09cc4e93,0x07e03838,0x0c4d24a4,0x07dfeb57,0x04f286a2,0x09d3eb51,0x2c30fd58,0x115e1da3,0x09d42021,0x2c115b37,0x028262a4,0x04f98a02,0x13a809ea,0x04f362a9,0x0511ab21,0x0f330542,0x18729b32,0x0edd7993,0x168604b2,0x0ee4ff89,0x1685ebf5,0x02a82e02,0x0763045a,0x13d012a2,0x0518fbf6,0x2c11a6d4,0x056ed3ea,0x18920bea,0x2c09be27,0x027a92f1,0x18b86d38,0x2c11748a,0x0ed57ba4,0x07630548,0x18f6d437,0x0298f6a8,0x079231e2,0x139851e2,0x04f1d4d3,0x13a90483,0x189976aa,0x02fe1df7,0x02bf8502,0x1899a856,0x188332f2,0x04ea3451,0x075c92f7,0x11365b1a,0x7d04286b,0x5cdd7adf,0x6a5cfcf7,0x0dc5d4f8,0x5cc74ac9,0x2da182cf,0x54634927,0x9add12f3,0x660a727b,0x113d0e6c,0xa3ca3d19,0x28e106e5,0x0c72b559,0xafe78ce3,0x933108eb,0x66348e98,0x94b682d3,0x21aa8b83,0xb6784bc8,0x0e1064cf,0x21af57a1,0xb4ba8feb,0x5ec7a015,0x0c5ceb0b,0x04f82826,0x90504fab,0x21d86e07,0x1562b0f5,0xad674904,0x06761eda,0x3ff17c15,0x9ba006e5,0x0c7970f3,0x160175fd,0x9afe461b,0x10aea02e,0x3516080f,0x10388785,0x7dca097c,0x220d19d1,0x7cefc4b9,0x04052b6f,0x91191305,0x88224d63,0x8356fdcd,0x2ba15003,0x12a781d6,0x3b400aa5,0xaffcd10d,0x9f1d1826,0x91afc573,0x1081afd3,0x8f3532fb,0x4626dc20,};
b=447; b=447;
uint magic_number_L_plus_b= 3285; uint magic_number_L_plus_b= 3252;
uint magic_number_L= 2838; uint magic_number_L= 2805;
const uint R[]={0,234663,68679,2265159,3280003,5348,7376003,3185831,233604,6592806,6600966,2234534,34023,6182,8665390,6601774,4267074,301257,134,14719239,1088809,6210,337920,4262980,5286,7642145,133250,6587686,6337838,7642409,15255086,2270697,18732593,11512810,3312673,12923174,11953,5282,72774,8661474,7465,1049633,33826,304422,567426,128,206118,131200,7407687,32641156,18470705,131204,7375911,18157905,3319079,567428,31,574788,2240642,2130978,1116225,1082415,15994959,459200,4198566,3179555,3213379,332096,145536,7168,2236546,72955190,4260932,9570592,211030020,266305}; const uint R[]={0,234663,68679,2265159,3280003,5348,7376003,3185831,233604,6592806,6600966,2234534,34023,6182,8665390,6601774,4267074,301257,65,6330631,1088809,6210,337920,4262980,5286,7642145,133250,6587686,6337838,3312809,6595878,2270697,585393,11512810,3312673,12923174,11953,5282,72774,272866,7465,1049633,33826,304422,567426,32,206118,131200,7407687,231490,306601,131202,7375911,18157905,3319079,567428,31,574788,2240642,2130978,1116225,33831,15994959,229600,2099267,3179555,3213379,166048,72768,7168,1118273,72955190,4260932,9570592,211030020,266305};