diff --git a/README.md b/README.md index 53061df..572114d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +> [!WARNING] +> README outdated and will be updated soon + # Circom Circuits Library for Machine Learning Run `npm run test` to test all `circomlib-ml` circuit templates. diff --git a/circuits/ArgMax.circom b/circuits/ArgMax.circom index 4afef32..c793987 100644 --- a/circuits/ArgMax.circom +++ b/circuits/ArgMax.circom @@ -7,7 +7,9 @@ include "./circomlib/switcher.circom"; template ArgMax (n) { signal input in[n]; - signal output out; + signal input out; + + assert (out < n); component gts[n]; // store comparators component switchers[n+1]; // switcher for comparing maxs component aswitchers[n+1]; // switcher for arg max @@ -36,5 +38,12 @@ template ArgMax (n) { maxs[i+1] <== switchers[i+1].outL; } - out <== amaxs[n]; -} \ No newline at end of file + out === amaxs[n]; +} + +// component main { public [ out ] } = ArgMax(5); + +/* INPUT = { + "in": ["2","3","1","5","4"], + "out": "3" +} */ \ No newline at end of file diff --git a/circuits/AveragePooling2D.circom b/circuits/AveragePooling2D.circom index 43b3171..182d830 100644 --- a/circuits/AveragePooling2D.circom +++ b/circuits/AveragePooling2D.circom @@ -3,10 +3,10 @@ pragma circom 2.0.0; include "./SumPooling2D.circom"; // AveragePooling2D layer, poolSize is required to be equal for both dimensions, might lose precision compared to SumPooling2D -// scaledInvPoolSize is required to perform fixed point division, it is calculated as 1/poolSize**2 then scaled up by multiples of 10 -template AveragePooling2D (nRows, nCols, nChannels, poolSize, strides, scaledInvPoolSize) { +template AveragePooling2D (nRows, nCols, nChannels, poolSize, strides) { signal input in[nRows][nCols][nChannels]; - signal output out[(nRows-poolSize)\strides+1][(nCols-poolSize)\strides+1][nChannels]; + signal input out[(nRows-poolSize)\strides+1][(nCols-poolSize)\strides+1][nChannels]; + signal input remainder[(nRows-poolSize)\strides+1][(nCols-poolSize)\strides+1][nChannels]; component sumPooling2D = SumPooling2D (nRows, nCols, nChannels, poolSize, strides); @@ -21,7 +21,8 @@ template AveragePooling2D (nRows, nCols, nChannels, poolSize, strides, scaledInv for (var i=0; i<(nRows-poolSize)\strides+1; i++) { for (var j=0; j<(nCols-poolSize)\strides+1; j++) { for (var k=0; k" + "" ] }, - "execution_count": 11, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -432,19 +456,19 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ,\n", + " ]" ] }, - "execution_count": 12, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -455,44 +479,44 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[[[0.53603175, 0.16288177, 0.54647377],\n", - " [0.58968269, 0.51633636, 0.09084824],\n", - " [0.58954409, 0.60274177, 0.16628126],\n", - " [0.03036366, 0.25776433, 0.97264483],\n", - " [0.06753911, 0.4969747 , 0.02626603]],\n", + "array([[[[0.27455621, 0.27884516, 0.7259278 ],\n", + " [0.53377714, 0.6519488 , 0.86514377],\n", + " [0.49080768, 0.65021787, 0.68419028],\n", + " [0.0618392 , 0.02673969, 0.57868236],\n", + " [0.85494917, 0.71864642, 0.38163087]],\n", "\n", - " [[0.92805506, 0.92962356, 0.94991846],\n", - " [0.40984699, 0.57242913, 0.73624703],\n", - " [0.27120968, 0.30428539, 0.6547197 ],\n", - " [0.6895789 , 0.12203021, 0.56160566],\n", - " [0.35853814, 0.61396961, 0.30326431]],\n", + " [[0.22703165, 0.33350008, 0.85208601],\n", + " [0.86850824, 0.43578265, 0.70671478],\n", + " [0.75415054, 0.97444638, 0.48606382],\n", + " [0.14784358, 0.45406111, 0.08556609],\n", + " [0.20530247, 0.25450988, 0.51542351]],\n", "\n", - " [[0.49895694, 0.26192641, 0.41918769],\n", - " [0.56496371, 0.13934069, 0.77930897],\n", - " [0.9652276 , 0.68000352, 0.59384582],\n", - " [0.18267196, 0.26760574, 0.93864666],\n", - " [0.49916607, 0.63215712, 0.38614211]],\n", + " [[0.13544047, 0.01932561, 0.22823691],\n", + " [0.64891188, 0.18616972, 0.46087849],\n", + " [0.81283055, 0.5325164 , 0.32305024],\n", + " [0.75351508, 0.14501534, 0.44999686],\n", + " [0.42234362, 0.06347228, 0.63881747]],\n", "\n", - " [[0.46365438, 0.3845917 , 0.6604073 ],\n", - " [0.59669509, 0.22802217, 0.62536791],\n", - " [0.37852067, 0.51773501, 0.96948045],\n", - " [0.46492378, 0.09701206, 0.90831063],\n", - " [0.31265477, 0.43007139, 0.82608669]],\n", + " [[0.85467296, 0.80260163, 0.14398915],\n", + " [0.57931829, 0.53329564, 0.7187654 ],\n", + " [0.80024988, 0.96224997, 0.8937722 ],\n", + " [0.33025203, 0.91751174, 0.62203916],\n", + " [0.93176317, 0.72790829, 0.14862771]],\n", "\n", - " [[0.32252988, 0.28388506, 0.15159293],\n", - " [0.54518128, 0.73664414, 0.27618411],\n", - " [0.41446863, 0.45379391, 0.65724072],\n", - " [0.1670575 , 0.82368301, 0.41525341],\n", - " [0.05091919, 0.78432432, 0.29655634]]]])" + " [[0.60466651, 0.567648 , 0.37182924],\n", + " [0.76271487, 0.11624398, 0.81946002],\n", + " [0.4389968 , 0.90003205, 0.19711127],\n", + " [0.67622958, 0.53012144, 0.37373778],\n", + " [0.97509719, 0.48172791, 0.63218788]]]])" ] }, - "execution_count": 17, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -504,44 +528,51 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 10, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 32ms/step\n" + ] + }, { "data": { "text/plain": [ - "array([[[[ 0.4612311 , 0.02846454, 0.47584018],\n", - " [ 0.5232636 , 0.4369807 , -0.05033689],\n", - " [ 0.5231033 , 0.5368464 , 0.03677658],\n", - " [-0.12343314, 0.13812803, 0.9680018 ],\n", - " [-0.08045009, 0.41460282, -0.12491935]],\n", + "array([[[[ 0.1575187 , 0.09737267, 0.67934984],\n", + " [ 0.45877463, 0.5279483 , 0.8411379 ],\n", + " [ 0.40883726, 0.52595073, 0.63084507],\n", + " [-0.0896923 , -0.19356653, 0.50823045],\n", + " [ 0.83202755, 0.60491985, 0.27922952]],\n", "\n", - " [[ 0.9144969 , 0.9146502 , 0.94175637],\n", - " [ 0.31533363, 0.50181156, 0.69499886],\n", - " [ 0.1550382 , 0.19189616, 0.6008475 ],\n", - " [ 0.63876563, -0.01875092, 0.4933151 ],\n", - " [ 0.25600925, 0.54982334, 0.19497083]],\n", + " [[ 0.10228759, 0.16044651, 0.8259631 ],\n", + " [ 0.84778535, 0.2784844 , 0.65702164],\n", + " [ 0.7148835 , 0.9001226 , 0.40059495],\n", + " [ 0.01025847, 0.29957846, -0.06483836],\n", + " [ 0.07703484, 0.06928882, 0.43471497]],\n", "\n", - " [[ 0.41836447, 0.14293846, 0.3288444 ],\n", - " [ 0.49468288, 0.00125621, 0.7447288 ],\n", - " [ 0.9574766 , 0.62614405, 0.53054756],\n", - " [ 0.05266898, 0.14950253, 0.92873925],\n", - " [ 0.41860625, 0.57084405, 0.29068184]],\n", + " [[-0.00415592, -0.20212264, 0.10096472],\n", + " [ 0.5925795 , -0.00957828, 0.37132615],\n", + " [ 0.7830791 , 0.39011884, 0.21115081],\n", + " [ 0.714145 , -0.05707199, 0.3586802 ],\n", + " [ 0.32927114, -0.15117574, 0.5781157 ]],\n", "\n", - " [[ 0.37754688, 0.28471267, 0.6074158 ],\n", - " [ 0.53137136, 0.10375258, 0.5669507 ],\n", - " [ 0.27911344, 0.43859717, 0.96434736],\n", - " [ 0.37901458, -0.04766643, 0.8937058 ],\n", - " [ 0.20295788, 0.33727726, 0.7987498 ]],\n", + " [[ 0.8317066 , 0.7018073 , 0.00305727],\n", + " [ 0.5117007 , 0.39101806, 0.6710261 ],\n", + " [ 0.7684583 , 0.88604754, 0.8744081 ],\n", + " [ 0.22224607, 0.83441794, 0.558617 ],\n", + " [ 0.92129767, 0.6156084 , 0.0084479 ]],\n", "\n", - " [[ 0.2143757 , 0.16831785, 0.01981383],\n", - " [ 0.47181004, 0.69160825, 0.16369738],\n", - " [ 0.32067728, 0.3646953 , 0.6037588 ],\n", - " [ 0.03461521, 0.7922061 , 0.32430092],\n", - " [-0.0996664 , 0.74671614, 0.18722416]]]], dtype=float32)" + " [[ 0.54115933, 0.43066198, 0.26783872],\n", + " [ 0.72483665, -0.09027521, 0.78804713],\n", + " [ 0.34862483, 0.81424564, 0.06479244],\n", + " [ 0.624327 , 0.38735494, 0.2700567 ],\n", + " [ 0.97165865, 0.33150697, 0.5704112 ]]]], dtype=float32)" ] }, - "execution_count": 33, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -554,7 +585,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -567,7 +598,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -577,44 +608,44 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[[[-2.03794953e-08, 5.91488761e-09, 1.45154126e-08],\n", - " [ 7.98100520e-08, 1.98810133e-08, 7.91968675e-09],\n", - " [ 4.81973802e-08, -2.20449419e-08, -1.88879183e-09],\n", - " [ 2.64212180e-10, 1.55602272e-08, -7.21641903e-08],\n", - " [-8.82741547e-10, -2.68981404e-08, 1.23617632e-08]],\n", + "array([[[[ 1.38897775e-08, -4.41621682e-09, -1.46314817e-08],\n", + " [ 1.22362858e-08, 2.73325588e-08, -4.77779197e-08],\n", + " [-1.14818392e-08, -8.60447691e-09, -5.83081214e-08],\n", + " [-5.10371694e-09, -8.67723293e-09, 2.98262304e-10],\n", + " [-7.37144357e-09, -6.87929902e-09, -3.09108445e-08]],\n", "\n", - " [[ 2.51851505e-08, -1.65522146e-08, -4.00145346e-08],\n", - " [ 2.10715177e-08, -7.90676278e-08, -8.24527382e-08],\n", - " [ 5.33205935e-09, -1.58572262e-08, 1.61795255e-09],\n", - " [ 4.38547865e-10, 3.73349793e-09, -5.56143572e-08],\n", - " [ 3.41888787e-08, 3.81396181e-09, 5.69365846e-09]],\n", + " [[-3.70238870e-09, 9.08749898e-09, 6.04406457e-08],\n", + " [-8.04363320e-09, -2.61427017e-08, -4.75678711e-08],\n", + " [-2.29807172e-08, -3.35601555e-08, -3.61847423e-08],\n", + " [ 1.76612667e-09, -8.73801476e-10, 2.36584587e-09],\n", + " [ 5.96964625e-09, -1.35698691e-08, -2.09152273e-09]],\n", "\n", - " [[ 2.33330081e-08, 6.56881610e-09, -1.21710513e-08],\n", - " [-2.89912733e-09, 4.82403046e-09, -1.72175791e-08],\n", - " [ 6.43033263e-08, -4.13130072e-08, -1.50603818e-09],\n", - " [ 7.43607972e-09, 4.41849135e-09, 2.61667081e-08],\n", - " [ 1.46215137e-08, -6.68016564e-08, -4.45506274e-08]],\n", + " [[-2.18008088e-09, 3.40718009e-09, 1.14725877e-09],\n", + " [ 7.83470533e-09, -4.13062541e-09, -2.05064118e-08],\n", + " [ 5.68865103e-08, 3.01907888e-08, -1.38190100e-08],\n", + " [-2.30006845e-08, -8.84019241e-09, -3.75235497e-08],\n", + " [-1.33667987e-08, 2.45791437e-09, 1.05576055e-08]],\n", "\n", - " [[ 1.13439502e-08, -1.31488602e-08, 1.62490282e-08],\n", - " [-3.02629793e-08, 4.91692291e-09, -2.13291591e-08],\n", - " [-4.75657103e-09, -4.41433378e-08, -1.26229787e-07],\n", - " [ 9.41011957e-09, 2.70651909e-09, -1.61074364e-08],\n", - " [ 1.15060916e-09, 3.34245048e-09, -5.07417969e-08]],\n", + " [[ 1.63983768e-08, 4.34060976e-09, 7.69416812e-09],\n", + " [ 1.96461017e-08, -2.64836226e-08, -5.55432413e-08],\n", + " [ 1.60446652e-08, 3.83262573e-08, 3.27252936e-08],\n", + " [-1.79053708e-08, 3.49677078e-08, 2.28655761e-09],\n", + " [ 3.06888477e-08, -6.37458319e-09, -7.83266337e-10]],\n", "\n", - " [[ 4.33865668e-09, 4.46010895e-09, -6.16794888e-09],\n", - " [ 3.34336615e-08, -4.74926964e-09, -1.07198432e-08],\n", - " [ 2.74091595e-08, 1.35368101e-08, -5.05023202e-08],\n", - " [ 4.70631774e-09, -2.86037326e-08, -1.74001409e-08],\n", - " [-1.16552118e-08, 3.97495532e-08, -2.19518315e-09]]]])" + " [[ 3.44015694e-09, -2.27795071e-08, -3.66268776e-09],\n", + " [ 8.27864410e-09, -8.66295551e-09, -9.44552192e-09],\n", + " [ 3.77712691e-08, -4.68591560e-08, -7.31272758e-09],\n", + " [ 1.90310351e-08, 2.21921187e-09, -1.20205449e-08],\n", + " [-1.50930767e-08, -1.72539832e-08, 6.61672261e-09]]]])" ] }, - "execution_count": 43, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -625,44 +656,44 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[[[-1.61475423e-08, 5.64923888e-09, -2.40047562e-08],\n", - " [ 8.45288702e-08, 8.12395617e-09, -3.95743559e-09],\n", - " [ 5.29149408e-08, -3.66111857e-08, -1.81769167e-08],\n", - " [-9.26127786e-11, 1.22097854e-08, -1.35605033e-07],\n", - " [-9.02211070e-10, -3.80257174e-08, 4.26113381e-09]],\n", + "array([[[[ 6.29271463e-09, -1.51612348e-08, 4.78305939e-09],\n", + " [ 2.53706245e-09, 1.56956936e-08, -2.51350980e-08],\n", + " [-2.08326003e-08, -2.02372046e-08, -3.98614322e-08],\n", + " [-1.09757444e-08, -1.88196314e-08, 1.62983274e-08],\n", + " [-1.96752217e-08, -1.86755947e-08, -1.94802087e-08]],\n", "\n", - " [[ 3.29745908e-08, -4.17459400e-08, -1.02126435e-07],\n", - " [ 2.41583839e-08, -9.26483562e-08, -1.32070041e-07],\n", - " [ 7.16083581e-09, -2.07201465e-08, -4.32319784e-08],\n", - " [ 6.06389250e-09, 4.79600271e-09, -9.50193745e-08],\n", - " [ 3.68101333e-08, -1.11173180e-08, -1.86046535e-08]],\n", + " [[-1.09140497e-08, -1.78816328e-09, 8.27806710e-08],\n", + " [-2.04573691e-08, -3.72628548e-08, -2.85988609e-08],\n", + " [-3.44670656e-08, -4.59679019e-08, -2.23324095e-08],\n", + " [-4.80335610e-09, -1.20376463e-08, 6.93103225e-09],\n", + " [-1.06580120e-09, -2.42567173e-08, 1.24416322e-08]],\n", "\n", - " [[ 2.72285189e-08, 3.08305820e-09, -4.32480702e-08],\n", - " [ 1.59537394e-09, 5.32374209e-09, -6.93529612e-08],\n", - " [ 7.24300957e-08, -5.83911616e-08, -4.27963234e-08],\n", - " [ 8.46140438e-09, 7.48088591e-10, -3.52860654e-08],\n", - " [ 1.85189223e-08, -8.23242431e-08, -7.36952816e-08]],\n", + " [[-8.64898020e-09, -6.71749611e-09, 9.02084041e-09],\n", + " [-2.79820678e-09, -1.46541169e-08, -7.23810212e-09],\n", + " [ 4.49242945e-08, 1.88394085e-08, -3.74680098e-09],\n", + " [-3.44818796e-08, -1.92653107e-08, -2.45075741e-08],\n", + " [-2.21623482e-08, -7.77228767e-09, 2.79521442e-08]],\n", "\n", - " [[ 1.49191015e-08, -2.06226749e-08, -2.89334895e-08],\n", - " [-2.54805258e-08, 2.53344934e-09, -6.44627220e-08],\n", - " [-1.95398131e-09, -5.59458676e-08, -1.89485590e-07],\n", - " [ 1.29967902e-08, 4.58240647e-09, -7.57862879e-08],\n", - " [ 3.35548667e-09, -5.60998636e-09, -1.05612541e-07]],\n", + " [[ 4.09683865e-09, -7.65636798e-09, 1.36141277e-08],\n", + " [ 9.57756097e-09, -3.78368655e-08, -3.62947893e-08],\n", + " [ 4.18447266e-09, 2.59476647e-08, 5.60319802e-08],\n", + " [-2.59541007e-08, 2.26960550e-08, 1.92920239e-08],\n", + " [ 1.77621440e-08, -1.81930180e-08, 5.24425681e-09]],\n", "\n", - " [[ 6.63314770e-09, 2.60438060e-10, -2.15971630e-08],\n", - " [ 3.77486434e-08, -2.36689068e-08, -3.34346205e-08],\n", - " [ 3.05379656e-08, 3.81311405e-09, -9.54996694e-08],\n", - " [ 5.58994609e-09, -5.03531512e-08, -4.82471003e-08],\n", - " [-1.18255018e-08, 1.92797525e-08, -2.61012420e-08]]]])" + " [[-6.83394596e-09, -3.42148641e-08, 7.54065804e-09],\n", + " [-3.27715710e-09, -1.90193002e-08, 1.21379391e-08],\n", + " [ 2.88406700e-08, -5.90890261e-08, -1.60918778e-10],\n", + " [ 8.17658918e-09, -9.12644371e-09, -7.72941988e-10],\n", + " [-2.83711992e-08, -2.84839613e-08, 2.38575276e-08]]]])" ] }, - "execution_count": 44, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -673,51 +704,224 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "X_in = [[[int(X[0][i][j][k]*1e36) for k in range(3)] for j in range(5)] for i in range(5)]\n", + "a_in = [int(a[i]*1e36) for i in range(3)]\n", + "b_in = [int(b[i]*1e72) for i in range(3)]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "def BatchNormalizationInt(nRows, nCols, nChannels, n, X_in, a_in, b_in):\n", + " X = [[[str(X_in[i][j][k] % p) for k in range(nChannels)] for j in range(nCols)] for i in range(nRows)]\n", + " A = [str(a_in[k] % p) for k in range(nChannels)]\n", + " B = [str(b_in[k] % p) for k in range(nChannels)]\n", + " out = [[[None for _ in range(nChannels)] for _ in range(nCols)] for _ in range(nRows)]\n", + " remainder = [[[None for _ in range(nChannels)] for _ in range(nCols)] for _ in range(nRows)]\n", + " for i in range(nRows):\n", + " for j in range(nCols):\n", + " for k in range(nChannels):\n", + " out[i][j][k] = (X_in[i][j][k]*a_in[k] + b_in[k])\n", + " remainder[i][j][k] = str(out[i][j][k] % n)\n", + " out[i][j][k] = str(out[i][j][k] // n % p)\n", + " return X, A, B, out, remainder" + ] + }, + { + "cell_type": "code", + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([1.1562214, 1.1557811, 1.1548455], dtype=float32)" + "([[['157518693472490790243750538747957882',\n", + " '97372681162554733176887955075564208',\n", + " '679349834904288174010983420548472594'],\n", + " ['458774623717973004897590573896222594',\n", + " '527948304216263291457870336316333444',\n", + " '841137911182461164557826291121517336'],\n", + " ['408837279648365652067755038590177210',\n", + " '525950750084159001810559673300027574',\n", + " '630845109746686169695072155498068928'],\n", + " ['21888242871839275222246405745257275088548274708124961881757683904418357553907',\n", + " '21888242871839275222246405745257275088548170833903911058199291157862382757945',\n", + " '508230431470837755985412821877993851'],\n", + " ['832027574187245701393604967574752718',\n", + " '604919869501858267645833548353564313',\n", + " '279229541231612628393358090302516442']],\n", + " [['102287601417742280387289538163651204',\n", + " '160446511507058261099060517183710523',\n", + " '825962997148680811368987640325934077'],\n", + " ['847785374117952740336862359672140583',\n", + " '278484441349921535654657902103684959',\n", + " '657021670330123182657390893609651294'],\n", + " ['714883540765130856969303509707571514',\n", + " '900122628880346975580290622927866446',\n", + " '400594972054699631420351232955312561'],\n", + " ['10258476396616863842152239203344050',\n", + " '299578470108401435866442829726136156',\n", + " '21888242871839275222246405745257275088548299562044382966913364566037249574881'],\n", + " ['77034839563439930876087711734475167',\n", + " '69288844285022374454862035586080571',\n", + " '434714960531237722761063240822063770']],\n", + " [['21888242871839275222246405745257275088548360244503864875852868041600221908663',\n", + " '21888242871839275222246405745257275088548162277779161866355363655040683885335',\n", + " '100964708546126595514097434616933959'],\n", + " ['592579486784107682988589813640686405',\n", + " '21888242871839275222246405745257275088548354822146812280026576875315705275880',\n", + " '371326155748081420061854877950882957'],\n", + " ['783079042809927963587133644460156189',\n", + " '390118818517159008054052294744317319',\n", + " '211150813869290941494836799384423040'],\n", + " ['714145039231177651343799972971259701',\n", + " '21888242871839275222246405745257275088548307328444034834297413996208073048117',\n", + " '358680213163427345690379627175515214'],\n", + " ['329271159876734251530552022145153369',\n", + " '21888242871839275222246405745257275088548213224686425649934303811174716724822',\n", + " '578115673723270972200332905482236663']],\n", + " [['831706579403069869857935985454018004',\n", + " '701807327774318518191690249279384790',\n", + " '3057252040078645241914286618837645'],\n", + " ['511700680215072064258322477636183971',\n", + " '391018100666836853673874037122153517',\n", + " '671026146943898182863942504121469642'],\n", + " ['768458302604925592394191747899082690',\n", + " '886047516147519780735326653713713464',\n", + " '874408069845400225234489253410344667'],\n", + " ['222246091689917701515896532244187761',\n", + " '834417916490041372048913944859818527',\n", + " '558616976519438572914283702703657983'],\n", + " ['921297651648561583336105580618598710',\n", + " '615608412338983701988855791011481577',\n", + " '8447895170210076430444298018909113']],\n", + " [['541159338632499440419779390078898826',\n", + " '430662010552296997105829163483722657',\n", + " '267838708966299969534341921959286450'],\n", + " ['724836650787685688836352855376326828',\n", + " '21888242871839275222246405745257275088548274125221931276103456351742703907060',\n", + " '788047122738312175009071698929184108'],\n", + " ['348624796636930142430096079480218740',\n", + " '814245700320563240509607601046393243',\n", + " '64792439502463893211811777556988475'],\n", + " ['624326995779251861311046568986208844',\n", + " '387354949302453930827325825546488462',\n", + " '270056695518959509623672894764882809'],\n", + " ['971658675431593506453919504060069966',\n", + " '331506996028517098372582336349879273',\n", + " '570411181434220420525142442837712479']]],\n", + " [[['960480586600175329574532373343633408',\n", + " '16700446728492295766061281370439680',\n", + " '379639810818394963719156481312948224'],\n", + " ['388476442819984282074088736716488704',\n", + " '605933780470969152068605021142384640',\n", + " '798916055303936274984266387226099712'],\n", + " ['468208661324380829760178449488543744',\n", + " '819358397205938578920215010284142592',\n", + " '21589625405262166471345886990434304'],\n", + " ['697307730873745656946722950128599040',\n", + " '484544812284374194987581109665005568',\n", + " '165375951315867937763795967171100672'],\n", + " ['245646470350672698747537604682448896',\n", + " '516198956417707676498067467442061312',\n", + " '851127713155083345720389185963032576']],\n", + " [['963964631181695048142847483580514304',\n", + " '717110020036717348293837961318891520',\n", + " '559953044877040683984591286389702656'],\n", + " ['18430124250391465600117066342334464',\n", + " '132070511117078294010171654032850944',\n", + " '159098461579690714866905242830635008'],\n", + " ['627161913358867337554883287034363904',\n", + " '214447136123138332377227662874116096',\n", + " '882093469775889964276298230664265728'],\n", + " ['506592892690571316134013534512087040',\n", + " '120413569434570423403255788841467904',\n", + " '363677450590533494361708506394918912'],\n", + " ['1589009160702191880025766302318592',\n", + " '606881345580479787255639207307116544',\n", + " '959500312602351349459070457955221504']],\n", + " [['269867103629848361043137830460588032',\n", + " '990156537691794618122141045295677440',\n", + " '865669682192046160291865685070446592'],\n", + " ['290313896548079828952332075043651584',\n", + " '864848850508538634449993085726228480',\n", + " '602632316683732661972508737477279744'],\n", + " ['522550745079433503690896029362683904',\n", + " '360374127352021396321849249139523584',\n", + " '232224328255243390445419547970240512'],\n", + " ['605064041602877244147525705785147392',\n", + " '199177740608395626314729675502387200',\n", + " '919073451728990826614299904488505344'],\n", + " ['360317325587177670121175102173216768',\n", + " '320159996958358401900225542972506112',\n", + " '149208972882417206108392691362430976']],\n", + " [['403450033176818573530952678489718784',\n", + " '489675097836673889083870450733285376',\n", + " '878348273706607180847862755205578752'],\n", + " ['971247092328484848039979691100078080',\n", + " '614717678863967773495129714821431296',\n", + " '354994706810685515240551471042789376'],\n", + " ['175120840317815376550047548614639616',\n", + " '256810812410679590717730062889648128',\n", + " '32500220595245784184833778997264384'],\n", + " ['820630970242119026496832796320858112',\n", + " '450959634440169857524579916622856192',\n", + " '993116187387119510197936862871420928'],\n", + " ['141575526471072789135353484131958784',\n", + " '424325045683895850778427312979312640',\n", + " '504193266510591745485938882812837888']],\n", + " [['58216472724137800358267959826710528',\n", + " '768052861880136122281533170251726848',\n", + " '416638974419576874572829739330830336'],\n", + " ['257711363123831457072460090222575616',\n", + " '770799881808654090050761531714437120',\n", + " '553150637395247721839782017066074112'],\n", + " ['576779513601307433086800237942538240',\n", + " '70762290041252423558033638227443712',\n", + " '501500349611164148444025032284307456'],\n", + " ['213252321414434873609495117362626560',\n", + " '168126301731513097227967825069473792',\n", + " '210589547132072037234216859745648640'],\n", + " ['192717389299758634733578375953121280',\n", + " '629763589047996081611699278760116224',\n", + " '631810269670576590942597092109975552']]])" ] }, - "execution_count": 45, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "a" + "X_in, a_in, b_in, out, remainder = BatchNormalizationInt(5, 5, 3, 10**36, X_in, a_in, b_in)\n", + "out, remainder" ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "in_json = {\n", - " \"in\": (X*1000).round().astype(int).flatten().tolist(),\n", - " \"a\": (a*1000).round().astype(int).flatten().tolist(),\n", - " \"b\": (b*1000*1000).round().astype(int).flatten().tolist()\n", + " \"in\": X_in,\n", + " \"a\": a_in,\n", + " \"b\": b_in,\n", + " \"out\": out,\n", + " \"remainder\": remainder\n", "}" ] }, { "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [], - "source": [ - "out_json = {\n", - " \"out\": (y*1000000).round().astype(int).flatten().tolist()\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 48, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -726,7 +930,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -734,76 +938,6 @@ " json.dump(in_json, f)" ] }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [], - "source": [ - "with open(\"batchNormalization_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(1, 5, 5, 3)" - ] - }, - "execution_count": 51, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(3,)" - ] - }, - "execution_count": 52, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(3,)" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "b.shape" - ] - }, { "cell_type": "code", "execution_count": null, @@ -828,7 +962,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.9.16" }, "orig_nbformat": 4, "vscode": { diff --git a/models/batchNormalization_input.json b/models/batchNormalization_input.json index 9e9aa19..90f2c93 100644 --- a/models/batchNormalization_input.json +++ b/models/batchNormalization_input.json @@ -1 +1 @@ -{"in": [536, 163, 546, 590, 516, 91, 590, 603, 166, 30, 258, 973, 68, 497, 26, 928, 930, 950, 410, 572, 736, 271, 304, 655, 690, 122, 562, 359, 614, 303, 499, 262, 419, 565, 139, 779, 965, 680, 594, 183, 268, 939, 499, 632, 386, 464, 385, 660, 597, 228, 625, 379, 518, 969, 465, 97, 908, 313, 430, 826, 323, 284, 152, 545, 737, 276, 414, 454, 657, 167, 824, 415, 51, 784, 297], "a": [1156, 1156, 1155], "b": [-158540, -159791, -155253]} \ No newline at end of file +{"in": [[["274556211002033873599569544655929344", "278845164798546037305639159564599296", "725927795181681481329885778844581888"], ["533777142941885741149284963427811328", "651948801106087699589252873092857856", "865143772896454133099481331088228352"], ["490807682198734844489495702549823488", "650217874712430016010162362938032128", "684190277238816255291329832579760128"], ["61839197440532461363819480950505472", "26739692153640917900146984316043264", "578682363979466540310578076667871232"], ["854949169633948590993717393354653696", "718646424851398041887562766166786048", "381630865713347973759700941557202944"]], [["227031652256182056578268398750793728", "333500082999625415767778346229825536", "852086009045439308023010196595933184"], ["868508244072852084759154379213242368", "435782651934312478228797362851020800", "706714776934130364590241549113098240"], ["754150538084589568458109825348272128", "974446375138866447656951031395254272", "486063822093645334592564798842470400"], ["147843582716286169782452208346857472", "454061110845543037128447423267471360", "85566087676619434988856302687485952"], ["205302471832768418040487699839713280", "254509877105846939925166846010982400", "515423510796606078111195232078921728"]], [["135440470072498942785504815391703040", "19325614148053893717160596294598656", "228236910204536288358899156351188992"], ["648911876634345062549762411329486848", "186169717424064426899803495880196096", "460878487225864006951275347153256448"], ["812830550058971219114706447397552128", "532516395852807541351977653727395840", "323050240927207915262011351867850752"], ["753515081528715741058597705461268480", "145015336499521817163818915925590016", "449996861697289689949567222177333248"], ["422343623412461470477921254620790784", "63472275828363899135211525633998848", "638817465105697065666626257780998144"]], [["854672964060056362184220275164315648", "802601625885946658932520648653668352", "143989154766610232276702517602025472"], ["579318293543965930906448527865413632", "533295644426453371829340842567401472", "718765398642606567244434661487673344"], ["800249878539898235561691770651672576", "962249967676660081501343270435815424", "893772197027185622858832139798970368"], ["330252032406415778630917690868367360", "917511737405540028041678400130121728", "622039156976681680325542712180736000"], ["931763168465469012420666478085275648", "727908291956361822068361292054265856", "148627714487058033305747331093626880"]], [["604666511195451661315055102747213824", "567648000072626730551575424054329344", "371829241964055514115702223456436224"], ["762714865610504671505769223816216576", "116243984289414843748160662075867136", "819460022950677104311867427417751552"], ["438996798516152527874968665322422272", "900032050209511117705512181666152448", "197111267840033514958530349402947584"], ["676229575780662596340481684303511552", "530121439893686036970234044982755328", "373737782899765828218658945432027136"], ["975097191825091667295333769052946432", "481727909625855798314620519584890880", "632187876254093893249351038766415872"]]], "a": ["1162158966064453105480581114488684544", "1154037594795227131048046907480866816", "1162137269973754897165457584178593792"], "b": ["21888081312570443015525781982581618803103300158867469327355407439264783269889", "21888018446717133384175582831547961995296526044841776397833598325575395573761", "21888078593928089003999329455124297136365758205906844768791073977207089004545"], "out": [[["157518693472490790243750538747957882", "97372681162554733176887955075564208", "679349834904288174010983420548472594"], ["458774623717973004897590573896222594", "527948304216263291457870336316333444", "841137911182461164557826291121517336"], ["408837279648365652067755038590177210", "525950750084159001810559673300027574", "630845109746686169695072155498068928"], ["21888242871839275222246405745257275088548274708124961881757683904418357553907", "21888242871839275222246405745257275088548170833903911058199291157862382757945", "508230431470837755985412821877993851"], ["832027574187245701393604967574752718", "604919869501858267645833548353564313", "279229541231612628393358090302516442"]], [["102287601417742280387289538163651204", "160446511507058261099060517183710523", "825962997148680811368987640325934077"], ["847785374117952740336862359672140583", "278484441349921535654657902103684959", "657021670330123182657390893609651294"], ["714883540765130856969303509707571514", "900122628880346975580290622927866446", "400594972054699631420351232955312561"], ["10258476396616863842152239203344050", "299578470108401435866442829726136156", "21888242871839275222246405745257275088548299562044382966913364566037249574881"], ["77034839563439930876087711734475167", "69288844285022374454862035586080571", "434714960531237722761063240822063770"]], [["21888242871839275222246405745257275088548360244503864875852868041600221908663", "21888242871839275222246405745257275088548162277779161866355363655040683885335", "100964708546126595514097434616933959"], ["592579486784107682988589813640686405", "21888242871839275222246405745257275088548354822146812280026576875315705275880", "371326155748081420061854877950882957"], ["783079042809927963587133644460156189", "390118818517159008054052294744317319", "211150813869290941494836799384423040"], ["714145039231177651343799972971259701", "21888242871839275222246405745257275088548307328444034834297413996208073048117", "358680213163427345690379627175515214"], ["329271159876734251530552022145153369", "21888242871839275222246405745257275088548213224686425649934303811174716724822", "578115673723270972200332905482236663"]], [["831706579403069869857935985454018004", "701807327774318518191690249279384790", "3057252040078645241914286618837645"], ["511700680215072064258322477636183971", "391018100666836853673874037122153517", "671026146943898182863942504121469642"], ["768458302604925592394191747899082690", "886047516147519780735326653713713464", "874408069845400225234489253410344667"], ["222246091689917701515896532244187761", "834417916490041372048913944859818527", "558616976519438572914283702703657983"], ["921297651648561583336105580618598710", "615608412338983701988855791011481577", "8447895170210076430444298018909113"]], [["541159338632499440419779390078898826", "430662010552296997105829163483722657", "267838708966299969534341921959286450"], ["724836650787685688836352855376326828", "21888242871839275222246405745257275088548274125221931276103456351742703907060", "788047122738312175009071698929184108"], ["348624796636930142430096079480218740", "814245700320563240509607601046393243", "64792439502463893211811777556988475"], ["624326995779251861311046568986208844", "387354949302453930827325825546488462", "270056695518959509623672894764882809"], ["971658675431593506453919504060069966", "331506996028517098372582336349879273", "570411181434220420525142442837712479"]]], "remainder": [[["960480586600175329574532373343633408", "16700446728492295766061281370439680", "379639810818394963719156481312948224"], ["388476442819984282074088736716488704", "605933780470969152068605021142384640", "798916055303936274984266387226099712"], ["468208661324380829760178449488543744", "819358397205938578920215010284142592", "21589625405262166471345886990434304"], ["697307730873745656946722950128599040", "484544812284374194987581109665005568", "165375951315867937763795967171100672"], ["245646470350672698747537604682448896", "516198956417707676498067467442061312", "851127713155083345720389185963032576"]], [["963964631181695048142847483580514304", "717110020036717348293837961318891520", "559953044877040683984591286389702656"], ["18430124250391465600117066342334464", "132070511117078294010171654032850944", "159098461579690714866905242830635008"], ["627161913358867337554883287034363904", "214447136123138332377227662874116096", "882093469775889964276298230664265728"], ["506592892690571316134013534512087040", "120413569434570423403255788841467904", "363677450590533494361708506394918912"], ["1589009160702191880025766302318592", "606881345580479787255639207307116544", "959500312602351349459070457955221504"]], [["269867103629848361043137830460588032", "990156537691794618122141045295677440", "865669682192046160291865685070446592"], ["290313896548079828952332075043651584", "864848850508538634449993085726228480", "602632316683732661972508737477279744"], ["522550745079433503690896029362683904", "360374127352021396321849249139523584", "232224328255243390445419547970240512"], ["605064041602877244147525705785147392", "199177740608395626314729675502387200", "919073451728990826614299904488505344"], ["360317325587177670121175102173216768", "320159996958358401900225542972506112", "149208972882417206108392691362430976"]], [["403450033176818573530952678489718784", "489675097836673889083870450733285376", "878348273706607180847862755205578752"], ["971247092328484848039979691100078080", "614717678863967773495129714821431296", "354994706810685515240551471042789376"], ["175120840317815376550047548614639616", "256810812410679590717730062889648128", "32500220595245784184833778997264384"], ["820630970242119026496832796320858112", "450959634440169857524579916622856192", "993116187387119510197936862871420928"], ["141575526471072789135353484131958784", "424325045683895850778427312979312640", "504193266510591745485938882812837888"]], [["58216472724137800358267959826710528", "768052861880136122281533170251726848", "416638974419576874572829739330830336"], ["257711363123831457072460090222575616", "770799881808654090050761531714437120", "553150637395247721839782017066074112"], ["576779513601307433086800237942538240", "70762290041252423558033638227443712", "501500349611164148444025032284307456"], ["213252321414434873609495117362626560", "168126301731513097227967825069473792", "210589547132072037234216859745648640"], ["192717389299758634733578375953121280", "629763589047996081611699278760116224", "631810269670576590942597092109975552"]]]} \ No newline at end of file diff --git a/models/batchNormalization_output.json b/models/batchNormalization_output.json deleted file mode 100644 index 408a367..0000000 --- a/models/batchNormalization_output.json +++ /dev/null @@ -1 +0,0 @@ -{"out": [461231, 28465, 475840, 523264, 436981, -50337, 523103, 536846, 36777, -123433, 138128, 968002, -80450, 414603, -124919, 914497, 914650, 941756, 315334, 501812, 694999, 155038, 191896, 600847, 638766, -18751, 493315, 256009, 549823, 194971, 418364, 142938, 328844, 494683, 1256, 744729, 957477, 626144, 530548, 52669, 149503, 928739, 418606, 570844, 290682, 377547, 284713, 607416, 531371, 103753, 566951, 279113, 438597, 964347, 379015, -47666, 893706, 202958, 337277, 798750, 214376, 168318, 19814, 471810, 691608, 163697, 320677, 364695, 603759, 34615, 792206, 324301, -99666, 746716, 187224]} \ No newline at end of file diff --git a/models/conv1D_input.json b/models/conv1D_input.json index ec5afdd..af597a1 100644 --- a/models/conv1D_input.json +++ b/models/conv1D_input.json @@ -1 +1 @@ -{"in": [845, 408, 904, 651, 599, 600, 449, 255, 400, 577, 960, 82, 666, 4, 646, 855, 386, 851, 275, 201, 188, 901, 338, 848, 362, 394, 641, 350, 372, 484, 111, 605, 584, 871, 646, 484, 964, 294, 220, 376, 136, 772, 428, 411, 283, 666, 954, 664, 415, 375, 231, 543, 139, 853, 253, 377, 750, 755, 528, 462], "weights": [134, 152, 23, -53, 313, -297, 272, -150, 108, -367, 142, -291, -486, -424, 77, 323, -111, -40, 266, 8, 119, 295, -428, 32], "bias": [0.0, 0.0]} \ No newline at end of file +{"in": [["669375160632934234241932014009712640", "690700204790223707469653269689663488", "969961165032497457090214907883814912"], ["195201269236954377049132177073111040", "139981069176083231677853171865092096", "93119814401318001799953091450109952"], ["750790759243610072177023207224639488", "29708356850593923198634732384419840", "74416518860712880152507808099598336"], ["174154047918857478118987098579009536", "835715872561134620472944211836010496", "603343925645616811093780139941560320"], ["103812278993319687100132966059212800", "775796171450837933641966653263577088", "225574095552399258993634742141714432"], ["139182754915722964767353281905164288", "126248219055212010646249079073406976", "163572860635746956314031178540646400"], ["690688737879051468309278752113688576", "448528177473627991458471179754405888", "230298125380187339252364774798786560"], ["311392411582138283578902627844358144", "798539428120006797881568033027129344", "481353807346480719102372728419647488"], ["403431843668760747584090924111626240", "828983764241238272247890241501790208", "895179672875147329612410006521511936"], ["285149918852797621991944686544093184", "604412842258800644712511369985916928", "278425167718983085133650699663441920"], ["776365769473402398338909794268610560", "325281313213643073328033548480806912", "316383104286559610419073171033423872"], ["864281157646164303878274200700452864", "897816724790860942112176510802591744", "310256556782161460198933782096510976"], ["502927346661196896414615920615358464", "796924871270739348258045649431298048", "126869236584478142051808502834266112"], ["861704349702861577938023177558949888", "411073233110919282149223943586709504", "275437565759325669872969069367394304"], ["849570320165641802974039431991787520", "385571718594538529474996944127393792", "996149994862380741068846357989556224"], ["884385186086863982766787226587103232", "512173869211343689795835813588631552", "408400273092890886187550318767636480"], ["435406503077906444334255378962317312", "750600666723328320483085853720051712", "307496555477491903487589566516297728"], ["189444168655433477697304722537447424", "525369878572606469985048591838740480", "242636899512379015445210919220543488"], ["759674688526444024055303954776457216", "980445789126834936902326720774799360", "150481486304037353619466908948496384"], ["803396036407164089374568099061170176", "657171072492512190248086068854259712", "640461791059883913078963621999935488"]], "weights": [[["21888242871839275222246405745257275088548305997609513881656115751890077089793", "21888242871839275222246405745257275088548024827241319301605477351855694544897"], ["226462304592132570441828350325424128", "58255612850189209596429026080063488"], ["165256977081298841814496389403508736", "234053969383239752509361784644173824"]], [["21888242871839275222246405745257275088547838505118507030442437326900777975809", "21888242871839275222246405745257275088547970779001134517637215768633828966401"], ["134543657302856443467707781667094528", "21888242871839275222246405745257275088548136187999862316088529810764800720897"], ["31477391719818115941792103608090624", "21888242871839275222246405745257275088548352432637828472115504727098709245953"]], [["350902378559112552032213710904754176", "139657199382781987692417613440221184"], ["409930169582366973006150534132924416", "21888242871839275222246405745257275088548089315533059719045277925449794584577"], ["116602003574371339896642315713773568", "21888242871839275222246405745257275088548215413420814159364159932946406440961"]], [["371222317218780556904991005257760768", "82731187343597418760734776148099072"], ["21888242871839275222246405745257275088548067228137868526427284349715417661441", "534574866294860892517105015761928192"], ["493486523628234849778154065574756352", "21888242871839275222246405745257275088548321975737231853464556094420317896705"]]], "bias": ["0", "0"], "out": [["595076432565314636873373017613140151", "451221242188051044982898155310089176"], ["692101791264109605416098691984234110", "157635196511948127458268143134517909"], ["707534041076922026686504470881153950", "21888242871839275222246405745257275088547929138190672685567302106918640005237"], ["531650362682809033665109229370302980", "21888242871839275222246405745257275088548274078760710220327439407996310078926"], ["732844672853217673574394205962948992", "21888242871839275222246405745257275088548027251228401034660957748100577552406"], ["388558804761306031693830030956978129", "21888242871839275222246405745257275088548269522397035548207044857128138122494"]], "remainder": [["559476430118783401148220455172177920", "798629717274041486200430078621384704"], ["222725218484853070285693236889518080", "703236219970385258366708181735833600"], ["935243375755259327550534863114207232", "629676730817043015262169534306451456"], ["168613979210646022892058708579188736", "20078824844870090673720198793527296"], ["382452121618037097983987448914378752", "384848670804947558045463129800835072"], ["997624818969376769735560795535704064", "607655476452490925911677042723651584"]]} \ No newline at end of file diff --git a/models/conv1D_output.json b/models/conv1D_output.json deleted file mode 100644 index 68901dd..0000000 --- a/models/conv1D_output.json +++ /dev/null @@ -1 +0,0 @@ -{"out": [721859, -487530, -65677, -480889, 216206, -453824, 155316, -596682, 230192, -17062, -51941, -495391]} \ No newline at end of file diff --git a/models/conv1d.ipynb b/models/conv1d.ipynb index e680bf3..1281571 100644 --- a/models/conv1d.ipynb +++ b/models/conv1d.ipynb @@ -5,6 +5,15 @@ "execution_count": 1, "metadata": {}, "outputs": [], + "source": [ + "p = 21888242871839275222246405745257275088548364400416034343698204186575808495617" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], "source": [ "from tensorflow.keras.layers import Input, Conv1D\n", "from tensorflow.keras import Model\n", @@ -13,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -24,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -33,11 +42,12 @@ "text": [ "Model: \"model\"\n", "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", + " Layer (type) Output Shape Param # \n", "=================================================================\n", - "input_1 (InputLayer) [(None, 20, 3)] 0 \n", - "_________________________________________________________________\n", - "conv1d (Conv1D) (None, 6, 2) 26 \n", + " input_1 (InputLayer) [(None, 20, 3)] 0 \n", + " \n", + " conv1d (Conv1D) (None, 6, 2) 26 \n", + " \n", "=================================================================\n", "Total params: 26\n", "Trainable params: 26\n", @@ -52,32 +62,32 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[,\n", + " [[ 0.37122232, 0.08273119],\n", + " [-0.29717228, 0.53457487],\n", + " [ 0.49348652, -0.04242468]]], dtype=float32)>,\n", " ]" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -88,35 +98,35 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[[0.84452152, 0.40819381, 0.90425158],\n", - " [0.65092274, 0.59893334, 0.60028247],\n", - " [0.44949689, 0.254961 , 0.40024966],\n", - " [0.57719296, 0.96000249, 0.08217882],\n", - " [0.66562102, 0.00446413, 0.6464117 ],\n", - " [0.85546508, 0.38582714, 0.8505983 ],\n", - " [0.27450673, 0.201367 , 0.18818527],\n", - " [0.90095107, 0.33781381, 0.84773899],\n", - " [0.36179829, 0.39354172, 0.64100907],\n", - " [0.35045615, 0.37234526, 0.48415795],\n", - " [0.11139122, 0.60499841, 0.58387442],\n", - " [0.87088195, 0.64640523, 0.48402816],\n", - " [0.9638806 , 0.29440207, 0.22027009],\n", - " [0.3764113 , 0.13575624, 0.7720717 ],\n", - " [0.42784105, 0.41073501, 0.28311926],\n", - " [0.66622245, 0.95378854, 0.66375939],\n", - " [0.41543282, 0.37529526, 0.23072244],\n", - " [0.54334445, 0.1388458 , 0.85307472],\n", - " [0.25258015, 0.37725648, 0.75018739],\n", - " [0.75532678, 0.52800654, 0.46152891]]])" + "array([[[0.66937516, 0.6907002 , 0.96996117],\n", + " [0.19520127, 0.13998107, 0.09311981],\n", + " [0.75079076, 0.02970836, 0.07441652],\n", + " [0.17415405, 0.83571587, 0.60334393],\n", + " [0.10381228, 0.77579617, 0.2255741 ],\n", + " [0.13918275, 0.12624822, 0.16357286],\n", + " [0.69068874, 0.44852818, 0.23029813],\n", + " [0.31139241, 0.79853943, 0.48135381],\n", + " [0.40343184, 0.82898376, 0.89517967],\n", + " [0.28514992, 0.60441284, 0.27842517],\n", + " [0.77636577, 0.32528131, 0.3163831 ],\n", + " [0.86428116, 0.89781672, 0.31025656],\n", + " [0.50292735, 0.79692487, 0.12686924],\n", + " [0.86170435, 0.41107323, 0.27543757],\n", + " [0.84957032, 0.38557172, 0.99614999],\n", + " [0.88438519, 0.51217387, 0.40840027],\n", + " [0.4354065 , 0.75060067, 0.30749656],\n", + " [0.18944417, 0.52536988, 0.2426369 ],\n", + " [0.75967469, 0.98044579, 0.15048149],\n", + " [0.80339604, 0.65717107, 0.64046179]]])" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -128,21 +138,35 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 35ms/step\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-10-23 20:02:12.254810: W tensorflow/tsl/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n" + ] + }, { "data": { "text/plain": [ - "array([[[ 0.7218593 , -0.4875301 ],\n", - " [-0.06567734, -0.48088893],\n", - " [ 0.21620643, -0.45382428],\n", - " [ 0.1553162 , -0.5966817 ],\n", - " [ 0.23019192, -0.01706157],\n", - " [-0.05194061, -0.49539083]]], dtype=float32)" + "array([[[ 0.59507644, 0.45122126],\n", + " [ 0.69210184, 0.1576352 ],\n", + " [ 0.70753413, -0.43526217],\n", + " [ 0.53165036, -0.09032159],\n", + " [ 0.7328447 , -0.33714917],\n", + " [ 0.38855883, -0.09487797]]], dtype=float32)" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -152,28 +176,16 @@ "y" ] }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "in_json = {\n", - " \"in\": (X*1000).round().astype(int).flatten().tolist(),\n", - " \"weights\": (model.weights[0].numpy()*1000).round().astype(int).flatten().tolist(),\n", - " \"bias\": np.zeros(model.weights[1].numpy().shape).tolist()\n", - "}" - ] - }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "out_json = {\n", - " \"out\": (y*1000000).round().astype(int).flatten().tolist()\n", - "}" + "X_in = [[int(X[0][i][j]*1e36) for j in range(3)] for i in range(20)]\n", + "weights = [[[int(model.weights[0].numpy()[i][j][k]*1e36) for k in range(2)] for j in range(3)] for i in range(4)]\n", + "bias = [int(model.weights[1].numpy()[i]*1e72) for i in range(2)]\n", + " " ] }, { @@ -182,17 +194,65 @@ "metadata": {}, "outputs": [], "source": [ - "import json" + "def Conv1DInt(nInputs, nChannels, nFilters, kernelSize, strides, n, input, weights, bias):\n", + " Input = [[str(input[i][j] % p) for j in range(nChannels)] for i in range(nInputs)]\n", + " Weights = [[[str(weights[i][j][k] % p) for k in range(nFilters)] for j in range(nChannels)] for i in range(kernelSize)]\n", + " Bias = [str(bias[i] % p) for i in range(nFilters)]\n", + " out = [[0 for _ in range(nFilters)] for j in range((nInputs - kernelSize)//strides + 1)]\n", + " remainder = [[None for _ in range(nFilters)] for _ in range((nInputs - kernelSize)//strides + 1)]\n", + " for i in range((nInputs - kernelSize)//strides + 1):\n", + " for j in range(nFilters):\n", + " for k in range(kernelSize):\n", + " for l in range(nChannels):\n", + " out[i][j] += input[i*strides + k][l]*weights[k][l][j]\n", + " out[i][j] += bias[j]\n", + " remainder[i][j] = str(out[i][j] % n)\n", + " out[i][j] = str(out[i][j] // n % p)\n", + " return Input, Weights, Bias, out, remainder" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "([['595076432565314636873373017613140151',\n", + " '451221242188051044982898155310089176'],\n", + " ['692101791264109605416098691984234110',\n", + " '157635196511948127458268143134517909'],\n", + " ['707534041076922026686504470881153950',\n", + " '21888242871839275222246405745257275088547929138190672685567302106918640005237'],\n", + " ['531650362682809033665109229370302980',\n", + " '21888242871839275222246405745257275088548274078760710220327439407996310078926'],\n", + " ['732844672853217673574394205962948992',\n", + " '21888242871839275222246405745257275088548027251228401034660957748100577552406'],\n", + " ['388558804761306031693830030956978129',\n", + " '21888242871839275222246405745257275088548269522397035548207044857128138122494']],\n", + " [['559476430118783401148220455172177920',\n", + " '798629717274041486200430078621384704'],\n", + " ['222725218484853070285693236889518080',\n", + " '703236219970385258366708181735833600'],\n", + " ['935243375755259327550534863114207232',\n", + " '629676730817043015262169534306451456'],\n", + " ['168613979210646022892058708579188736',\n", + " '20078824844870090673720198793527296'],\n", + " ['382452121618037097983987448914378752',\n", + " '384848670804947558045463129800835072'],\n", + " ['997624818969376769735560795535704064',\n", + " '607655476452490925911677042723651584']])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "with open(\"conv1D_input.json\", \"w\") as f:\n", - " json.dump(in_json, f)" + "X_in, weights, bias, out, remainder = Conv1DInt(20, 3, 2, 4, 3, 10**36, X_in, weights, bias)\n", + "out, remainder" ] }, { @@ -201,8 +261,32 @@ "metadata": {}, "outputs": [], "source": [ - "with open(\"conv1D_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" + "in_json = {\n", + " \"in\": X_in,\n", + " \"weights\": weights,\n", + " \"bias\": bias,\n", + " \"out\": out,\n", + " \"remainder\": remainder\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "import json" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"conv1D_input.json\", \"w\") as f:\n", + " json.dump(in_json, f)" ] }, { @@ -215,9 +299,9 @@ ], "metadata": { "kernelspec": { - "display_name": "tf24", + "display_name": "sklearn", "language": "python", - "name": "tf24" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -229,7 +313,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.9.16" }, "orig_nbformat": 4 }, diff --git a/models/conv2D_input.json b/models/conv2D_input.json index f6e9bfd..f35cba4 100644 --- a/models/conv2D_input.json +++ b/models/conv2D_input.json @@ -1 +1 @@ -{"in": [77, 895, 190, 304, 193, 618, 880, 508, 517, 634, 613, 437, 853, 147, 935, 627, 966, 542, 977, 512, 647, 150, 762, 889, 697, 529, 156, 260, 162, 542, 69, 484, 893, 115, 170, 578, 417, 205, 356, 184, 367, 447, 614, 710, 730, 147, 492, 347, 858, 332, 182, 824, 836, 144, 599, 783, 924, 328, 463, 28, 755, 958, 979, 299, 172, 118, 400, 528, 379, 850, 970, 477, 983, 729, 541], "weights": [5, 18, -80, 137, 157, 46, -103, -84, 6, -66, -279, 153, 75, 154, -105, 201, -168, 284, -185, 352, -95, 245, 125, 300, -106, -84, 33, -102, 15, -103, 129, 4, -317, -99, -109, -70, -136, -13, 132, -139, 347, -77, 186, 177, 211, 203, 267, -65, -202, 207, -179, -77, -202, 203], "bias": [0, 0]} \ No newline at end of file +{"in": [[["18973120761833440362422557334306816", "87433882257806584140793756841410560", "862226371474601614735488462211776512"], ["101090034428119260446548930982838272", "280284693878759337458180979584663552", "475271659636950498461258937341575168"], ["15120826829562617799651940068491264", "320853851116025169348953003171774464", "558001981288012734122917906203279360"], ["464266698383295601231196635912994816", "304739775167975819123809576862875648", "490811101053358887920134393459376128"], ["355082565982504008280800951854432256", "374331339664952815465043651247210496", "785044007233227838983972294957727744"]], [["867419387590757677600979631812378624", "204550778339942977107669960550776832", "756289088463240354179665017366904832"], ["491255435983799179844846425080856576", "778702426414059055402456890248003584", "2767846324560619134947267104997376"], ["156638379415804612737747896881905664", "572125789971364779888013106422480896", "995579347203019228526954852602871808"], ["944496083888764247346785294852554752", "249624754467385437840704360767553536", "122998333438024918234817699579428864"], ["997336661670864969048046010898579456", "17570245885751956615584256637272064", "787835414937691983132873790255529984"]], [["488787048268714998276284593456807936", "120121735954820799393548931979804672", "931533597232942923966484679890042880"], ["217856339910051924335229047710679040", "362117949379548715700730727405453312", "663870351560358837494894146210496512"], ["908451556533826849059157654263300096", "83543120733374554107724746335453184", "497922569649226108212330699918671872"], ["892750958621514374834558759860174848", "483641776832736775661489205360459776", "291991368160217867619538073884295168"], ["426046073556133350189444071728087040", "483399580801658383067185830772604928", "246991348604804201675116243031425024"]], [["496149123801728410912414422848765952", "828738053711539696391920621191168000", "511745840709091666762372388816420864"], ["403360630624659683238197172314832896", "912757233514034461790914277625823232", "986365191285120987638516203709792256"], ["770623447525862233078135037223763968", "901458097755261844714231526059933696", "378925723169502708985281246285266944"], ["708379908331375980257051178335993856", "135238342859126724654886444345589760", "276723460630257557600726847072501760"], ["809033517858906558083203244083904512", "14068408237844387864867304512684032", "652782340974563256100066732896419840"]], [["47102183384366897500974294107160576", "171043684059418516807935739968880640", "608394608524874823747304603175092224"], ["159866309372548755557390978484535296", "374734073017228069135857805328121856", "208614058851017824221384369158225920"], ["534765869303929266890541097132490752", "312788452651106014692209844430045184", "932480254223197536584754951662600192"], ["626507347879487613373144055601430528", "52441011086130637814152605317726208", "578998921351810994525625544091893760"], ["245216268082248053783928727624744960", "13553082501489123424351718186418176", "201195205795781006316879390217076736"]]], "weights": [[[["21888242871839275222246405745257275088548142956509607913922018461620874772481", "21888242871839275222246405745257275088548212446241992595647973577799365558273"], ["21888242871839275222246405745257275088548033768772500637005868567605461123073", "21888242871839275222246405745257275088548070970117467525434189789259175559169"], ["53832858800888067541033956252057600", "21888242871839275222246405745257275088548072943031209590896156335644367388673"]], [["21888242871839275222246405745257275088548329801678079250315203898496543358977", "21888242871839275222246405745257275088548183655589240673019994399861425307649"], ["82963198423385624158301503551963136", "21888242871839275222246405745257275088548179141535776737174800471910388858881"], ["21888242871839275222246405745257275088548062447636741283375140799986515574785", "286270081996917753699924650519166976"]], [["21888242871839275222246405745257275088548201316728609683967268836420983193601", "21888242871839275222246405745257275088548359357654470088937237970807198580737"], ["342578887939453151093717970687361024", "234319448471069350332490362786938880"], ["360067188739776646865304432096051200", "21888242871839275222246405745257275088548241167336124065365643195251985219585"]]], [[["21888242871839275222246405745257275088548043600350040080973622684843081990145", "342735052108764648842097483485020160"], ["182350814342498800207021733905956864", "103857159614563000989551518180966400"], ["21888242871839275222246405745257275088548229945018309238413847473626867040257", "21888242871839275222246405745257275088548033460854905727350363503323433140225"]], [["266451418399810819526117729448755200", "133271932601928716476525562636009472"], ["142601966857910161788811454636359680", "21888242871839275222246405745257275088548345665841716411568476446277337350145"], ["41647046804428098962648305756012544", "93298047780990595652569743354757120"]], [["226171433925628665852998905292128256", "6851911544799805163619280241033216"], ["49639940261840822893141375198429184", "233333587646484394420457970851643392"], ["355566978454589865342627429119688704", "21888242871839275222246405745257275088548070093005317333174510420301933707265"]]], [[["21888242871839275222246405745257275088548347527682202938057088181687690461185", "21888242871839275222246405745257275088548129288643020275071421989079813718017"], ["329796314239501954361890502602653696", "347601950168609652926891902382374912"], ["34963160753250123932957506973728768", "94939440488815309881608939352621056"]], [["151881337165832533826548514020130816", "21888242871839275222246405745257275088548003934561627986883252676915558875137"], ["39221346378326419203650491389050880", "97525686025619516103444079631663104"], ["21888242871839275222246405745257275088548289486169236782052100552686884093953", "227002739906311055834746502971916288"]], [["328424215316772476663410122492477440", "102505654096603405831643019343822848"], ["21888242871839275222246405745257275088548035206883567455262252271426613542913", "126648992300033570377091952102342656"], ["21888242871839275222246405745257275088548202718704360607121254692741976162305", "347375452518463168635803788711559168"]]]], "bias": ["0", "0"], "out": [[["766991308610348168697678317289253491", "152745147346569443334783280814065046"], ["721793514622685877535765261453578285", "435495635689848419191313701414477907"], ["956968022633247456612037533749279884", "21888242871839275222246405745257275088547635065957648765434334612742599273530"]], [["821618728955717473031173417522483642", "21888242871839275222246405745257275088548277872099372923381843387091765217066"], ["458542547820893552234319995890476448", "374993810980093272528286581550476085"], ["636954799020811143676097566965150012", "21888242871839275222246405745257275088548238510569604144298779927709876426450"]], [["361765493481699222011118768701693995", "526508029475490175970042650793369367"], ["584254113344261709635215513635894572", "119491582294697734028918864863442650"], ["629813449657849355217882687452958040", "21888242871839275222246405745257275088548215755396606066460162924422748870356"]]], "remainder": [[["917380913441791641383057190580912128", "941668043113108989243166859307515904"], ["830888825756591443304789567910969344", "959036987931483834969450172534226944"], ["807238014162219891553337682966872064", "654744816405601974137858933743681536"]], [["495502502940535931874336973827080192", "508085363950388829219862699527110656"], ["570521634763453322817882508314542080", "580659632640246114717880425476259840"], ["730760440116275911813925660727967744", "404713594680872184361509627048755200"]], [["285034561505172240143276776062189568", "246179226164944809810447582952947712"], ["383405024202190176779250406231375872", "48073795245569756634196992877133824"], ["41512468028555336013994905783238656", "807192458327115051492426645956984832"]]]} \ No newline at end of file diff --git a/models/conv2D_output.json b/models/conv2D_output.json deleted file mode 100644 index 22f18f1..0000000 --- a/models/conv2D_output.json +++ /dev/null @@ -1 +0,0 @@ -{"out": [-470578, 879410, -228839, 921604, -440140, 1071822, -379896, 1107852, -449567, 1032219, 17910, 496684, -166165, 425948, -790618, 731256, -397018, 1257936]} \ No newline at end of file diff --git a/models/conv2D_stride_input.json b/models/conv2D_stride_input.json index 9e27c25..3a0ccb8 100644 --- a/models/conv2D_stride_input.json +++ b/models/conv2D_stride_input.json @@ -1 +1 @@ -{"in": [973, 455, 27, 779, 573, 643, 791, 682, 559, 200, 164, 118, 262, 737, 415, 916, 189, 868, 905, 880, 569, 158, 662, 768, 912, 183, 835, 547, 665, 882, 760, 511, 931, 911, 564, 152, 37, 373, 105, 447, 543, 840, 795, 91, 357, 518, 561, 588, 847, 638, 660, 925, 632, 747, 731, 405, 980, 638, 895, 327, 718, 461, 718, 158, 810, 519, 161, 782, 715, 862, 535, 393, 409, 14, 791, 405, 854, 711, 403, 406, 349, 327, 459, 349, 534, 930, 727, 482, 222, 238, 704, 916, 922, 134, 835, 747, 551, 935, 413, 462, 117, 963, 746, 181, 927, 679, 843, 490, 562, 944, 920, 234, 287, 500, 877, 33, 594, 141, 379, 934, 333, 767, 35, 121, 69, 326, 597, 595, 10, 951, 478, 18, 797, 203, 334, 619, 975, 733, 203, 223, 546, 968, 964, 252, 399, 236, 546, 318, 551, 708, 235, 173, 473, 639, 872, 414, 431, 180, 288, 79, 425, 298, 779, 265, 194, 890, 177, 936, 955, 714, 22, 775, 211, 717, 211, 682, 993, 441, 351, 184, 727, 344, 453, 700, 742, 475, 907, 793, 925, 354, 277, 626, 803, 380, 886, 706, 735, 646, 762, 341, 252, 414, 812, 329, 819, 432, 642, 257, 757, 562, 421, 332, 893, 254, 75, 167, 421, 207, 818, 805, 627, 877, 665, 805, 20, 495, 286, 590, 743, 648, 284, 138, 29, 394, 727, 503, 112, 20, 542, 601, 538, 918, 390, 37, 925, 913, 347, 4, 175, 165, 398, 430, 523, 173, 81, 614, 508, 262, 361, 619, 4, 12, 702, 301, 563, 847, 882, 787, 70, 65, 314, 29, 109, 828, 132, 570, 340, 942, 938, 283, 529, 359, 948, 358, 255, 801, 951, 682, 23, 986, 691, 544, 206, 910, 985, 620, 898, 872, 771, 845], "weights": [90, 64, 172, 119, -231, 77, 56, 87, 109, -132, 72, -49, -144, -204, -186, -236, -135, -200, -38, 245, 96, 129, 139, -61, -154, -157, 175, 234, -94, 137, 139, -52, 123, 31, -228, 164, 141, 0, 199, 256, 174, -155, 212, 134, 239, 158, 12, -174, -134, -88, -182, 49, 191, -183, 244, 117, -15, 149, 1, 143, -60, -36, -44, -107, 178, 221, -140, -153, 37, -244, -257, -119, 92, -150, 97, -77, -102, -13, 197, -218, 196, 54, -239, 138, 153, 237, 252, 272, 114, -62, -14, 253, 161, 236, -116, -99], "bias": [0, 0]} \ No newline at end of file +{"in": [[["749164374576794644479411680882720768", "480585473317620121669268370335203328", "763320717308254135444669811210059776"], ["124247246686015724769016206917107712", "174447651639843543521944231028457472", "233977843221485410985201566841044992"], ["55045723809342587276623310835679232", "737611258892544243338640508170797056", "887215596668010155855981076381958144"], ["499000992557664278078142456698765312", "927460406640691603603971569887477760", "537054737534173712780986638628028416"], ["559725448156091402013358978869755904", "162105317659482782792409373770514432", "481321971237656779734720886412935168"], ["584851101254763283306418872898289664", "498544952243433778265645364352647168", "81017387557854043027098477468319744"], ["181511062116411785348350960730112000", "199166021601359541833601692242804736", "722164043008852628491555173537153024"], ["874021196599644769605177322590175232", "769365658246127440471907240631074816", "775741555575509135877521047231135744"], ["640459004984028304713867466270310400", "979823068614718137315044670889263104", "287333686260358073956053498774683648"], ["728948458230756589340305410305818624", "85598270781343629324777885261627392", "887961223896935126755449295270313984"]], [["726556210775733124165635880922382336", "742044717530597161916668098784526336", "226258344806073207502727940707188736"], ["44559116328274032868446483110690816", "26376214933241492065169617583079424", "741069304364311609979239296378339328"], ["592829775032984342342606341206441984", "275706639532516970480362159769387008", "768398314874790724035216403375063040"], ["988539578110818811046747040863223808", "324727328668939838729482145051443200", "72143307454246470875913737383968768"], ["189754491675403277940270919676067840", "508278714225935668510818344953184256", "614547782627847536376944047446556672"], ["44116322822191800274055987778813952", "542532097629817717252607776525385728", "80956711235177121313367500410322944"], ["982769685347575046322304450333507584", "939050308543838511555665620178567168", "275802986036814199784347152217538560"], ["19919017631071067545364009901359104", "182881483564667816245153832984641536", "564308479921383491611528209222336512"], ["608737849919480104782458473230106624", "761339689802623827260666504114339840", "944204338003555417420988315605139456"], ["291774952285928760280023318803775488", "609717969303235911991199153923293184", "753303940160124819319191057631019008"]], [["739586578109411643011799204082221056", "867928016775508451440545324366561280", "381990422197177037452837373104619520"], ["607582911150852963435222346078617600", "44445270913438304660455182290649088", "897737012358858749756471270587760640"], ["813789081297928143869282345585475584", "749255065741748747741703874073853952", "941270018048554686569242156406407168"], ["522769664989134932007113088934346752", "715156351845177838447064243691847680", "67388896859258977551613737603956736"], ["886742254047153397363184646949437440", "851712484716219487679434904754454528", "257967521053123941444010865080664064"], ["63045009024746639759033455221932032", "25571754881775102752281205193834496", "786298802497212304913970440676835328"], ["130248582856128289973728824436719616", "30263369505977857344526527924011008", "531655117937650288048413474203631616"], ["986984781015741658668234617670074368", "103436978047698587821599362113339392", "147937391513318422373338860977389568"], ["195956133105120498233524464811769856", "475528699936068664953051879634370560", "690816154112123595796105955274391552"], ["636162355997871322669150479180627968", "647462811236904784848145730441838592", "706863063757750568599229191935754240"]], [["906970605237333899791201763057467392", "707554382090595710588202299684814848", "171016483354472507958637304647516160"], ["916184355132955658028963281714020352", "754578028785260523551277908878163968", "375328498066594345449541093013061632"], ["108913119263074560300912937768321024", "632567705150281191596450190463074304", "669989652189228867476404832674250752"], ["3136301084143755448283519403425792", "857742098345230180943166477390839808", "443132558764913134546428976194125824"], ["974310527247340211859746366649532416", "314913132480153634901322636703301632", "528704025095287718662354989513441280"], ["849495092322271390920960786447728640", "574768328534720614790781644614664192", "358336456650427943829739749882462208"], ["325932201582091159051915106745057280", "618102558667340934911587919069184000", "973826160792296550557809931414667264"], ["925872375913704382588971034121076736", "931894252452372848048779214358315008", "23850079373508362343265991957413888"], ["916651732641289930345241537209696256", "213925933650525476593018416587079680", "484784475727157819691664021273968640"], ["437801909469761172674999503038709760", "317322757050409371842280855655415808", "103830842515527985468730105634226176"]], [["403024907112919176647098560392724480", "186413591746999354514830010697646080", "284390775208497089826396216255053824"], ["804673612676685057514046120131559424", "957950268967168843540932800710443008", "765259123184202533150260233515302912"], ["90507063386343630583444893876617216", "51427205502766585215616360975958016", "548493604825221400527339472436592640"], ["724985609985223117373146462070767616", "535026403512304113686755954961416192", "473200426652549276285686024624930816"], ["830320111567438756420832537572540416", "369686214826790315183173754282835968", "175192388203153423237206027523850240"], ["801837890207855282685142177062846464", "534862984788909617955020661164343296", "631131228821771102268607001780027392"], ["982996352013455911509017204986216448", "172205434373628000859072416712753152", "998932765894333250683593340313665536"], ["981202847363643380474811683876896768", "159654910828865073405812652638208000", "115007324184743797178976989385588736"], ["502940736843998539987487892051066880", "540674773179261773573992241239687168", "587045422188669849449096723352780800"], ["308119387157854495915179398727204864", "860349918586585362170130182256459776", "960537410315632487279064770093776896"]], [["512312308074261875610182504318763008", "366795938392025196509887899178631168", "638773596640266043023812242238865408"], ["393646124660472143978964712297594880", "653986037586945102497519682623373312", "181945371956914392870062247649476608"], ["539046266418669752967966872943198208", "317944391001626870381247379554697216", "955983463430173048635849238191800320"], ["820146703283661987553357673242034176", "17590520260067355700924907410948096", "212720621874962665980420916963704832"], ["826565396184417121012130363763326976", "621139864783477966975362013356621824", "560957773375164824642511069949984768"], ["247498344717357655533471690550935552", "711077425515601454623881014645096448", "228253030131393079145733285891538944"], ["174454562139392482741213553343070208", "274433028742517209887505331028754432", "535326672565105142426504580535681024"], ["462504323990549116844020560631431168", "814712355391583571755407330691252224", "18521065979112072231300145128407040"], ["862192072610069928712276505872302080", "216284770453510237882586220569034752", "980529477466790198438066383036088320"], ["341212893925536045742802286336278528", "335990589817056997058883874046607360", "952189083559541566679640991107907584"]], [["375208045152064674524009388738347008", "463582718719160041059775712772227072", "968126023299022096969496030108188672"], ["81234405854213162159039216848207872", "616371453014493284529084258647539712", "908391568691808030785923900642426880"], ["400602175604352088930379695719972864", "475434537892176832655398715523072000", "649138124231126593244370756515659776"], ["900537961744734400496015186272976896", "708713326814557439745988046182416384", "550437107464531830585313566742544384"], ["397466458430715071526944803626418176", "307782570922628401732117723346894848", "885547186174647023848044426069803008"], ["863492632290409042171001476015456256", "112194381943336201041833529230491648", "855746707836470022270084095968018432"], ["622249917121054601776759741962256384", "489893447474466338792714955399364608", "639913667798481293673210944568688640"], ["991349277429652382358277840204464128", "989895976701459102136260444649684992", "617301203132262613435486817841315840"], ["47688041592860555860917762400452608", "337791740653332072592187840870219776", "186041134128588265245418770049007616"], ["19570134375756944145328948111212544", "579734276876033225683836350473699328", "749530499927639786042882141689217024"]], [["106722985721963041060457188624957440", "716010612618399433327619676286484480", "33774512875446973595002805315174400"], ["879054287753029040752227055327772672", "784742069362562175140423887650553856", "593811308140922758577369965299499008"], ["908576912612000744350170582578364416", "965906075842979142586973744655237120", "565004789203374506435055805421060096"], ["131497433506119533001801417168519168", "524076830467216122721062433478148096", "239880535138974999727216050583896064"], ["569934348029262670522159961607241728", "262992093944512419110920802367700992", "754979297545660444828688118706077696"], ["522258250386899339047059083587747840", "644865795844990206104763661998358528", "44447770451575778953534983924350976"], ["36410489164796167800068882080727040", "372067382126057312702241924337106944", "946148887036035083789509683616677888"], ["511443288077705950117689618212061184", "886206090997250624744572659232145408", "595319819621366842199343423656296448"], ["454143046992501115383751238265864192", "418276627508521282230865344807829504", "80973428827858298431160027732508672"], ["406156066898683383768079730548408320", "267518791773654702117285698864152576", "38980467829272338913192484177707008"]], [["892248529457748792179724202878697472", "123485738658240306813127105397653504", "320345264065364807148695742364778496"], ["648001567396725678008612603664793600", "825040821737823398133843887690612736", "192964466854790635612298871618666496"], ["884718393623233303251461551066972160", "641194929829152323912563593488367616", "36981281330750404490652176951017472"], ["991764070154760533398548914456494080", "591936167051632697012394507802509312", "301506518824622432345112727439540224"], ["720209335487145338616264837493161984", "565450435276314449646670814843502592", "910659858494020468378616689885970432"], ["805146431301394512957954097837768704", "299377846722604396306791381422047232", "742423921530006872356625809980522496"], ["94565668221947344312613025393672192", "461455155641536305500442103635771392", "554788001926337595577725730162737152"], ["467047680152532179573101811801784320", "333705127646265184641887280272769024", "567959162700715884724903628444270592"], ["550899350655534900150440997433638912", "892528177110343745498730627447390208", "10309413115844101970903539969425408"], ["681123240478058557737678111409963008", "539089295216853113670265822542561280", "315101105941238656645004860726444032"]], [["949670681142060166854795692678840320", "782586801062617681315981296966565888", "222141954941628262940572385615544320"], ["845380199389751457511534226049073152", "983044690573420695839668372567490560", "984550209118240235336965806052343808"], ["503769120976021894604823270493519872", "293072846422087995572555474502942720", "784244156684448538980850409093988352"], ["263516725122184187542889784493998080", "242597927097822370635308460966674432", "486630136036307249929326730468655104"], ["423596051478939113192374074959986688", "485138573812954906445030129578016768", "553388165877807733942699158480617472"], ["222290728897366445675760895970508800", "26768457596308306552121383458963456", "157014874366932629876460960109035520"], ["356828513305406673368975405494566912", "725973129328547431410905019014184960", "645787157381635084628983212509495296"], ["606499970504502010068538152349335552", "552222165791676065698697519279636480", "10199970765785937261952407907074048"], ["284504792865242130844534983484243968", "208160846926135124760306000479649792", "197237969210811294513368361401843712"], ["957019041264345421396738227029671936", "542307620813868988909232886577627136", "387793842367526386074956813186367488"]]], "weights": [[[["21888242871839275222246405745257275088548099927901643398259671993597361651713", "21888242871839275222246405745257275088548301253526824596380620976366095958017"], ["21888242871839275222246405745257275088548172119140046718552650247186870697985", "21888242871839275222246405745257275088548209282308238628351795219809093812225"], ["116953730583190922834775291549712384", "153735727071762094608033957262917632"]], [["21888242871839275222246405745257275088548113128572124126401904248038398885889", "21888242871839275222246405745257275088548331126525419834116157364565291565057"], ["65824985504150389830854055718551552", "139549434185028076977452926619353088"], ["21888242871839275222246405745257275088548341656565087917306504331740078669825", "21888242871839275222246405745257275088548124158024209621386605145167327395841"]], [["21888242871839275222246405745257275088548090945571082714049305859811132309505", "72330117225646977743436536692604928"], ["32405346632003786951105355777572864", "21888242871839275222246405745257275088548228108018058422066808320249672237057"], ["165547341108322158806526838641262592", "21888242871839275222246405745257275088548164594441074016545109736697748258817"]], [["122719228267669685629511565679001600", "21888242871839275222246405745257275088548200910940188053109364569713135321089"], ["21888242871839275222246405745257275088548120406969803455332130940343698849793", "111125379800796520979438747154120704"], ["41536927223205569872340028558934016", "99445849657058719716214940459073536"]]], [[["70615887641906737886965041417158656", "80672889947891235386773913680740352"], ["21888242871839275222246405745257275088548105014055389049499526217675361484801", "21888242871839275222246405745257275088548317411988395336127543994725823414273"], ["21888242871839275222246405745257275088548178247197884204826149472653841268737", "21888242871839275222246405745257275088548175134002584102614328899752901476353"]], [["68288177251815796172336535607181312", "100245893001556405714992132893179904"], ["21888242871839275222246405745257275088548301384105700138066380426038397108225", "21888242871839275222246405745257275088548150486379283550224732841642096066561"], ["177981585264205937398318082866282496", "160777390003204350955034585128239104"]], [["21888242871839275222246405745257275088548175561084765079475263882421988229121", "21888242871839275222246405745257275088548122986599224689454578257073788682241"], ["21888242871839275222246405745257275088548223312720078113536704975994846445569", "21888242871839275222246405745257275088548177342622893932306356613907239403521"], ["21888242871839275222246405745257275088548188016503471019716629536726287646721", "129097759723663332814032305129521152"]], [["249950945377349850701961155720511488", "21888242871839275222246405745257275088548092250853198650337750301612057821185"], ["21888242871839275222246405745257275088548198062374609592426497485091779903489", "21888242871839275222246405745257275088548119053899663570389668785991897317377"], ["94707608222961424092693600550256640", "21888242871839275222246405745257275088548189142614024761153270908760491032577"]]], [[["21888242871839275222246405745257275088548094663470405223821398188916775845889", "21888242871839275222246405745257275088548198669075387599910587049888528203777"], ["9365200996398925901503641761611776", "233176589012146022640387781354848256"], ["135218322277069100886687967053086720", "21888242871839275222246405745257275088548176168977635982472602440672638664705"]], [["173126101493835441313171059775635456", "152107954025268558374489528855429120"], ["119728654623031623388752291211247616", "118241965770721441916238181770985472"], ["21888242871839275222246405745257275088548161237745898845627255457490592071681", "21888242871839275222246405745257275088548351455121654155708524631709028712449"]], [["145850419998168952560482149185093632", "222548544406890871740985565587177472"], ["157647013664245616229936176750919680", "89110702276229860686326300325969920"], ["7023513317108154291941040482942976", "172629415988922122448267187209633792"]], [["66778540611267095337162880808124416", "21888242871839275222246405745257275088548285666688698413821213982344400076801"], ["21888242871839275222246405745257275088548099037497657421089985277479723466753", "21888242871839275222246405745257275088548192219510096195174816420541948231681"], ["21888242871839275222246405745257275088548240219979900005306895559498735288321", "21888242871839275222246405745257275088548246315925735118844435662409320890369"]]], [[["91532975435256953689525990006456320", "186113834381103516344777741004963840"], ["140093326568603524967010392388665344", "21888242871839275222246405745257275088548170589953082683534143998886108200961"], ["21888242871839275222246405745257275088548091886788028362259093365053689167873", "74294209480285649046128992492453888"]], [["127200275659561159927571869903880192", "21888242871839275222246405745257275088548282236292379978150918169064967766017"], ["141161412000656136448810385661755392", "21888242871839275222246405745257275088548259665473717334725167765337847889921"], ["21888242871839275222246405745257275088548347878395932796455609344635080540161", "21888242871839275222246405745257275088548244416802543285350055208011834589185"]], [["21888242871839275222246405745257275088548354271411317470528356048998043222017", "123566865921020511199400298528374784"], ["21888242871839275222246405745257275088548362249850648525216688488063843696641", "175252646207809463044101978787414016"], ["269257366657257088209127110898352128", "185519754886627193001571194696105984"]], [["21888242871839275222246405745257275088548202743917125347108411742220265193473", "21888242871839275222246405745257275088548219765126126888241238013860955291649"], ["21888242871839275222246405745257275088548183849334138515427188019826182324225", "256447613239288351731596742489014272"], ["192392557859420779770597802608951296", "21888242871839275222246405745257275088548250738784092548350356704832163676161"]]]], "bias": ["0", "0"], "out": [[["21888242871839275222246405745257275088548343368429240512769054624061005959510", "21888242871839275222246405745257275088548361881856976212445268734113123308000"], ["21888242871839275222246405745257275088548228495669861064087547662558271715284", "21888242871839275222246405745257275088547931594040764149614699120473995978124"], ["21888242871839275222246405745257275088547898470480336398546468994244949638791", "21888242871839275222246405745257275088547756728190784802798484857861334105370"]], [["21888242871839275222246405745257275088547944544909737422432087456874316949324", "21888242871839275222246405745257275088548081239515185091772880603232052577114"], ["21888242871839275222246405745257275088547851960358367500079371782793385911358", "21888242871839275222246405745257275088547688365801627855012444638213091512422"], ["21888242871839275222246405745257275088548060775297780413313747663983226225838", "21888242871839275222246405745257275088548013737249302248990923589248334943730"]], [["47192436853842599651386952076755831", "21888242871839275222246405745257275088547592230115531216981433877552691800835"], ["21888242871839275222246405745257275088547457107943733886642827877231280519319", "21888242871839275222246405745257275088547818345751775722192552561821918626804"], ["21888242871839275222246405745257275088547748667480051924165721939129997507240", "21888242871839275222246405745257275088547804215881906491939765109262983554318"]]], "remainder": [[["268679458635749205024295605371928576", "388806143166359782280358980933910528"], ["587604291442575449740007779803856896", "881363922854357799836717369522126848"], ["861312932060957897553390674280185856", "857846252928472736899563405831045120"]], [["84829649070177990320832563715768320", "765867543468158475751770347286822912"], ["238136771858729786452041694885969920", "231361799849937010319349760697303040"], ["357728239843398972090727278133116928", "121546057864506428255684370605539328"]], [["568749905268752884676825625665732608", "218395840383827537600516408079286272"], ["390713141622087796116893701035261952", "52043981850152859332227036686057472"], ["355515461237650726718816599152787456", "178351211698736250757067221797699584"]]]} \ No newline at end of file diff --git a/models/conv2D_stride_output.json b/models/conv2D_stride_output.json deleted file mode 100644 index 20fa7df..0000000 --- a/models/conv2D_stride_output.json +++ /dev/null @@ -1 +0,0 @@ -{"out": [604066, 49637, 825491, 594827, 930285, 228053, 1282346, 594940, 897624, 379819, 1158895, 446232, 593408, 64606, 1260976, 251827, 504049, 658720]} \ No newline at end of file diff --git a/models/conv2d.ipynb b/models/conv2d.ipynb index d8850b1..250b830 100644 --- a/models/conv2d.ipynb +++ b/models/conv2d.ipynb @@ -5,6 +5,15 @@ "execution_count": 1, "metadata": {}, "outputs": [], + "source": [ + "p = 21888242871839275222246405745257275088548364400416034343698204186575808495617" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], "source": [ "from tensorflow.keras.layers import Input, Conv2D\n", "from tensorflow.keras import Model\n", @@ -13,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -24,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -33,11 +42,12 @@ "text": [ "Model: \"model\"\n", "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", + " Layer (type) Output Shape Param # \n", "=================================================================\n", - "input_1 (InputLayer) [(None, 5, 5, 3)] 0 \n", - "_________________________________________________________________\n", - "conv2d (Conv2D) (None, 3, 3, 2) 56 \n", + " input_1 (InputLayer) [(None, 5, 5, 3)] 0 \n", + " \n", + " conv2d (Conv2D) (None, 3, 3, 2) 56 \n", + " \n", "=================================================================\n", "Total params: 56\n", "Trainable params: 56\n", @@ -52,54 +62,54 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[,\n", + " [[ 0.32842422, 0.10250565],\n", + " [-0.32919353, 0.12664899],\n", + " [-0.16168171, 0.34737545]]]], dtype=float32)>,\n", " ]" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -110,44 +120,44 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[[[0.07706963, 0.89463434, 0.1897133 ],\n", - " [0.30366886, 0.19307375, 0.6178037 ],\n", - " [0.88041068, 0.50786565, 0.51687829],\n", - " [0.63407746, 0.61299695, 0.43654402],\n", - " [0.85343424, 0.14670523, 0.93538307]],\n", + "array([[[[0.01897312, 0.08743388, 0.86222637],\n", + " [0.10109003, 0.28028469, 0.47527166],\n", + " [0.01512083, 0.32085385, 0.55800198],\n", + " [0.4642667 , 0.30473978, 0.4908111 ],\n", + " [0.35508257, 0.37433134, 0.78504401]],\n", "\n", - " [[0.62738085, 0.96599414, 0.54225448],\n", - " [0.97695477, 0.51189504, 0.64659635],\n", - " [0.14987877, 0.76167303, 0.88906146],\n", - " [0.69694305, 0.52868868, 0.15631565],\n", - " [0.26004293, 0.16167052, 0.54175091]],\n", + " [[0.86741939, 0.20455078, 0.75628909],\n", + " [0.49125544, 0.77870243, 0.00276785],\n", + " [0.15663838, 0.57212579, 0.99557935],\n", + " [0.94449608, 0.24962475, 0.12299833],\n", + " [0.99733666, 0.01757025, 0.78783541]],\n", "\n", - " [[0.06935492, 0.48436401, 0.89326109],\n", - " [0.11489624, 0.17011633, 0.57831794],\n", - " [0.41737643, 0.20459155, 0.355945 ],\n", - " [0.18405935, 0.36680556, 0.44706071],\n", - " [0.61416318, 0.71028094, 0.72964778]],\n", + " [[0.48878705, 0.12012174, 0.9315336 ],\n", + " [0.21785634, 0.36211795, 0.66387035],\n", + " [0.90845156, 0.08354312, 0.49792257],\n", + " [0.89275096, 0.48364178, 0.29199137],\n", + " [0.42604607, 0.48339958, 0.24699135]],\n", "\n", - " [[0.14665591, 0.49169179, 0.34747557],\n", - " [0.85826504, 0.33210524, 0.18229433],\n", - " [0.82389036, 0.83632002, 0.14352168],\n", - " [0.5986361 , 0.78300801, 0.92352137],\n", - " [0.32828077, 0.46306303, 0.02765627]],\n", + " [[0.49614912, 0.82873805, 0.51174584],\n", + " [0.40336063, 0.91275723, 0.98636519],\n", + " [0.77062345, 0.9014581 , 0.37892572],\n", + " [0.70837991, 0.13523834, 0.27672346],\n", + " [0.80903352, 0.01406841, 0.65278234]],\n", "\n", - " [[0.75507086, 0.95771695, 0.97896974],\n", - " [0.29898692, 0.17223516, 0.11842481],\n", - " [0.39979659, 0.52830405, 0.37872448],\n", - " [0.85015918, 0.97035878, 0.47716831],\n", - " [0.98265021, 0.72905901, 0.54096091]]]])" + " [[0.04710218, 0.17104368, 0.60839461],\n", + " [0.15986631, 0.37473407, 0.20861406],\n", + " [0.53476587, 0.31278845, 0.93248025],\n", + " [0.62650735, 0.05244101, 0.57899892],\n", + " [0.24521627, 0.01355308, 0.20119521]]]])" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -159,26 +169,40 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 31ms/step\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-10-23 20:04:35.358347: W tensorflow/tsl/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n" + ] + }, { "data": { "text/plain": [ - "array([[[[-0.47057757, 0.87940997],\n", - " [-0.22883852, 0.9216037 ],\n", - " [-0.44013992, 1.0718222 ]],\n", + "array([[[[ 0.7669913 , 0.15274508],\n", + " [ 0.7217935 , 0.43549562],\n", + " [ 0.956968 , -0.7293344 ]],\n", "\n", - " [[-0.37989584, 1.1078516 ],\n", - " [-0.4495669 , 1.0322194 ],\n", - " [ 0.01791049, 0.49668407]],\n", + " [[ 0.82161874, -0.08652828],\n", + " [ 0.45854256, 0.37499383],\n", + " [ 0.6369549 , -0.12588985]],\n", "\n", - " [[-0.16616501, 0.42594796],\n", - " [-0.79061836, 0.731256 ],\n", - " [-0.39701813, 1.2579358 ]]]], dtype=float32)" + " [[ 0.3617655 , 0.5265081 ],\n", + " [ 0.5842541 , 0.11949164],\n", + " [ 0.6298134 , -0.148645 ]]]], dtype=float32)" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -188,28 +212,15 @@ "y" ] }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "in_json = {\n", - " \"in\": (X*1000).round().astype(int).flatten().tolist(),\n", - " \"weights\": (model.weights[0].numpy()*1000).round().astype(int).flatten().tolist(),\n", - " \"bias\": [0,0]\n", - "}" - ] - }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "out_json = {\n", - " \"out\": (y*1000000).round().astype(int).flatten().tolist()\n", - "}" + "X_in = [[[int(X[0][i][j][k]*1e36) for k in range(3)] for j in range(5)] for i in range(5)]\n", + "weights = [[[[int(model.weights[0].numpy()[i][j][k][l]*1e36) for l in range(2)] for k in range(3)] for j in range(3)] for i in range(3)]\n", + "bias = [int(model.weights[1].numpy()[i]*1e72) for i in range(2)]" ] }, { @@ -218,13 +229,109 @@ "metadata": {}, "outputs": [], "source": [ - "import json" + "def Conv2DInt(nRows, nCols, nChannels, nFilters, kernelSize, strides, n, input, weights, bias):\n", + " Input = [[[str(input[i][j][k] % p) for k in range(nChannels)] for j in range(nCols)] for i in range(nRows)]\n", + " Weights = [[[[str(weights[i][j][k][l] % p) for l in range(nFilters)] for k in range(nChannels)] for j in range(kernelSize)] for i in range(kernelSize)]\n", + " Bias = [str(bias[i] % p) for i in range(nFilters)]\n", + " out = [[[0 for _ in range(nFilters)] for _ in range((nCols - kernelSize)//strides + 1)] for _ in range((nRows - kernelSize)//strides + 1)]\n", + " remainder = [[[None for _ in range(nFilters)] for _ in range((nCols - kernelSize)//strides + 1)] for _ in range((nRows - kernelSize)//strides + 1)]\n", + " for i in range((nRows - kernelSize)//strides + 1):\n", + " for j in range((nCols - kernelSize)//strides + 1):\n", + " for m in range(nFilters):\n", + " for k in range(nChannels):\n", + " for x in range(kernelSize):\n", + " for y in range(kernelSize):\n", + " out[i][j][m] += input[i*strides+x][j*strides+y][k] * weights[x][y][k][m]\n", + " out[i][j][m] += bias[m]\n", + " remainder[i][j][m] = str(out[i][j][m] % n)\n", + " out[i][j][m] = str(out[i][j][m] // n % p)\n", + " return Input, Weights, Bias, out, remainder" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([[['766991308610348168697678317289253491',\n", + " '152745147346569443334783280814065046'],\n", + " ['721793514622685877535765261453578285',\n", + " '435495635689848419191313701414477907'],\n", + " ['956968022633247456612037533749279884',\n", + " '21888242871839275222246405745257275088547635065957648765434334612742599273530']],\n", + " [['821618728955717473031173417522483642',\n", + " '21888242871839275222246405745257275088548277872099372923381843387091765217066'],\n", + " ['458542547820893552234319995890476448',\n", + " '374993810980093272528286581550476085'],\n", + " ['636954799020811143676097566965150012',\n", + " '21888242871839275222246405745257275088548238510569604144298779927709876426450']],\n", + " [['361765493481699222011118768701693995',\n", + " '526508029475490175970042650793369367'],\n", + " ['584254113344261709635215513635894572',\n", + " '119491582294697734028918864863442650'],\n", + " ['629813449657849355217882687452958040',\n", + " '21888242871839275222246405745257275088548215755396606066460162924422748870356']]],\n", + " [[['917380913441791641383057190580912128',\n", + " '941668043113108989243166859307515904'],\n", + " ['830888825756591443304789567910969344',\n", + " '959036987931483834969450172534226944'],\n", + " ['807238014162219891553337682966872064',\n", + " '654744816405601974137858933743681536']],\n", + " [['495502502940535931874336973827080192',\n", + " '508085363950388829219862699527110656'],\n", + " ['570521634763453322817882508314542080',\n", + " '580659632640246114717880425476259840'],\n", + " ['730760440116275911813925660727967744',\n", + " '404713594680872184361509627048755200']],\n", + " [['285034561505172240143276776062189568',\n", + " '246179226164944809810447582952947712'],\n", + " ['383405024202190176779250406231375872',\n", + " '48073795245569756634196992877133824'],\n", + " ['41512468028555336013994905783238656',\n", + " '807192458327115051492426645956984832']]])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_in, weights, bias, out, remainder = Conv2DInt(5, 5, 3, 2, 3, 1, 10**36, X_in, weights, bias)\n", + "out, remainder" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "in_json = {\n", + " \"in\": X_in,\n", + " \"weights\": weights,\n", + " \"bias\": bias,\n", + " \"out\": out,\n", + " \"remainder\": remainder\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "import json" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, "outputs": [], "source": [ "with open(\"conv2D_input.json\", \"w\") as f:\n", @@ -233,17 +340,7 @@ }, { "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "with open(\"conv2D_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -254,20 +351,21 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Model: \"model\"\n", + "Model: \"model_1\"\n", "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", + " Layer (type) Output Shape Param # \n", "=================================================================\n", - "input_1 (InputLayer) [(None, 10, 10, 3)] 0 \n", - "_________________________________________________________________\n", - "conv2d (Conv2D) (None, 3, 3, 2) 98 \n", + " input_2 (InputLayer) [(None, 10, 10, 3)] 0 \n", + " \n", + " conv2d_1 (Conv2D) (None, 3, 3, 2) 98 \n", + " \n", "=================================================================\n", "Total params: 98\n", "Trainable params: 98\n", @@ -282,83 +380,83 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[,\n", - " ]" + " [[-0.1616565 , -0.14463529],\n", + " [-0.18055108, 0.2564476 ],\n", + " [ 0.19239256, -0.11366163]]]], dtype=float32)>,\n", + " ]" ] }, - "execution_count": 4, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -369,124 +467,124 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[[[0.97251485, 0.45513694, 0.02700021],\n", - " [0.77939851, 0.57285348, 0.64336143],\n", - " [0.7910932 , 0.68158499, 0.55903757],\n", - " [0.19978621, 0.16401386, 0.1178243 ],\n", - " [0.26202894, 0.73739062, 0.41515085],\n", - " [0.91602252, 0.1889969 , 0.86812371],\n", - " [0.90520645, 0.88021945, 0.56918999],\n", - " [0.1576814 , 0.66244825, 0.76843253],\n", - " [0.91151503, 0.18348028, 0.83457797],\n", - " [0.54744986, 0.6653615 , 0.88219377]],\n", + "array([[[[0.74916437, 0.48058547, 0.76332072],\n", + " [0.12424725, 0.17444765, 0.23397784],\n", + " [0.05504572, 0.73761126, 0.8872156 ],\n", + " [0.49900099, 0.92746041, 0.53705474],\n", + " [0.55972545, 0.16210532, 0.48132197],\n", + " [0.5848511 , 0.49854495, 0.08101739],\n", + " [0.18151106, 0.19916602, 0.72216404],\n", + " [0.8740212 , 0.76936566, 0.77574156],\n", + " [0.640459 , 0.97982307, 0.28733369],\n", + " [0.72894846, 0.08559827, 0.88796122]],\n", "\n", - " [[0.75996691, 0.51053919, 0.93055488],\n", - " [0.91144281, 0.56385737, 0.15222672],\n", - " [0.03655235, 0.37340661, 0.10463077],\n", - " [0.44692914, 0.54256831, 0.84009866],\n", - " [0.79509769, 0.09059503, 0.35705721],\n", - " [0.51836358, 0.56141664, 0.58831904],\n", - " [0.84739405, 0.63802925, 0.66017923],\n", - " [0.92534248, 0.63225917, 0.7473312 ],\n", - " [0.73096606, 0.40520727, 0.97955684],\n", - " [0.63831414, 0.89495898, 0.32695978]],\n", + " [[0.72655621, 0.74204472, 0.22625834],\n", + " [0.04455912, 0.02637621, 0.7410693 ],\n", + " [0.59282978, 0.27570664, 0.76839831],\n", + " [0.98853958, 0.32472733, 0.07214331],\n", + " [0.18975449, 0.50827871, 0.61454778],\n", + " [0.04411632, 0.5425321 , 0.08095671],\n", + " [0.98276969, 0.93905031, 0.27580299],\n", + " [0.01991902, 0.18288148, 0.56430848],\n", + " [0.60873785, 0.76133969, 0.94420434],\n", + " [0.29177495, 0.60971797, 0.75330394]],\n", "\n", - " [[0.71829301, 0.46062667, 0.71811823],\n", - " [0.15848069, 0.80969418, 0.51871761],\n", - " [0.16135808, 0.78216571, 0.71516724],\n", - " [0.86211842, 0.53539272, 0.39332206],\n", - " [0.40901593, 0.01396001, 0.79064577],\n", - " [0.40514149, 0.85380516, 0.71092302],\n", - " [0.40279167, 0.40553908, 0.34943154],\n", - " [0.32739584, 0.45935947, 0.34916069],\n", - " [0.53435728, 0.93021973, 0.72660915],\n", - " [0.48201736, 0.22166786, 0.23815264]],\n", + " [[0.73958658, 0.86792802, 0.38199042],\n", + " [0.60758291, 0.04444527, 0.89773701],\n", + " [0.81378908, 0.74925507, 0.94127002],\n", + " [0.52276966, 0.71515635, 0.0673889 ],\n", + " [0.88674225, 0.85171248, 0.25796752],\n", + " [0.06304501, 0.02557175, 0.7862988 ],\n", + " [0.13024858, 0.03026337, 0.53165512],\n", + " [0.98698478, 0.10343698, 0.14793739],\n", + " [0.19595613, 0.4755287 , 0.69081615],\n", + " [0.63616236, 0.64746281, 0.70686306]],\n", "\n", - " [[0.70384743, 0.91639052, 0.92217664],\n", - " [0.13377693, 0.83509932, 0.7465723 ],\n", - " [0.55129428, 0.93502285, 0.4134988 ],\n", - " [0.46219387, 0.11715096, 0.96329141],\n", - " [0.74610843, 0.18125007, 0.92666074],\n", - " [0.67935838, 0.84330332, 0.4897472 ],\n", - " [0.56189416, 0.94376182, 0.91971249],\n", - " [0.2344166 , 0.28675204, 0.50005015],\n", - " [0.87694834, 0.03292064, 0.59372731],\n", - " [0.1410371 , 0.37930507, 0.93440982]],\n", + " [[0.90697061, 0.70755438, 0.17101648],\n", + " [0.91618436, 0.75457803, 0.3753285 ],\n", + " [0.10891312, 0.63256771, 0.66998965],\n", + " [0.0031363 , 0.8577421 , 0.44313256],\n", + " [0.97431053, 0.31491313, 0.52870403],\n", + " [0.84949509, 0.57476833, 0.35833646],\n", + " [0.3259322 , 0.61810256, 0.97382616],\n", + " [0.92587238, 0.93189425, 0.02385008],\n", + " [0.91665173, 0.21392593, 0.48478448],\n", + " [0.43780191, 0.31732276, 0.10383084]],\n", "\n", - " [[0.33332779, 0.76704737, 0.03504045],\n", - " [0.12148567, 0.06901141, 0.32551204],\n", - " [0.59735274, 0.59523581, 0.00993422],\n", - " [0.9513948 , 0.47815931, 0.018291 ],\n", - " [0.79727936, 0.20293482, 0.33432458],\n", - " [0.61879149, 0.97450524, 0.73288953],\n", - " [0.20291612, 0.2230533 , 0.54581403],\n", - " [0.96841368, 0.96407929, 0.25184421],\n", - " [0.39925087, 0.23617574, 0.54586969],\n", - " [0.31766469, 0.55082408, 0.70822638]],\n", + " [[0.40302491, 0.18641359, 0.28439078],\n", + " [0.80467361, 0.95795027, 0.76525912],\n", + " [0.09050706, 0.05142721, 0.5484936 ],\n", + " [0.72498561, 0.5350264 , 0.47320043],\n", + " [0.83032011, 0.36968621, 0.17519239],\n", + " [0.80183789, 0.53486298, 0.63113123],\n", + " [0.98299635, 0.17220543, 0.99893277],\n", + " [0.98120285, 0.15965491, 0.11500732],\n", + " [0.50294074, 0.54067477, 0.58704542],\n", + " [0.30811939, 0.86034992, 0.96053741]],\n", "\n", - " [[0.23476765, 0.17316881, 0.47290996],\n", - " [0.63928832, 0.87168719, 0.41376668],\n", - " [0.43124419, 0.18044566, 0.28764125],\n", - " [0.07918316, 0.42466569, 0.29817 ],\n", - " [0.77903568, 0.26465035, 0.19378377],\n", - " [0.88960928, 0.17741272, 0.93643759],\n", - " [0.95486371, 0.71402737, 0.02170905],\n", - " [0.77465114, 0.21071205, 0.71740116],\n", - " [0.2105675 , 0.68209689, 0.99265747],\n", - " [0.44123258, 0.35068216, 0.18443967]],\n", + " [[0.51231231, 0.36679594, 0.6387736 ],\n", + " [0.39364612, 0.65398604, 0.18194537],\n", + " [0.53904627, 0.31794439, 0.95598346],\n", + " [0.8201467 , 0.01759052, 0.21272062],\n", + " [0.8265654 , 0.62113986, 0.56095777],\n", + " [0.24749834, 0.71107743, 0.22825303],\n", + " [0.17445456, 0.27443303, 0.53532667],\n", + " [0.46250432, 0.81471236, 0.01852107],\n", + " [0.86219207, 0.21628477, 0.98052948],\n", + " [0.34121289, 0.33599059, 0.95218908]],\n", "\n", - " [[0.72729028, 0.34422837, 0.45330759],\n", - " [0.70008861, 0.74244728, 0.47519843],\n", - " [0.90665756, 0.79266484, 0.92471306],\n", - " [0.35356468, 0.27658691, 0.62612034],\n", - " [0.80262629, 0.38014853, 0.88572335],\n", - " [0.70577279, 0.73463977, 0.64607726],\n", - " [0.76175153, 0.34114261, 0.25165355],\n", - " [0.41433933, 0.81211749, 0.32920431],\n", - " [0.81885149, 0.43244061, 0.64193369],\n", - " [0.25711737, 0.75723915, 0.56240932]],\n", + " [[0.37520805, 0.46358272, 0.96812602],\n", + " [0.08123441, 0.61637145, 0.90839157],\n", + " [0.40060218, 0.47543454, 0.64913812],\n", + " [0.90053796, 0.70871333, 0.55043711],\n", + " [0.39746646, 0.30778257, 0.88554719],\n", + " [0.86349263, 0.11219438, 0.85574671],\n", + " [0.62224992, 0.48989345, 0.63991367],\n", + " [0.99134928, 0.98989598, 0.6173012 ],\n", + " [0.04768804, 0.33779174, 0.18604113],\n", + " [0.01957013, 0.57973428, 0.7495305 ]],\n", "\n", - " [[0.4214149 , 0.33210466, 0.89250414],\n", - " [0.25449979, 0.07459641, 0.16747531],\n", - " [0.42138569, 0.20694074, 0.81756281],\n", - " [0.80522426, 0.62663345, 0.87747416],\n", - " [0.66534828, 0.80525886, 0.01988047],\n", - " [0.4948794 , 0.28630048, 0.58954056],\n", - " [0.74320486, 0.64790933, 0.28396301],\n", - " [0.13750094, 0.02872952, 0.39362795],\n", - " [0.72667091, 0.50329443, 0.11188484],\n", - " [0.01977563, 0.54219458, 0.60052706]],\n", + " [[0.10672299, 0.71601061, 0.03377451],\n", + " [0.87905429, 0.78474207, 0.59381131],\n", + " [0.90857691, 0.96590608, 0.56500479],\n", + " [0.13149743, 0.52407683, 0.23988054],\n", + " [0.56993435, 0.26299209, 0.7549793 ],\n", + " [0.52225825, 0.6448658 , 0.04444777],\n", + " [0.03641049, 0.37206738, 0.94614889],\n", + " [0.51144329, 0.88620609, 0.59531982],\n", + " [0.45414305, 0.41827663, 0.08097343],\n", + " [0.40615607, 0.26751879, 0.03898047]],\n", "\n", - " [[0.53801627, 0.91787638, 0.38982677],\n", - " [0.03749426, 0.92513169, 0.91275971],\n", - " [0.34702074, 0.00438524, 0.17541972],\n", - " [0.16459438, 0.39827819, 0.43025267],\n", - " [0.52254362, 0.17287154, 0.08078938],\n", - " [0.61399286, 0.50806298, 0.26215701],\n", - " [0.36095081, 0.61864805, 0.00384717],\n", - " [0.01225557, 0.70154596, 0.30105766],\n", - " [0.56348969, 0.84660337, 0.88242305],\n", - " [0.78735834, 0.06987492, 0.06523453]],\n", + " [[0.89224853, 0.12348574, 0.32034526],\n", + " [0.64800157, 0.82504082, 0.19296447],\n", + " [0.88471839, 0.64119493, 0.03698128],\n", + " [0.99176407, 0.59193617, 0.30150652],\n", + " [0.72020934, 0.56545044, 0.91065986],\n", + " [0.80514643, 0.29937785, 0.74242392],\n", + " [0.09456567, 0.46145516, 0.554788 ],\n", + " [0.46704768, 0.33370513, 0.56795916],\n", + " [0.55089935, 0.89252818, 0.01030941],\n", + " [0.68112324, 0.5390893 , 0.31510111]],\n", "\n", - " [[0.31370938, 0.02861093, 0.10943704],\n", - " [0.82845993, 0.13236614, 0.56989642],\n", - " [0.33997596, 0.94155797, 0.93786532],\n", - " [0.28295679, 0.52881401, 0.35867141],\n", - " [0.94786737, 0.35825851, 0.25476474],\n", - " [0.80097957, 0.95050832, 0.68227972],\n", - " [0.02266812, 0.98557197, 0.69057788],\n", - " [0.54403132, 0.20586683, 0.90978653],\n", - " [0.9848536 , 0.62006799, 0.89784117],\n", - " [0.87154093, 0.77054866, 0.84496778]]]])" + " [[0.94967068, 0.7825868 , 0.22214195],\n", + " [0.8453802 , 0.98304469, 0.98455021],\n", + " [0.50376912, 0.29307285, 0.78424416],\n", + " [0.26351673, 0.24259793, 0.48663014],\n", + " [0.42359605, 0.48513857, 0.55338817],\n", + " [0.22229073, 0.02676846, 0.15701487],\n", + " [0.35682851, 0.72597313, 0.64578716],\n", + " [0.60649997, 0.55222217, 0.01019997],\n", + " [0.28450479, 0.20816085, 0.19723797],\n", + " [0.95701904, 0.54230762, 0.38779384]]]])" ] }, - "execution_count": 5, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -498,26 +596,33 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 18, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 22ms/step\n" + ] + }, { "data": { "text/plain": [ - "array([[[[0.60406584, 0.04963745],\n", - " [0.8254909 , 0.59482723],\n", - " [0.93028533, 0.22805347]],\n", + "array([[[[-0.02103192, -0.00251862],\n", + " [-0.13590473, -0.43280643],\n", + " [-0.46592993, -0.6076722 ]],\n", "\n", - " [[1.2823461 , 0.5949404 ],\n", - " [0.897624 , 0.3798192 ],\n", - " [1.1588949 , 0.44623226]],\n", + " [[-0.41985548, -0.28316095],\n", + " [-0.5124401 , -0.67603445],\n", + " [-0.30362517, -0.35066307]],\n", "\n", - " [[0.5934084 , 0.06460603],\n", - " [1.2609756 , 0.25182724],\n", - " [0.5040486 , 0.6587203 ]]]], dtype=float32)" + " [[ 0.04719239, -0.77217025],\n", + " [-0.90729254, -0.5460546 ],\n", + " [-0.6157329 , -0.56018454]]]], dtype=float32)" ] }, - "execution_count": 6, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -529,31 +634,89 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "X_in = [[[int(X[0][i][j][k]*1e36) for k in range(3)] for j in range(10)] for i in range(10)]\n", + "weights = [[[[int(model.weights[0].numpy()[i][j][k][l]*1e36) for l in range(2)] for k in range(3)] for j in range(4)] for i in range(4)]\n", + "bias = [int(model.weights[1].numpy()[i]*1e72) for i in range(2)]" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([[['21888242871839275222246405745257275088548343368429240512769054624061005959510',\n", + " '21888242871839275222246405745257275088548361881856976212445268734113123308000'],\n", + " ['21888242871839275222246405745257275088548228495669861064087547662558271715284',\n", + " '21888242871839275222246405745257275088547931594040764149614699120473995978124'],\n", + " ['21888242871839275222246405745257275088547898470480336398546468994244949638791',\n", + " '21888242871839275222246405745257275088547756728190784802798484857861334105370']],\n", + " [['21888242871839275222246405745257275088547944544909737422432087456874316949324',\n", + " '21888242871839275222246405745257275088548081239515185091772880603232052577114'],\n", + " ['21888242871839275222246405745257275088547851960358367500079371782793385911358',\n", + " '21888242871839275222246405745257275088547688365801627855012444638213091512422'],\n", + " ['21888242871839275222246405745257275088548060775297780413313747663983226225838',\n", + " '21888242871839275222246405745257275088548013737249302248990923589248334943730']],\n", + " [['47192436853842599651386952076755831',\n", + " '21888242871839275222246405745257275088547592230115531216981433877552691800835'],\n", + " ['21888242871839275222246405745257275088547457107943733886642827877231280519319',\n", + " '21888242871839275222246405745257275088547818345751775722192552561821918626804'],\n", + " ['21888242871839275222246405745257275088547748667480051924165721939129997507240',\n", + " '21888242871839275222246405745257275088547804215881906491939765109262983554318']]],\n", + " [[['268679458635749205024295605371928576',\n", + " '388806143166359782280358980933910528'],\n", + " ['587604291442575449740007779803856896',\n", + " '881363922854357799836717369522126848'],\n", + " ['861312932060957897553390674280185856',\n", + " '857846252928472736899563405831045120']],\n", + " [['84829649070177990320832563715768320',\n", + " '765867543468158475751770347286822912'],\n", + " ['238136771858729786452041694885969920',\n", + " '231361799849937010319349760697303040'],\n", + " ['357728239843398972090727278133116928',\n", + " '121546057864506428255684370605539328']],\n", + " [['568749905268752884676825625665732608',\n", + " '218395840383827537600516408079286272'],\n", + " ['390713141622087796116893701035261952',\n", + " '52043981850152859332227036686057472'],\n", + " ['355515461237650726718816599152787456',\n", + " '178351211698736250757067221797699584']]])" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_in, weights, bias, out, remainder = Conv2DInt(10, 10, 3, 2, 4, 3, 10**36, X_in, weights, bias)\n", + "out, remainder" + ] + }, + { + "cell_type": "code", + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "in_json = {\n", - " \"in\": (X*1000).round().astype(int).flatten().tolist(),\n", - " \"weights\": (model.weights[0].numpy()*1000).round().astype(int).flatten().tolist(),\n", - " \"bias\": [0,0]\n", + " \"in\": X_in,\n", + " \"weights\": weights,\n", + " \"bias\": bias,\n", + " \"out\": out,\n", + " \"remainder\": remainder\n", "}" ] }, { "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "out_json = {\n", - " \"out\": (y*1000000).round().astype(int).flatten().tolist()\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 10, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -561,16 +724,6 @@ " json.dump(in_json, f)" ] }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "with open(\"conv2D_stride_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" - ] - }, { "cell_type": "code", "execution_count": null, @@ -581,9 +734,9 @@ ], "metadata": { "kernelspec": { - "display_name": "tf24", + "display_name": "sklearn", "language": "python", - "name": "tf24" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -595,7 +748,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.9.16" }, "orig_nbformat": 4 }, diff --git a/models/dense.ipynb b/models/dense.ipynb new file mode 100644 index 0000000..bd60a73 --- /dev/null +++ b/models/dense.ipynb @@ -0,0 +1,263 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "p = 21888242871839275222246405745257275088548364400416034343698204186575808495617" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from tensorflow.keras.layers import Input, Dense\n", + "from tensorflow.keras import Model\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "inputs = Input(shape=(20,))\n", + "out = Dense(10)(inputs)\n", + "model = Model(inputs, out)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"model\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " input_1 (InputLayer) [(None, 20)] 0 \n", + " \n", + " dense (Dense) (None, 10) 210 \n", + " \n", + "=================================================================\n", + "Total params: 210\n", + "Trainable params: 210\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.91709806, 0.82830839, 0.93914066, 0.57037095, 0.04271652,\n", + " 0.35534695, 0.29179199, 0.80227101, 0.65690956, 0.59359125,\n", + " 0.57083799, 0.64906287, 0.08615951, 0.20494363, 0.98687436,\n", + " 0.70022373, 0.8282763 , 0.38845018, 0.1025627 , 0.46584396]])" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X = np.random.rand(1,20)\n", + "X" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 31ms/step\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-10-23 20:08:46.369862: W tensorflow/tsl/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n" + ] + }, + { + "data": { + "text/plain": [ + "array([[-0.9478299 , -0.2901961 , 1.2173429 , 0.9856129 , 0.44817972,\n", + " 0.8500049 , 1.2243729 , 1.1230452 , -0.8100219 , 0.65824366]],\n", + " dtype=float32)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y = model.predict(X)\n", + "y" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "X_in = [int(x*1e36) for x in X[0]]\n", + "weights = [[None for _ in range(10)] for _ in range(20)]\n", + "for i in range(20):\n", + " for j in range(10):\n", + " weights[i][j] = int(model.get_weights()[0][i][j]*1e36)\n", + "bias = [int(b*1e72) for b in model.get_weights()[1]]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def DenseInt(nInputs, nOutputs, n, input, weights, bias):\n", + " Input = [str(input[i] % p) for i in range(nInputs)]\n", + " Weights = [[str(weights[i][j] % p) for j in range(nOutputs)] for i in range(nInputs)]\n", + " Bias = [str(bias[i] % p) for i in range(nOutputs)]\n", + " out = [0 for _ in range(nOutputs)]\n", + " remainder = [None for _ in range(nOutputs)]\n", + " for j in range(nOutputs):\n", + " for i in range(nInputs):\n", + " out[j] += input[i] * weights[i][j]\n", + " out[j] += bias[j]\n", + " remainder[j] = str(out[j] % n)\n", + " out[j] = str(out[j] // n % p)\n", + " return Input, Weights, Bias, out, remainder\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(['21888242871839275222246405745257275088547416570344934017690618098050994599407',\n", + " '21888242871839275222246405745257275088548074204322728883645171911568575253269',\n", + " '1217342773824182708964164664298235747',\n", + " '985612918881516198369842470059289901',\n", + " '448179765935532159653151439285979820',\n", + " '850005025728080684762697042708611430',\n", + " '1224373017260726380443809993782617513',\n", + " '1123045202502242457956309189904120564',\n", + " '21888242871839275222246405745257275088547554378545433689485043918282349046950',\n", + " '658243650814707862463466520227993190'],\n", + " ['51492294878586576180273547728388096',\n", + " '777789140836427041572477556551057408',\n", + " '890475291130181473765283908913463296',\n", + " '963682024802736049277914862344732672',\n", + " '180838407593997560156976766263492608',\n", + " '458215330546393498330258578539020288',\n", + " '738904904497555276279419263936102400',\n", + " '770453107465054933435045502301241344',\n", + " '616225701137188004915996184419500032',\n", + " '106851476518473341575934978717384704'])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_in, weights, bias, out, remainder = DenseInt(20, 10, 10**36, X_in, weights, bias)\n", + "out, remainder" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "in_json = {\n", + " \"in\": X_in,\n", + " \"weights\": weights,\n", + " \"bias\": bias,\n", + " \"out\": out,\n", + " \"remainder\": remainder\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "import json" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"dense_input.json\", \"w\") as f:\n", + " json.dump(in_json, f)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "sklearn", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/models/dense_input.json b/models/dense_input.json new file mode 100644 index 0000000..322561b --- /dev/null +++ b/models/dense_input.json @@ -0,0 +1 @@ +{"in": ["917098056686866724944089031282524160", "828308391324392037176648744157839360", "939140664828574354736692108852199424", "570370950449277106343807261492641792", "42716521126619611298521864202092544", "355346948107619287339644433740070912", "291791989145041018661811026825052160", "802271011450318130026054412912295936", "656909556540623917471415627109367808", "593591247296317957800238756808097792", "570837987440645291381759063072178176", "649062869047198679775367900088500224", "86159511728822744900145267433537536", "204943633355328638176155806990336000", "986874355253946830052986316979699712", "700223726782523541974477467346272256", "828276298868678252671840751752052736", "388450176826807276272091784271626240", "102562700047821094351217059979853824", "465843959212556431077429036890193920"], "weights": [["21888242871839275222246405745257275088547944563298839214284609119488944635905", "380753993988037138568618309842894848", "219639003276824951821000438555082752", "404247760772705111042027708049522688", "269745767116546630576363441005527040", "375770151615142867674678792367898624", "21888242871839275222246405745257275088548218677251952770213124689345680244737", "21888242871839275222246405745257275088548113654612916591596175035160483332097", "21888242871839275222246405745257275088548155057563799503278596340617345761281", "296082556247711193581223676825567232"], ["21888242871839275222246405745257275088547930778085607173851238629837977419777", "105735003948211668730495502578089984", "21888242871839275222246405745257275088548236907511371257753490194323736625153", "285552024841308605863721109674786816", "217772960662841820972905870886174720", "21888242871839275222246405745257275088548075934558528545354238894422989209601", "147826015949249282443775658237624320", "446676433086395303006201489886543872", "374107897281646763821974521630425088", "42386263608932496288021211105984512"], ["403060674667358418901011094459908096", "157519638538360608492098356529594368", "208943128585815436473961652011663360", "279068350791931154975928393536634880", "69584250450134283506466459928756224", "322693228721618652716988860702130176", "21888242871839275222246405745257275088548346620857137325264338882630017613825", "442184269428253217467486227040043008", "53148746490478519274664055078387712", "21888242871839275222246405745257275088548198103278297069508104330112709689345"], ["21888242871839275222246405745257275088548058019488471630070682523277828554753", "21888242871839275222246405745257275088547994218855517986264655796444906651649", "296165287494659436747790273958903808", "21888242871839275222246405745257275088548157596289533260319436812326505807873", "21888242871839275222246405745257275088548356287806647899605956499294788780033", "377368152141571036146262411778719744", "3130495548248291122852374037659648", "361218094825744633647880606238900224", "21888242871839275222246405745257275088548104408382791164367021456418353971201", "425821185111999504953782635698585600"], ["341435313224792508073521687430168576", "90051352977752685078489985940717568", "21888242871839275222246405745257275088548305425494331005075840878178109227009", "21888242871839275222246405745257275088547975228785890224407530858532808163329", "368851840496063271073535114658971648", "21888242871839275222246405745257275088548227934032100322705017069636908220417", "282594621181488039289531248760848384", "226115226745605463349328141514440704", "57196557521820070392917483954634752", "21888242871839275222246405745257275088548117466091531398752484980775834353665"], ["80665528774261474278378668512247808", "405817985534668020036899847603748864", "21888242871839275222246405745257275088548362066208737972238047935286172712961", "369904577732086232484892720635052032", "378796815872192429352692627707789312", "21888242871839275222246405745257275088548236802279370906799205968689603018753", "114150166511535643756264670485282816", "21888242871839275222246405745257275088548073642879146221132609721990614351873", "21888242871839275222246405745257275088548045022755283000903825155352315297793", "21888242871839275222246405745257275088548358620225804927804021480559667576833"], ["21888242871839275222246405745257275088547995654761212947795703420673146748929", "18409073352813720669469838583791616", "340138137340545658071351966652432384", "118821740150451661611755502382874624", "21888242871839275222246405745257275088548067913203853252380615891157600174081", "38713693618774414419157786657030144", "86790680885314938844868610023751680", "177305102348327657323436620327682048", "21888242871839275222246405745257275088548144343777912738785518965220809113601", "164990961551666266718669571746693120"], ["365970015525817868171951127465558016", "21888242871839275222246405745257275088548118622645157459232362326234153091073", "378604948520660387273284280121294848", "231089472770690922686497835173543936", "21888242871839275222246405745257275088547961989491599681827877354551921082369", "21888242871839275222246405745257275088548211063533443096128184497382719750145", "194396376609802269609323668424359936", "64303457736968992298505289890529280", "355406343936920211357266537898573824", "219404399394989029087640244736491520"], ["362589299678802494856359969632026624", "21888242871839275222246405745257275088547931054770368221229330111105897332737", "21888242871839275222246405745257275088548075009673255565616933018463021039617", "21888242871839275222246405745257275088548240492194312694528750059388231745537", "21888242871839275222246405745257275088548066299884933116877962788099772645377", "21888242871839275222246405745257275088548209254681485774966911028252991553537", "162155449390411376451738161039540224", "327702641487121605325512854797811712", "21888242871839275222246405745257275088547953872203248622833214647112738799617", "21888242871839275222246405745257275088548225949972289684260580713123085811713"], ["21888242871839275222246405745257275088548084120392221095991783843987353239553", "446494817733764645353346327923130368", "367348134517669691467197264523427840", "21888242871839275222246405745257275088548146081104296329465447476369471569921", "87263643741607662113964821678391296", "21888242871839275222246405745257275088548229913919585826853081949062073155585", "328671216964721692914116459990351872", "21888242871839275222246405745257275088548157699927109363536740892863956516865", "37690728902816774652900805403738112", "293379127979278584696305414511263744"], ["21888242871839275222246405745257275088548359742879289272286713124565299494913", "21888242871839275222246405745257275088548346274017709377267736047343313616897", "80604135990142827879748935050330112", "77956259250640876298834185270853632", "21888242871839275222246405745257275088548338650166410091377825486252527321089", "21888242871839275222246405745257275088547993836610931041664291941935659089921", "151412069797515872114541491526828032", "21888242871839275222246405745257275088548167006387728336316390123239928496129", "21888242871839275222246405745257275088548227789669650676707268051393419673601", "372561752796173089640212820190560256"], ["21888242871839275222246405745257275088547943395345824840510016820330387996673", "147836804389953625696283009665204224", "22991329431533815094832962159509504", "234400749206542962842869556270071808", "14855384826660156144540041149939712", "21888242871839275222246405745257275088548264983206409099557012505256752316417", "21888242871839275222246405745257275088548258790164607646911753092109608943617", "59146046638488768959044387436756992", "21888242871839275222246405745257275088547930274932998302415425447847524302849", "21888242871839275222246405745257275088548037092685121181456949479419985002497"], ["40687620639801028520872071303004160", "21888242871839275222246405745257275088548281099974530818923587464747573837825", "85743010044097908741733183131746304", "21888242871839275222246405745257275088548058334320205333688274354333521281025", "418336153030395536597507069154689024", "269460678100585954177105803171856384", "21888242871839275222246405745257275088548220981716531398738717665868946341889", "21888242871839275222246405745257275088548057283847945812194657386660475437057", "408247530460357659003936867023323136", "21888242871839275222246405745257275088548055896490234020199022673476804673537"], ["21888242871839275222246405745257275088548092628985065105421094477520084926465", "126554071903228761424473917319282688", "40961861610412600762567943981629440", "21888242871839275222246405745257275088548212950586694362615482497317430362113", "96669912338256843968639949206454272", "378188729286193843780557071758393344", "21888242871839275222246405745257275088548096957176345470393414557332332871681", "4122287034988403427826461145300992", "21888242871839275222246405745257275088548117206468599918338594428040477933569", "21888242871839275222246405745257275088548297590761798503847263549508347232257"], ["21888242871839275222246405745257275088548153451606052997546275004841541500929", "61115741729736330395913188125179904", "21888242871839275222246405745257275088548268260299581172926308709572703944705", "31541943550109865071556860426846208", "435910403728485102278361417361915904", "377812206745147692254475882273439744", "295065999031066900634818362877149184", "378940522670745854231927509389148160", "21888242871839275222246405745257275088548118327408450725516955418690001567745", "21888242871839275222246405745257275088548339393466132762888659580460097077249"], ["166858375072479267317897129338339328", "21888242871839275222246405745257275088548037722855228069279729940527165997057", "403594136238098125961875838585536512", "130870759487152112057440823733649408", "21888242871839275222246405745257275088548069972007888439133139906942153523201", "400192618370056160821162167158964224", "21888242871839275222246405745257275088548324918299335124945598210797593427969", "21888242871839275222246405745257275088548177706330436351745796247688405057537", "21888242871839275222246405745257275088548248340486901882146747712301292322817", "21888242871839275222246405745257275088548048933416026714297593405674843275265"], ["21888242871839275222246405745257275088547981482922452571811653281013083144193", "21888242871839275222246405745257275088548074601739066722849937958797116964865", "387127101421356233674358166715891712", "21888242871839275222246405745257275088548174922376292827582187354274450636801", "432209432125091596185646468677238784", "46631276607513426419905954716844032", "431232273578643835340382883840786432", "214853703975677493899065797745049600", "34996896982192995771496440614879232", "60372769832611082938280569322078208"], ["318087816238403325032729541020221440", "21888242871839275222246405745257275088547964164941924693987345011145286090753", "21888242871839275222246405745257275088547919044315236690510740853131797594113", "415677309036254931378805616200908800", "21888242871839275222246405745257275088547982676594871166216339660866853011457", "21888242871839275222246405745257275088547956950991767528506946040501773533185", "21888242871839275222246405745257275088548343483328240993477789939608791810049", "21888242871839275222246405745257275088547928179561513545965543277750021783553", "21888242871839275222246405745257275088548281153797525051099593148603547254785", "330950319766998319864035433793978368"], ["58345973491668702507739988138917888", "21888242871839275222246405745257275088547932729303258541067996564545440055297", "21888242871839275222246405745257275088548079100757259014081318154198772088833", "21888242871839275222246405745257275088547985154836791637412886081444272668673", "21888242871839275222246405745257275088548296677410024288148990801808495476737", "44746786355972294451916353266778112", "205605328083038355654694097559486464", "266617536544799804942057990684409856", "21888242871839275222246405745257275088548031752317565563178892277941056569345", "21888242871839275222246405745257275088548344070106166484810153177360514416641"], ["21888242871839275222246405745257275088548146701976078632336536671942602653697", "21888242871839275222246405745257275088548157197296041133864915715417448644609", "21888242871839275222246405745257275088548248342811483028393893900721659576321", "21888242871839275222246405745257275088548112583040612819650867440684078465025", "21888242871839275222246405745257275088548117812200802448250450987784922464257", "446479618549346943662400159218663424", "280225753784179685276170076704210944", "172356665134429923321069058199126016", "96000969409942635387433083583070208", "170185267925262464627804431198453760"]], "bias": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], "out": ["21888242871839275222246405745257275088547416570344934017690618098050994599407", "21888242871839275222246405745257275088548074204322728883645171911568575253269", "1217342773824182708964164664298235747", "985612918881516198369842470059289901", "448179765935532159653151439285979820", "850005025728080684762697042708611430", "1224373017260726380443809993782617513", "1123045202502242457956309189904120564", "21888242871839275222246405745257275088547554378545433689485043918282349046950", "658243650814707862463466520227993190"], "remainder": ["51492294878586576180273547728388096", "777789140836427041572477556551057408", "890475291130181473765283908913463296", "963682024802736049277914862344732672", "180838407593997560156976766263492608", "458215330546393498330258578539020288", "738904904497555276279419263936102400", "770453107465054933435045502301241344", "616225701137188004915996184419500032", "106851476518473341575934978717384704"]} \ No newline at end of file diff --git a/models/flatten.ipynb b/models/flatten.ipynb index eb10f33..cda9da6 100644 --- a/models/flatten.ipynb +++ b/models/flatten.ipynb @@ -33,11 +33,12 @@ "text": [ "Model: \"model\"\n", "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", + " Layer (type) Output Shape Param # \n", "=================================================================\n", - "input_1 (InputLayer) [(None, 5, 5, 3)] 0 \n", - "_________________________________________________________________\n", - "flatten (Flatten) (None, 75) 0 \n", + " input_1 (InputLayer) [(None, 5, 5, 3)] 0 \n", + " \n", + " flatten (Flatten) (None, 75) 0 \n", + " \n", "=================================================================\n", "Total params: 0\n", "Trainable params: 0\n", @@ -78,35 +79,35 @@ { "data": { "text/plain": [ - "array([[[[0.0852918 , 0.44266819, 0.55968985],\n", - " [0.80456378, 0.7812197 , 0.93979271],\n", - " [0.60230819, 0.56047002, 0.96776284],\n", - " [0.6283819 , 0.8851144 , 0.84297738],\n", - " [0.32538761, 0.69431566, 0.41653711]],\n", + "array([[[[0.9191584 , 0.41015604, 0.0493302 ],\n", + " [0.20412956, 0.14984944, 0.71595293],\n", + " [0.57980447, 0.28233206, 0.30881941],\n", + " [0.98703541, 0.91977126, 0.89591016],\n", + " [0.29365768, 0.89541076, 0.97098122]],\n", "\n", - " [[0.88323994, 0.49007438, 0.52891214],\n", - " [0.75972182, 0.85386461, 0.64519541],\n", - " [0.7372128 , 0.34378423, 0.89210331],\n", - " [0.68795543, 0.15510637, 0.84101805],\n", - " [0.34090138, 0.49322424, 0.00737098]],\n", + " [[0.28270309, 0.85760979, 0.12266525],\n", + " [0.2386079 , 0.93741419, 0.83312648],\n", + " [0.02935679, 0.68497567, 0.37248647],\n", + " [0.76807667, 0.72347087, 0.84375984],\n", + " [0.89233681, 0.87703334, 0.53846864]],\n", "\n", - " [[0.59636987, 0.80149115, 0.3530605 ],\n", - " [0.06466776, 0.40315287, 0.15753059],\n", - " [0.54568182, 0.95573263, 0.64114777],\n", - " [0.6558953 , 0.10547539, 0.82302922],\n", - " [0.60415623, 0.58044333, 0.46934783]],\n", + " [[0.14028452, 0.61585222, 0.34271206],\n", + " [0.45404173, 0.26365195, 0.05140719],\n", + " [0.36253999, 0.51529482, 0.15006 ],\n", + " [0.82061228, 0.08937872, 0.65234282],\n", + " [0.31024437, 0.09785702, 0.40629764]],\n", "\n", - " [[0.89339205, 0.49514657, 0.66308424],\n", - " [0.23049011, 0.71922777, 0.19032885],\n", - " [0.23228222, 0.16731365, 0.89744304],\n", - " [0.64359666, 0.4594629 , 0.11503616],\n", - " [0.62930732, 0.09412582, 0.04021055]],\n", + " [[0.75192339, 0.55825739, 0.86978978],\n", + " [0.76105885, 0.54160411, 0.72517187],\n", + " [0.28701856, 0.31868524, 0.46890464],\n", + " [0.0902 , 0.3022873 , 0.48529066],\n", + " [0.24453082, 0.93271481, 0.08555694]],\n", "\n", - " [[0.40104213, 0.9882606 , 0.20996853],\n", - " [0.44420542, 0.47306763, 0.98680773],\n", - " [0.95270149, 0.97320959, 0.54052338],\n", - " [0.04304848, 0.31208349, 0.9046649 ],\n", - " [0.00495649, 0.39177585, 0.67277488]]]])" + " [[0.52171579, 0.22363436, 0.85212827],\n", + " [0.9823001 , 0.64424366, 0.96495129],\n", + " [0.61750385, 0.53921774, 0.75703119],\n", + " [0.57267588, 0.18643057, 0.26532282],\n", + " [0.22546175, 0.0340469 , 0.19259163]]]])" ] }, "execution_count": 5, @@ -124,24 +125,38 @@ "execution_count": 6, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 95ms/step\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-10-23 17:09:53.715790: W tensorflow/tsl/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n" + ] + }, { "data": { "text/plain": [ - "array([[0.0852918 , 0.4426682 , 0.5596899 , 0.80456376, 0.7812197 ,\n", - " 0.9397927 , 0.6023082 , 0.56047004, 0.9677628 , 0.6283819 ,\n", - " 0.8851144 , 0.8429774 , 0.3253876 , 0.6943157 , 0.4165371 ,\n", - " 0.8832399 , 0.4900744 , 0.5289121 , 0.7597218 , 0.8538646 ,\n", - " 0.6451954 , 0.7372128 , 0.3437842 , 0.8921033 , 0.68795544,\n", - " 0.15510637, 0.8410181 , 0.34090137, 0.49322423, 0.00737098,\n", - " 0.59636986, 0.80149114, 0.35306048, 0.06466776, 0.40315288,\n", - " 0.15753059, 0.54568183, 0.95573264, 0.6411478 , 0.6558953 ,\n", - " 0.10547539, 0.8230292 , 0.60415626, 0.5804433 , 0.46934783,\n", - " 0.893392 , 0.49514657, 0.6630842 , 0.2304901 , 0.7192278 ,\n", - " 0.19032885, 0.23228222, 0.16731365, 0.89744306, 0.64359665,\n", - " 0.4594629 , 0.11503616, 0.6293073 , 0.09412582, 0.04021055,\n", - " 0.40104213, 0.98826057, 0.20996854, 0.44420543, 0.47306764,\n", - " 0.9868077 , 0.9527015 , 0.9732096 , 0.54052335, 0.04304848,\n", - " 0.31208348, 0.9046649 , 0.00495649, 0.39177585, 0.6727749 ]],\n", + "array([[0.9191584 , 0.41015604, 0.0493302 , 0.20412956, 0.14984943,\n", + " 0.71595293, 0.5798045 , 0.28233206, 0.3088194 , 0.9870354 ,\n", + " 0.91977125, 0.89591014, 0.2936577 , 0.8954108 , 0.97098124,\n", + " 0.2827031 , 0.8576098 , 0.12266525, 0.2386079 , 0.93741417,\n", + " 0.8331265 , 0.02935679, 0.6849757 , 0.37248647, 0.76807666,\n", + " 0.72347087, 0.84375983, 0.8923368 , 0.87703335, 0.53846866,\n", + " 0.14028452, 0.61585224, 0.34271204, 0.45404172, 0.26365197,\n", + " 0.05140718, 0.36253998, 0.5152948 , 0.15006 , 0.82061225,\n", + " 0.08937872, 0.6523428 , 0.31024438, 0.09785703, 0.40629762,\n", + " 0.7519234 , 0.5582574 , 0.8697898 , 0.76105887, 0.5416041 ,\n", + " 0.72517186, 0.28701857, 0.31868523, 0.46890464, 0.0902 ,\n", + " 0.3022873 , 0.48529068, 0.24453081, 0.9327148 , 0.08555695,\n", + " 0.5217158 , 0.22363436, 0.85212827, 0.9823001 , 0.64424366,\n", + " 0.9649513 , 0.6175039 , 0.5392177 , 0.7570312 , 0.5726759 ,\n", + " 0.18643057, 0.26532283, 0.22546175, 0.0340469 , 0.19259164]],\n", " dtype=float32)" ] }, @@ -157,29 +172,19 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "in_json = {\n", - " \"in\": (X*1000).round().astype(int).flatten().tolist()\n", + " \"in\": (X*1e36).round().astype(int).flatten().tolist(),\n", + " \"out\": (X*1e36).round().astype(int).flatten().tolist()\n", "}" ] }, { "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "out_json = {\n", - " \"out\": (y*1000).round().astype(int).flatten().tolist()\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 11, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -188,7 +193,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -196,16 +201,6 @@ " json.dump(in_json, f)" ] }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "with open(\"flatten2D_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" - ] - }, { "cell_type": "code", "execution_count": null, @@ -216,9 +211,9 @@ ], "metadata": { "kernelspec": { - "display_name": "tf24", + "display_name": "sklearn", "language": "python", - "name": "tf24" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -230,7 +225,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.9.16" }, "orig_nbformat": 4 }, diff --git a/models/flatten2D_input.json b/models/flatten2D_input.json index 30e89b9..67912ab 100644 --- a/models/flatten2D_input.json +++ b/models/flatten2D_input.json @@ -1 +1 @@ -{"in": [85, 443, 560, 805, 781, 940, 602, 560, 968, 628, 885, 843, 325, 694, 417, 883, 490, 529, 760, 854, 645, 737, 344, 892, 688, 155, 841, 341, 493, 7, 596, 801, 353, 65, 403, 158, 546, 956, 641, 656, 105, 823, 604, 580, 469, 893, 495, 663, 230, 719, 190, 232, 167, 897, 644, 459, 115, 629, 94, 40, 401, 988, 210, 444, 473, 987, 953, 973, 541, 43, 312, 905, 5, 392, 673]} \ No newline at end of file +{"in": [9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807], "out": [9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807, 9223372036854775807]} \ No newline at end of file diff --git a/models/flatten2D_output.json b/models/flatten2D_output.json deleted file mode 100644 index 32ca11c..0000000 --- a/models/flatten2D_output.json +++ /dev/null @@ -1 +0,0 @@ -{"out": [85, 443, 560, 805, 781, 940, 602, 560, 968, 628, 885, 843, 325, 694, 417, 883, 490, 529, 760, 854, 645, 737, 344, 892, 688, 155, 841, 341, 493, 7, 596, 801, 353, 65, 403, 158, 546, 956, 641, 656, 105, 823, 604, 580, 469, 893, 495, 663, 230, 719, 190, 232, 167, 897, 644, 459, 115, 629, 94, 40, 401, 988, 210, 444, 473, 987, 953, 973, 541, 43, 312, 905, 5, 392, 673]} \ No newline at end of file diff --git a/models/globalAveragePooling2D.ipynb b/models/globalAveragePooling2D.ipynb index 508f7fd..34e8494 100644 --- a/models/globalAveragePooling2D.ipynb +++ b/models/globalAveragePooling2D.ipynb @@ -5,6 +5,15 @@ "execution_count": 1, "metadata": {}, "outputs": [], + "source": [ + "p = 21888242871839275222246405745257275088548364400416034343698204186575808495617" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], "source": [ "from tensorflow.keras.layers import Input, GlobalAveragePooling2D\n", "from tensorflow.keras import Model\n", @@ -13,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -24,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -33,11 +42,13 @@ "text": [ "Model: \"model\"\n", "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", + " Layer (type) Output Shape Param # \n", "=================================================================\n", - "input_1 (InputLayer) [(None, 5, 5, 3)] 0 \n", - "_________________________________________________________________\n", - "global_average_pooling2d (Gl (None, 3) 0 \n", + " input_1 (InputLayer) [(None, 5, 5, 3)] 0 \n", + " \n", + " global_average_pooling2d (G (None, 3) 0 \n", + " lobalAveragePooling2D) \n", + " \n", "=================================================================\n", "Total params: 0\n", "Trainable params: 0\n", @@ -52,44 +63,44 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[[[0.75026257, 0.78298092, 0.96781344],\n", - " [0.32235377, 0.89150794, 0.04706537],\n", - " [0.91958291, 0.95572218, 0.01006833],\n", - " [0.60887321, 0.67452346, 0.9722854 ],\n", - " [0.47488548, 0.08846556, 0.15469522]],\n", + "array([[[[0.20867486, 0.38680755, 0.84218508],\n", + " [0.23655331, 0.33771458, 0.73516473],\n", + " [0.49345271, 0.95094652, 0.25402692],\n", + " [0.22771833, 0.97688694, 0.52917136],\n", + " [0.5871173 , 0.50441061, 0.97392083]],\n", "\n", - " [[0.4964009 , 0.56350259, 0.86448218],\n", - " [0.12851276, 0.26571101, 0.11222685],\n", - " [0.15848715, 0.69473995, 0.45558278],\n", - " [0.36135735, 0.77453115, 0.94767797],\n", - " [0.54757355, 0.3529423 , 0.7502107 ]],\n", + " [[0.93934312, 0.52666508, 0.31051829],\n", + " [0.2163095 , 0.79177499, 0.3108483 ],\n", + " [0.53926143, 0.15753146, 0.99773704],\n", + " [0.12234007, 0.20568095, 0.11838809],\n", + " [0.9248088 , 0.52638782, 0.81404877]],\n", "\n", - " [[0.23254084, 0.13915902, 0.62088772],\n", - " [0.91802735, 0.18125181, 0.82032438],\n", - " [0.08115132, 0.47008071, 0.11862867],\n", - " [0.93358649, 0.82824588, 0.84168659],\n", - " [0.62363021, 0.38914314, 0.13280334]],\n", + " [[0.01465677, 0.32765939, 0.74282836],\n", + " [0.6800781 , 0.40869424, 0.62145002],\n", + " [0.67374829, 0.81617885, 0.39987386],\n", + " [0.82099264, 0.35918735, 0.47107381],\n", + " [0.83104015, 0.83004572, 0.28737773]],\n", "\n", - " [[0.84657932, 0.80405209, 0.59412592],\n", - " [0.56584756, 0.10237339, 0.21217235],\n", - " [0.31526466, 0.21418521, 0.51236233],\n", - " [0.42648049, 0.01163492, 0.09296196],\n", - " [0.97516359, 0.45381077, 0.70935164]],\n", + " [[0.74027671, 0.85697829, 0.49504698],\n", + " [0.94596904, 0.25070827, 0.22236492],\n", + " [0.00357426, 0.35882451, 0.32972314],\n", + " [0.57254891, 0.86380467, 0.30862848],\n", + " [0.93720522, 0.4496124 , 0.74115158]],\n", "\n", - " [[0.68801577, 0.34860446, 0.25255818],\n", - " [0.15228667, 0.16675365, 0.25885748],\n", - " [0.46006891, 0.9028665 , 0.77014467],\n", - " [0.52331235, 0.54846645, 0.39861399],\n", - " [0.83559747, 0.48153349, 0.93005651]]]])" + " [[0.12640468, 0.76330103, 0.35499368],\n", + " [0.37773597, 0.016954 , 0.43058637],\n", + " [0.94290805, 0.06019639, 0.95692684],\n", + " [0.09562172, 0.61791084, 0.47187214],\n", + " [0.67092949, 0.27421069, 0.85342606]]]])" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -101,16 +112,30 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 36ms/step\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-10-23 20:10:13.674664: W tensorflow/tsl/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n" + ] + }, { "data": { "text/plain": [ - "array([[0.53383374, 0.4834715 , 0.5019058 ]], dtype=float32)" + "array([[0.5171708 , 0.5047629 , 0.54293334]], dtype=float32)" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -120,26 +145,13 @@ "y" ] }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "in_json = {\n", - " \"in\": (X*1000).round().astype(int).flatten().tolist()\n", - "}" - ] - }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "out_json = {\n", - " \"out\": (y*1000*100).round().astype(int).flatten().tolist()\n", - "}" + "X_in = [[[int(X[0][i][j][k] * 1e36) for k in range(3)] for j in range(5)] for i in range(5)]" ] }, { @@ -148,13 +160,69 @@ "metadata": {}, "outputs": [], "source": [ - "import json" + "def GlobalAveragePooling2DInt(nRows, nCols, nChannels, input):\n", + " Input = [[[str(input[i][j][k] % p) for k in range(nChannels)] for j in range(nCols)] for i in range(nRows)]\n", + " out = [0 for _ in range(nChannels)]\n", + " remainder = [None for _ in range(nChannels)]\n", + " for k in range(nChannels):\n", + " for i in range(nRows):\n", + " for j in range(nCols):\n", + " out[k] += input[i][j][k]\n", + " remainder[k] = str(out[k] % (nRows * nCols))\n", + " out[k] = str(out[k] // (nRows * nCols) % p)\n", + " return Input, out, remainder" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(['517170777415975145178424005003973754',\n", + " '504762926219743484887371893374996971',\n", + " '542933334573104965421804807186892718'],\n", + " ['22', '13', '2'])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_in, out, remainder = GlobalAveragePooling2DInt(5, 5, 3, X_in)\n", + "out, remainder" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "in_json = {\n", + " \"in\": X_in,\n", + " \"out\": out,\n", + " \"remainder\": remainder\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "import json" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, "outputs": [], "source": [ "with open(\"globalAveragePooling2D_input.json\", \"w\") as f:\n", @@ -163,20 +231,17 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "with open(\"globalAveragePooling2D_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" - ] + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "tf24", + "display_name": "sklearn", "language": "python", - "name": "tf24" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -188,7 +253,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.9.16" }, "orig_nbformat": 4 }, diff --git a/models/globalAveragePooling2D_input.json b/models/globalAveragePooling2D_input.json index b2e05c5..2b678aa 100644 --- a/models/globalAveragePooling2D_input.json +++ b/models/globalAveragePooling2D_input.json @@ -1 +1 @@ -{"in": [750, 783, 968, 322, 892, 47, 920, 956, 10, 609, 675, 972, 475, 88, 155, 496, 564, 864, 129, 266, 112, 158, 695, 456, 361, 775, 948, 548, 353, 750, 233, 139, 621, 918, 181, 820, 81, 470, 119, 934, 828, 842, 624, 389, 133, 847, 804, 594, 566, 102, 212, 315, 214, 512, 426, 12, 93, 975, 454, 709, 688, 349, 253, 152, 167, 259, 460, 903, 770, 523, 548, 399, 836, 482, 930]} \ No newline at end of file +{"in": [[["208674862117520743332406677590769664", "386807553922711250077579437934641152", "842185082397259215453036985555353600"], ["236553306642404476520443633217830912", "337714584945283499745726661331517440", "735164728150511494047295649529987072"], ["493452705400039397407984093239443456", "950946517786155227431950356058210304", "254026921969330755986185843843792896"], ["227718333023023366173939367690633216", "976886938413353206118048202726834176", "529171357006319002120290301080764416"], ["587117300790491855963307211082432512", "504410613120400362719092372550975488", "973920826819269201950132459085496320"]], [["939343118161247689400798933849997312", "526665080227024529805949082884112384", "310518294406882622648930512907796480"], ["216309495509699034998913391686320128", "791774994644310571777714556321660928", "310848295498238804701404094475010048"], ["539261429659249220551493588281720832", "157531458348147192677192101844221952", "997737037764178620546085659284078592"], ["122340073825690465136633354628628480", "205680949637017907542399035325284352", "118388090152332546053383566351400960"], ["924808804842762134440462913089044480", "526387824008044855158766005051719680", "814048765203200529094267751372947456"]], [["14656769917436031217301194398498816", "327659393550453938388772781379551232", "742828362435162153808370700212240384"], ["680078100877321491431851364345446400", "408694244718679656026140139065442304", "621450023437487356469771417631588352"], ["673748293637685920476045849722355712", "816178853035411875109387215977840640", "399873856370387523710400324410802176"], ["820992638768266582655884571474657280", "359187345047677907935409930663624704", "471073805108614649477943415166468096"], ["831040147441242723851570854781517824", "830045718954338640652312381614981120", "287377727581632846077835921630167040"]], [["740276706524827785153858042943504384", "856978288036383643502071585246806016", "495046975189820094276074615758389248"], ["945969044557450816869940693823389696", "250708273476432125783307441661804544", "222364918444396333608839105076002816"], ["3574264975088947600149963645911040", "358824510677183912739544502689071104", "329723143115389324291636402008883200"], ["572548906018463655542205938673909760", "863804673444121712132595776890077184", "308628478930183535011789453159038976"], ["937205224364009766986819524834099200", "449612395669042865852113807090909184", "741151583488254384298362809714999296"]], [["126404678052868047866305148344074240", "763301025321849924982263228479307776", "354993684499356446715289994579148800"], ["377735970466966147577667547647967232", "16953997208484894255617306263552000", "430586372286809334146556454296879104"], ["942908046761662789249518371833118720", "60196392394198048684009037167067136", "956926836398501310056223755521228800"], ["95621721264985245148932356951769088", "617910837960447129918627607555866624", "471872135217305344106462399564873728"], ["670929491798974293906165537322303488", "274210690946432243167706780599844864", "853426062456800706888550587454980096"]]], "out": ["517170777415975145178424005003973754", "504762926219743484887371893374996971", "542933334573104965421804807186892718"], "remainder": ["22", "13", "2"]} \ No newline at end of file diff --git a/models/globalAveragePooling2D_output.json b/models/globalAveragePooling2D_output.json deleted file mode 100644 index 606f549..0000000 --- a/models/globalAveragePooling2D_output.json +++ /dev/null @@ -1 +0,0 @@ -{"out": [53383, 48347, 50191]} \ No newline at end of file diff --git a/models/globalMaxPooling2D.ipynb b/models/globalMaxPooling2D.ipynb index a28f3ac..04fface 100644 --- a/models/globalMaxPooling2D.ipynb +++ b/models/globalMaxPooling2D.ipynb @@ -5,6 +5,15 @@ "execution_count": 1, "metadata": {}, "outputs": [], + "source": [ + "p = 21888242871839275222246405745257275088548364400416034343698204186575808495617" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], "source": [ "from tensorflow.keras.layers import Input, GlobalMaxPooling2D\n", "from tensorflow.keras import Model\n", @@ -13,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -24,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -33,11 +42,13 @@ "text": [ "Model: \"model\"\n", "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", + " Layer (type) Output Shape Param # \n", "=================================================================\n", - "input_1 (InputLayer) [(None, 5, 5, 3)] 0 \n", - "_________________________________________________________________\n", - "global_max_pooling2d (Global (None, 3) 0 \n", + " input_1 (InputLayer) [(None, 5, 5, 3)] 0 \n", + " \n", + " global_max_pooling2d (Globa (None, 3) 0 \n", + " lMaxPooling2D) \n", + " \n", "=================================================================\n", "Total params: 0\n", "Trainable params: 0\n", @@ -52,44 +63,44 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[[[0.32466035, 0.98252793, 0.44400143],\n", - " [0.84845853, 0.19442104, 0.59510471],\n", - " [0.44089874, 0.15830311, 0.72414619],\n", - " [0.67081125, 0.00734799, 0.67856931],\n", - " [0.55140412, 0.46201941, 0.6070781 ]],\n", + "array([[[[0.91518641, 0.66718006, 0.92376279],\n", + " [0.97385149, 0.35848662, 0.25065166],\n", + " [0.02434808, 0.66270045, 0.51526436],\n", + " [0.97110905, 0.49335089, 0.27623285],\n", + " [0.88055993, 0.91070856, 0.89195416]],\n", "\n", - " [[0.93564932, 0.20329226, 0.82119732],\n", - " [0.96698972, 0.93135353, 0.63006489],\n", - " [0.42358955, 0.30340362, 0.90993389],\n", - " [0.63976257, 0.1406262 , 0.22038059],\n", - " [0.94295376, 0.91868854, 0.28490443]],\n", + " [[0.7950447 , 0.42411655, 0.66516519],\n", + " [0.18674268, 0.3046312 , 0.77807526],\n", + " [0.13333453, 0.68076544, 0.64069414],\n", + " [0.63039814, 0.71725918, 0.74384312],\n", + " [0.48789065, 0.68079997, 0.25869622]],\n", "\n", - " [[0.22116569, 0.23807312, 0.14799033],\n", - " [0.27190278, 0.89536995, 0.53043589],\n", - " [0.53038256, 0.69774341, 0.43229638],\n", - " [0.22129893, 0.45845914, 0.80878986],\n", - " [0.14265615, 0.21502123, 0.90049627]],\n", + " [[0.55852658, 0.78138444, 0.0772444 ],\n", + " [0.71960766, 0.01860611, 0.63859032],\n", + " [0.04100894, 0.007163 , 0.28648401],\n", + " [0.70371242, 0.8565901 , 0.73254654],\n", + " [0.35201173, 0.3338802 , 0.83269692]],\n", "\n", - " [[0.05753169, 0.64384457, 0.21423554],\n", - " [0.21892986, 0.43545047, 0.30016867],\n", - " [0.45103494, 0.41946604, 0.15388892],\n", - " [0.83526323, 0.83552575, 0.38730236],\n", - " [0.67391823, 0.84635641, 0.41258421]],\n", + " [[0.31146493, 0.11242401, 0.46909255],\n", + " [0.785379 , 0.69905536, 0.99196427],\n", + " [0.29254832, 0.04347593, 0.40404928],\n", + " [0.64393514, 0.6579046 , 0.44890337],\n", + " [0.25879095, 0.64296721, 0.65792656]],\n", "\n", - " [[0.75021931, 0.77485261, 0.57189854],\n", - " [0.74505654, 0.9464458 , 0.73346162],\n", - " [0.41600983, 0.04725781, 0.36665437],\n", - " [0.71862184, 0.46074702, 0.12424663],\n", - " [0.61020934, 0.17278885, 0.94038123]]]])" + " [[0.7972691 , 0.77522241, 0.02028976],\n", + " [0.71408815, 0.2214879 , 0.07804482],\n", + " [0.65261239, 0.62851164, 0.12214903],\n", + " [0.31611407, 0.18022595, 0.97735959],\n", + " [0.57391523, 0.8818251 , 0.06020382]]]])" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -101,16 +112,30 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 31ms/step\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-10-23 20:16:54.369715: W tensorflow/tsl/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n" + ] + }, { "data": { "text/plain": [ - "array([[0.9669897, 0.9825279, 0.9403812]], dtype=float32)" + "array([[0.9738515 , 0.91070855, 0.9919643 ]], dtype=float32)" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -120,26 +145,13 @@ "y" ] }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "in_json = {\n", - " \"in\": (X*1000).round().astype(int).flatten().tolist()\n", - "}" - ] - }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "out_json = {\n", - " \"out\": (y*1000).round().astype(int).flatten().tolist()\n", - "}" + "X_in = [[[int(X[0][i][j][k]*1e36) for k in range(3)] for j in range(5)] for i in range(5)]" ] }, { @@ -148,17 +160,33 @@ "metadata": {}, "outputs": [], "source": [ - "import json" + "def GlobalMaxPooling2DInt(nRows, nCols, nChannels, input):\n", + " Input = [[[str(input[i][j][k] % p) for k in range(nChannels)] for j in range(nCols)] for i in range(nRows)]\n", + " out = [max(input[i][j][k] for i in range(nRows) for j in range(nCols)) for k in range(nChannels)]\n", + " return Input, out" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[973851490313537338484516198430015488,\n", + " 910708561343324144695836121136889856,\n", + " 991964273065568131927416012428804096]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "with open(\"globalMaxPooling2D_input.json\", \"w\") as f:\n", - " json.dump(in_json, f)" + "X_in, out = GlobalMaxPooling2DInt(5,5,3,X_in)\n", + "out" ] }, { @@ -167,16 +195,37 @@ "metadata": {}, "outputs": [], "source": [ - "with open(\"globalMaxPooling2D_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" + "in_json = {\n", + " \"in\": X_in,\n", + " \"out\": out\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "import json" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"globalMaxPooling2D_input.json\", \"w\") as f:\n", + " json.dump(in_json, f)" ] } ], "metadata": { "kernelspec": { - "display_name": "tf24", + "display_name": "sklearn", "language": "python", - "name": "tf24" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -188,7 +237,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.9.16" }, "orig_nbformat": 4 }, diff --git a/models/globalMaxPooling2D_input.json b/models/globalMaxPooling2D_input.json index f039c45..832ad51 100644 --- a/models/globalMaxPooling2D_input.json +++ b/models/globalMaxPooling2D_input.json @@ -1 +1 @@ -{"in": [325, 983, 444, 848, 194, 595, 441, 158, 724, 671, 7, 679, 551, 462, 607, 936, 203, 821, 967, 931, 630, 424, 303, 910, 640, 141, 220, 943, 919, 285, 221, 238, 148, 272, 895, 530, 530, 698, 432, 221, 458, 809, 143, 215, 900, 58, 644, 214, 219, 435, 300, 451, 419, 154, 835, 836, 387, 674, 846, 413, 750, 775, 572, 745, 946, 733, 416, 47, 367, 719, 461, 124, 610, 173, 940]} \ No newline at end of file +{"in": [[["915186414927318682413967982576271360", "667180056526004897429113087855689728", "923762794267859728482299791938682880"], ["973851490313537338484516198430015488", "358486621710867588657645107829276672", "250651664222111285005632467361595392"], ["24348079687974144135842733909606400", "662700452749982566693416470979805184", "515264360288801845707585449006989312"], ["971109049358350714161600472222269440", "493350891695752214892428452679385088", "276232846505593873873030813327556608"], ["880559926263821367247398425828786176", "910708561343324144695836121136889856", "891954155436093096670538713165463552"]], [["795044704400352105898091146381361152", "424116550558931599491107341138395136", "665165188379020801015866978759344128"], ["186742677518497280824803307213029376", "304631198070319049867995931146715136", "778075264540965159654595859211878400"], ["133334533079548684932505118632312832", "680765439306268499799477573906333696", "640694144432899652994991267290021888"], ["630398137310582503745134655128469504", "717259177519209737371643046761857024", "743843117499641596593294130395742208"], ["487890649649819264782137005155811328", "680799974178781809214123264335413248", "258696219987812566506230501802508288"]], [["558526578698200569119512046595997696", "781384442758599295977297993753690112", "77244397228238399658414685269524480"], ["719607658765613255867534551445143552", "18606110044085300517149290023354368", "638590324901940268153095065077547008"], ["41008939324319374379652458626416640", "7162999425602278970602593508655104", "286484012364653722280787576822431744"], ["703712422142774326395242321025171456", "856590097690178275573996261587550208", "732546535859530199062724773565956096"], ["352011734202719843123434166985687040", "333880197305037979375234887326892032", "832696923765963043401151791633530880"]], [["311464928834176100519001511803486208", "112424007827470858184993857033207808", "469092552885706601973228565098921984"], ["785379002949078146369799202365505536", "699055362628070811342539726818115584", "991964273065568131927416012428804096"], ["292548323136125106338530901685698560", "43475934350243887078598903932649472", "404049277155985742097611951441969152"], ["643935138714753870591566029667696640", "657904598524481613252542983514882048", "448903368995112014876123495749648384"], ["258790950074673680194162698785652736", "642967214397925266735572206531641344", "657926564670197004181364258642067456"]], [["797269104281956958461027342966849536", "775222406006293671713856898872639488", "20289756532772430415687548728770560"], ["714088153733923634945443055433416704", "221487904843027708046031537104224256", "78044823369718744856630923177754624"], ["652612387622242867192126027933417472", "628511639419235707117424689322917888", "122149029418108013721818818727116800"], ["316114067581841570537717318297845760", "180225950986426488797773850751270912", "977359588388869217481612841000632320"], ["573915233813922897434406197082980352", "881825102495998986726910890004709376", "60203821897616865800294698657513472"]]], "out": [973851490313537338484516198430015488, 910708561343324144695836121136889856, 991964273065568131927416012428804096]} \ No newline at end of file diff --git a/models/globalMaxPooling2D_output.json b/models/globalMaxPooling2D_output.json deleted file mode 100644 index a7f6650..0000000 --- a/models/globalMaxPooling2D_output.json +++ /dev/null @@ -1 +0,0 @@ -{"out": [967, 983, 940]} \ No newline at end of file diff --git a/models/maxPooling2D_input.json b/models/maxPooling2D_input.json index d31bc53..8c858e7 100644 --- a/models/maxPooling2D_input.json +++ b/models/maxPooling2D_input.json @@ -1 +1 @@ -{"in": [305, 346, 857, 25, 681, 959, 542, 544, 585, 888, 355, 682, 592, 102, 869, 706, 817, 833, 375, 910, 180, 634, 499, 941, 292, 418, 978, 301, 234, 455, 806, 539, 293, 312, 10, 857, 346, 917, 944, 666, 366, 391, 182, 724, 485, 479, 424, 594, 269, 182, 826, 396, 336, 14, 262, 146, 209, 130, 498, 852, 274, 725, 260, 467, 606, 63, 446, 725, 491, 711, 384, 154, 937, 145, 41]} \ No newline at end of file +{"in": [[["440768367388333513929483365990268928", "464517795839652376609037137683152896", "885326582306963556558255153072832512"], ["985711776216457240221750775571808256", "360910346818244989035656048084516864", "378782938042549138200741511639859200"], ["90390541551447446541766716622372864", "435556482677055655630617177359384576", "707234940167889112717525758819434496"], ["750875749786970555976487300566614016", "461611559615640265492394730529488896", "276219229600165991247430149216403456"], ["365867404666626837172166854705152000", "760962068951098265658848693104672768", "853687627452420037777370901389508608"]], [["533538540586616453330009003479007232", "185995066730181620037360299303501824", "855475890799303602419330520811831296"], ["837055652581189340359327947524407296", "331079698345282394844266612719091712", "421215755586710448859765398491365376"], ["979488619923621857462245439242764288", "588704741840418336217153490575687680", "22469000850098730903077216690634752"], ["404468882531991242047316871725711360", "159249455680968828711787795388039168", "394740753870987756803895109590450176"], ["393363314987452844170949817404489728", "831138725412177078295952020541014016", "587112731811555018212287396104372224"]], [["3245991123244640384206770341412864", "843517362609097245279278883187720192", "655742286132150390597683804242968576"], ["4232927231459627102919564697010176", "94776592905405195871814287200616448", "851114962252709222552843081379479552"], ["847925751912674500468804749306626048", "324177436165636658894661773279887360", "520318541143371553011981838039646208"], ["785776681526281997689382940520218624", "639634733901388366288661852182282240", "667670451847854954465177838892875776"], ["683852298015583718187983936929398784", "409634367826215255081164538422231040", "296100997199421744882514751920275456"]], [["255132828740209164961684251408859136", "214340561273127302971544473016729600", "139309000996364230046125111608606720"], ["612819836329411865644509177766215680", "770396429444799007062900730522238976", "383096496667633822278620571783659520"], ["527472057908350747216968130540601344", "608472635690285333057020471166369792", "607929494435524461288059261943808000"], ["630300636284557458280141282678407168", "596670595435190421546534241375879168", "58256148305154577470862783061950464"], ["786333969828739737146979490176434176", "440441801747647072901534338556887040", "302965194872215192850220116697153536"]], [["423343295638584786805001098299965440", "288203095019850005865134518343565312", "852326750205290885132232186178568192"], ["607164833492915434932178654733533184", "952024312252436969955217979547320320", "395920740992798310620318642640781312"], ["552458044378602231624290162398199808", "9225246055169944711571034647560192", "507755131445417536290651112313192448"], ["657963729537186734111814157154123776", "19390909565113467995063085879525376", "104862535731803047836861062719733760"], ["61727209848611469042132321455570944", "647353059204164976887805754193477632", "224854941823668075750840041641869312"]]], "out": [[["985711776216457240221750775571808256", "464517795839652376609037137683152896", "885326582306963556558255153072832512"], ["979488619923621857462245439242764288", "588704741840418336217153490575687680", "707234940167889112717525758819434496"]], [["612819836329411865644509177766215680", "843517362609097245279278883187720192", "851114962252709222552843081379479552"], ["847925751912674500468804749306626048", "639634733901388366288661852182282240", "667670451847854954465177838892875776"]]]} \ No newline at end of file diff --git a/models/maxPooling2D_output.json b/models/maxPooling2D_output.json deleted file mode 100644 index bac0087..0000000 --- a/models/maxPooling2D_output.json +++ /dev/null @@ -1 +0,0 @@ -{"out": [706, 910, 959, 888, 544, 978, 806, 539, 857, 666, 917, 944]} \ No newline at end of file diff --git a/models/maxPooling2D_stride_input.json b/models/maxPooling2D_stride_input.json index 21c8f2e..f66a9d6 100644 --- a/models/maxPooling2D_stride_input.json +++ b/models/maxPooling2D_stride_input.json @@ -1 +1 @@ -{"in": [966, 287, 646, 980, 70, 226, 16, 860, 319, 245, 695, 843, 722, 455, 700, 532, 532, 706, 319, 930, 713, 589, 295, 53, 601, 31, 364, 707, 875, 350, 730, 634, 272, 729, 301, 61, 16, 100, 456, 862, 654, 461, 947, 756, 418, 897, 638, 971, 694, 676, 189, 315, 658, 992, 483, 428, 558, 317, 146, 686, 855, 833, 329, 564, 526, 24, 47, 518, 799, 733, 679, 954, 776, 416, 96, 8, 667, 833, 325, 315, 164, 464, 503, 823, 825, 622, 891, 137, 943, 368, 497, 775, 616, 943, 330, 374, 306, 189, 980, 914, 711, 349, 21, 222, 554, 770, 666, 242, 565, 349, 510, 120, 288, 129, 401, 567, 515, 874, 307, 760, 750, 261, 701, 800, 37, 354, 51, 608, 318, 249, 593, 685, 784, 271, 791, 920, 456, 953, 376, 797, 843, 948, 209, 697, 272, 810, 40, 108, 457, 162, 617, 211, 529, 333, 39, 320, 15, 408, 149, 945, 66, 71, 682, 546, 32, 387, 840, 581, 333, 736, 376, 99, 410, 211, 516, 638, 318, 936, 392, 160, 113, 179, 2, 429, 543, 426, 232, 240, 969, 934, 907, 907, 814, 585, 578, 392, 49, 286, 648, 435, 858, 283, 867, 248, 585, 389, 72, 135, 469, 948, 428, 684, 177, 625, 503, 588, 860, 885, 611, 584, 779, 107, 697, 892, 135, 480, 226, 622, 113, 517, 352, 0, 368, 779, 187, 872, 831, 869, 241, 896, 357, 668, 380, 735, 345, 168, 157, 345, 246, 76, 108, 454, 885, 355, 100, 180, 159, 908, 549, 547, 235, 559, 241, 283, 579, 546, 84, 595, 745, 44, 862, 849, 399, 370, 636, 303, 832, 363, 874, 877, 148, 136, 555, 916, 208, 541, 667, 441, 770, 886, 919, 942, 953, 151, 810, 840, 130, 460, 821, 200]} \ No newline at end of file +{"in": [[["979017099491110018942067312821272576", "498378327005941464232188570400456704", "239515047802563286398164963214491648"], ["854784865370273541326449770758144000", "101835689745888759470372757092433920", "572042560577051270101001688850628608"], ["129064960355650412285224247302815744", "122595989914873536431908136790523904", "613083130184567663714497681717985280"], ["689568438989562719045142813014491136", "274684985486255658959471314376589312", "738004729474624730341896972922781696"], ["970314350513558277989324779994218496", "652756779361050467709066206091673600", "570392729432528494081354864563060736"], ["484226690688882732293393776621125632", "621844840943224795953835382589620224", "123226110443079851157494866173231104"], ["455182994052942810469215926413688832", "703424147860115942680476033923153920", "773754352982266439136539456512720896"], ["133453903728562921569372177719885824", "782830451141896167400921576545189888", "481377762494904282368600028867461120"], ["970023552363962008587117892850417664", "703463442482901149835000284075524096", "40990127340919892037859956915961856"], ["345567164149249914579730140437151744", "309398041600514224878095895520870400", "128704919973767319361320732187426816"]], [["550499160592330169778559413877997568", "151881933544784641713835058676105216", "514952996735669882774784649491120128"], ["74037786130251255897380294909493248", "906408000806632452114797174150135808", "209474974242963803241157964544868352"], ["570030034657121541586937073157275648", "934178355951087788479319100926984192", "93064730002481051047081859023372288"], ["179178560865006175454300089933103104", "672917960272193945175567190387064832", "408860698658386378799809676489785344"], ["104081176073100863996239186763972608", "558228550603368726227298815863422976", "628548125823388202846794041098502144"], ["209259190593228856868750796540346368", "682696960079231789989555536647946240", "606501377319802170696637265297276928"], ["949999745668024165489517038806237184", "124291072212105228408897161406709760", "410031250028535609712399149944537088"], ["161508694844472394694900149898969088", "354700034371487129404170836484554752", "546765621153098950411742332718153728"], ["147928569796814688033354638686158848", "783460307417987193332910195111624704", "257345930449227184995093924085235712"], ["892339974125606110591634682903789568", "287428252953256829236621441790640128", "137911512799076987124291192253054976"]], [["792743128039071311054422972108374016", "990615226540492039448979978877665280", "687117785730993931584025237460615168"], ["575044181208139749302460339516866560", "326183821370811373381915837904977920", "167228376860856465377183237398331392"], ["96780646383612951344141524461944832", "359177599514946261184339761493442560", "627509150878384778653895275963219968"], ["687955445669715869862488756126220288", "16098840799797621978309564548775936", "970992173633561134679567462245072896"], ["233811416044337974992465356010815488", "849096747966246505509747946028007424", "884057921229902313203880010220306432"], ["731913844100513408100570739823869952", "989470136352271706649018940128231424", "522219115101342615733894513571135488"], ["897142872560804754995036229885493248", "35103413277347231882368732622749696", "206394191715967402404828924029698048"], ["383232033215752927508487340510150656", "169140714443005149381616058620706816", "412096874126842258687899888330473472"], ["131224956321931221747513771748753408", "533407039425669585568815136389464064", "604552428105101486150685742761771008"], ["715657051870277537212200505879560192", "672199137974655024005354455151149056", "926963974732326730758737984858619904"]], [["554166181126147404440246990770536448", "749739652849544885610446427713961984", "597482709027265124796741354770137088"], ["104407724589980720650073921978105856", "322365636172890395451475258175913984", "927911571088135929200009259356520448"], ["418413020284730718474628682779459584", "272208205439556368354041399781359616", "616622288113228410884613639508066304"], ["733895199634136636354978553303924736", "371525985017039060981738248314290176", "315174717402987306701137805267959808"], ["202529288809257478841067571035242496", "675815582337996107799324796066463744", "342860983372339852059043333327028224"], ["15047737110713166336444362936811520", "46817007206907288333755190314270720", "143210436810652596564143414265774080"], ["365329195126135364257402876357246976", "250288339258248139268401048877793280", "338487123434974156017363207652900864"], ["291913854441978602972410589023830016", "346595681325309298410747170689908736", "982736221843810664156369288039497728"], ["507786946775451678222068506307854336", "719972303211930490790466240473202688", "56088539954632811005862469989040128"], ["723406467214007455961757978172850176", "766851924356564810956438475557044224", "373889693233038253040571853259669504"]], [["523315585452247371883818582531899392", "623568549106734887172948903472398336", "268785842451177197689219197249257472"], ["158387953425982886075900043599020032", "901848991352918850169033731149398016", "239127886549887478721264260996923392"], ["412726366622418608263985468624863232", "761087195622006475614419112968585216", "126726966891252082518408243215073280"], ["706267254557272254125473145120882688", "982081449688638090663868389740511232", "601642265832659125360941789945528320"], ["356648715587057602020207527630733312", "411288716104337692356247733865021440", "93829767998267477732880377098272768"], ["705440065778394216441470514026774528", "822405518621775934015495580944433152", "903254951638971883502269726193614848"], ["720073208604618054954869080641765376", "245363080229835562999304204396265472", "606908924686106371336618321364647936"], ["486553721123867007906655361726152704", "463286712794445136678401315688153088", "606482630447325237206147378591039488"], ["188540881608061495368053861644238848", "450446030679345120168345159312867328", "690432931091963677204374309075681280"], ["121747495717788647816608726520954880", "655352996208153634376663108341989376", "877336392021793968106271410812354560"]], [["23536031243924562505060799664357376", "180972751303702836344736854537404416", "191146131629068702465867157113667584"], ["721044310619389563516239922155487232", "653105889798498756951804020931952640", "489250749335954689321472005224005632"], ["261457212373193995122881993346383872", "951184268629255743662502317314277376", "644826922315635492056899932525690880"], ["87536181157793046656811007077253120", "259634803169417808396158972404432896", "537717856851453712318918356872724480"], ["73141321489067939358355136379355136", "67748637534449816688857241232605184", "343920248068627107138592260694736896"], ["162822290647728582428331050321051648", "959936329704430158219291073720614912", "796679059286412114138026788834508800"], ["746746270249012279893843362212478976", "532170062243529719782505818234028032", "659000817321036487626683505589616640"], ["875226915304354889133232939050467328", "132588187925050335414172781348126720", "162309940082575378207622391738138624"], ["445257520080419447569409504920469504", "673658981292961344088991151930998784", "517669281329853071503443576523587584"], ["721827006494235309243341313820065792", "437803927942307951545157140522991616", "980691179796811552427555804745302016"]], [["256910844571333736284027603271024640", "116619265163302356557653005373014016", "676186174724994052083929210370916352"], ["660698008644203700473074429819092992", "904599195577579897660922571020828672", "863371715944324158495051960144625664"], ["80420413053590269765453935177367552", "785174359657444522180267514924105728", "692696039449349084524744500699987968"], ["447347387634330380000273453509771264", "301401759019332189253784711202865152", "182958084709226056260067701473411072"], ["75564473192775482847372675563651072", "489169302479854739366540991359090688", "203029388849665698215981812746813440"], ["222431380168038566395732948364034048", "655844456606966222069244688582311936", "561344808765685710448100752788291584"], ["915359938539886757509738228069957632", "429726001153998537674431010837626880", "894668431976368139307673421153828864"], ["251802028334323313596549192749154304", "121451681257892637971613721848446976", "264566486954077378009551264072859648"], ["563983983898648152780142608765681664", "183463707302925377855620297911173120", "34341000477035367901981363186696192"], ["378025029842187893943656582121259008", "226149852181189435964257141914599424", "852929293895789765968803300374478848"]], [["191712007648896621315742931131301888", "461561361911485335251159439007285248", "780276165491679666090409279424036864"], ["169725802305158424286363845551718400", "368650565126402602366100302213414912", "309215523468689981827499448994889728"], ["634916912262753725483324510358732800", "762238272453581783595251066166312960", "914914963701236127373559744023232512"], ["688710284469165685404738243641999360", "869981053223066390571414093008207872", "791834758925232104719097862035603456"], ["504527776391722417137804904279048192", "270364767638629953336830682160168960", "198295146622736729836124455032586240"], ["825270076808499179483107054621556736", "352582635750492083490404082688983040", "423464271642810524155340865161658368"], ["735520962793184619499616858340851712", "765066456516048413755703502695301120", "503243961272044182378697256639397888"], ["83927566064052059969908731598077952", "118865967954273961282575440327737344", "313415764880239159364833465637797888"], ["428163128968345529570995348650852352", "853526799182401927942969592152850432", "595856080163355908726578778040434688"], ["4298678400325828554298216253751296", "662295720987832083808299827993772032", "77158352352429522537597434641514496"]], [["959012677781675623379618050036727808", "856183148918093188322631852952125440", "477688756856435803626754214545326080"], ["666141751293371681300762227300630528", "83457711060383571365941647144648704", "807901471632461490107855640255791104"], ["292082393114631265512110243591487488", "436020397264630534064573734449053696", "183327888067150392561818708865974272"], ["281694825715617431061659133744775168", "630964519162659718638848370108530688", "967297561458596695107206187187175424"], ["78596607421818731238221438257201152", "927280921511169856829811086122287104", "808103026954458450650259604163788800"], ["970208589566622255257101611164499968", "877809478050661796859632081375854592", "839932024365470758257905486142636032"], ["680060584273349685690898711324917760", "687873351419558711094555405786808320", "701981678558399625183468572100263936"], ["318650806559473319811173166989967360", "972904912642606983307519868817899520", "136258892012478760976876983996645376"], ["805378407033466459732745234268815360", "39532962916989822461220116391526400", "168703809001053313418414909586145280"], ["908641856953533228601846002136121344", "547624208051961676775678668676530176", "714363612054235230635646556607348736"]], [["190548357987947332118065644983812096", "343806608707427499076693067418304512", "681534593149618531751470090042736640"], ["165050211452562161539290297190580224", "41216296897489069135439286516056064", "369288426739611910121023093734375424"], ["384540837736195088734923559847067648", "301319423715354818283489666516647936", "290213170608010789764816468822720512"], ["740760987347507486918266819448930304", "970991062086618743626111002542604288", "300539456566627834834029376060784640"], ["628696181165761782296512331891343360", "124553809412522144677737547362729984", "625627185166478662584779350837559296"], ["913036735816725495684847677565042688", "399005455159424235433958943043354624", "928730576851297939421943389820551168"], ["794927599437224892183970807508107264", "6200293141943036005503090888278016", "170233165010554510835506253081346048"], ["405705008578016627913876982697295872", "178013600119403936988607839868026880", "191503238858631956704238967657070592"], ["566769769301127100069046614572924928", "844139341183732407183526565769117696", "732471656960982810833786924880101376"], ["2807595824309228005675919604711424", "261813957937728465034095215817785344", "706910292696365414079255611504066560"]]], "out": [[["979017099491110018942067312821272576", "906408000806632452114797174150135808", "572042560577051270101001688850628608"], ["970314350513558277989324779994218496", "672917960272193945175567190387064832", "738004729474624730341896972922781696"], ["949999745668024165489517038806237184", "782830451141896167400921576545189888", "773754352982266439136539456512720896"]], [["554166181126147404440246990770536448", "901848991352918850169033731149398016", "927911571088135929200009259356520448"], ["733895199634136636354978553303924736", "982081449688638090663868389740511232", "601642265832659125360941789945528320"], ["720073208604618054954869080641765376", "463286712794445136678401315688153088", "982736221843810664156369288039497728"]], [["660698008644203700473074429819092992", "904599195577579897660922571020828672", "863371715944324158495051960144625664"], ["688710284469165685404738243641999360", "869981053223066390571414093008207872", "791834758925232104719097862035603456"], ["915359938539886757509738228069957632", "765066456516048413755703502695301120", "894668431976368139307673421153828864"]]]} \ No newline at end of file diff --git a/models/maxPooling2D_stride_output.json b/models/maxPooling2D_stride_output.json deleted file mode 100644 index 9954b74..0000000 --- a/models/maxPooling2D_stride_output.json +++ /dev/null @@ -1 +0,0 @@ -{"out": [980, 634, 646, 947, 756, 843, 694, 930, 992, 943, 775, 701, 914, 711, 791, 948, 797, 843, 625, 684, 588, 934, 907, 907, 648, 867, 858]} \ No newline at end of file diff --git a/models/maxPooling2d.ipynb b/models/maxPooling2d.ipynb index 7bc8eb4..ed3b96e 100644 --- a/models/maxPooling2d.ipynb +++ b/models/maxPooling2d.ipynb @@ -5,6 +5,15 @@ "execution_count": 1, "metadata": {}, "outputs": [], + "source": [ + "p = 21888242871839275222246405745257275088548364400416034343698204186575808495617" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], "source": [ "from tensorflow.keras.layers import Input, MaxPooling2D\n", "from tensorflow.keras import Model\n", @@ -13,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -24,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -33,11 +42,13 @@ "text": [ "Model: \"model\"\n", "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", + " Layer (type) Output Shape Param # \n", "=================================================================\n", - "input_1 (InputLayer) [(None, 5, 5, 3)] 0 \n", - "_________________________________________________________________\n", - "max_pooling2d (MaxPooling2D) (None, 2, 2, 3) 0 \n", + " input_1 (InputLayer) [(None, 5, 5, 3)] 0 \n", + " \n", + " max_pooling2d (MaxPooling2D (None, 2, 2, 3) 0 \n", + " ) \n", + " \n", "=================================================================\n", "Total params: 0\n", "Trainable params: 0\n", @@ -52,44 +63,44 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[[[0.30453079, 0.3455373 , 0.85700244],\n", - " [0.02496087, 0.68109812, 0.95875603],\n", - " [0.54154912, 0.54440417, 0.58525715],\n", - " [0.88786818, 0.35451502, 0.68239083],\n", - " [0.59172416, 0.10230367, 0.86873569]],\n", + "array([[[[0.44076837, 0.4645178 , 0.88532658],\n", + " [0.98571178, 0.36091035, 0.37878294],\n", + " [0.09039054, 0.43555648, 0.70723494],\n", + " [0.75087575, 0.46161156, 0.27621923],\n", + " [0.3658674 , 0.76096207, 0.85368763]],\n", "\n", - " [[0.70574092, 0.81718968, 0.83318974],\n", - " [0.37544715, 0.90991587, 0.18008105],\n", - " [0.63383244, 0.49939633, 0.94083602],\n", - " [0.29234623, 0.41774773, 0.9775676 ],\n", - " [0.30083972, 0.23398012, 0.45529368]],\n", + " [[0.53353854, 0.18599507, 0.85547589],\n", + " [0.83705565, 0.3310797 , 0.42121576],\n", + " [0.97948862, 0.58870474, 0.022469 ],\n", + " [0.40446888, 0.15924946, 0.39474075],\n", + " [0.39336331, 0.83113873, 0.58711273]],\n", "\n", - " [[0.80566034, 0.53924316, 0.29324461],\n", - " [0.31193954, 0.0103429 , 0.85723612],\n", - " [0.34572683, 0.91710721, 0.94363957],\n", - " [0.66609489, 0.36596214, 0.3913392 ],\n", - " [0.18160916, 0.72365282, 0.48540052]],\n", + " [[0.00324599, 0.84351736, 0.65574229],\n", + " [0.00423293, 0.09477659, 0.85111496],\n", + " [0.84792575, 0.32417744, 0.52031854],\n", + " [0.78577668, 0.63963473, 0.66767045],\n", + " [0.6838523 , 0.40963437, 0.296101 ]],\n", "\n", - " [[0.47927146, 0.42374162, 0.59434276],\n", - " [0.26941152, 0.18211572, 0.82634931],\n", - " [0.39593074, 0.33620157, 0.01442567],\n", - " [0.26195157, 0.14637518, 0.20850249],\n", - " [0.12971374, 0.49832269, 0.85234255]],\n", + " [[0.25513283, 0.21434056, 0.139309 ],\n", + " [0.61281984, 0.77039643, 0.3830965 ],\n", + " [0.52747206, 0.60847264, 0.60792949],\n", + " [0.63030064, 0.5966706 , 0.05825615],\n", + " [0.78633397, 0.4404418 , 0.30296519]],\n", "\n", - " [[0.27367145, 0.72452974, 0.26031921],\n", - " [0.46729651, 0.6062574 , 0.0633123 ],\n", - " [0.44552305, 0.72471082, 0.49103499],\n", - " [0.71056222, 0.38367624, 0.15386035],\n", - " [0.93698149, 0.14531059, 0.04084748]]]])" + " [[0.4233433 , 0.2882031 , 0.85232675],\n", + " [0.60716483, 0.95202431, 0.39592074],\n", + " [0.55245804, 0.00922525, 0.50775513],\n", + " [0.65796373, 0.01939091, 0.10486254],\n", + " [0.06172721, 0.64735306, 0.22485494]]]])" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -101,20 +112,34 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 29ms/step\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-10-23 21:44:15.505331: W tensorflow/tsl/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n" + ] + }, { "data": { "text/plain": [ - "array([[[[0.7057409 , 0.90991586, 0.958756 ],\n", - " [0.88786817, 0.54440415, 0.9775676 ]],\n", + "array([[[[0.98571175, 0.4645178 , 0.88532656],\n", + " [0.9794886 , 0.58870476, 0.7072349 ]],\n", "\n", - " [[0.8056603 , 0.53924316, 0.85723615],\n", - " [0.6660949 , 0.9171072 , 0.9436396 ]]]], dtype=float32)" + " [[0.61281985, 0.84351736, 0.851115 ],\n", + " [0.8479257 , 0.6396347 , 0.6676704 ]]]], dtype=float32)" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -124,26 +149,13 @@ "y" ] }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "in_json = {\n", - " \"in\": (X*1000).round().astype(int).flatten().tolist()\n", - "}" - ] - }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "out_json = {\n", - " \"out\": (y*1000).round().astype(int).flatten().tolist()\n", - "}" + "X_in = [[[int(X[0][i][j][k]*1e36) for k in range(3)] for j in range(5)] for i in range(5)]" ] }, { @@ -152,13 +164,69 @@ "metadata": {}, "outputs": [], "source": [ - "import json" + "def MaxPooling2DInt(nRows, nCols, nChannels, poolSize, strides, input):\n", + " Input = [[[str(input[i][j][k] % p) for k in range(nChannels)] for j in range(nCols)] for i in range(nRows)]\n", + " out = [[[str(max(input[i*strides + x][j*strides + y][k] for x in range(poolSize) for y in range(poolSize)) % p) for k in range(nChannels)] for j in range((nCols - poolSize) // strides + 1)] for i in range((nRows - poolSize) // strides + 1)]\n", + " return Input, out" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[['985711776216457240221750775571808256',\n", + " '464517795839652376609037137683152896',\n", + " '885326582306963556558255153072832512'],\n", + " ['979488619923621857462245439242764288',\n", + " '588704741840418336217153490575687680',\n", + " '707234940167889112717525758819434496']],\n", + " [['612819836329411865644509177766215680',\n", + " '843517362609097245279278883187720192',\n", + " '851114962252709222552843081379479552'],\n", + " ['847925751912674500468804749306626048',\n", + " '639634733901388366288661852182282240',\n", + " '667670451847854954465177838892875776']]]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_in, out = MaxPooling2DInt(5, 5, 3, 2, 2, X_in)\n", + "out" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "in_json = {\n", + " \"in\": X_in,\n", + " \"out\": out\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "import json" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, "outputs": [], "source": [ "with open(\"maxPooling2D_input.json\", \"w\") as f:\n", @@ -167,17 +235,7 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "with open(\"maxPooling2D_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -188,7 +246,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -197,11 +255,13 @@ "text": [ "Model: \"model_1\"\n", "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", + " Layer (type) Output Shape Param # \n", "=================================================================\n", - "input_2 (InputLayer) [(None, 10, 10, 3)] 0 \n", - "_________________________________________________________________\n", - "max_pooling2d_1 (MaxPooling2 (None, 3, 3, 3) 0 \n", + " input_2 (InputLayer) [(None, 10, 10, 3)] 0 \n", + " \n", + " max_pooling2d_1 (MaxPooling (None, 3, 3, 3) 0 \n", + " 2D) \n", + " \n", "=================================================================\n", "Total params: 0\n", "Trainable params: 0\n", @@ -216,124 +276,124 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[[[9.65993586e-01, 2.86740064e-01, 6.46092913e-01],\n", - " [9.79657192e-01, 7.04894608e-02, 2.25727692e-01],\n", - " [1.63480102e-02, 8.59692460e-01, 3.18777287e-01],\n", - " [2.44829188e-01, 6.95082574e-01, 8.42581089e-01],\n", - " [7.22333287e-01, 4.54751914e-01, 6.99985078e-01],\n", - " [5.32035160e-01, 5.32461737e-01, 7.06344205e-01],\n", - " [3.18875650e-01, 9.29949882e-01, 7.13287135e-01],\n", - " [5.88863246e-01, 2.94710274e-01, 5.29519805e-02],\n", - " [6.00602960e-01, 3.08745964e-02, 3.64035518e-01],\n", - " [7.07437015e-01, 8.74881388e-01, 3.50040593e-01]],\n", + "array([[[[0.9790171 , 0.49837833, 0.23951505],\n", + " [0.85478487, 0.10183569, 0.57204256],\n", + " [0.12906496, 0.12259599, 0.61308313],\n", + " [0.68956844, 0.27468499, 0.73800473],\n", + " [0.97031435, 0.65275678, 0.57039273],\n", + " [0.48422669, 0.62184484, 0.12322611],\n", + " [0.45518299, 0.70342415, 0.77375435],\n", + " [0.1334539 , 0.78283045, 0.48137776],\n", + " [0.97002355, 0.70346344, 0.04099013],\n", + " [0.34556716, 0.30939804, 0.12870492]],\n", "\n", - " [[7.30319515e-01, 6.34116513e-01, 2.71787245e-01],\n", - " [7.28702418e-01, 3.01280025e-01, 6.12436148e-02],\n", - " [1.61123743e-02, 9.95670084e-02, 4.56461808e-01],\n", - " [8.62142632e-01, 6.53631230e-01, 4.60659447e-01],\n", - " [9.46976954e-01, 7.55910003e-01, 4.18162441e-01],\n", - " [8.97120825e-01, 6.38228256e-01, 9.70948725e-01],\n", - " [6.94496817e-01, 6.75532961e-01, 1.89259554e-01],\n", - " [3.15009193e-01, 6.58472721e-01, 9.91803898e-01],\n", - " [4.83155097e-01, 4.28423369e-01, 5.57807548e-01],\n", - " [3.16776442e-01, 1.45880111e-01, 6.85610297e-01]],\n", + " [[0.55049916, 0.15188193, 0.514953 ],\n", + " [0.07403779, 0.906408 , 0.20947497],\n", + " [0.57003003, 0.93417836, 0.09306473],\n", + " [0.17917856, 0.67291796, 0.4088607 ],\n", + " [0.10408118, 0.55822855, 0.62854813],\n", + " [0.20925919, 0.68269696, 0.60650138],\n", + " [0.94999975, 0.12429107, 0.41003125],\n", + " [0.16150869, 0.35470003, 0.54676562],\n", + " [0.14792857, 0.78346031, 0.25734593],\n", + " [0.89233997, 0.28742825, 0.13791151]],\n", "\n", - " [[8.54816281e-01, 8.32606841e-01, 3.28639931e-01],\n", - " [5.64494759e-01, 5.25883302e-01, 2.41258518e-02],\n", - " [4.73658238e-02, 5.17619320e-01, 7.98664030e-01],\n", - " [7.33313260e-01, 6.78968815e-01, 9.53869186e-01],\n", - " [7.76247947e-01, 4.16376751e-01, 9.55486618e-02],\n", - " [7.82790837e-03, 6.66806609e-01, 8.32774162e-01],\n", - " [3.24555692e-01, 3.14640188e-01, 1.63913280e-01],\n", - " [4.64295061e-01, 5.03352501e-01, 8.23398939e-01],\n", - " [8.25012894e-01, 6.22190568e-01, 8.91173967e-01],\n", - " [1.37490915e-01, 9.43092720e-01, 3.68399754e-01]],\n", + " [[0.79274313, 0.99061523, 0.68711779],\n", + " [0.57504418, 0.32618382, 0.16722838],\n", + " [0.09678065, 0.3591776 , 0.62750915],\n", + " [0.68795545, 0.01609884, 0.97099217],\n", + " [0.23381142, 0.84909675, 0.88405792],\n", + " [0.73191384, 0.98947014, 0.52221912],\n", + " [0.89714287, 0.03510341, 0.20639419],\n", + " [0.38323203, 0.16914071, 0.41209687],\n", + " [0.13122496, 0.53340704, 0.60455243],\n", + " [0.71565705, 0.67219914, 0.92696397]],\n", "\n", - " [[4.97181117e-01, 7.75022886e-01, 6.15754917e-01],\n", - " [9.43002198e-01, 3.30310514e-01, 3.73622235e-01],\n", - " [3.05653613e-01, 1.89344999e-01, 9.79524377e-01],\n", - " [9.13825512e-01, 7.11059737e-01, 3.48513956e-01],\n", - " [2.10925541e-02, 2.21990118e-01, 5.54006199e-01],\n", - " [7.70418392e-01, 6.65517323e-01, 2.41684696e-01],\n", - " [5.65325765e-01, 3.49244145e-01, 5.10320008e-01],\n", - " [1.20024770e-01, 2.88311227e-01, 1.28931146e-01],\n", - " [4.00741061e-01, 5.67159570e-01, 5.14537946e-01],\n", - " [8.73955679e-01, 3.07394930e-01, 7.59909866e-01]],\n", + " [[0.55416618, 0.74973965, 0.59748271],\n", + " [0.10440772, 0.32236564, 0.92791157],\n", + " [0.41841302, 0.27220821, 0.61662229],\n", + " [0.7338952 , 0.37152599, 0.31517472],\n", + " [0.20252929, 0.67581558, 0.34286098],\n", + " [0.01504774, 0.04681701, 0.14321044],\n", + " [0.3653292 , 0.25028834, 0.33848712],\n", + " [0.29191385, 0.34659568, 0.98273622],\n", + " [0.50778695, 0.7199723 , 0.05608854],\n", + " [0.72340647, 0.76685192, 0.37388969]],\n", "\n", - " [[7.50398681e-01, 2.60689673e-01, 7.00960347e-01],\n", - " [8.00087690e-01, 3.67118514e-02, 3.54074963e-01],\n", - " [5.13830254e-02, 6.08218682e-01, 3.18383656e-01],\n", - " [2.48625968e-01, 5.92917261e-01, 6.85028741e-01],\n", - " [7.84118979e-01, 2.71292419e-01, 7.90853990e-01],\n", - " [9.19971490e-01, 4.55985183e-01, 9.53074730e-01],\n", - " [3.76090715e-01, 7.97435622e-01, 8.42976822e-01],\n", - " [9.47584259e-01, 2.08991318e-01, 6.96768625e-01],\n", - " [2.71758063e-01, 8.09814275e-01, 3.96940917e-02],\n", - " [1.07555844e-01, 4.56840121e-01, 1.61592408e-01]],\n", + " [[0.52331559, 0.62356855, 0.26878584],\n", + " [0.15838795, 0.90184899, 0.23912789],\n", + " [0.41272637, 0.7610872 , 0.12672697],\n", + " [0.70626725, 0.98208145, 0.60164227],\n", + " [0.35664872, 0.41128872, 0.09382977],\n", + " [0.70544007, 0.82240552, 0.90325495],\n", + " [0.72007321, 0.24536308, 0.60690892],\n", + " [0.48655372, 0.46328671, 0.60648263],\n", + " [0.18854088, 0.45044603, 0.69043293],\n", + " [0.1217475 , 0.655353 , 0.87733639]],\n", "\n", - " [[6.16836144e-01, 2.11038650e-01, 5.29037973e-01],\n", - " [3.33499651e-01, 3.85517892e-02, 3.19570140e-01],\n", - " [1.52565232e-02, 4.07771948e-01, 1.49195315e-01],\n", - " [9.45497654e-01, 6.57689995e-02, 7.08661726e-02],\n", - " [6.81550014e-01, 5.46300579e-01, 3.15128707e-02],\n", - " [3.86787454e-01, 8.40268595e-01, 5.80573353e-01],\n", - " [3.33092389e-01, 7.36142214e-01, 3.75822423e-01],\n", - " [9.92171268e-02, 4.09917635e-01, 2.10781781e-01],\n", - " [5.16436855e-01, 6.37549701e-01, 3.17579181e-01],\n", - " [9.35629600e-01, 3.91859300e-01, 1.59703326e-01]],\n", + " [[0.02353603, 0.18097275, 0.19114613],\n", + " [0.72104431, 0.65310589, 0.48925075],\n", + " [0.26145721, 0.95118427, 0.64482692],\n", + " [0.08753618, 0.2596348 , 0.53771786],\n", + " [0.07314132, 0.06774864, 0.34392025],\n", + " [0.16282229, 0.95993633, 0.79667906],\n", + " [0.74674627, 0.53217006, 0.65900082],\n", + " [0.87522692, 0.13258819, 0.16230994],\n", + " [0.44525752, 0.67365898, 0.51766928],\n", + " [0.72182701, 0.43780393, 0.98069118]],\n", "\n", - " [[1.12917952e-01, 1.79313194e-01, 2.16766763e-03],\n", - " [4.28852446e-01, 5.42818847e-01, 4.26257872e-01],\n", - " [2.32256520e-01, 2.40402311e-01, 9.68977713e-01],\n", - " [9.33760201e-01, 9.07153540e-01, 9.07383657e-01],\n", - " [8.13978760e-01, 5.85125629e-01, 5.78227633e-01],\n", - " [3.91767979e-01, 4.89627849e-02, 2.85687041e-01],\n", - " [6.47565477e-01, 4.34616370e-01, 8.57716380e-01],\n", - " [2.83239080e-01, 8.67048640e-01, 2.48144546e-01],\n", - " [5.85242220e-01, 3.89023726e-01, 7.22094623e-02],\n", - " [1.35401671e-01, 4.68875252e-01, 9.48463803e-01]],\n", + " [[0.25691084, 0.11661927, 0.67618617],\n", + " [0.66069801, 0.9045992 , 0.86337172],\n", + " [0.08042041, 0.78517436, 0.69269604],\n", + " [0.44734739, 0.30140176, 0.18295808],\n", + " [0.07556447, 0.4891693 , 0.20302939],\n", + " [0.22243138, 0.65584446, 0.56134481],\n", + " [0.91535994, 0.429726 , 0.89466843],\n", + " [0.25180203, 0.12145168, 0.26456649],\n", + " [0.56398398, 0.18346371, 0.034341 ],\n", + " [0.37802503, 0.22614985, 0.85292929]],\n", "\n", - " [[4.27735031e-01, 6.84086196e-01, 1.76888407e-01],\n", - " [6.25437939e-01, 5.02732629e-01, 5.87552413e-01],\n", - " [8.60176591e-01, 8.85036555e-01, 6.10953076e-01],\n", - " [5.84317203e-01, 7.78767633e-01, 1.06566371e-01],\n", - " [6.96840508e-01, 8.92021678e-01, 1.35293168e-01],\n", - " [4.80178135e-01, 2.26424630e-01, 6.21810212e-01],\n", - " [1.13302545e-01, 5.16752205e-01, 3.52335937e-01],\n", - " [4.45366146e-04, 3.68035084e-01, 7.79439804e-01],\n", - " [1.87376515e-01, 8.72350056e-01, 8.30758160e-01],\n", - " [8.69023142e-01, 2.40654788e-01, 8.96450063e-01]],\n", + " [[0.19171201, 0.46156136, 0.78027617],\n", + " [0.1697258 , 0.36865057, 0.30921552],\n", + " [0.63491691, 0.76223827, 0.91491496],\n", + " [0.68871028, 0.86998105, 0.79183476],\n", + " [0.50452778, 0.27036477, 0.19829515],\n", + " [0.82527008, 0.35258264, 0.42346427],\n", + " [0.73552096, 0.76506646, 0.50324396],\n", + " [0.08392757, 0.11886597, 0.31341576],\n", + " [0.42816313, 0.8535268 , 0.59585608],\n", + " [0.00429868, 0.66229572, 0.07715835]],\n", "\n", - " [[3.57357941e-01, 6.68309076e-01, 3.79917606e-01],\n", - " [7.34854047e-01, 3.44706783e-01, 1.67959000e-01],\n", - " [1.56815280e-01, 3.45007594e-01, 2.46167294e-01],\n", - " [7.64949490e-02, 1.08145802e-01, 4.53831723e-01],\n", - " [8.85438856e-01, 3.55298241e-01, 1.00269691e-01],\n", - " [1.79580041e-01, 1.59319794e-01, 9.08473731e-01],\n", - " [5.48542312e-01, 5.46886662e-01, 2.35133394e-01],\n", - " [5.59077840e-01, 2.41340489e-01, 2.82896822e-01],\n", - " [5.78911124e-01, 5.46265775e-01, 8.36917922e-02],\n", - " [5.94710163e-01, 7.45264369e-01, 4.40913884e-02]],\n", + " [[0.95901268, 0.85618315, 0.47768876],\n", + " [0.66614175, 0.08345771, 0.80790147],\n", + " [0.29208239, 0.4360204 , 0.18332789],\n", + " [0.28169483, 0.63096452, 0.96729756],\n", + " [0.07859661, 0.92728092, 0.80810303],\n", + " [0.97020859, 0.87780948, 0.83993202],\n", + " [0.68006058, 0.68787335, 0.70198168],\n", + " [0.31865081, 0.97290491, 0.13625889],\n", + " [0.80537841, 0.03953296, 0.16870381],\n", + " [0.90864186, 0.54762421, 0.71436361]],\n", "\n", - " [[8.61716450e-01, 8.48898514e-01, 3.99113558e-01],\n", - " [3.69583538e-01, 6.36128771e-01, 3.02524909e-01],\n", - " [8.32184909e-01, 3.62780822e-01, 8.73857489e-01],\n", - " [8.77186293e-01, 1.48120556e-01, 1.35773613e-01],\n", - " [5.54515462e-01, 9.16021334e-01, 2.07558247e-01],\n", - " [5.41317706e-01, 6.66787208e-01, 4.41229512e-01],\n", - " [7.69842022e-01, 8.85926463e-01, 9.19134220e-01],\n", - " [9.42455591e-01, 9.53159593e-01, 1.51489472e-01],\n", - " [8.09798341e-01, 8.39691209e-01, 1.30013920e-01],\n", - " [4.59985475e-01, 8.20894618e-01, 2.00365160e-01]]]])" + " [[0.19054836, 0.34380661, 0.68153459],\n", + " [0.16505021, 0.0412163 , 0.36928843],\n", + " [0.38454084, 0.30131942, 0.29021317],\n", + " [0.74076099, 0.97099106, 0.30053946],\n", + " [0.62869618, 0.12455381, 0.62562719],\n", + " [0.91303674, 0.39900546, 0.92873058],\n", + " [0.7949276 , 0.00620029, 0.17023317],\n", + " [0.40570501, 0.1780136 , 0.19150324],\n", + " [0.56676977, 0.84413934, 0.73247166],\n", + " [0.0028076 , 0.26181396, 0.70691029]]]])" ] }, - "execution_count": 13, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -345,26 +405,33 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 21ms/step\n" + ] + }, { "data": { "text/plain": [ - "array([[[[0.9796572 , 0.63411653, 0.6460929 ],\n", - " [0.94697696, 0.75591 , 0.8425811 ],\n", - " [0.6944968 , 0.9299499 , 0.9918039 ]],\n", + "array([[[[0.9790171 , 0.906408 , 0.5720426 ],\n", + " [0.9703143 , 0.67291796, 0.73800474],\n", + " [0.94999975, 0.7828305 , 0.77375436]],\n", "\n", - " [[0.9430022 , 0.77502286, 0.70096034],\n", - " [0.9138255 , 0.71105975, 0.790854 ],\n", - " [0.9475843 , 0.79743564, 0.8429768 ]],\n", + " [[0.5541662 , 0.901849 , 0.9279116 ],\n", + " [0.7338952 , 0.9820815 , 0.60164225],\n", + " [0.7200732 , 0.46328673, 0.98273623]],\n", "\n", - " [[0.6254379 , 0.6840862 , 0.5875524 ],\n", - " [0.9337602 , 0.90715355, 0.9073837 ],\n", - " [0.6475655 , 0.8670486 , 0.8577164 ]]]], dtype=float32)" + " [[0.660698 , 0.9045992 , 0.86337173],\n", + " [0.6887103 , 0.86998105, 0.7918348 ],\n", + " [0.9153599 , 0.76506644, 0.89466846]]]], dtype=float32)" ] }, - "execution_count": 14, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -374,46 +441,82 @@ "y" ] }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "in_json = {\n", - " \"in\": (X*1000).round().astype(int).flatten().tolist()\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "out_json = {\n", - " \"out\": (y*1000).round().astype(int).flatten().tolist()\n", - "}" - ] - }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ - "with open(\"maxPooling2D_stride_input.json\", \"w\") as f:\n", - " json.dump(in_json, f)" + "X_in = [[[int(X[0][i][j][k]*1e36) for k in range(3)] for j in range(10)] for i in range(10)]" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[['979017099491110018942067312821272576',\n", + " '906408000806632452114797174150135808',\n", + " '572042560577051270101001688850628608'],\n", + " ['970314350513558277989324779994218496',\n", + " '672917960272193945175567190387064832',\n", + " '738004729474624730341896972922781696'],\n", + " ['949999745668024165489517038806237184',\n", + " '782830451141896167400921576545189888',\n", + " '773754352982266439136539456512720896']],\n", + " [['554166181126147404440246990770536448',\n", + " '901848991352918850169033731149398016',\n", + " '927911571088135929200009259356520448'],\n", + " ['733895199634136636354978553303924736',\n", + " '982081449688638090663868389740511232',\n", + " '601642265832659125360941789945528320'],\n", + " ['720073208604618054954869080641765376',\n", + " '463286712794445136678401315688153088',\n", + " '982736221843810664156369288039497728']],\n", + " [['660698008644203700473074429819092992',\n", + " '904599195577579897660922571020828672',\n", + " '863371715944324158495051960144625664'],\n", + " ['688710284469165685404738243641999360',\n", + " '869981053223066390571414093008207872',\n", + " '791834758925232104719097862035603456'],\n", + " ['915359938539886757509738228069957632',\n", + " '765066456516048413755703502695301120',\n", + " '894668431976368139307673421153828864']]]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_in, out = MaxPooling2DInt(10, 10, 3, 2, 3, X_in)\n", + "out" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, "outputs": [], "source": [ - "with open(\"maxPooling2D_stride_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" + "in_json = {\n", + " \"in\": X_in,\n", + " \"out\": out\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"maxPooling2D_stride_input.json\", \"w\") as f:\n", + " json.dump(in_json, f)" ] }, { @@ -426,9 +529,9 @@ ], "metadata": { "kernelspec": { - "display_name": "tf24", + "display_name": "sklearn", "language": "python", - "name": "tf24" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -440,7 +543,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.9.16" }, "orig_nbformat": 4 }, diff --git a/models/mnist.ipynb b/models/mnist.ipynb index 9f92e4a..4b62a1d 100644 --- a/models/mnist.ipynb +++ b/models/mnist.ipynb @@ -6,12 +6,7 @@ "metadata": {}, "outputs": [], "source": [ - "from tensorflow.keras.layers import Input, Conv2D, Dense, ReLU, Flatten, Softmax\n", - "from tensorflow.keras import Model\n", - "from tensorflow.keras.datasets import mnist\n", - "from tensorflow.keras.utils import to_categorical\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt" + "p = 21888242871839275222246405745257275088548364400416034343698204186575808495617" ] }, { @@ -20,7 +15,14 @@ "metadata": {}, "outputs": [], "source": [ - "(X_train, y_train), (X_test, y_test) = mnist.load_data()" + "from tensorflow.keras.layers import Input, Conv2D, AveragePooling2D, Flatten, Softmax, Dense, Lambda, BatchNormalization, ReLU\n", + "from tensorflow.keras import Model\n", + "from tensorflow.keras.datasets import mnist\n", + "from tensorflow.keras.utils import to_categorical\n", + "from tensorflow.keras.optimizers.legacy import SGD\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import tensorflow as tf" ] }, { @@ -28,6 +30,15 @@ "execution_count": 3, "metadata": {}, "outputs": [], + "source": [ + "(X_train, y_train), (X_test, y_test) = mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], "source": [ "# Convert y_train into one-hot format\n", "temp = []\n", @@ -43,24 +54,36 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "#reshaping\n", "X_train = X_train.reshape(X_train.shape[0], 28, 28, 1)\n", - "X_test = X_test.reshape(X_test.shape[0], 28, 28, 1)" + "X_test = X_test.reshape(X_test.shape[0], 28, 28, 1)\n", + "\n", + "#normalizing\n", + "X_train = X_train.astype('float32')\n", + "X_test = X_test.astype('float32')\n", + "X_train /= 255.0\n", + "X_test /= 255.0" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "inputs = Input(shape=(28,28,1))\n", - "out = Conv2D(1,3)(inputs)\n", + "out = Conv2D(4, 3, use_bias=True)(inputs)\n", + "out = BatchNormalization()(out)\n", "out = ReLU()(out)\n", + "out = AveragePooling2D()(out)\n", + "out = Conv2D(8, 3, use_bias=True)(out)\n", + "out = BatchNormalization()(out)\n", + "out = ReLU()(out)\n", + "out = AveragePooling2D()(out)\n", "out = Flatten()(out)\n", "out = Dense(10, activation=None)(out)\n", "out = Softmax()(out)\n", @@ -69,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -78,23 +101,40 @@ "text": [ "Model: \"model\"\n", "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", + " Layer (type) Output Shape Param # \n", "=================================================================\n", - "input_1 (InputLayer) [(None, 28, 28, 1)] 0 \n", - "_________________________________________________________________\n", - "conv2d (Conv2D) (None, 26, 26, 1) 10 \n", - "_________________________________________________________________\n", - "re_lu (ReLU) (None, 26, 26, 1) 0 \n", - "_________________________________________________________________\n", - "flatten (Flatten) (None, 676) 0 \n", - "_________________________________________________________________\n", - "dense (Dense) (None, 10) 6770 \n", - "_________________________________________________________________\n", - "softmax (Softmax) (None, 10) 0 \n", + " input_1 (InputLayer) [(None, 28, 28, 1)] 0 \n", + " \n", + " conv2d (Conv2D) (None, 26, 26, 4) 40 \n", + " \n", + " batch_normalization (BatchN (None, 26, 26, 4) 16 \n", + " ormalization) \n", + " \n", + " re_lu (ReLU) (None, 26, 26, 4) 0 \n", + " \n", + " average_pooling2d (AverageP (None, 13, 13, 4) 0 \n", + " ooling2D) \n", + " \n", + " conv2d_1 (Conv2D) (None, 11, 11, 8) 296 \n", + " \n", + " batch_normalization_1 (Batc (None, 11, 11, 8) 32 \n", + " hNormalization) \n", + " \n", + " re_lu_1 (ReLU) (None, 11, 11, 8) 0 \n", + " \n", + " average_pooling2d_1 (Averag (None, 5, 5, 8) 0 \n", + " ePooling2D) \n", + " \n", + " flatten (Flatten) (None, 200) 0 \n", + " \n", + " dense (Dense) (None, 10) 2010 \n", + " \n", + " softmax (Softmax) (None, 10) 0 \n", + " \n", "=================================================================\n", - "Total params: 6,780\n", - "Trainable params: 6,780\n", - "Non-trainable params: 0\n", + "Total params: 2,394\n", + "Trainable params: 2,370\n", + "Non-trainable params: 24\n", "_________________________________________________________________\n" ] } @@ -105,72 +145,76 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "model.compile(\n", " loss='categorical_crossentropy',\n", - " optimizer='adam',\n", + " optimizer=SGD(learning_rate=0.01, momentum=0.9),\n", " metrics=['acc']\n", " )" ] }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/10\n", - "1875/1875 [==============================] - 2s 829us/step - loss: 3.2919 - acc: 0.5537 - val_loss: 0.5674 - val_acc: 0.8258\n", - "Epoch 2/10\n", - "1875/1875 [==============================] - 1s 643us/step - loss: 0.4984 - acc: 0.8448 - val_loss: 0.4244 - val_acc: 0.8739\n", - "Epoch 3/10\n", - "1875/1875 [==============================] - 1s 664us/step - loss: 0.3538 - acc: 0.8937 - val_loss: 0.3560 - val_acc: 0.9000\n", - "Epoch 4/10\n", - "1875/1875 [==============================] - 1s 750us/step - loss: 0.3003 - acc: 0.9076 - val_loss: 0.3357 - val_acc: 0.9111\n", - "Epoch 5/10\n", - "1875/1875 [==============================] - 1s 617us/step - loss: 0.2814 - acc: 0.9146 - val_loss: 0.3184 - val_acc: 0.9075\n", - "Epoch 6/10\n", - "1875/1875 [==============================] - 1s 606us/step - loss: 0.2689 - acc: 0.9194 - val_loss: 0.3247 - val_acc: 0.9106\n", - "Epoch 7/10\n", - "1875/1875 [==============================] - 1s 633us/step - loss: 0.2581 - acc: 0.9198 - val_loss: 0.3020 - val_acc: 0.9187\n", - "Epoch 8/10\n", - "1875/1875 [==============================] - 1s 612us/step - loss: 0.2556 - acc: 0.9202 - val_loss: 0.3129 - val_acc: 0.9138\n", - "Epoch 9/10\n", - "1875/1875 [==============================] - 2s 1ms/step - loss: 0.2540 - acc: 0.9239 - val_loss: 0.3174 - val_acc: 0.9096\n", - "Epoch 10/10\n", - "1875/1875 [==============================] - 1s 798us/step - loss: 0.2494 - acc: 0.9264 - val_loss: 0.2993 - val_acc: 0.9176\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test))" - ] - }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/15\n", + " 1/1875 [..............................] - ETA: 5:16 - loss: 2.6515 - acc: 0.0625" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-10-24 02:23:16.557845: W tensorflow/tsl/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.1896 - acc: 0.9434 - val_loss: 0.0808 - val_acc: 0.9753\n", + "Epoch 2/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0787 - acc: 0.9761 - val_loss: 0.0602 - val_acc: 0.9808\n", + "Epoch 3/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0650 - acc: 0.9803 - val_loss: 0.0546 - val_acc: 0.9831\n", + "Epoch 4/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0592 - acc: 0.9816 - val_loss: 0.0613 - val_acc: 0.9812\n", + "Epoch 5/15\n", + "1875/1875 [==============================] - 7s 4ms/step - loss: 0.0536 - acc: 0.9837 - val_loss: 0.0594 - val_acc: 0.9808\n", + "Epoch 6/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0497 - acc: 0.9847 - val_loss: 0.0618 - val_acc: 0.9794\n", + "Epoch 7/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0470 - acc: 0.9855 - val_loss: 0.0824 - val_acc: 0.9748\n", + "Epoch 8/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0451 - acc: 0.9863 - val_loss: 0.0410 - val_acc: 0.9843\n", + "Epoch 9/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0433 - acc: 0.9865 - val_loss: 0.0561 - val_acc: 0.9822\n", + "Epoch 10/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0425 - acc: 0.9871 - val_loss: 0.0455 - val_acc: 0.9847\n", + "Epoch 11/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0397 - acc: 0.9875 - val_loss: 0.0524 - val_acc: 0.9825\n", + "Epoch 12/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0391 - acc: 0.9879 - val_loss: 0.0382 - val_acc: 0.9875\n", + "Epoch 13/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0381 - acc: 0.9879 - val_loss: 0.0371 - val_acc: 0.9868\n", + "Epoch 14/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0360 - acc: 0.9887 - val_loss: 0.0371 - val_acc: 0.9870\n", + "Epoch 15/15\n", + "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0354 - acc: 0.9887 - val_loss: 0.0378 - val_acc: 0.9874\n" + ] + }, { "data": { "text/plain": [ - "(28, 28, 1)" + "" ] }, "execution_count": 9, @@ -179,17 +223,28 @@ } ], "source": [ - "X = X_test[0]\n", - "X.shape" + "model.fit(X_train, y_train, epochs=15, batch_size=32, validation_data=(X_test, y_test))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "((28, 28, 1), 0.0, 1.0)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "model2 = Model(model.input, model.layers[-2].output)" + "X = X_test[0]\n", + "X.shape, X.min(), X.max()" ] }, { @@ -197,12 +252,17 @@ "execution_count": 11, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 45ms/step\n" + ] + }, { "data": { "text/plain": [ - "array([[-12.546714 , -11.377294 , -9.379934 , -11.585654 , -11.749796 ,\n", - " -17.505424 , -18.279175 , -0.4272291, -14.400676 , -10.785936 ]],\n", - " dtype=float32)" + "7" ] }, "execution_count": 11, @@ -211,8 +271,7 @@ } ], "source": [ - "y = model2.predict(X_test[[0]]) - model.weights[3].numpy()\n", - "y" + "model.predict(X.reshape(1,28,28,1)).argmax()" ] }, { @@ -221,68 +280,87 @@ "metadata": {}, "outputs": [], "source": [ - "in_json = {\n", - " \"in\": X.astype(int).flatten().tolist(),\n", - " \"conv2d_weights\": (model.weights[0].numpy()*(10**9)).round().astype(int).flatten().tolist(),\n", - " \"conv2d_bias\": (model.weights[1].numpy()*(10**9)).round().astype(int).flatten().tolist(), # no need to sqaure the scaling because input was not scaled\n", - " \"dense_weights\":(model.weights[2].numpy()*(10**9)).round().astype(int).flatten().tolist(),\n", - " \"dense_bias\": np.zeros(model.weights[3].numpy().shape).tolist() # zero because we are not doing softmax in circom, just argmax\n", - "}" + "def Conv2DInt(nRows, nCols, nChannels, nFilters, kernelSize, strides, n, input, weights, bias):\n", + " Input = [[[str(input[i][j][k] % p) for k in range(nChannels)] for j in range(nCols)] for i in range(nRows)]\n", + " Weights = [[[[str(weights[i][j][k][l] % p) for l in range(nFilters)] for k in range(nChannels)] for j in range(kernelSize)] for i in range(kernelSize)]\n", + " Bias = [str(bias[i] % p) for i in range(nFilters)]\n", + " out = [[[0 for _ in range(nFilters)] for _ in range((nCols - kernelSize)//strides + 1)] for _ in range((nRows - kernelSize)//strides + 1)]\n", + " remainder = [[[None for _ in range(nFilters)] for _ in range((nCols - kernelSize)//strides + 1)] for _ in range((nRows - kernelSize)//strides + 1)]\n", + " for i in range((nRows - kernelSize)//strides + 1):\n", + " for j in range((nCols - kernelSize)//strides + 1):\n", + " for m in range(nFilters):\n", + " for k in range(nChannels):\n", + " for x in range(kernelSize):\n", + " for y in range(kernelSize):\n", + " out[i][j][m] += input[i*strides+x][j*strides+y][k] * weights[x][y][k][m]\n", + " out[i][j][m] += bias[m]\n", + " remainder[i][j][m] = str(out[i][j][m] % n)\n", + " out[i][j][m] = str(out[i][j][m] // n % p)\n", + " return Input, Weights, Bias, out, remainder" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'scale': 1e-18,\n", - " 'out': [-12.546713829040527,\n", - " -11.377293586730957,\n", - " -9.379934310913086,\n", - " -11.585654258728027,\n", - " -11.749795913696289,\n", - " -17.50542449951172,\n", - " -18.2791748046875,\n", - " -0.427229106426239,\n", - " -14.400675773620605,\n", - " -10.78593635559082],\n", - " 'label': 7}" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "out_json = {\n", - " \"scale\": 10**-18,\n", - " \"out\": y.flatten().tolist(),\n", - " \"label\": int(y.argmax())\n", - "}\n", - "out_json" + "X_in = [[[int(X[i][j][0]*1e18)] for j in range(28)] for i in range(28)]\n", + "conv2d_1_weights = [[[[int(model.layers[1].weights[0][i][j][k][l]*1e18) for l in range(4)] for k in range(1)] for j in range(3)] for i in range(3)]\n", + "conv2d_1_bias = [int(model.layers[1].weights[1][i]*1e36) for i in range(4)]" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['21888242871839275222246405745257275088548364400416034343698204178650554445275',\n", + " '21888242871839275222246405745257275088548364400416034343698203817637026120037',\n", + " '21888242871839275222246405745257275088548364400416034343698204118313744391231',\n", + " '48458611567652']" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "import json" + "X_in, conv2d_1_weights, conv2d_1_bias, conv2d_1_out, conv2d_1_remainder = Conv2DInt(28, 28, 1, 4, 3, 1, 10**18, X_in, conv2d_1_weights, conv2d_1_bias)\n", + "conv2d_1_out[0][0]" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 18ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "array([-7.9252541e-06, -3.6893881e-04, -6.8262067e-05, 4.8458613e-05],\n", + " dtype=float32)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "with open(\"mnist_input.json\", \"w\") as f:\n", - " json.dump(in_json, f)" + "conv2d_model = Model(inputs, model.layers[1].output)\n", + "conv2d_model.predict(X.reshape(1,28,28,1))[0][0][0]" ] }, { @@ -291,8 +369,758 @@ "metadata": {}, "outputs": [], "source": [ - "with open(\"mnist_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" + "gamma = model.layers[2].weights[0].numpy()\n", + "beta = model.layers[2].weights[1].numpy()\n", + "moving_mean = model.layers[2].weights[2].numpy()\n", + "moving_var = model.layers[2].weights[3].numpy()\n", + "epsilon = model.layers[2].epsilon" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([2.841136 , 2.7350745, 2.0774858, 1.246628 ], dtype=float32),\n", + " array([ 0.9730277 , -0.0507403 , -0.07507665, -0.5589396 ], dtype=float32))" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a1 = gamma/(moving_var+epsilon)**.5\n", + "b1 = beta-gamma*moving_mean/(moving_var+epsilon)**.5\n", + "a1, b1" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "def BatchNormalizationInt(nRows, nCols, nChannels, n, X_in, a_in, b_in):\n", + " X = [[[str(X_in[i][j][k] % p) for k in range(nChannels)] for j in range(nCols)] for i in range(nRows)]\n", + " A = [str(a_in[k] % p) for k in range(nChannels)]\n", + " B = [str(b_in[k] % p) for k in range(nChannels)]\n", + " out = [[[None for _ in range(nChannels)] for _ in range(nCols)] for _ in range(nRows)]\n", + " remainder = [[[None for _ in range(nChannels)] for _ in range(nCols)] for _ in range(nRows)]\n", + " for i in range(nRows):\n", + " for j in range(nCols):\n", + " for k in range(nChannels):\n", + " out[i][j][k] = (X_in[i][j][k]*a_in[k] + b_in[k])\n", + " remainder[i][j][k] = str(out[i][j][k] % n)\n", + " out[i][j][k] = str(out[i][j][k] // n % p)\n", + " return X, A, B, out, remainder" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "bn_1_in = [[[int(conv2d_1_out[i][j][k]) if int(conv2d_1_out[i][j][k]) < p//2 else int(conv2d_1_out[i][j][k]) - p for k in range(4)] for j in range(26)] for i in range(26)]\n", + "bn_1_a = [int(a1[i]*1e18) for i in range(4)]\n", + "bn_1_b = [int(b1[i]*1e36) for i in range(4)]" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['973005189421817592',\n", + " '21888242871839275222246405745257275088548364400416034343698152437199136300055',\n", + " '21888242871839275222246405745257275088548364400416034343698128968107786241045',\n", + " '21888242871839275222246405745257275088548364400416034343697645307409523760974']" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "_, bn_1_a, bn_1_b, bn_1_out, bn_1_remainder = BatchNormalizationInt(26, 26, 4, 10**18, bn_1_in, bn_1_a, bn_1_b)\n", + "bn_1_out[0][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 22ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "array([ 0.97300524, -0.05174941, -0.07521845, -0.55887914], dtype=float32)" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bn_1_model = Model(inputs, model.layers[2].output)\n", + "bn_1_model.predict(X.reshape(1,28,28,1))[0][0][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "relu_1_in = [[[int(bn_1_out[i][j][k]) for k in range(4)] for j in range(26)] for i in range(26)]\n", + "relu_1_out = [[[str(relu_1_in[i][j][k]) if relu_1_in[i][j][k] < p//2 else 0 for k in range(4)] for j in range(26)] for i in range(26)]" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "avg2d_1_in = [[[int(relu_1_out[i][j][k]) for k in range(4)] for j in range(26)] for i in range(26)]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "def AveragePooling2DInt (nRows, nCols, nChannels, poolSize, strides, input):\n", + " Input = [[[str(input[i][j][k] % p) for k in range(nChannels)] for j in range(nCols)] for i in range(nRows)]\n", + " out = [[[0 for _ in range(nChannels)] for _ in range((nCols-poolSize)//strides + 1)] for _ in range((nRows-poolSize)//strides + 1)]\n", + " remainder = [[[None for _ in range(nChannels)] for _ in range((nCols-poolSize)//strides + 1)] for _ in range((nRows-poolSize)//strides + 1)]\n", + " for i in range((nRows-poolSize)//strides + 1):\n", + " for j in range((nCols-poolSize)//strides + 1):\n", + " for k in range(nChannels):\n", + " for x in range(poolSize):\n", + " for y in range(poolSize):\n", + " out[i][j][k] += input[i*strides+x][j*strides+y][k]\n", + " remainder[i][j][k] = str(out[i][j][k] % poolSize**2 % p)\n", + " out[i][j][k] = str(out[i][j][k] // poolSize**2 % p)\n", + " return Input, out, remainder" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['1312195747641412224', '17351024717876988', '381448215010339593', '0']" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "_, avg2d_1_out, avg2d_1_remainder = AveragePooling2DInt(26, 26, 4, 2, 2, avg2d_1_in)\n", + "avg2d_1_out[5][6]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 28ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "array([1.3121958 , 0.01735102, 0.38144833, 0. ], dtype=float32)" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "avg2d_1_model = Model(inputs, model.layers[4].output)\n", + "avg2d_1_model.predict(X.reshape(1,28,28,1))[0][5][6]" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "conv2d_2_in = [[[int(avg2d_1_out[i][j][k]) for k in range(4)] for j in range(13)] for i in range(13)]\n", + "conv2d_2_weights = [[[[int(model.layers[5].weights[0][i][j][k][l]*1e18) for l in range(8)] for k in range(4)] for j in range(3)] for i in range(3)]\n", + "conv2d_2_bias = [int(model.layers[5].weights[1][i]*1e36) for i in range(8)]" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['151443532606342120',\n", + " '21888242871839275222246405745257275088548364400416034343695445103896159586204',\n", + " '1368543458414900467',\n", + " '21888242871839275222246405745257275088548364400416034343697889320797389307844',\n", + " '21888242871839275222246405745257275088548364400416034343696909822999783625702',\n", + " '3064925807006993607',\n", + " '273553711551724155',\n", + " '21888242871839275222246405745257275088548364400416034343697690313879935243528']" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "_, conv2d_2_weights, conv2d_2_bias, conv2d_2_out, conv2d_2_remainder = Conv2DInt(13, 13, 4, 8, 3, 1, 10**18, conv2d_2_in, conv2d_2_weights, conv2d_2_bias)\n", + "conv2d_2_out[0][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:5 out of the last 5 calls to .predict_function at 0x147387d30> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "1/1 [==============================] - 0s 27ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "array([ 0.15144362, -2.7590828 , 1.3685436 , -0.3148657 , -1.2943636 ,\n", + " 3.064926 , 0.27355385, -0.5138727 ], dtype=float32)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "conv2d_2_model = Model(inputs, model.layers[5].output)\n", + "conv2d_2_model.predict(X.reshape(1,28,28,1))[0][0][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "gamma = model.layers[6].weights[0].numpy()\n", + "beta = model.layers[6].weights[1].numpy()\n", + "moving_mean = model.layers[6].weights[2].numpy()\n", + "moving_var = model.layers[6].weights[3].numpy()\n", + "epsilon = model.layers[6].epsilon" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([1.4172864, 1.0896717, 1.2455306, 1.9744203, 1.5216775, 1.6048892,\n", + " 1.5560555, 1.5188278], dtype=float32),\n", + " array([ 0.9693597 , 2.5460322 , -2.3216164 , 1.1771976 , 1.7650728 ,\n", + " -5.5845942 , -0.36191303, 0.58835894], dtype=float32))" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a2 = gamma/(moving_var+epsilon)**.5\n", + "b2 = beta-gamma*moving_mean/(moving_var+epsilon)**.5\n", + "a2, b2" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "bn_2_in = [[[int(conv2d_2_out[i][j][k]) if int(conv2d_2_out[i][j][k]) < p//2 else int(conv2d_2_out[i][j][k]) - p for k in range(8)] for j in range(11)] for i in range(11)]\n", + "bn_2_a = [int(a2[i]*1e18) for i in range(8)]\n", + "bn_2_b = [int(b2[i]*1e36) for i in range(8)]" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['1183998554440588778',\n", + " '21888242871839275222246405745257275088548364400416034343697743724366639529790',\n", + " '21888242871839275222246405745257275088548364400416034343697587132926760373824',\n", + " '555520188028190246',\n", + " '21888242871839275222246405745257275088548364400416034343697999655475625376512',\n", + " '21888242871839275222246405745257275088548364400416034343697538458512894177905',\n", + " '63751744556936369',\n", + " '21888242871839275222246405745257275088548364400416034343698012061380413810399']" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "_, bn_2_a, bn_2_b, bn_2_out, bn_2_remainder = BatchNormalizationInt(11, 11, 8, 10**18, bn_2_in, bn_2_a, bn_2_b)\n", + "bn_2_out[0][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:6 out of the last 6 calls to .predict_function at 0x1475103a0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", + "1/1 [==============================] - 0s 32ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "array([ 1.1839986 , -0.46046233, -0.61705345, 0.5555204 , -0.20453101,\n", + " -0.66572803, 0.06375193, -0.1921252 ], dtype=float32)" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bn_2_model = Model(inputs, model.layers[6].output)\n", + "bn_2_model.predict(X.reshape(1,28,28,1))[0][0][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['1183998554440588778',\n", + " 0,\n", + " 0,\n", + " '555520188028190246',\n", + " 0,\n", + " 0,\n", + " '63751744556936369',\n", + " 0]" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "relu_2_in = [[[int(bn_2_out[i][j][k]) for k in range(8)] for j in range(11)] for i in range(11)]\n", + "relu_2_out = [[[str(relu_2_in[i][j][k]) if relu_2_in[i][j][k] < p//2 else 0 for k in range(8)] for j in range(11)] for i in range(11)]\n", + "relu_2_out[0][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 30ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "array([1.1839986 , 0. , 0. , 0.5555204 , 0. ,\n", + " 0. , 0.06375193, 0. ], dtype=float32)" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "relu_2_model = Model(inputs, model.layers[7].output)\n", + "relu_2_model.predict(X.reshape(1,28,28,1))[0][0][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "avg2d_2_in = [[[int(relu_2_out[i][j][k]) if int(relu_2_out[i][j][k]) < p//2 else int(relu_2_out[i][j][k]) - p for k in range(8)] for j in range(11)] for i in range(11)]" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['0',\n", + " '3041275199357812815',\n", + " '880404200542187368',\n", + " '751626574290071696',\n", + " '4631629684299696339',\n", + " '0',\n", + " '0',\n", + " '141002623674408652']" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "_, avg2d_2_out, avg2d_2_remainder = AveragePooling2DInt(11, 11, 8, 2, 2, avg2d_2_in)\n", + "avg2d_2_out[3][3]" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 30ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "array([0. , 3.0412755 , 0.88040376, 0.7516271 , 4.6316295 ,\n", + " 0. , 0. , 0.14100271], dtype=float32)" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "avg2d_2_model = Model(inputs, model.layers[8].output)\n", + "avg2d_2_model.predict(X.reshape(1,28,28,1))[0][3][3]" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['240465720017978049',\n", + " '312962931075997403',\n", + " '16422062895818568',\n", + " '0',\n", + " '0',\n", + " '1115397662044723147',\n", + " '3743826354975568930',\n", + " '1282135426254877774',\n", + " '2558492900397241085',\n", + " '0',\n", + " '69224497325539673',\n", + " '0',\n", + " '60798814494206494',\n", + " '2302583886918782205',\n", + " '379552091654971946',\n", + " '0',\n", + " '1609754191355983350',\n", + " '0',\n", + " '27599924897036794',\n", + " '30247813336316648']" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "flatten_out = [avg2d_2_out[i][j][k] for i in range(5) for j in range(5) for k in range(8)]\n", + "flatten_out[100:120]" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 32ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "array([0.24046564, 0.312963 , 0.0164221 , 0. , 0. ,\n", + " 1.1153977 , 3.7438262 , 1.2821352 , 2.5584927 , 0. ,\n", + " 0.0692246 , 0. , 0.06079884, 2.3025842 , 0.37955213,\n", + " 0. , 1.6097541 , 0. , 0.02759986, 0.03024786],\n", + " dtype=float32)" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "flatten_model = Model(inputs, model.layers[9].output)\n", + "flatten_model.predict(X.reshape(1,28,28,1))[0][100:120]" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "dense_in = [int(flatten_out[i]) if int(flatten_out[i]) < p//2 else int(flatten_out[i]) - p for i in range(200)]\n", + "dense_weights = [[int(model.layers[10].weights[0][i][j]*1e18) for j in range(10)] for i in range(200)]\n", + "dense_bias = [int(model.layers[10].weights[1][i]*1e36) for i in range(10)]" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "def DenseInt(nInputs, nOutputs, n, input, weights, bias):\n", + " Input = [str(input[i] % p) for i in range(nInputs)]\n", + " Weights = [[str(weights[i][j] % p) for j in range(nOutputs)] for i in range(nInputs)]\n", + " Bias = [str(bias[i] % p) for i in range(nOutputs)]\n", + " out = [0 for _ in range(nOutputs)]\n", + " remainder = [None for _ in range(nOutputs)]\n", + " for j in range(nOutputs):\n", + " for i in range(nInputs):\n", + " out[j] += input[i] * weights[i][j]\n", + " out[j] += bias[j]\n", + " remainder[j] = str(out[j] % n)\n", + " out[j] = str(out[j] // n % p)\n", + " return Input, Weights, Bias, out, remainder" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['21888242871839275222246405745257275088548364400416034343696001558406187208579',\n", + " '21888242871839275222246405745257275088548364400416034343694494011253998843463',\n", + " '2502586410316628302',\n", + " '7723360444146681933',\n", + " '21888242871839275222246405745257275088548364400416034343688179933383346961393',\n", + " '21888242871839275222246405745257275088548364400416034343697101907583287035462',\n", + " '21888242871839275222246405745257275088548364400416034343680804147065276585857',\n", + " '21047995401855287971',\n", + " '21888242871839275222246405745257275088548364400416034343695951614145619839501',\n", + " '4230622081176419220']" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "_, dense_weights, dense_bias, dense_out, dense_remainder = DenseInt(200, 10, 10**18, dense_in, dense_weights, dense_bias)\n", + "dense_out" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['21888242871839275222246405745257275088548364400416034343696001558406187208579',\n", + " '21888242871839275222246405745257275088548364400416034343694494011253998843463',\n", + " '2502586410316628302',\n", + " '7723360444146681933',\n", + " '21888242871839275222246405745257275088548364400416034343688179933383346961393',\n", + " '21888242871839275222246405745257275088548364400416034343697101907583287035462',\n", + " '21888242871839275222246405745257275088548364400416034343680804147065276585857',\n", + " '21047995401855287971',\n", + " '21888242871839275222246405745257275088548364400416034343695951614145619839501',\n", + " '4230622081176419220']" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dense_out" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 35ms/step\n" + ] + }, + { + "data": { + "text/plain": [ + "array([ -2.2026286, -3.7101758, 2.5025864, 7.7233634, -10.024254 ,\n", + " -1.1022782, -17.40004 , 21.047997 , -2.2525737, 4.230623 ],\n", + " dtype=float32)" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dense_model = Model(inputs, model.layers[-2].output)\n", + "dense_model.predict(X.reshape(1,28,28,1))[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "in_json = {\n", + " \"in\": X_in,\n", + " \"conv2d_1_weights\": conv2d_1_weights,\n", + " \"conv2d_1_bias\": conv2d_1_bias,\n", + " \"conv2d_1_out\": conv2d_1_out,\n", + " \"conv2d_1_remainder\": conv2d_1_remainder,\n", + " \"bn_1_a\": bn_1_a,\n", + " \"bn_1_b\": bn_1_b,\n", + " \"bn_1_out\": bn_1_out,\n", + " \"bn_1_remainder\": bn_1_remainder,\n", + " \"relu_1_out\": relu_1_out,\n", + " \"avg2d_1_out\": avg2d_1_out,\n", + " \"avg2d_1_remainder\": avg2d_1_remainder,\n", + " \"conv2d_2_weights\": conv2d_2_weights,\n", + " \"conv2d_2_bias\": conv2d_2_bias,\n", + " \"conv2d_2_out\": conv2d_2_out,\n", + " \"conv2d_2_remainder\": conv2d_2_remainder,\n", + " \"bn_2_a\": bn_2_a,\n", + " \"bn_2_b\": bn_2_b,\n", + " \"bn_2_out\": bn_2_out,\n", + " \"bn_2_remainder\": bn_2_remainder,\n", + " \"relu_2_out\": relu_2_out,\n", + " \"avg2d_2_out\": avg2d_2_out,\n", + " \"avg2d_2_remainder\": avg2d_2_remainder,\n", + " \"flatten_out\": flatten_out,\n", + " \"dense_weights\": dense_weights,\n", + " \"dense_bias\": dense_bias,\n", + " \"dense_out\": dense_out,\n", + " \"dense_remainder\": dense_remainder,\n", + " \"argmax_out\": \"7\"\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "import json" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"mnist_input.json\", \"w\") as f:\n", + " json.dump(in_json, f)" ] }, { @@ -322,7 +1150,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.9.16" }, "orig_nbformat": 4 }, diff --git a/models/mnist_convnet.ipynb b/models/mnist_convnet.ipynb deleted file mode 100644 index d5687f6..0000000 --- a/models/mnist_convnet.ipynb +++ /dev/null @@ -1,413 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# model architecture modified from https://keras.io/examples/vision/mnist_convnet/" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from tensorflow.keras.layers import Input, Conv2D, AveragePooling2D, Flatten, Lambda, Softmax, Dense\n", - "from tensorflow.keras import Model\n", - "from tensorflow.keras.datasets import mnist\n", - "from tensorflow.keras.utils import to_categorical\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import tensorflow as tf" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "(X_train, y_train), (X_test, y_test) = mnist.load_data()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# Convert y_train into one-hot format\n", - "temp = []\n", - "for i in range(len(y_train)):\n", - " temp.append(to_categorical(y_train[i], num_classes=10))\n", - "y_train = np.array(temp)\n", - "# Convert y_test into one-hot format\n", - "temp = []\n", - "for i in range(len(y_test)): \n", - " temp.append(to_categorical(y_test[i], num_classes=10))\n", - "y_test = np.array(temp)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "#reshaping\n", - "X_train = X_train.reshape(X_train.shape[0], 28, 28, 1)\n", - "X_test = X_test.reshape(X_test.shape[0], 28, 28, 1)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "inputs = Input(shape=(28,28,1))\n", - "out = Lambda(lambda x: x/1000)(inputs)\n", - "out = Conv2D(4, 3)(out)\n", - "out = Lambda(lambda x: x**2+x)(out)\n", - "out = AveragePooling2D()(out)\n", - "out = Lambda(lambda x: x*4)(out)\n", - "out = Conv2D(8, 3)(out)\n", - "out = Lambda(lambda x: x**2+x)(out)\n", - "out = AveragePooling2D()(out)\n", - "out = Lambda(lambda x: x*4)(out)\n", - "out = Flatten()(out)\n", - "out = Dense(10, activation=None)(out)\n", - "out = Softmax()(out)\n", - "full_model = Model(inputs, out)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: \"model\"\n", - "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", - "=================================================================\n", - "input_1 (InputLayer) [(None, 28, 28, 1)] 0 \n", - "_________________________________________________________________\n", - "lambda (Lambda) (None, 28, 28, 1) 0 \n", - "_________________________________________________________________\n", - "conv2d (Conv2D) (None, 26, 26, 4) 40 \n", - "_________________________________________________________________\n", - "lambda_1 (Lambda) (None, 26, 26, 4) 0 \n", - "_________________________________________________________________\n", - "average_pooling2d (AveragePo (None, 13, 13, 4) 0 \n", - "_________________________________________________________________\n", - "lambda_2 (Lambda) (None, 13, 13, 4) 0 \n", - "_________________________________________________________________\n", - "conv2d_1 (Conv2D) (None, 11, 11, 8) 296 \n", - "_________________________________________________________________\n", - "lambda_3 (Lambda) (None, 11, 11, 8) 0 \n", - "_________________________________________________________________\n", - "average_pooling2d_1 (Average (None, 5, 5, 8) 0 \n", - "_________________________________________________________________\n", - "lambda_4 (Lambda) (None, 5, 5, 8) 0 \n", - "_________________________________________________________________\n", - "flatten (Flatten) (None, 200) 0 \n", - "_________________________________________________________________\n", - "dense (Dense) (None, 10) 2010 \n", - "_________________________________________________________________\n", - "softmax (Softmax) (None, 10) 0 \n", - "=================================================================\n", - "Total params: 2,346\n", - "Trainable params: 2,346\n", - "Non-trainable params: 0\n", - "_________________________________________________________________\n" - ] - } - ], - "source": [ - "full_model.summary()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "full_model.compile(\n", - " loss='categorical_crossentropy',\n", - " optimizer='adam',\n", - " metrics=['acc']\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/15\n", - "469/469 [==============================] - 7s 13ms/step - loss: 1.0953 - acc: 0.6511 - val_loss: 0.1934 - val_acc: 0.9440\n", - "Epoch 2/15\n", - "469/469 [==============================] - 6s 13ms/step - loss: 0.1778 - acc: 0.9481 - val_loss: 0.1139 - val_acc: 0.9649\n", - "Epoch 3/15\n", - "469/469 [==============================] - 6s 13ms/step - loss: 0.1173 - acc: 0.9655 - val_loss: 0.0996 - val_acc: 0.9706\n", - "Epoch 4/15\n", - "469/469 [==============================] - 6s 13ms/step - loss: 0.0951 - acc: 0.9721 - val_loss: 0.0798 - val_acc: 0.9750\n", - "Epoch 5/15\n", - "469/469 [==============================] - 6s 13ms/step - loss: 0.0857 - acc: 0.9740 - val_loss: 0.0703 - val_acc: 0.9781\n", - "Epoch 6/15\n", - "469/469 [==============================] - 6s 13ms/step - loss: 0.0789 - acc: 0.9762 - val_loss: 0.0759 - val_acc: 0.9769\n", - "Epoch 7/15\n", - "469/469 [==============================] - 6s 13ms/step - loss: 0.0717 - acc: 0.9778 - val_loss: 0.0680 - val_acc: 0.9789\n", - "Epoch 8/15\n", - "469/469 [==============================] - 6s 13ms/step - loss: 0.0682 - acc: 0.9795 - val_loss: 0.0627 - val_acc: 0.9812\n", - "Epoch 9/15\n", - "469/469 [==============================] - 7s 15ms/step - loss: 0.0669 - acc: 0.9792 - val_loss: 0.0651 - val_acc: 0.9807\n", - "Epoch 10/15\n", - "469/469 [==============================] - 8s 18ms/step - loss: 0.0655 - acc: 0.9791 - val_loss: 0.0624 - val_acc: 0.9816\n", - "Epoch 11/15\n", - "469/469 [==============================] - 7s 14ms/step - loss: 0.0609 - acc: 0.9815 - val_loss: 0.0625 - val_acc: 0.9805\n", - "Epoch 12/15\n", - "469/469 [==============================] - 7s 15ms/step - loss: 0.0619 - acc: 0.9814 - val_loss: 0.0612 - val_acc: 0.9807\n", - "Epoch 13/15\n", - "469/469 [==============================] - 8s 16ms/step - loss: 0.0577 - acc: 0.9822 - val_loss: 0.0583 - val_acc: 0.9818\n", - "Epoch 14/15\n", - "469/469 [==============================] - 7s 14ms/step - loss: 0.0546 - acc: 0.9825 - val_loss: 0.0559 - val_acc: 0.9825\n", - "Epoch 15/15\n", - "469/469 [==============================] - 6s 14ms/step - loss: 0.0517 - acc: 0.9835 - val_loss: 0.0561 - val_acc: 0.9823\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "full_model.fit(X_train, y_train, epochs=15, batch_size=128, validation_data=(X_test, y_test))" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD4CAYAAAAq5pAIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAANh0lEQVR4nO3df6zddX3H8dfL/sJeYFKwtSuVKqKxOsHlCppuSw3DAYYUo2w0GekSZskGCSxmG2ExkmxxjIiETWdSR2clCFOBQLRzksaNkLHKhZRSKFuRdVh71wvUrUXgtqXv/XG/LJdyz+dezvd7zve07+cjuTnnfN/ne77vfHtf/X7v+XzP+TgiBODY95a2GwDQH4QdSIKwA0kQdiAJwg4kMbufG5vreXGchvq5SSCVV/QLHYhxT1WrFXbb50u6RdIsSX8XETeUnn+chnSOz62zSQAFm2NTx1rXp/G2Z0n6qqQLJC2XtNr28m5fD0Bv1fmb/WxJT0fEMxFxQNKdklY10xaAptUJ+xJJP530eFe17HVsr7U9YnvkoMZrbA5AHXXCPtWbAG+49jYi1kXEcEQMz9G8GpsDUEedsO+StHTS41Ml7a7XDoBeqRP2hyWdYftdtudKulTSfc20BaBpXQ+9RcQh21dJ+idNDL2tj4gnGusMQKNqjbNHxEZJGxvqBUAPcbkskARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSRB2IIlaUzbb3ilpv6RXJR2KiOEmmgLQvFphr3w8Ip5v4HUA9BCn8UASdcMekn5o+xHba6d6gu21tkdsjxzUeM3NAehW3dP4FRGx2/ZCSffbfioiHpj8hIhYJ2mdJJ3oBVFzewC6VOvIHhG7q9sxSfdIOruJpgA0r+uw2x6yfcJr9yV9QtK2phoD0Kw6p/GLJN1j+7XX+VZE/KCRrgA0ruuwR8Qzks5ssBcAPcTQG5AEYQeSIOxAEoQdSIKwA0k08UGYFF747Mc61t552dPFdZ8aW1SsHxifU6wvuaNcn7/rxY61w1ueLK6LPDiyA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EASjLPP0J/88bc61j499PPyyqfX3PjKcnnnoZc61m557uM1N370+vHYaR1rQzf9UnHd2Zseabqd1nFkB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkHNG/SVpO9II4x+f2bXtN+sVnzulYe/5D5f8zT9pe3sc/f7+L9bkf+p9i/cYP3t2xdt5bXy6u+/2Xji/WPzm/82fl63o5DhTrm8eHivWVxx3setvv+f4Vxfp71z7c9Wu3aXNs0r7YO+UvFEd2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCz7PP0NB3Nxdq9V77xHqr62/esbJj7S9WLCtv+1/K33l/48r3dNHRzMx++XCxPrR1tFg/+YG7ivVfmdv5+/bn7yx/F/+xaNoju+31tsdsb5u0bIHt+23vqG5P6m2bAOqayWn8NySdf8SyayVtiogzJG2qHgMYYNOGPSIekLT3iMWrJG2o7m+QdHGzbQFoWrdv0C2KiFFJqm4Xdnqi7bW2R2yPHNR4l5sDUFfP342PiHURMRwRw3M0r9ebA9BBt2HfY3uxJFW3Y821BKAXug37fZLWVPfXSLq3mXYA9Mq04+y279DEN5efYnuXpC9IukHSt21fLulZSZf0skmUHfrvPR1rQ3d1rknSq9O89tB3X+iio2bs+f2PFesfmFv+9f3S3vd1rC37+2eK6x4qVo9O04Y9IlZ3KB2d30IBJMXlskAShB1IgrADSRB2IAnCDiTBR1zRmtmnLS3Wv3LdV4r1OZ5VrH/nlt/sWDt59KHiuscijuxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kATj7GjNU3+0pFj/yLzyVNZPHChPR73gyZfedE/HMo7sQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AE4+zoqfFPfqRj7dHP3DzN2uUZhP7g6quL9bf+64+nef1cOLIDSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKMs6Onnr2g8/HkeJfH0Vf/53nF+vwfPFasR7Gaz7RHdtvrbY/Z3jZp2fW2f2Z7S/VzYW/bBFDXTE7jvyHp/CmW3xwRZ1U/G5ttC0DTpg17RDwgaW8fegHQQ3XeoLvK9tbqNP+kTk+yvdb2iO2RgxqvsTkAdXQb9q9JOl3SWZJGJd3U6YkRsS4ihiNieM40H2wA0DtdhT0i9kTEqxFxWNLXJZ3dbFsAmtZV2G0vnvTwU5K2dXougMEw7Ti77TskrZR0iu1dkr4gaaXtszQxlLlT0hW9axGD7C0nnFCsX/brD3as7Tv8SnHdsS++u1ifN/5wsY7XmzbsEbF6isW39qAXAD3E5bJAEoQdSIKwA0kQdiAJwg4kwUdcUcuO6z9QrH/vlL/tWFu149PFdedtZGitSRzZgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJxtlR9L+/+9Fifevv/HWx/pNDBzvWXvyrU4vrztNosY43hyM7kARhB5Ig7EAShB1IgrADSRB2IAnCDiTBOHtys5f8crF+zef/oVif5/Kv0KWPXdax9vZ/5PPq/cSRHUiCsANJEHYgCcIOJEHYgSQIO5AEYQeSYJz9GOfZ5X/iM7+3q1i/5PgXivXb9y8s1hd9vvPx5HBxTTRt2iO77aW2f2R7u+0nbF9dLV9g+37bO6rbk3rfLoBuzeQ0/pCkz0XE+yV9VNKVtpdLulbSpog4Q9Km6jGAATVt2CNiNCIere7vl7Rd0hJJqyRtqJ62QdLFPeoRQAPe1Bt0tpdJ+rCkzZIWRcSoNPEfgqQp/3izvdb2iO2Rgxqv2S6Abs047LaPl3SXpGsiYt9M14uIdRExHBHDczSvmx4BNGBGYbc9RxNBvz0i7q4W77G9uKovljTWmxYBNGHaoTfblnSrpO0R8eVJpfskrZF0Q3V7b086RD1nvq9Y/vOFt9V6+a9+8ZJi/W2PPVTr9dGcmYyzr5B0maTHbW+pll2niZB/2/blkp6VVP5XB9CqacMeEQ9Kcofyuc22A6BXuFwWSIKwA0kQdiAJwg4kQdiBJPiI6zFg1vL3dqytvbPe5Q/L119ZrC+77d9qvT76hyM7kARhB5Ig7EAShB1IgrADSRB2IAnCDiTBOPsx4Kk/7PzFvhfNn/GXCk3p1H8+UH5CRK3XR/9wZAeSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJBhnPwq8ctHZxfqmi24qVOc32wyOWhzZgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiCJmczPvlTSNyW9Q9JhSesi4hbb10v6rKTnqqdeFxEbe9VoZrtXzCrW3zm7+7H02/cvLNbn7Ct/np1Psx89ZnJRzSFJn4uIR22fIOkR2/dXtZsj4ku9aw9AU2YyP/uopNHq/n7b2yUt6XVjAJr1pv5mt71M0oclba4WXWV7q+31tqf8biTba22P2B45qPF63QLo2ozDbvt4SXdJuiYi9kn6mqTTJZ2liSP/lBdoR8S6iBiOiOE5mle/YwBdmVHYbc/RRNBvj4i7JSki9kTEqxFxWNLXJZU/rQGgVdOG3bYl3Sppe0R8edLyxZOe9ilJ25pvD0BTZvJu/ApJl0l63PaWatl1klbbPksToy87JV3Rg/5Q01++sLxYf+i3lhXrMfp4g92gTTN5N/5BSZ6ixJg6cBThCjogCcIOJEHYgSQIO5AEYQeSIOxAEo4+Trl7ohfEOT63b9sDstkcm7Qv9k41VM6RHciCsANJEHYgCcIOJEHYgSQIO5AEYQeS6Os4u+3nJP3XpEWnSHq+bw28OYPa26D2JdFbt5rs7bSIePtUhb6G/Q0bt0ciYri1BgoGtbdB7Uuit271qzdO44EkCDuQRNthX9fy9ksGtbdB7Uuit271pbdW/2YH0D9tH9kB9AlhB5JoJey2z7f977aftn1tGz10Ynun7cdtb7E90nIv622P2d42adkC2/fb3lHdTjnHXku9XW/7Z9W+22L7wpZ6W2r7R7a3237C9tXV8lb3XaGvvuy3vv/NbnuWpP+QdJ6kXZIelrQ6Ip7sayMd2N4paTgiWr8Aw/ZvSHpR0jcj4oPVshsl7Y2IG6r/KE+KiD8dkN6ul/Ri29N4V7MVLZ48zbikiyX9nlrcd4W+flt92G9tHNnPlvR0RDwTEQck3SlpVQt9DLyIeEDS3iMWr5K0obq/QRO/LH3XobeBEBGjEfFodX+/pNemGW913xX66os2wr5E0k8nPd6lwZrvPST90PYjtte23cwUFkXEqDTxyyNpYcv9HGnaabz76Yhpxgdm33Uz/XldbYR9qu/HGqTxvxUR8auSLpB0ZXW6ipmZ0TTe/TLFNOMDodvpz+tqI+y7JC2d9PhUSbtb6GNKEbG7uh2TdI8GbyrqPa/NoFvdjrXcz/8bpGm8p5pmXAOw79qc/ryNsD8s6Qzb77I9V9Klku5roY83sD1UvXEi20OSPqHBm4r6PklrqvtrJN3bYi+vMyjTeHeaZlwt77vWpz+PiL7/SLpQE+/I/0TSn7XRQ4e+3i3psernibZ7k3SHJk7rDmrijOhySSdL2iRpR3W7YIB6u03S45K2aiJYi1vq7dc08afhVklbqp8L2953hb76st+4XBZIgivogCQIO5AEYQeSIOxAEoQdSIKwA0kQdiCJ/wNGNvRI2D7VDgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "X = X_test[[0]]\n", - "plt.imshow(X[0])" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "model = Model(full_model.input, full_model.layers[-2].output)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[ -2.4457285, 1.4092684, 5.032708 , 7.488841 , -10.394337 ,\n", - " -1.645153 , -25.219566 , 21.458466 , -5.5855045, 1.6345799]],\n", - " dtype=float32)" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y = model.predict(X) - model.weights[5].numpy()\n", - "y" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "6\n", - "(3, 3, 1, 4)\n", - "(4,)\n", - "(3, 3, 4, 8)\n", - "(8,)\n", - "(200, 10)\n", - "(10,)\n" - ] - } - ], - "source": [ - "print(len(model.weights))\n", - "for weights in model.weights:\n", - " print(weights.shape)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "in_json = {\n", - " \"in\": X.astype(int).flatten().tolist(), # X is already 1000 times to begin with\n", - " \"conv2d_1_weights\": (model.weights[0].numpy()*(10**3)).round().astype(int).flatten().tolist(),\n", - " \"conv2d_1_bias\": (model.weights[1].numpy()*(10**3)*(10**3)).round().astype(int).flatten().tolist(),\n", - " # poly layer would be (10**3)**2=10**6 times as well\n", - " \"conv2d_2_weights\": (model.weights[2].numpy()*(10**3)).round().astype(int).flatten().tolist(),\n", - " \"conv2d_2_bias\": (model.weights[3].numpy()*((10**3)**5)).round().astype(int).flatten().tolist(),\n", - " # poly layer would be (10**3)**5=10**15 times as well\n", - " \"dense_weights\":(model.weights[4].numpy()*(10**3)).round().astype(int).flatten().tolist(),\n", - " \"dense_bias\": np.zeros(model.weights[5].numpy().shape).tolist() # zero because we are not doing softmax in circom, just argmax\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'scale': 1e-33,\n", - " 'out': [-2.4457285404205322,\n", - " 1.4092683792114258,\n", - " 5.032708168029785,\n", - " 7.4888410568237305,\n", - " -10.394336700439453,\n", - " -1.6451530456542969,\n", - " -25.219566345214844,\n", - " 21.458465576171875,\n", - " -5.585504531860352,\n", - " 1.6345798969268799],\n", - " 'label': 7}" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "out_json = {\n", - " \"scale\": 10**-33,\n", - " \"out\": y.flatten().tolist(),\n", - " \"label\": int(y_test[0].argmax())\n", - "}\n", - "out_json" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "with open(\"mnist_convnet_input.json\", \"w\") as f:\n", - " json.dump(in_json, f)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "with open(\"mnist_convnet_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "interpreter": { - "hash": "11280bdb37aa6bc5d4cf1e4de756386eb1f9eecd8dcdefa77636dfac7be2370d" - }, - "kernelspec": { - "display_name": "Python 3.8.6 ('tf24')", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.6" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/models/mnist_convnet_input.json b/models/mnist_convnet_input.json deleted file mode 100644 index f3af5d9..0000000 --- a/models/mnist_convnet_input.json +++ /dev/null @@ -1 +0,0 @@ -{"in": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 185, 159, 151, 60, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 254, 254, 254, 254, 241, 198, 198, 198, 198, 198, 198, 198, 198, 170, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 114, 72, 114, 163, 227, 254, 225, 254, 254, 254, 250, 229, 254, 254, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 66, 14, 67, 67, 67, 59, 21, 236, 254, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 253, 209, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 233, 255, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 254, 238, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 249, 254, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 254, 187, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 205, 248, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 254, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 251, 240, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 221, 254, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 203, 254, 219, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 254, 254, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 224, 254, 115, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 254, 254, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 242, 254, 254, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 254, 254, 219, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 254, 207, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "conv2d_1_weights": [-323, 245, -231, -56, -193, -216, -16, 222, -643, 277, 279, -58, -576, -356, -55, 94, -892, -361, 290, -135, -577, -267, -110, 329, -242, -410, -209, 387, -307, -641, 197, 132, 261, -479, 538, 299], "conv2d_1_bias": [95128, 80453, -40111, -63827], "conv2d_2_weights": [-12, -209, 66, -262, 38, 113, -19, -277, -134, 23, -27, 7, -173, -9, 8, 261, 184, -216, 77, -57, 115, 354, 62, -78, 120, -187, 109, -124, -23, 164, 160, 246, -28, -162, -82, -89, -111, -179, -23, -77, -250, 264, 61, -118, 99, 50, -150, -34, 72, -360, -62, -229, 24, -31, 165, 90, 21, -12, -319, 50, 57, -46, 220, 279, 420, 228, 86, -137, -17, 141, -103, -252, 290, -43, 89, 148, -377, 149, 282, -189, -358, 30, -67, -238, 104, 87, -308, 101, -110, -88, -58, 69, -130, -64, -183, 264, 242, 181, -197, -255, 283, 198, -229, -83, 72, -132, -241, -125, 93, 423, -305, 368, 298, 60, 6, -72, 237, 186, 71, -263, 89, -178, -177, -86, 53, -131, -29, -399, 16, 25, 19, -265, -148, -167, -13, 228, -420, -131, 35, -180, 148, -22, 449, 379, -40, 21, -227, 97, 61, 154, -185, -125, 18, 274, 149, -23, 299, 19, -61, -166, 259, -282, 117, 1, 55, -259, 380, 2, 358, -40, 124, 148, -149, -288, 230, 25, -261, 105, 213, 48, 254, -190, 214, -296, -61, 337, 57, 73, 332, 141, -253, -254, -64, 37, -159, 125, -166, 191, 109, 99, 95, -240, 37, -21, 14, 288, -9, 53, 464, 320, -328, 7, -105, -63, -219, 333, 154, 295, -226, -195, 19, -313, -209, 66, -28, -218, -230, -113, 67, 50, 458, 171, 137, 199, -192, -216, -129, -200, 358, 65, -218, -167, 220, 92, -60, -53, -162, -148, 32, -144, 122, -42, -59, -222, -190, 116, 396, -68, -3, -56, -250, -244, -208, 373, 150, 14, -341, 36, 234, -147, -270, 55, 81, -432, 25, -167, -78, -92, 315, -113, -152, -51, 83, 163, -168, 71, -8, -198], "conv2d_2_bias": [-52873943001032, -28398277238011, -77845364809036, -62251962721348, -102683901786804, -8040543645620, -18125817179680, 53248528391123], "dense_weights": [-54, 130, -133, -118, -139, 84, -30, -195, 61, 44, -198, -31, 68, -59, 128, -116, 64, -89, -87, -2, 44, -75, -204, 147, 156, -83, -54, 157, -51, -54, 64, 203, -78, 167, -6, -112, 136, 271, -179, -34, -105, 264, -71, 164, -12, -208, 33, 205, -119, -91, 30, -148, -61, 40, -13, 80, 38, -23, 265, -179, 50, -70, 45, 104, -120, 14, -229, 10, -9, 113, 154, 65, 11, -53, -159, 146, 58, -118, 117, -65, 194, 183, 19, -335, -61, 47, 477, -223, -97, 22, -70, -144, 8, -162, -133, -152, -10, -232, -5, 222, 173, 33, 71, 108, -59, 4, 59, 35, 98, -107, -154, -116, -51, -108, -38, -173, 196, 155, 76, -99, -39, -158, 136, -87, -254, -188, 201, -182, 9, 134, -111, -113, -7, 44, -87, 22, -165, -124, 110, 48, 37, -131, -68, -199, -87, 1, 94, -141, 39, 182, 98, 124, 151, 95, -170, 17, -133, 3, -89, 33, -29, 361, -62, 78, 44, -157, 419, -57, -135, -526, 108, -72, 83, 93, -415, -57, -77, 2, 53, 10, -31, 45, 61, 87, -119, -159, -234, -57, -29, 158, -53, 60, 128, 110, 32, -57, -144, -13, -55, -195, -126, 18, -12, 130, -216, 10, -125, -189, 126, 174, -37, 104, -4, -35, 209, -25, -114, -139, 43, -178, 96, 193, -135, -485, 2, -18, 322, -288, -70, -99, 264, 73, 76, 188, -472, 183, -57, 283, 11, -99, -85, 223, -49, 213, 77, -15, 183, -105, -22, -268, -41, -25, 79, 206, -308, 144, -61, -35, 43, 44, -27, -239, -203, -96, 82, 167, 68, -45, 241, 22, 50, -243, 143, -29, -140, 17, -14, -83, 198, 92, -164, -271, 61, 118, -271, 125, -12, -116, 93, 186, 224, 126, 64, -60, 156, -331, -52, -225, -268, -51, -41, 359, -309, -115, 149, 293, 88, -5, 63, -389, 0, -34, 126, 221, -418, 98, 64, 249, -103, -7, -74, 129, -57, 81, -77, -111, 174, -291, -75, -7, 85, -106, -79, -113, 170, 245, 126, -75, -12, 51, -56, -4, -44, 87, -122, -5, -86, 49, 260, -203, 85, 3, 57, -63, -86, -160, 269, -72, -26, 118, -122, -72, -310, -194, 153, 24, 332, -120, 0, -152, 267, 432, 123, 94, 351, -406, -5, -260, -24, -209, -137, 25, 13, -45, 88, 162, 58, 11, -32, -139, 82, -118, 180, -13, -455, -180, 47, -149, -198, 159, 109, -36, -183, -368, 49, 319, 221, -33, -68, 5, -160, -166, -44, 32, -166, 4, -108, -31, 143, 132, -22, -86, 70, -226, 3, -11, 122, 229, 54, -67, -4, -164, -122, -34, -135, -63, 7, 32, 5, -21, -27, 149, -178, -116, -30, 7, -63, 11, 96, -72, 151, -204, -141, -105, -9, -11, 197, -176, 104, 102, 149, -133, 180, 49, -30, 96, 11, -252, 178, 289, 131, -97, -12, 115, 147, -77, 48, -120, -72, -173, -127, 208, 14, -343, 364, 83, 163, -26, -158, -314, 126, -118, -4, 122, 110, -81, -164, 153, 66, 137, -186, -2, -254, -55, 7, -153, 41, 344, 30, 18, 16, 43, -194, -219, -48, 236, -77, 94, 244, 137, -2, 71, -51, -62, -181, -12, -228, 32, -45, -48, -117, -160, 25, -209, 0, -14, -120, 38, 66, 51, -52, -113, 42, 40, -129, -114, 236, -380, -53, 25, -190, 232, 207, -1, -399, 16, -139, 258, -107, -300, 31, 126, 77, -6, 247, 6, 1, -88, -199, -223, -91, -149, -114, 126, -66, -115, -221, -14, -88, -31, 73, -111, -4, 59, -28, -72, -64, -97, 109, 251, -18, 126, -161, 78, 64, -72, -123, -235, 16, 28, 111, -103, 9, -6, -136, 28, -70, 117, -75, 39, 23, -71, 77, -92, -259, 83, -163, -31, 309, 172, 86, 120, -7, 16, -40, -17, 121, 35, -156, 118, 43, -1, 157, 95, -303, -8, -229, 234, -66, -53, -127, 229, 101, 176, 183, -585, -196, 220, -118, -24, -89, 19, -188, 14, -199, 33, -137, 13, -66, -13, 95, -261, -102, -16, 179, -147, 31, -59, 92, 117, 88, -34, -154, 204, 29, -55, -321, -23, -85, -71, 110, 181, -40, 192, -64, 5, -246, 21, 84, 111, 39, 163, 199, -40, -203, -328, -116, 18, 51, -101, -117, 174, -81, 52, 153, -135, 149, 14, -49, -68, 42, 155, -88, -3, -217, 205, 142, 97, -216, -62, -46, 173, 179, 205, 1, -337, -147, 255, -35, -11, -70, -63, -78, 127, 114, 138, -153, 201, 62, 7, -23, -339, -10, -86, 22, -182, -32, -6, 183, -68, 67, -159, -17, 10, -123, -141, -139, -36, 149, 85, 43, 92, -228, 127, 20, -25, -261, 45, -2, -110, 294, 129, 185, -171, -96, -613, -280, -149, 304, 33, -240, 50, -49, 186, 241, -47, -175, 192, -8, -197, -107, 30, -40, -12, -482, 298, 234, -56, 89, 49, 99, -152, -355, -263, 266, 47, 138, -3, 16, 108, 75, -20, -43, 68, 276, -73, 165, -7, 91, 22, 44, -126, 170, -175, 71, 33, 85, -4, 136, 0, 34, -8, -184, -298, 22, -132, 143, -41, 60, 171, -48, 30, -210, -337, 210, -19, 15, 85, 32, 25, 120, -348, 100, -92, 59, -155, 4, -38, 0, -31, 151, 6, 121, -1, 106, -168, 43, 110, 3, -32, -91, -119, 275, 111, -41, -56, -71, -48, 39, -154, 145, 122, -211, -245, 149, 66, 99, 110, -46, 71, -112, -86, 51, -127, 31, 70, -15, 91, -5, -160, -43, -63, -119, -211, 22, 188, 19, -158, 113, -4, -106, -252, -176, -237, 0, -9, -12, -95, 113, -14, 59, -104, -126, -304, 325, 141, 11, -131, 139, -95, 72, -172, -190, 29, 84, -48, 73, -64, 162, 18, 73, 240, 87, 175, 102, -229, 262, 82, -143, -146, -253, 95, 137, -120, -14, 113, -351, 6, -165, 53, 182, -26, 41, -273, -69, 147, -96, 187, 16, 108, -235, -179, 87, 67, -236, -13, 151, -181, -26, 29, -303, -41, 0, -9, 176, 77, 65, -323, 82, 22, 4, -229, 108, -78, -78, 126, -155, -226, 55, 70, -200, 144, -189, 225, 57, -136, -23, -190, 174, 280, -180, 104, -263, 304, 23, -61, 91, -259, 303, 39, 118, 135, 16, 143, 57, -159, -69, 328, -203, -170, -49, -107, 137, 74, 101, 33, -280, 81, -216, 49, 203, 196, 101, -250, 107, 13, -209, 94, -186, 121, -344, 92, -145, 108, 103, -273, 29, 14, 127, 95, -8, -256, -45, 14, -175, 76, 37, 72, 14, -93, 100, -246, -9, 118, 186, -57, -42, -45, 22, 99, -90, 202, -46, 121, 130, 33, -34, 150, -14, 100, 57, 89, -8, -65, -185, 232, -28, 111, 57, -227, 67, 28, 166, 199, -112, -204, -94, -56, 192, 108, -85, -261, -38, 112, -336, 226, -30, 201, -164, -133, 142, 41, 69, -58, 98, 45, 66, 54, -65, 103, 73, -206, 123, -164, 237, -122, 54, -71, -1, 78, -44, 72, 161, 73, 145, -94, -120, 71, 21, -274, 98, -165, 21, 22, -17, -13, 58, 103, -89, -9, 306, 146, 122, -174, 163, -381, 187, 160, 116, 227, 127, 191, -138, 15, -135, 280, -32, -40, -356, 9, 28, 11, 153, 192, -38, -56, -254, 7, 176, 170, -235, -69, -77, 114, -52, 369, 224, -16, 194, -50, 238, -171, -33, -60, -51, -156, 279, -41, 41, 249, -59, -328, 276, -205, -34, 158, 4, 59, -17, -370, 111, -27, 182, 6, -158, 32, 146, -70, -128, -153, 196, -127, 36, 134, -50, 39, 115, -200, -181, -93, 205, 4, 1, -154, 48, -84, 29, -72, -21, -106, -4, 6, 14, -150, -44, 20, -121, -78, 288, 16, 50, -14, -4, -241, 90, 69, -42, 134, 174, -73, -39, -58, -88, 36, 45, 6, -206, 8, 108, -85, 131, 129, 17, -59, -85, 12, 216, -33, 58, -278, -122, -152, 207, -1, -17, -58, 111, 167, 54, -77, -68, 145, -96, 86, 23, -118, 233, -49, -139, -36, 124, -126, 124, -5, -52, -50, 163, -195, -48, 4, 85, -125, -10, -212, 31, 1, 70, -122, 21, -101, 91, -174, 130, -184, 59, -17, 200, -9, 278, 117, -9, 172, 320, -269, 5, -104, -2, 56, 319, -415, -323, 191, -99, 140, 170, 197, -437, 25, -111, 190, 9, 90, 21, -291, 12, -13, -20, 61, -106, -121, 169, -289, -59, 27, 111, 33, -18, 40, 70, 165, 34, -85, -64, 24, 181, 89, 1, 61, -103, -66, 169, 9, 120, -67, -19, -64, 176, -129, 146, -145, -143, -68, 161, 151, -35, -97, 174, 140, 68, -122, -22, 14, -37, 165, 70, -95, 318, -78, 139, -282, 104, 122, 243, -146, -106, 146, 31, 148, 109, -129, -155, -343, -43, 135, 185, 123, -78, -31, -176, 96, -46, 35, -198, 1, -121, -28, -116, -105, -77, 161, -135, -150, 65, 126, -18, -57, 43, 3, 29, -103, -96, -39, 170, -15, 64, 95, 134, 2, -47, -111, -22, -59, -42, 20, 82, 97, -1, -27, 67, -37, -89, -136, 79, 6, 244, 5, 8, 127, -144, 103, -163, 0, 152, 55, -316, 22, 46, -108, 111, -81, -50, -35, 123, 29, 127, 8, -42, 94, -156, 288, -229, -17, -38, 64, 73, 16, -15, 37, -12, -211, -46, -93, -202, 13, 99, 49, -88, 108, 66, 140, 77, 5, 32, -74, 106, 40, -124, 60, -38, 111, -323, 182, -4, 172, 97, -11, 111, -26, 122, -25, -233, -82, 8, -52, 90, -1, 113, -36, 136, 13, 32, 61, -35, 144, -89, -34, -68, 71, -282, -90, 58, -125, -244, 101, -308, 183, -131, -482, 255, 131, 114, -262, -177, 44, -60, -17, 166, 44, 83, 105, 39, 84, 156, -159, 91, -11, -234, 34, 136, -82, 286, -191, 282, -89, -46, -256, 152, 42, 115, -82, -46, 82, 107, -55, 16, -33, -37, -83, 160, 64, 141, 95, -141, 239, 115, -118, -124, 287, -229, 51, -46, 22, 249, 6, -94, -158, 27, -13, -91, -90, -102, 199, 81, -84, -146, -96, -45, -80, 100, -240, -184, -41, -157, 61, 111, 135, -33, -136, 20, -3, 99, -231, 39, -174, 43, -67, -93, 167, 22, 39, -30, -219, 13, -78, 158, 86, 43, -45, 29, 24, -72, 148, -5, -317, 134, -265, 77, 124, 57, -190, 193, -50, 16, 21, -57, 8, 27, -17, 189, 87, 4, -151, -108, -19, -161, 202, -256, -264, 88, 253, -87, 39, 173, -77, -44, -127, 32, -107, 144, -132, 175, -93, 101, 33, -21, 165, 42, -391, -63, -164, -102, -14, 55, 24, -49, 87, 83, -40, -55, 183, -594, 38, 31, -126, 280, 7, -409, 279, -340, 133, -104, -91, -82, 134, 84, 126, 6, -49, -145, 57, -502, 131, -381, -283, 107, -104, -423, 228, -80, 143, 21, 101, 76, 129, -174, 88, 31, -273, 45, -67, 239, -134, 173, -111, -278, 107, -21, -293, 16, -33, -52, -87, 21, 14, -42, 87, 129, -17, 129, -91, -45, 196, 215, 124, -27, 35, -3, -23, -43, -182, 158, -65, 91, -66, -111, -151, 42, -35, 8, 42, 136, -61, 96, 271, 39, 173, -335, 108, -149, 196, 0, 253, 188, 48, -176, 47, -61, -268, -101, -56, -335, -13, -255, 21, 38, 83, -119, 66, -23, 79, -39, -106, 185, 217, -130, 48, -213, -130, 201, 4, -200, -305, 235, 72, -323, 54, 239, -123, -44, -21, -76, -109, 143, -155, 63, 14, 63, -42, 166, 14, -26, 222, 62, 92, -77, -40, 61, 9, -96, -215, -360, 115, 61, 126, 290, -108, -256, 484, -69, 103, 84, -509, -277, 216, -97, 146, 4, 40, -44, 30, 112, 104, 84, -176, -17, -93, 48, 27, -91, -57, -119, 96, -170, 58, -51, 64, 54, 56, 206, 99, -171, -80, -121, -14, -39, -69, 50, -210, 121, -126, -77, -52, 344, 15, 96, -53, 48, -325, 7, 227, -145, 134, 122, -14, 31, -130, -42, -34, -4, 51, -201, 4, -141, 250, 146, 30, 90, -161, 78, 77, -353, 82, -33, -14, 142, -137, -319, 85, -98, 176, 115, -121, -228, 146, -143, 88, 50, 138, 29, -72, 0, 94, 104, -176, 59, -124, -48, 121, 84, -60], "dense_bias": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]} \ No newline at end of file diff --git a/models/mnist_convnet_output.json b/models/mnist_convnet_output.json deleted file mode 100644 index 7846295..0000000 --- a/models/mnist_convnet_output.json +++ /dev/null @@ -1 +0,0 @@ -{"scale": 1e-33, "out": [-2.4457285404205322, 1.4092683792114258, 5.032708168029785, 7.4888410568237305, -10.394336700439453, -1.6451530456542969, -25.219566345214844, 21.458465576171875, -5.585504531860352, 1.6345798969268799], "label": 7} \ No newline at end of file diff --git a/models/mnist_input.json b/models/mnist_input.json index 5eaa8b4..84109ae 100644 --- a/models/mnist_input.json +++ b/models/mnist_input.json @@ -1 +1 @@ -{"in": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 185, 159, 151, 60, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 254, 254, 254, 254, 241, 198, 198, 198, 198, 198, 198, 198, 198, 170, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 114, 72, 114, 163, 227, 254, 225, 254, 254, 254, 250, 229, 254, 254, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 66, 14, 67, 67, 67, 59, 21, 236, 254, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 253, 209, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 233, 255, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 254, 238, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 249, 254, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 254, 187, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 205, 248, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 254, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 251, 240, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 221, 254, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 203, 254, 219, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 254, 254, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 224, 254, 115, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 254, 254, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 242, 254, 254, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 254, 254, 219, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 254, 207, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "conv2d_weights": [29882986, 15290326, -7997836, -63858598, -161742687, -68786010, -53411420, 127350375, -76852612], "conv2d_bias": [620894313], "dense_weights": [3818258, 108742647, -119585775, -213711053, -232101172, -339941859, -30932155, 161491498, 4027086, 360467434, 37649274, 150399670, -162851781, -101843640, -212316036, -268077135, 147762373, 149267316, -40155027, 313633114, 158014074, 15674748, -115823545, -82842663, -98096415, -347847193, 40366080, 37587624, 3368193, 257655531, 145488903, -13548969, -201761544, -137923047, -191297352, -329691261, 4769873, 18221563, 91999270, 267232239, -74195370, 45100767, -134344295, -170335159, -250726849, -275279105, -102288812, 202306598, -3435975, 311258942, 99559255, 81282794, -77820748, -168162301, -73334053, -231047705, 141348258, 15359291, 48566453, 206049129, 315540, -31253137, -48393011, -68345942, -169538423, -215245351, 214732051, 13691378, 49534410, 173291296, -10581255, -177423015, -4193287, -64744473, -77691101, -174118355, 210607141, -144201785, 54432850, 17351603, -118023902, -180555806, 176066160, -148123637, -227306515, -370177776, 98194443, -49459044, -35332207, 20510616, -62782511, -140362293, 116606958, -148003474, -69828302, -189481333, 162943020, -66808462, -131723225, -29177776, -117705829, -93740433, 89784957, -87270975, -232389539, -199209839, 104846001, -137789994, -65676503, -91706716, -168991238, -19825825, 85867338, -25726324, -192337081, -105294831, 186943933, -99974096, -76344743, -141104415, -103673048, 150785685, -23833759, -176147625, 55820320, -246972010, 69314145, -206155553, -136397660, -122439966, -149608821, 39465316, -724549, -146404088, 136147350, -196571380, 124292865, -227938890, -155369490, -145008162, -126023337, 176146716, -49271755, -187462687, -47845773, -128778160, 94157174, -114631481, -49117420, -157272205, -64601727, 59045929, -71960509, -114619821, 53064141, -117826834, 148151517, -161615163, -60066581, -147888914, -110657215, 96162841, -80613226, -120561890, 68864517, -71403384, 164020836, -125021607, -41652959, -49521137, -121882267, -165151641, -57929192, -225459605, -240129530, 23171922, 233708084, -154209301, 138945460, -44139732, -35048690, 130481124, -168552428, -149660513, 108646557, -165824518, 174766317, -24853729, -18396536, -91208175, -57921182, -166165397, -148373559, -87071404, 123097382, -134294331, 243094593, -144888654, -16404497, -47024328, -89572623, -137431011, -144061983, -156079069, -87255567, -178698078, 270578772, -201444209, -52123949, 87356068, -11474991, -105833165, -189440966, -51644742, 51706150, -119618908, 216698617, -55200640, 85420355, 58763765, -27294204, -75796127, 25420012, -51905766, -162862644, -174434140, 108351804, -129536822, 31994201, 61607540, -31889439, -69548219, 71060687, -101974331, -57762954, -152335510, 11376565, 1495305, -1026170, 111969836, 85137725, -129050836, -106184177, -224540055, -290058404, -346861601, 39212730, 9398340, -74005507, 189431891, 42714916, 169045776, -88923194, -215022489, -248716891, -174696147, 105953820, 239657715, -27718624, 330935985, 97489618, 101943724, -135115907, -80561094, -173837364, -165963903, 17333835, 245692596, 62123623, 325890303, -814345, 54763578, -109727390, -117168903, -293320835, -208856806, 1091189, 237501815, 5683253, 356337637, 141436964, -22391014, -131127581, -254786402, -288271964, -333840907, 77136233, 2186547, -68389341, 300900817, -46700813, 48110224, -216689199, -238713488, -124601036, 13526227, 123993963, 201869830, -52214593, 230439812, 129179358, -63595444, -157921419, 135667905, -43624885, -318396956, -39636489, -84240146, 45545764, 166530356, -100615881, -92698805, -25224751, -41429427, -147097051, -105628736, 91944873, -9895375, -78728177, 97122617, -253090262, -85737869, 77229083, 14672225, -41113805, -317850858, -32318659, -115262114, -83947897, 22999158, -113556348, -167119712, 100026041, 178696111, 195357, -211843580, 30031327, -79840414, -132720128, -151013434, -115623541, -2112459, 114620268, -2681352, 115575723, -137093067, 86387619, -149173155, -105622932, -161681294, -141678080, -15065121, 53323451, 38293906, 181262434, 3350697, 44437669, -104857415, -119773015, -129886389, -79283558, -25128417, 78995980, -25520321, 228903979, -220521241, 27573947, -170067728, -98001093, -155410036, -105112284, -7937375, 66297717, 11150268, 209800079, -53424943, -32210730, -208708555, -148699522, -150062129, 21240154, 75330615, 81794232, -59134856, 82300834, -83591118, 69214530, -204189166, -37324812, -220228940, 7022878, 51906820, -11232657, -73647216, 174699992, -67158274, 21189939, -270277381, -102573723, -142665848, -40088512, 50268874, -17509282, -70118673, 213860676, -47047004, -11599196, -272754401, -29911440, -207823709, 55423710, 94976567, -12977970, -50555672, 150202215, -16754586, 61072726, -210166603, -66916004, -120694540, 567422, 68651401, -27527824, -26570756, 164011523, -25196170, 79616763, -231557414, 7155176, -157747105, -16875325, 68001769, -127661854, -52934304, 207102850, 21841306, 115356810, -210704908, -8000439, -43383677, -31730250, 51901292, -148536652, -73984466, 150258467, -72737783, 83517723, -236441016, -65244377, -179480135, -47152773, 2203094, -217576712, -78146815, 187438965, 38156401, 108854219, -201153368, -131218731, -121569715, -9540315, 87163620, -203765735, -177891225, 176374927, -11095613, 147064954, -231919944, 64954162, -42209446, -93075849, 21120418, -145423904, -219129384, 246564478, 11005052, 126575917, -140191063, -54492526, -28635008, -57680003, -139161438, -163629144, -86627670, 208166033, -36856215, 54197531, -178343564, 58995072, -49185857, 93957968, -163557112, -309847355, -142983600, 78077383, -189433336, 153298154, -191783160, -67383483, 33142749, 38807906, -36944635, -105404064, -89152247, -71891837, 13217648, -10805402, -61900761, -52706566, 181395993, -71994938, -254423410, -195488229, -103253685, -163945988, -182922900, 56779638, -70261933, -88687733, 140411377, -29648241, 26461033, -90790845, -124184616, -173188865, -238178611, 77018201, -37151586, 81081867, 273981184, 45834117, 83530001, -183634236, -147834212, -267817080, -309596419, -1131493, 185659245, 63537195, 434077621, 23478935, -3850210, -92801064, -26929053, -149868608, -241802961, -99649362, -22077102, 16940523, 286850780, -163366094, -152722657, -131495655, -982652, 145133048, -262342811, 7559653, 95150307, -141390041, 32960959, -251655668, 104160212, -81283122, 163923502, 61760284, -209114403, -7560930, 80893956, -56956638, -127643138, -85333541, -116478831, 3459214, 125330806, 270326674, -146418244, -43434884, -56406453, -58266435, -200248823, -75559810, -80933496, 945269, 59085753, 238492802, -153682753, 4594877, -61164081, -109109960, -233265027, -85332371, 92009284, -8798091, 69813065, 280661404, -209286988, -53217541, -50795387, -165627167, -207753778, -29350089, 25728449, 41791838, 31388916, 244866088, -40166594, -82439154, -117039360, -108573884, -222779959, -70690967, 50397396, -883945, 19669270, 210441470, -34226172, -20603484, -199454889, -90114057, -213999525, -12791678, 67963049, 35874292, 19394342, 218239307, -21156726, -194793239, -117365092, -92380501, -238704875, -7205652, 25256230, 1152313, -44524230, 157289833, -103685752, -107143052, -186586246, -27744342, -237958372, 747923, 45532212, -27943332, -52338440, 164253995, -126760930, -156156436, -226293877, -23738630, -222944811, 7574089, 89435883, 35079025, -24864405, 188512683, -43791495, -97925499, -199565902, 24054902, -134479448, 42796209, 58499567, -61411746, -42457100, 127036452, -44809237, -75471729, -287982702, 23715440, -157914206, 51236283, 98317824, -29868130, -39902546, 157734469, -23913629, -7546532, -218188673, 57316292, -118982986, 89231052, 92842788, -105643995, -70298612, 179237068, -20031458, -29424923, -317300975, 67562215, -128869668, 35512511, 112209208, -69561489, -55150904, 184431687, 34485944, 35248604, -262362719, 43164622, -86914137, 84605247, 135283753, -114905663, -64469606, 255069464, 55304497, 22368366, -240880564, 13939027, -146330252, 22854667, 104348272, -148740023, -88196136, 253600091, -29212398, 52876964, -292499542, 6559274, -115562819, 13096131, 84180407, -178497836, -132406414, 252162427, -6213690, 47198854, -88850677, -7557810, -168215752, 58809090, 122039460, -185019270, -104079999, 239225045, 11677527, 80581881, -254674941, -10547819, -169291660, 52446704, 113624111, -294158697, -157264739, 226636305, 92082620, 47450900, -171547949, -1092847, -102005892, -167002767, -44474833, -318365216, -166034639, 234388903, 52819513, -35002701, -200882018, -85258782, -147425234, 33682033, -262929142, -82278185, -141107097, 97418264, 69415070, -139943883, -150998577, 50842129, -11720793, 109682642, -157213941, -94352201, -170344517, -24916183, -34747075, -63399628, 48192378, 5698941, 109499536, 44147741, 82719326, -101090185, -223290280, -317658126, -158477515, 1799362, 289470941, -52067459, 408025920, 131343305, 122582622, -57650190, -73449761, -311904997, -215179622, 117173389, 38525730, 64028926, 338577598, -65014370, 2275777, -309096098, -102649622, -196754530, -77040456, -38070954, -119472094, 39103117, 202788174, 33568453, -73952273, -40346969, 58716390, 46620790, -323028833, 125874460, -73478483, -32696161, -14787006, -205112979, 18729184, -378509581, -10007780, 164441749, -66363417, -197506040, 221344441, -182266250, -178566426, 2154907, 42204786, -204095632, -12476224, 164260522, -163589031, -211155593, 54239333, -153764904, -286326736, -92237167, -31488147, -177810177, 6035550, 121863112, -185527951, -185453400, 133529454, -180510119, -416145265, 50800338, 30059317, 1563224, 30746974, 224171281, -58203064, -32955334, 211787790, -131108046, -294570714, 64920105, -72104648, -106895894, 65915510, 210405737, -81163466, -194581613, 122322761, -123829007, -338363677, -29948736, -1573215, 1873899, 25065126, 206342459, -27370928, -143479213, 42642053, -144579858, -250500202, 15067916, 29424582, 7714366, 64323522, 211177319, 9677541, -207441866, 55882502, -2154560, -150250614, 19021645, 13345595, -62453315, -667170, 191368297, -15034183, -155580267, -28502839, -24960447, -125471875, -7906649, -5479509, -61641186, -45029916, 131950036, -74462682, -293242663, -89639626, -40773589, -124533914, 11881507, 40662635, -23155147, -48294161, 129290566, -5995518, -179301262, -145976141, 13278046, -84709622, 85583411, 72477639, -74866027, -36276050, 137989879, -9692416, -12166432, -128639027, 62097326, -23103479, 31380326, 49782265, -25505278, 351252, 119118407, -24774862, -14222709, -102591060, 56107987, -32778207, 93173482, 37465580, -72935522, -25923023, 119289353, 32205980, -41988805, -144923836, 52359980, -11343359, 16418815, 68485864, -106600150, -34404058, 156911120, 44899363, -38702790, -137999058, 79214819, 3712866, 8248577, 42354107, -118497141, -133502945, 120808870, -45364019, -56729734, -233713686, 28125318, -65800980, 51132038, 131821826, -141580284, -31923812, 183229849, 69989473, -35446722, -221757129, 74926436, -75006284, 33967514, 92702866, -98255739, -67340687, 203931049, 15777605, -9771460, -188938707, 72636135, -72664849, 8138862, 79608783, -180191994, -181419119, 221130118, 46287850, -111161619, -190453485, 35757758, -170670703, -141628578, 135133833, -212895468, 26313093, 252815485, 121350430, -37599277, -325360745, 66008747, -214416385, 38228069, 56952629, -226964369, -195431039, 195568249, 56497648, 163955495, -252628028, -34915984, -122711129, -37047334, -227745533, -228925884, -78523315, 229273051, 139381006, 22575917, -105588831, 60035329, -104730025, 42918723, -136649057, -172592387, -37694361, -133000374, 91612309, -118051521, 40111713, 45224242, 120858245, 17668376, 86872153, -135308877, -113634899, -167866141, -168642849, 77065915, 104084186, 37996836, 272542566, 100016475, -73895544, -177993655, 8666441, -146955922, -78729928, -58213294, 38427334, -34925673, 40863149, 96594028, -26849428, -119167976, -30476293, -166369677, -163962826, -127467483, 192075491, -35086565, 2023183, 167961136, -19673359, -199176356, -129512772, 31211570, -1036612, -63346490, 173330933, -48832562, 9664476, 68733849, -220823124, -99796310, 31335171, 167932451, -147615954, -63614845, 153718084, -109861918, -333207071, 36360245, -102746367, -295812964, -39826650, 132710278, 3876516, -47028553, 236296058, -153286785, -248888254, 67212410, 156134516, -215958685, -81612654, 179668307, -108660556, 50374351, 112513028, -73944442, -299948007, 116912141, 162353039, -174868956, -26691563, 161712363, -56177363, -24235584, 156938493, -102254376, -263409734, 38229764, -23603348, -133380443, -42815689, 139024138, -45198586, -117181450, 129736379, -95865756, -214375302, 30745111, -14484278, -100089855, 2927055, 176164553, -40910486, -177517354, 107345074, -155783817, -233036414, -7157816, -62381320, -87835848, -18267360, 149471059, -23108294, -91263026, 59204284, -53552706, -171975732, 38524501, -95964640, -87764807, -38849931, 107814021, -51219009, -2787818, 19209884, -64501524, -127853110, -9014170, -77337272, -57748307, -18890960, 156275451, 81888907, -114581779, 14235326, 21762602, -8971220, 64383380, -59563555, -75013988, -53012360, 57905279, 25863860, -33295408, -66361070, 1363514, -25797660, 25045576, -42938344, -136959910, -9655329, 72496034, -3980963, 30356292, -95664874, 60276229, 17330874, 114172556, -18754901, -172128111, -38178425, 89445300, -17642273, -6777080, -72680190, 17097740, 56711636, 40550400, -66847406, -153771222, -84983096, 112611257, 35228547, 63176535, -53241026, 65788746, 89641012, 19714033, -13602601, -155493259, -87334648, 119997524, -4587551, 21804694, -35908699, 58043770, 45974296, -48517581, 48167683, -128266871, -82831480, 152296647, 40483154, 1463307, -28524490, 106758036, 17540880, 38122132, 31757422, -252888352, -37676513, 132721201, 1380480, 93822747, -37995391, 81423208, 14544692, 11293304, 16597364, -154815614, -211150080, 90938710, -21900043, 11325408, -109736301, 6964650, -128392160, 70506543, -73659763, -229088634, -192086458, 198618218, 142917976, -38577, -60119312, 18819671, -119779348, 24874056, -35152413, -393550366, -175321221, 189141378, 88420726, -105223574, -153292596, 84275149, -187847614, -9274432, -225869656, -232358724, -73852174, 207355708, 103008762, -15800735, -188903570, 42330042, -166236892, -101536319, -155043021, -78730695, -172894716, 233799294, 91150895, -176362112, -156888887, 133423626, -59331629, 76485202, -163142741, -135783717, -84398724, 142141461, 42057056, -40665261, -7228713, 83087914, -34941554, 91632046, -161113203, -274288774, 114179358, -150392339, -220757574, -74070431, 100293472, 101598300, -4370419, 33613238, -18821029, -19734090, -45432802, -148407698, -146846056, -8094976, -42884331, 13987172, 168856978, 180608809, -127403215, -293347478, -94831206, -94315588, -33664551, -91521047, 127244532, -24554420, 88228747, -22919279, 24517953, -229536802, -90866335, -28441694, -176717967, -78161828, -16974783, -19806255, -187313229, 106437035, 1648803, -245929480, -28753037, 92676729, -170784637, -150030777, 169645414, 1159084, -208617717, -27581537, -40799245, -178004891, 2130319, -9067812, 33251800, -123654425, 138778538, -43861847, -107546829, 39976407, 47739912, -164501444, -118871912, 52080318, -134982064, -248511210, 178099617, -41471608, -203099281, 72816744, 22663713, -102044821, -96683808, 100345619, 71826614, -190428585, 167929664, -69826320, -168498337, 66945024, 19615047, 22153366, -84149174, 110162191, -45554060, -92583135, 152611345, -97984999, -176048175, -30829092, -11307982, -74391425, -122228183, 99511452, -42171821, -74087016, 159983814, -84237196, -125925571, -16998278, -59654087, 1343690, 77576965, 77219494, -53031392, -159701109, 92319541, -59054751, -99426195, -135350376, -64508349, -51059663, 3119785, 65315247, 4578275, -136360809, 76083243, -24505025, -48245601, -14240357, -92119858, 34246378, -101312295, 50700132, -50133687, -135692462, 62945113, 31505529, 39384972, -30876394, -150187373, -2025656, 11251214, 60930938, 128173679, -8212696, 48393555, 37300617, 83212249, 16051475, -117672279, -72657086, 10795794, -13159631, 26375862, 4504563, -2742830, 3379415, 109160788, 13745765, -161666483, -81238404, -55930421, 3617464, 75691514, 16330697, -37119903, 7070845, 115447842, -43286957, -144333914, -234498143, -162168875, -12166394, 49319126, 47748756, 28421085, 2488110, 109133683, -25729721, -80765791, -216538385, -158275202, 19286951, 37603069, 29780090, 18366266, 11505883, 34739282, -18407080, -83795741, -222505197, -185868233, 51375058, 40243611, 60969189, 90410165, 67841932, 53021912, -37126362, -44447973, -267881811, -120455198, 88952348, 65840490, 14073267, 102472968, 40975828, 51768638, -116752423, -46509024, -196976721, -218722910, 103956215, 122785211, 183027729, 138118923, 77568218, 23821950, -53164899, -29837390, -149721384, -119814582, 103883736, 96279874, -6766441, 80623001, 76992601, 18511046, -117629997, 35900716, -217306048, -113312632, 70301190, 86320713, -87931059, 44265907, 59191253, -32405656, -63107036, -186632276, -223458633, -180555806, 151504323, 113097861, 93221270, -21647690, 29066203, -41251697, 65975457, -74717864, -111017190, -113477565, 61843079, 14418900, -77582851, -66285975, 7135892, -119075209, -210000381, -239597023, -112552322, -181348830, 168675169, 62604226, -34106664, -52678999, 67093328, -104375981, 6541509, 734804, 64423688, -11153678, -93554378, -181032047, -81660554, 164251998, 125451520, 17660571, 143523380, -80467254, -103084907, -281705201, -105261877, -146775052, -33849146, 106900252, 47259264, 49767718, 160852924, -147551551, -341861993, -294810236, 17670983, -65484047, -78922436, 64321116, 81472538, 93016528, 120490491, 24016311, -402273059, -205410302, 172422662, -94694309, -98577537, 115831673, -12822589, -88895857, 96407615, 37633192, -350134403, -459029019, 65414086, -144547, -165697664, 175365061, -73831409, 44632178, -83770253, 86038582, -186658174, -110389531, 97340196, -18256074, -99469297, 49662016, -131024718, -14610229, 32630995, 104042925, -141226530, -55005543, 96320197, -106572986, -227260977, 143052012, -37304591, -62042736, 92563808, 159870863, 5641519, 20371819, 88268206, -131367937, -33154074, 135995701, -146957740, -155109465, 45821626, 66564910, -144975, 4301327, 33915337, -129509255, 13650068, 80222070, -40953558, -148213401, -36412552, 29923555, 45066465, 72510310, 63666321, -28421700, -134039745, 89497924, -8217356, -168999404, -111552462, -59843007, 14317816, -14059459, 38575761, -108273305, -13316987, 25157243, -89538135, -136373773, -23923859, -23856573, -13021629, -23975369, 64948596, 39578125, -76181456, 109434687, 12484523, -108712994, -104052529, -95100753, -23279343, -48805337, 111781500, -33940081, -65423653, 71093507, 44204175, -16883643, 7641432, -190264493, 41673440, -92251122, 89870512, -16550466, 62056582, 51939804, -457916, -76781854, -27235592, -133465797, -62938444, -122617476, 26071837, 51476199, 112340972, 59308842, 61567113, -12708145, -53698238, -187782705, -60750712, -93341969, 15076478, 75147942, 55025496, -4629650, 44717647, 43428194, -67670368, -28376717, -100910038, -200421214, 12961023, 122874938, 181285948, 50829612, 10862642, 26680183, -37289567, -16953113, -114179276, -196626306, 2525839, 112398028, 101540275, -1794797, -4594785, 32076929, -50268579, -25690766, -148297012, -147202685, -11139722, 81752628, 72112232, 30356528, -46450645, -4619861, 34077037, 19641843, -229739159, -164096147, 58577914, 132221505, 192031056, 66018820, 58519762, -17739337, -24720691, -91533579, -269142300, -181796744, 21582082, 129530057, 131301329, 92215419, 23972712, -14709904, -107374653, 5931265, -122730538, -18895732, 33452749, 118248731, 147111222, 45992553, 86399019, -84394030, 39277196, -3588862, -132034257, -91526277, 100223020, 155081585, -43426499, -52767377, 66014610, -76819442, -96808359, 13762156, -173301563, -103701748, 126231357, 139767274, 7648425, -56016132, 93781389, -87335207, -315656632, -121598199, -305976808, -119327702, 72346546, 110702671, -30135505, -99371709, 192351937, -56654714, -23194592, -256720752, -240484178, -143778265, 6028749, 53587422, 32059375, -219224408, 72236404, -47916241, 57045467, -89562982, -148647800, -192026138, -177996412, -132459059, -4470218, 46276025, 30207433, 152135387, 65532073, -2894379, -139281914, 104556106, -130184919, -173418403, -92721842, -31633992, -89188077, 121619850, 29764898, 31863127, 62551558, -46219945, -9934131, 154539362, 24272677, -188306317, -98778442, -550241, 64910784, 7078352, 8535303, 94442300, -24420844, -136168793, 218309850, 20536589, -368928641, 41922539, 31135434, -54918796, 73848031, -90574421, 57626981, -89401856, -35328865, 23694286, -208203778, 76976620, 132114232, 92815854, 52313671, 59766740, -12815647, -130001828, -153029963, 27162040, -366549760, 20735936, 189224616, 308858246, 15611049, 41397795, 130501300, -78192376, 93119763, 7036868, -239934832, -58227692, 69207698, 3604961, 67448057, 79034224, 68466768, -155692711, -105563723, 57993621, -8073605, -39525706, 25089534, 14057380, 18863158, 63684545, -18519893, -125349104, -60649246, 56924373, -81478201, -146452501, -78705184, -24973352, 52294891, 14305816, 13825399, -278341889, 83092876, 64139254, -122114062, -93005478, -40886920, 42848866, 23600388, 75487457, 33447001, -33387434, -60051236, 49168952, -3260956, 24721144, -43378234, -81469581, 77186652, 15617276, 54276418, -93074173, 38031213, 70935026, 12489013, 787332, -95719308, -175968990, -11099943, -3363068, 39564081, 8699605, -57967350, 26642673, 48987672, -3004107, -8275436, -365586251, 14664215, -56868352, 63379176, 59573609, 57270, -33753283, 19922798, 30329227, -28343849, -227384076, -33856347, -86389571, 44218898, 84186248, 153936192, -104823910, 11476603, -37463937, -40761098, -95828272, -9676514, -87424137, -47848444, 76733172, 100853801, -107210048, 6595398, 4031915, -201771751, -90568237, -132425100, -111281298, -16815322, 142961562, 162615865, -60292635, 16060827, 14531136, 14850301, 21827785, -125530124, -127323791, 1292545, 99928401, 114435308, -63171759, 7714418, 21286383, -93771130, 89051329, -230536282, -144743979, 733661, 85203230, 124864198, 28582167, 36654621, 51537462, -98251477, -83463326, -155263126, -143981814, -25324017, 182959422, 107474305, 39132234, -62721811, 46717413, -71688429, 61655402, -166550770, -201805994, 62290400, 220020995, 103471935, -16739147, 77375986, -21834543, -70932209, 104352288, -169710442, -122198679, 57921074, 173057333, 139590561, 82437947, 8808102, 22653596, -24323810, -6842875, -135560095, -78550920, -5095896, 153354898, 57556193, -12369982, 50162386, -3455593, -31220106, -202888682, -62368613, -219899803, 17928915, 131640106, 158347696, -215500727, -31123139, -90720229, 39185613, -14076179, -131235272, -34220036, 81953250, 43420568, -96614443, -34145370, 2078239, -85613646, 245480672, -146378100, -198947474, -150048301, 28519651, 144148663, -99075571, -231115669, 89840956, 19517563, 101650305, -45780603, -193432972, -217848659, -330831259, -289742559, 102268271, -160125196, 58928039, 106703095, 184171781, -38549714, -143904269, -101446576, 5803947, 31848595, -26944049, -216842905, -20227777, 143630996, -157976568, 340079, -103714354, 147704214, -13759641, -90347692, -23352005, -99041529, -151983589, 15180786, 53501554, -15637981, -27703090, -22731658, -28153270, -142039925, -35876546, -121083744, -243910462, 80244705, -126494870, 188512832, 98222479, 156024516, -4306747, 8823973, -245336950, -143445060, -391043633, -34750234, 17055919, 196580246, 48757840, 30307977, 68295792, -210143134, -163542718, -10681302, -234137952, -16248969, 7142232, 166993722, 175286651, 48150007, -13284769, -124781139, -130708396, 6131569, -216112539, -90854168, 17609598, 83665088, 130918786, 121237844, -40646400, -95038593, -58989838, -54167960, -141243607, -274855137, -18395329, -4328727, 80620140, 77038735, -17234454, -243004948, -19509951, 138894245, -173763871, -52446786, -122992516, 92704408, 133113101, 137419194, -40564399, -123821974, -32995064, 35022616, -88808455, -77888280, -89748926, 29943213, 79267062, 48019402, -36773268, -160865948, -6528665, 29975299, -75222768, -27763274, -76707892, -152661562, 41192193, 26407272, -51335849, -48693102, -51860839, 70620999, -62669925, -1263741, 25505617, -360337883, 64524673, 45376264, -10289014, 20962376, -11461009, 81349395, 37549015, 57768896, -136508211, -393218458, -21883959, -81451863, -31151179, 2289776, 77725857, -70361830, 25219960, -67919262, -27216906, -432799518, -79062037, -39190672, 30034270, 172456905, 84844068, -97395755, 78842990, 14606003, -39760888, -271373451, -31512335, -125298917, -38388744, 96511178, 136601895, -123660251, -4983466, -22150030, -33661511, -164995775, -178489730, -23876585, -111502454, 60081098, 160023645, -220591858, 13751688, -19958435, -149015456, -15537917, -168657914, -102145076, -84694207, 131697789, 159966812, -53293064, -31065954, 30884644, -177835494, -73816858, -133766741, -98934293, -22245947, 128470063, 105444491, -106794208, 8889028, 17878631, -97765051, 26123852, -121186890, -13249792, 18624602, 190620810, 105094135, -57947934, 19122245, -30475164, -215314925, 15091956, -190296441, -157836884, 24821226, 231351614, 137378544, -41525420, 40704455, 27097762, -183072194, 9144291, -163035691, -44968836, -709215, 128327131, 108221434, 23026420, -38288753, -69885358, -162137717, 119125776, -5921471, -120029077, 26517525, 224429205, 55693068, -77501848, 43029666, -22391217, -202809364, -105296575, -116746701, -196138680, 43428503, 216548786, 44497076, -128685921, 53464405, -155391723, -291708559, -45359552, -59915531, -171569824, 98275550, 159210905, -94238624, -91380395, 6406318, -78051925, 9883835, -65955192, -215721563, -226609185, 58919635, 270261735, -239249766, -121743202, 26569473, -139616802, 263770074, -155779406, -132820934, -89579388, -112024285, -262692213, 25616769, -38443096, 55200849, 40108304, 28719807, -68006687, -152819648, -75614445, -267343700, -71625501, -26424220, -110642001, -76940738, 167511553, 92624642, 14581849, 2020593, -80098860, -8101758, -170459002, -55664346, -97701423, -135075703, -63079461, -77928282, 117862470, 342864484, 187703177, 12698388, 6681281, -65781325, 13137725, -260586411, -216961443, -170996919, 199986964, 166457355, 259625494, -77805497, -329140574, -112362109, -69756247, -482359707, -201878399, -303313971, 7518284, 200835317, 62975459, -159876421, -143074572, -201283529, 77748872, -212133780, -248242289, 61607242, 222311854, 77570498, 180422321, -128055796, -326983660, -66926777, -468559, -220287591, -51863369, 13232349, -2367022, 89120202, 76818317, -144467652, -170769781, -126400396, 147091717, -144848913, -204917997, -59364893, 48567675, 68651617, 63124679, -164363191, -110020921, -12157992, 82437381, -39215747, -133266672, -143386200, 62105071, 62542558, 87660260, -142750353, -138366744, -40451813, 9887581, -122895434, -19813526, -50850, 56933865, 154170424, 132365182, -117617793, -11549109, -95392741, 112023108, -8362015, -9058521, -99996597, -170741513, 109798878, 62860832, -32460816, -11067536, -31496517, 83694018, -64673133, -9547948, 27913788, -408951610, 111586504, 58884855, 523623, -25333980, -31586450, 103586204, -4823241, 63850977, 66891037, -325217038, 18279230, -101241879, 10438100, 79482906, 47371931, 22311103, -6187386, 14667250, 18602651, -463679731, -30652635, -12638681, -38800862, 142409340, 136852473, -75772874, 114197247, 45278791, -3167071, -277570665, -14576080, -43867387, -131431639, 141019300, 169910476, -130125374, 2645189, -18493867, -71364745, -181035295, -136988044, 16721867, -88251628, 115122020, 161190495, -219482794, 49651664, 29137811, -58912735, -59353754, -189958364, 112179883, -119171932, 175233543, 92586085, -155842632, 45629974, 42512041, -142517060, -25530862, -70467867, 19395057, -41990705, 199717835, 115575537, -133023217, 74614674, 5044699, -220373273, -10607425, -95154762, -8443892, 41667636, 191656291, 58100816, -130630061, 42668372, 11861493, -147006363, -41896142, -126969323, -54124668, -3177782, 153913274, 96793257, -37293822, 67055739, -17428584, -168148592, -14494636, -68421558, -13727910, 17409110, 147467285, 57070326, -51111959, -19654723, 27989306, -194518000, -15123544, -80503844, -6025053, -32915607, 309940219, 138112396, 64393677, -20389795, -87224007, -149867356, -49506459, -30376781, -190855399, 75155191, 296458006, 27149199, -90674929, 12210224, -53508028, -228325129, -19982595, 4744719, -403815955, -89371890, 230573073, -70645608, -87922327, 46522960, -133976951, 25309745, -296438813, -190036714, -175660297, 21980366, 350134104, -91398619, -185604662, -8078476, -125300094, 176159605, 25294401, -40949672, -143802270, -216135025, -263950527, -27340185, 6442782, -17191200, 277557701, 154363111, -31051164, -91247492, -61550509, -174206227, -21410825, 84879339, -34870781, -74665099, 144166633, 115253173, -4225732, 140435368, 136604384, -347744197, -38681831, 138446763, -168073684, -169052035, -189182669, -315265685, 82395107, 116522633, 282390177, -321909785, -48399303, -73848695, 61157662, 7847746, -214096442, -301075101, -54373205, 170553297, 180890769, -234666809, -117708154, -324619114, 74602894, -118595995, -350967020, -156384587, 201234475, 310623139, 204761431, -74355714, -298403174, -409987420, 237869516, -553017855, -559770763, 22596665, 248008087, 201286003, 272246331, -215744317, -247502133, -339722663, 186341748, -255534470, -376558572, -64486682, 226749316, 200670108, 123271391, -262396455, -235400274, -85095540, 8603370, -130513087, -142288044, -106323153, 142327636, 86906821, 106198043, -322517902, -15120267, -12750561, 74995294, -101794340, -164594159, -17069293, 143033653, 187917620, 117913887, -208247170, -85755520, -145513177, 161399707, -248607919, -54750573, 37948407, -69747195, 143502727, 64456850, -114053160, -64224787, -234673634, 141739294, -160770163, -89590877, -60562614, -36472958, 123491473, 79068474, -98495990, -55127434, -9284397, 121744342, -102528304, -19073203, 2225977, -239920974, 91012105, -53328667, 9245204, -20313568, -196969852, 161980987, -91424651, 54400619, 12391543, -299168378, 34588881, -54269977, 7543493, 96399844, 12716982, 43418583, -122265093, 8106956, 110918887, -345091581, 11481918, 13727724, -149964660, 52418888, 132404968, -19015612, -46635982, -77525362, 84481023, -274208784, -104244262, 49820270, -207854450, 138161853, 189487815, -114362277, -62174279, -104261510, -3616112, -112968117, -56003887, 102921143, -119742848, 94094805, 91259621, -142422259, 59995890, 2573093, -16451154, -21997089, -112714753, 67287549, -95894158, 39055124, 19960811, -108170748, 19456774, -53066276, -274496078, -49408212, -130097508, 86423308, -16704189, 100787647, 25790798, -18013032, 57025656, -47473531, -389790505, -51495172, -15102516, 99363357, 9401799, 102724016, 15428376, -128556803, 92779249, -67831054, -178078756, -78719825, -105739556, 55816241, -53658221, 114868611, 6148247, -111300401, 94953142, -56923792, -450777739, -73899239, -34833431, 36052633, 9347658, 206943467, 14930286, 1618491, 114719495, -55950888, -131383270, 2106751, 58946129, 98147012, 852613, 288791388, -86441472, -19430859, 60877655, -5059734, -316626906, -132150605, 61679184, -93799062, 65826185, 280017167, -144733384, 43361370, 61759308, -75231269, -274643540, -254104614, -75490423, -386650890, -49017388, 518468440, -263011605, -124212503, 56035779, -213573962, -239033639, -269564867, 14067965, -239226267, -140014172, 478430599, -190497100, -119460881, -33756964, -185564876, 42551436, 163733482, -44609364, 10521627, -265231490, -117762148, 55066917, -104140118, 71823061, 420225710, 274380058, -6816376, 118672267, 13620434, -374562800, -182879567, -54334316, -244591758, -61224807, 92728078, 169358030, 32342888, 264239937, 298954844, -486349285, 133230180, 156963170, 55501826, -120033532, -308323473, -94883546, 90829723, 203024074, 82352638, -343004674, 44937108, -344977647, 75269610, -494227886, -76486647, -367793292, 140546337, 210579857, 277358592, -374730468, -186538488, -275815517, 200829059, -149269104, -375438094, -324220479, 156392053, 321579546, 254361629, -244550452, -30726606, -337862939, 98843917, -185889155, -242530078, -264110744, 32690145, 261706054, 220058903, -520753205, 48410431, -499126881, 227331266, -41061431, -264951140, -119479313, 254681468, 276656657, 141003042, -460145324, -154310957, 16614882, 125669420, -97981744, -62368035, -40716995, 211104900, 137918100, 238080367, -360351950, -82556143, -135453314, 111361511, -138055190, -149454638, -46580866, 219855860, 122523442, 19555487, -198059887, -18287055, -115094163, 217200547, -145737275, -71358189, 12561816, 30383416, 161691278, 26289133, -148805097, -153979883, -158306420, 134735569, -84028989, -99625036, 8770557, -163849205, 146203607, 94726406, -44275701, -24971265, -195397124, 130126104, -146345586, 8394709, 17589381, -423390061, 144148111, -30470178, 68089813, -8132613, -180693641, 130549535, -25050305, 49019638, 90467364, -492786258, 38807325, -6248362, -25102679, 38341288, -7948073, 101471119, -143844336, -107500374, 134921238, -264290303, 23281779, -110078521, -133869112, 12868203, 75826533, 19208087, -181842655, -162492678, 173299968, -316791862, 29012254, 14674605, -375996679, 89020781, 172839820, -146328151, -102737911, -125426710, 97183734, -74246451, 13546714, 55651847, -142935976, 56094423, 88183865, -255845279, -37572619, -88104531, -24207179, -16649384, -51183596, 77293396, -152446657, 91209881, 59985802, -75918838, 51764254, -96974604, -116020933, -13727796, -23059297, 53564630, -21915199, 66970728, 61604291, -112239681, 112250298, -66831544, -359213948, -75788476, -90205461, 88773817, 6633207, 27643390, 42056113, -79035982, 82020730, 34353402, -412784457, -117792688, -15907044, 198906213, -51521722, 50610028, -43497287, 7764339, 98025873, -69221273, -300419450, -275038272, -58324408, 35126325, -30931190, 76497734, -101433754, -21476237, 105297618, -70262238, -281318486, -190922856, -1486174, 166987866, -33899702, 101704530, -118632503, -89553848, 133372113, -70149407, -250540584, -151148707, 25168914, -86243235, -91643043, 361254066, -136541709, -12710561, 45938402, -138720140, -264598787, -365899146, -29449493, -278042704, -58878120, 363454580, -241895869, -213194773, 74269533, -64412437, -137535185, -56683816, 20614272, -308707714, -240158379, 583393514, -108860955, -170773879, 26824292, -14159507, -62325928, 162714124, -189623803, 118791953, -287294567, -248125136, -15154727, -134867191, 7812387, 293154806, 45578104, 178728595, -150029942, 194778070, -327684283, 63327052, 159235001, -13375474, 79724289, 168944672, -226357281, -63868009, 32963302, 239834815, -227674887, 112452969, -5493961, 28991459, -134281963, -260702133, -318190098, 147840858, 196203381, 440240681, -400567174, 98550253, -205830738, 335482836, -340540528, -519805610, -194791704, 140770182, -29817285, 400631189, -245254651, 89476056, -241881803, 28422346, -237309083, -586376011, -395578682, 233925521, 164215580, 377884984, -583772898, 24719466, -262472659, 132432461, -2787804, -376720339, -467779428, 179704159, 18893106, 222298786, -375808537, -46725333, -201880917, 199209213, -11914755, -76040074, -44346534, 249698207, 280556679, 120261274, -285257190, -17953703, -288341880, 26143115, 69172703, -127845451, 17610068, 198614150, 169846907, -51553100, -228600860, -111660898, -108990714, 223315507, -148277849, -84463820, 1882998, 174315363, 61894279, 23899022, -141855180, -7089525, -78392960, 177148268, -236562192, -99787250, 6761437, 77156283, 162196204, 113249131, -37061661, -18482551, -87704711, 271954745, -159052938, 52444838, 3044024, -175196841, 46883326, 77418245, -4992077, 2425959, -174940109, 209279463, -173864827, -27916206, 140740216, -308292061, 82690522, -50583202, 35131734, -20726789, -69129966, 118281864, -233894393, -80002457, 255372077, -292693913, 32900140, 43727305, 21609170, 90458997, 40574517, 119925298, -208315149, -139850736, 108097434, -642918646, -3610472, 150422305, -106761336, 85584581, 114970282, 70445046, -180724204, -135735497, 130684212, -116374262, 85297756, 64448684, -196886554, 81413075, 90146393, -71488425, -94991088, -114066251, 60472231, 7940624, 64867042, 79681948, -315298229, 30251022, 78082703, -212885186, 59630770, -118961208, 31359352, -60704172, 20766791, 84843785, -81934050, 54913048, 26646875, -151410341, 104027413, -91341943, -198073432, -54887831, -12060606, 99495672, -17054286, -59190352, -14166025, -14252216, 152828306, -4705985, -193642035, -109740600, 7491994, 45154896, -61950903, -67214146, -49771436, -69386952, 136030123, 35393681, -140892059, -23469992, 34624424, 112251632, -21151843, -133244336, -74664183, 54288726, 126128167, -25814105, -355797112, 82269259, 51777694, 38615916, -28738728, -64436585, -69776632, -415309, 220756739, 44143464, -254121751, -105955057, 36934216, 7934211, 59591845, 58356725, -332999289, 16113887, 179543465, -55085905, -350824356, -29817007, 26680542, -100898087, 46388134, 233288124, -127289027, -20589476, 151477024, -126427904, -167911276, -95825024, -3096502, -193534732, -58747582, 355109483, -295780092, -109924585, 218977764, -89437418, -249329448, -161192864, 175056830, -66232517, -118578941, 145463735, -127112299, -96510902, 77481978, -84740669, 46189144, 26101422, -199749306, -201615795, -313353062, -244567320, -26454132, 46387106, 50411690, 426503241, 50526824, 11961058, -96820891, 157437280, -266150594, -104543619, -91084979, 1327442, 34336902, 13967518, -119296715, 42707324, 59692077, 250082821, -336653590, 10191625, -99944457, 21129986, -155833706, -419336915, -122597829, 34201827, -88501751, 309980392, -337706745, 268472880, -192593560, -73273212, -98014280, -210032791, -406776994, 76998293, 50053656, 377509594, -725327134, 230675995, -539748609, 135069489, -142139763, -163466960, -387222111, 34911308, 45509152, 306480885, -871941090, 192871124, -303238690, 59526842, -151254058, -314665884, -294833183, 83451711, 106183566, 220392883, -272211522, 189417571, -305624962, 98146759, -186200976, -68732403, -158476904, 266668141, 80429278, 273194104, -484910548, 95596701, -255714834, 117946275, 74815229, -252492428, -105039291, 211884886, 75767443, 153033763, -252934873, 100140199, -177504525, 143835410, -43600552, -153227374, -29442571, 181535631, 99629752, 85223012, -132818595, -163369507, -177637234, 246685922, -99923886, -72374433, -44529006, 17454933, -23991548, -126870751, -77157430, -69430076, -199098676, 236288130, -299042195, 32956600, -10736523, 49029291, 83384447, 93034096, -705845, -3912343, -286690325, 174024254, -256117851, 58692612, 98091647, -407212824, -21133184, 11413025, 32205649, -10544036, -132571682, 3666099, -362925917, 116687566, 79996064, -385736316, -59897561, 70436619, 18629245, 122051850, -24496071, 49042344, -167999476, -3535136, 62849216, -249005303, 32835249, 25291484, -86545989, 2264620, 24388300, 27330944, -151005268, -154610261, 49687725, -9866618, 103630133, 67302488, -272158563, 37119992, 26035335, 70828140, 12823583, -326912880, 56964234, 48913490, 56154549, 94054639, -222319111, -21577369, -19117188, -116479203, 40639818, -216062218, -76399751, 38984518, 17208641, 28924737, -50497368, 8582279, 86051591, -157094970, 104177043, -128552079, -178998590, 5445513, 9089168, 42899322, -32162718, -110428378, -57843126, -142762408, 157445520, -28330280, -199047849, -140969962, 20346543, 118968323, 971663, -124609254, -5006551, -133544624, 168736190, 47221459, -287889719, -68517849, 32129250, -18019553, 9136535, -127784789, -242505178, 2633815, 173719838, 45273051, -223203480, -86446978, 27663758, 65335266, 37820462, -237393826, -38042825, 12851452, 221479118, -15740516, -212607294, -182533994, 162920162, 27082641, 62269915, -122928813, -192792758, -78048550, 206692144, 52720029, -129182801, -136511430, 159658015, -194615290, 2441975, -222847074, -38474217, 10709125, 265670240, -24415966, -51229015, -231518567, 173132271, -66918097, -33962321, -126830205, 38946293, 30368397, 184542045, -21193156, -71454465, -150918841, 73695943, 65007955, 23936726, -82416683, -154601663, 62747419, 112479337, -43927398, -35483781, -137067854, -139216140, -58129802, -210871100, -606362, 22683723, -4832372, -45034081, 214219272, -38594067, 118527301, -11519866, 178243995, -229035154, -137000412, 42278152, 34588370, 36261123, 12874622, -293136299, -155350879, -16001459, 231152669, -611410379, 84220774, -46460606, 101495646, 73090278, -228277892, -685937583, 223008156, -11449046, 352285892, -930014193, 99953413, -141118914, 212199479, -194098115, -311144739, -120694742, 230864987, -117162831, 283125013, -610248387, 99488661, -435200661, 25696246, -215999275, -456369907, -252884209, 95056802, -79501808, 260574728, -578134954, 217895478, -465581059, 17024284, -77309482, -603309155, -86244203, 177447945, -26506331, 204112202, -66485398, 142004743, -412519246, -65291524, -115255497, -248795643, -266409278, 83703928, -66255279, 172766969, -99397644, 183040693, -211777315, 30381126, -134085461, -200062945, -146921501, 247999027, -20575820, 135197058, -108485885, 97574219, -343014568, 140257925, -43674771, -138268813, -47433104, 175563037, -15858419, 86310700, -72895557, 29327100, -236954808, 154639900, -59074577, -61868183, -44148434, 63071176, -67991979, 53649925, 480042, 19710179, -299352080, 96608900, -169103965, 31486437, -13601712, -183104247, -54583251, -28700877, 3144, -33350300, -294410616, -20678068, -151661366, 70999481, 72793871, -272014230, -91929294, 124114864, 80851108, 18621739, -75931937, 20068163, 21554593, 170320019, 22527358, -228493467, -99778160, 68659998, -75240642, 58078978, -12118085, -53013109, -26357569, 73539741, 66479571, 44096451, 21049285, 1450550, -38520236, 10899424, 19155396, -34141675, -52282840, 3042336, -161181062, 6955381, 119279996, 38694102, -207145065, -3586927, -67846447, -4261767, 6932477, -132695124, -48824482, 75010814, 29756695, 10027076, 8129795, 31520013, 79420112, -9296313, 39150100, -43183159, 30093079, -53913813, 37953816, 6290750, 30202214, -82171485, 109748617, -132088423, 41518424, -97155288, -127067536, 3867884, 67594431, -28065775, 128818437, -140692860, -75740196, -61751649, 143881425, 12919527, -50187584, -109533325, 19423453, -118041486, 92835605, -265080541, 28758548, 30463506, 135317743, 59990235, -70688806, -27366601, 104280822, -162613422, 121099174, -212766856, -247021332, 13552942, 90752929, 16015748, -76347038, -147507310, 108473532, -268857121, 96217498, -309178978, -103042819, -27872097, 203182369, 30112982, -186480001, -153620780, 167570665, -123881102, 104080796, -197911650, 45728210, 24902344, 171497971, 59214901, -101335287, 147618160, 164182350, -201689810, 6801902, -272496551, -9295267, -61970457, 188240051, -12465364, -79393022, -141304433, 178087488, -172218233, -72682589, -294000268, 23965022, -121222466, 71565442, -127189085, -344075888, -51633190, 117802657, -52771401, -2758873, -315253377, -62567055, -4563069, 77956878, -79677135, -37502281, -84347844, -189102232, -51863823, -390493929, -165186062, -25522297, 100515731, -18878387, 165034130, 102514781, 32170761, -130752012, -181621388, -157090828, -115223221, 113955721, 41517790, 20202085, 118651927, -265310884, 16856555, 3292017, 119613238, -380631685, 48141614, 6744484, 257124126, -39164688, -215943679, -452845395, 136120871, -217226878, 189954832, -262851179, 138280138, -255674511, -55763185, -188625932, -170087099, -503302693, 70964292, -198126689, 176031992, -213206008, 101692311, -195708707, -43585386, -226376086, 3144150, -335891843, -19617708, -84263057, 239545733, -221131518, 217627376, -365626484, 22767622, -203114003, -129168287, -227397710, 162244499, -125597283, 256186336, -50035849, 132240057, -220120683, 47954962, -126473814, 9329979, -161186889, 58105044, -56665767, 232697964, -85132033, 192508161, -343726099, -49867757, -151034206, -200420424, -112233557, 84107026, -2625908, 179424793, -19883394, 121878237, -271862686, 199353978, -96916020, -81075467, -119011380, 183712706, -63190989, 100885190, -7415741, 117091350, -340604305, 158428460, -124946296, -43534517, -122516803, 26805870, -92450753, 27824856, 45029275, -24129631, -145214424, 85607886, -165326506, 20772494, 23405291, -130348340, 18496165, 114795193, 117428526, 21069428, -220614702, -76750882, 41965, 166644007, -12265853, -621074319, -29716786, 68237185, 97293749, 88594049, -46479452, -140167460, 47569856, 132485598, -21852236, -135484114, -142860800, 67266345, 88659868, -84429011, 14840332, -168043092, 16119994, 56588780, -102185890, 69214590, 37912142, 87512203, -40834822, 31983636, 49060181, -85223310, -9041036, -1748944, -67618690, 126318678, 45250643, -90743683, -29011009, -126608282, -2340618, 159996882, -33075318, -119556852, -106387705, 88731147, -62220074, -86944811, -18843366, -63958831, 58225468, -38857609, 39287195, -16560614, 7019893, 32260597, -7847770, -242050767, 64407282, -19927517, -114170521, 25593821, 17474975, 17688513, -5402492, -43496411, 177538, -245160997, 58863886, -137848407, -72959647, -30440871, 26603086, -23346277, -47208540, -59227165, 6236288, -218326986, 157570362, -172619730, 33275325, 48552331, 105541386, 22190941, -81602789, 12462246, 99577859, -252295732, 97631030, -248593718, -5738859, 26828777, 95703527, 38830895, -60977764, -21307241, 79037957, -175647363, 92692144, -322916120, -15990727, 65158948, 141747713, 2227288, 67408301, 6432300, 103959635, -486367255, 91808558, -79711936, 127931237, 47132678, 3394020, 20736294, 3323493, 111372873, 68667457, -128090769, 33494595, -108147964, 1229809, -65214701, 75761281, -126043826, 98802850, -162353426, 134649009, -243616223, -137624368, -123593919, -138268292, -34324113, 51953599, -85351862, -89599162, -253774077, 151206359, -149290174, -23874531, -91380388, -104510307, 10541150, -64951114, 32447811, 117713057, 107883960, -132749379, -202716663, -257909626, -226964444, 96163943, 286937386, 100447759, 343633235, 30236676, 5658461, -220429704, -71355239, -195799708, -80357179, -60351659, 114846297, -90836287, 101752587, -341631681, 113451302, -91644712, 245949835, -42846370, -123598292, -34776531, 110174336, -24122233, -102294132, -451568395, 18772574, -139878944, 127729192, -55329859, 76097213, -80881156, 153319538, -184111342, -53198360, -236155331, 114954807, -74035756, 221995145, -100398853, 93688071, -276730895, 32975804, -222923100, 39607193, -254084200, 20600852, -283943355, 164038092, 97113363, 129561439, -347441912, 29436963, -224235058, 130604163, -249561623, 114103533, -272992283, 104597487, -3068926, 86506397, -206931606, 140958026, -163581595, 24903126, -169448406, 144790217, -202053532, 161264047, 15080993, 124149352, -569714248, 164522037, -209261984, -104767233, -229111761, 83495617, -73543616, 162333205, -69337912, 163892746, -329385132, 119968571, -177455887, -204246446, -234528527, 110702485, -63327491, 126730591, 609904, 72843991, -246328145, 94148785, -168487474, -27573347, -174883887, 73703922, -57672419, 95780708, 82042694, 122074559, -294330359, -63767187, -110685624, 82716897, -80547765, -404286504, -10377241, 127691746, 96161179, 8536465, -49200486, -172193587, -32011561, 139584988, 55754229, -172366634, 34540225, 93875974, 128742188, 13409575, -27156014, -225232780, 31965703, 87031282, -40661585, 45207243, -22886777, 32237977, 53220503, -54024309, -109265208, -102748156, -9259923, 37497234, -50629828, 115198024, 58502540, 32304320, -24548853, -105267659, 40256806, -63693792, -57147402, -64505033, -93588136, 72170064, 974817, -87945722, -1124454, -42971093, -30119352, 53697258, -63337862, -62845498, -102364495, 29993437, -30642219, -173720077, 88939317, -210246891, 65672524, 22844069, -12342419, 84894218, -4296233, 66683434, 4393261, -349433243, 127275765, -113188617, 12235295, 99129423, 10421780, 50670270, 66366054, -128753230, 54504488, -247840166, 124439277, -204670206, -80259763, 18183526, -22523254, 19205181, -2282910, 58814686, 45616951, -294088423, 181599796, -216539308, 14179903, 173426405, -30812986, 34823336, 101575583, 12546413, 105673820, -203964949, 131409720, -265906841, 119413681, 78721352, -111328073, -75910397, -81104800, 12879291, 99893332, -143454656, 59999276, -232443139, 3015708, 211197302, -9675435, -15507460, 32441635, -241073847, 149550050, -228091359, 53129025, -183936536, 138550326, -56560315, -203499302, 82361825, 152234614, -196947113, 202468544, -278512776, 46972964, -5544176, 79209261, 39232563, -183967546, -144640252, 124734119, -143179759, 201580435, -98042861, 87885506, -157241330, -40965576, -86808234, -270351380, -90636253, -31960819, -268915951, 320305586, -187978208, -69044337, -102072485, -80765046, -237899989, 131250024, -58473010, 124958143, 19176925, -103214376, -222226277, -71838133, -189469934, 45497354, 229151696, 94257973, 30905370, 92629552, 66055007, -356711447, -180664271, -35098221, 84592618, 31955861, 112675123, 101445548, 146310300, -275932044, -106485523, -158066571, -32018702, -109781019, 53516127, -133736372, 14470071, -61936710, 18825890, -343557119, 138036236, -136290178, 86119376, 78440748, -29272914, -179079950, -21602882, -200741038, 141121179, -211501107, 89964904, -318543613, 175164655, 43559711, 19974854, -337066561, 72007321, -142236516, 102754153, -262876540, 112940304, -255962610, 129948914, 51709428, 81083864, -185972393, 198635608, -235462159, -67681164, -334363788, 4492806, -203309685, 125417486, 66025086, 93798466, -113733977, 141986489, -315927863, 77788033, -256547719, 59460770, -115677126, 147826359, 34049030, 84015183, -241935894, 86960182, -271936268, -7687423, -171011686, 177674875, -191903561, 117874153, 40405709, 87713763, -411021024, 187029928, -132463709, -34323771, -75673275, 118265867, -98763749, 140343532, 26093142, 129440129, -310915619, 39904702, -74186876, 8002608, -131794855, 85362747, -62522352, 60979586, 57021022, 111672260, -166436955, 23337319, -61291263, 49326677, -91174632, -306977957, 14372432, 69732040, 77220388, 46670079, -150082260, -244186372, -71634911, 127191052, -60854554, -45456190, -22603409, 91739409, 78515895, -12273097, -93929596, -300145447, 25590355, 84808119, -123379506, 77529147, -21691348, 6154753, 50376277, -55192750, -169758022, -96491806, -43652389, 40377911, -61892536, 132957593, 68946794, -52380506, 42110834, -84045455, -20142851, -15036283, 6623310, -42298190, -90829678, 95588923, 50799184, -181753397, 84062561, -59340242, -50611172, 127799317, -20572342, 61658029, 34352999, 15218691, 34920115, -180444658, 112687819, -110579036, -26749916, 28447477, 34769621, 38462024, -28562894, -47650453, -19178405, -136755392, 36059640, -194464847, 55932637, 30785879, -60593888, -2635373, 77431105, -42239472, -15682239, -151269794, 150032938, -123531409, 110653877, 55002064, -175061360, 72010383, 12595913, 8991397, 53604309, -100404613, 127033353, -214817002, 20470861, 143505022, -232708111, -77322699, 108690389, -55422787, 57886276, -122507907, 111974277, -167338163, -11277823, 100290835, -182677180, -51570401, 139690802, 39381094, 80196619, -157989055, 82358897, -161173955, 41685268, 127765521, -85172713, 47023784, -6283921, 18113861, 148014978, -153963357, 55312317, -319315374, 48494015, 28290635, -121477976, -123461045, 150587440, -190644965, 117025599, -244226262, 105491497, -150123909, 52060727, -27222412, -80311939, -99625044, 63223831, -44948544, 168223053, -33263329, 42631146, -80884606, -120243773, -11581277, -85179515, -255321622, -104798585, -377791762, 366921782, -47349367, -53532157, -203881577, -74666835, -193034112, -66743389, -24529491, 103050895, -44483278, -147183344, -18948721, -211571410, -221304327, -44795904, -10313997, -40709149, 327467233, 86651720, 113192640, -302678287, -385675609, -1014874, -9441331, 21253642, -17778877, -6074553, 281720698, -273082882, 175329104, -292726308, -473610, 141896188, -173883960, 63207731, 109268330, -58182385, 144172505, -172604978, 157835886, -231855810, -75525448, 54066110, -42530816, 42862140, 115843467, -190914705, 125899181, -141204774, -80504648, -305081010, 52113228, 57973303, 28968893, -11436996, 94382435, -304937601, 166061878, -218711302, 131671369, -120566472, 72805963, 18018732, -3450475, -227397010, 102665246, -183205202, -57691131, -210647777, 109398402, -89600347, 111420520, 17742589, 30080779, -90960369, 78006312, -308915257, 57296507, -287373632, -18274942, -30125534, 77075943, 44078916, 94070368, -211693093, 49445994, -311864913, 84192529, -159960449, 135845140, -15240688, 103510417, 10369102, 86172417, -879527926, 79904370, -179216385, -21681469, -217588842, 86284034, -51801693, 158600003, 45974843, 124648415, -336923003, 129074812, -121934593, 96691303, -118866146, 49047001, 27922781, 92606910, 28871341, 121377692, -332639754, -70544861, -73077537, 67659594, -8259248, -126667485, 9109793, 54089356, 65095812, 11498593, -43631393, -126123086, -20568930, 95315956, -75056583, -89707129, 24161916, 56892544, 42744935, 1049886, -122298799, -225035071, -69946244, -610854, 18926397, 19082615, 10348233, 51728677, 61991397, -372234, -38135748, 57504989, -59956659, 58782872, 61357077, 19463239, -412054, -224220395, 25510799, -116413161, 11256422, -95207095, -105649084, -36047559, 78384459, -5902190, -41635696, -80845572, -5155633, -15432452, 111535437, 1609453, -84938534, 105059914, 139828563, -36004469, 64435944, -1885527, 57833064, -15948433, 170670182, -32545224, -147726268, 50160445, 108085439, -11268856, 17572872, -121280558, -54316282, -93680672, 88685952, 16372968, -244072258, 28437270, 73162891, -20284504, 34396082, -113465540, 47349788, -204788342, 51427979, 81462450, -234975860, -48536129, -6142044, 49823694, 8457088, -51783681, 78359239, -133053824, 134692833, 106250197, -149807855, -44240035, 32548770, -181485131, 54274309, -90824589, 114166304, -239439189, 57026401, 192762539, -98787606, -41426528, 61452441, -704519, 70903778, -73899224, 44191591, -125282481, -54393124, 107822105, -110205173, -47084711, 113398060, -79859287, 50733205, -141806200, 7665188, -155511200, 55246323, 149990365, -108756691, 10626812, 85834220, -310214549, 206481084, -62236406, 123764105, -200536370, 12342154, 56915753, 36295064, -128778890, -69937572, -36179099, 246970177, -259040236, 90448238, -159434646, -110406704, -68278998, 45041371, -193174511, -33125881, -263554603, 296262652, -29830575, -117421769, -209734678, 93843214, -59813507, -217316240, -38871307, -19239511, 29716171, -114540689, -269364357, -277255028, -139976770, 33931565, 204546243, 128189787, 278829813, 45679294, 42079393, -147913426, -129218712, -107588746, -53671185, 92147030, -101484425, 94292328, 86741753, -23612756, 194957584, -269195080, -248038620, 136856303, -216921762, 194211468, 7810492, -33595584, 121539302, -309546083, 145262778, -160673663, -62075362, 221078172, -134353042, 205507666, 163927078, -195097283, 55729926, -350181967, 171195313, -98168001, -112876855, 55667184, -77305958, 101366170, 1627704, -213365689, 60296822, -210652202, -4649408, 63856304, 15593347, -9249327, 54045871, -87970123, 119267099, -254056573, 62051695, -319383651, 136224419, 18500878, 146001905, 96585669, 99260285, -136758283, -137127846, -220031679, -71701027, -285362124, 97651407, 14970297, 80375351, 55810943, 39165318, -27585654, 16290260, -181502640, 73670402, -295466840, -2667631, 20198584, 61934650, 77958226, 76834977, -203770101, 97795315, -103862777, 10285606, -157313719, 10352361, -7470782, 50557230, 47483731, 44858865, -92097260, 84281020, -186489791, 27437141, -150577962, 27887130, -49583007, 46962336, 18812073, 91072358, -151580736, -156676888, -67116432, 36898084, -127399877, -108401023, -24923669, 76275468, -93902297, 15211734, -42855646, 11121886, -75928263, 17596800, -16161511, -2240833, 48010297, 107626177, 39820366, 71640760, 38090184, -199443236, -17248932, 87706909, -82699239, 8582453, 16773587, -17806001, 16247502, 1489574, 13870534, -115657039, -22443991, 40852275, 145497188, 30578068, 1065366, 27916847, -55627510, -16091505, -46000376, -53540140, -148866996, 36149882, 94220713, 14157230, -15962727, 79612449, 38085364, 25065958, 71140140, -25839385, -144469634, 106898263, 158374086, -64777136, -12870974, 978296, -15804715, -34449246, 106938668, -25071938, -19097082, 12306717, 67421146, -68782397, 10187853, 45515418, -49217280, -84348954, 136319667, 6169451, -91429032, -994612, 81746213, -87055586, 23058558, -13317824, 28850472, -112347417, 92063598, 12308484, -193657756, -114296146, 82865164, -592812, 44808201, -19936111, -29249305, -115510322, 104442254, 150171340, -140698075, -52983772, 14744374, 137385443, 32015964, -114759706, -5113943, -153977618, 12185560, 48226342, -71610786, 20130433, 49830455, -129340217, 138369188, -15404792, 2668676, -10839779, 63922808, 63722722, -148733184, -22171419, 85190728, -243987769, 94621286, -118472353, 7379266, -95960550, 95481820, -133129641, -50039690, 17499419, 112374306, -42810924, 131162643, -132836774, 18841032, -171495095, 29738087, -27453534, 15458196, -135715708, -26355855, -113006644, 276826203, -143477127, -49234487, -14486074, 66720739, -47515772, -137757897, -216307551, -30047083, -36474124, 220314279, -181100354, -110915370, -142493919, -152265191, -61245006, -126579195, -43332521, 19948293, 150847659, -152834117, -489402711, -276238054, -218362033, 117522337, 244042978, -4459289, 366247714, 76846436, 125567272, -189338714, -229279906, -76788940, -128741577, 23207439, 71634993, 36404315, 163213000, -47003545, 79713091, 18645415, -163207114, -67292728, 14660275, 90165213, 64697526, -168294683, 75015798, 33810399, 81122160, 124097012, -247347414, 282976955, -151068658, 370442986, 43883651, -195263803, 209895045, -121601395, -45240439, 11580573, -88576876, 93720548, -167792127, 164588481, 100349009, -188803658, 125522166, 15235807, 96863262, 109199852, -78770593, 181727797, -45368399, 148244262, 16225535, -136864603, 83020575, -93165301, 304327399, 1345133, 139853045, 139559478, -36631763, 34622360, -42423643, -296532959, -79085983, -43255147, -122941248, -294069, 34962911, 79751872, -3032819, 51493056, -82810722, -192146018, 59960745, -105493374, 173500374, 64233162, 129942030, 56784973, 136864185, -155088127, -189212546, -48014581, -27077354, -143548846, 120900452, 25624171, 72048262, -9048378, 65705709, -84990188, 7632520, -149940491, -30031215, -53850051, -21405213, 63403003, -12191551, 12084164, 35498980, 15725214, 10729148, -234387845, -14565123, -20101698, -102716722, 62879585, 45377113, 8682503, 16989408, 103390858, -20245418, -100057505, 7998577, 116438754, -28712643, 95532030, 144396737, -27801674, -28769350, -14813092, -38129397, -75189359, 46420019, 30240979, -68105154, 60508642, 19542698, -2551321, 81810199, 23079874, -89492306, -23546387, -74722841, 105964534, -153334349, 8821581, 100406542, -96479662, 40930949, 133071288, -12479794, -63800372, -42460117, 96912637, -177912638, 34791026, 48938066, -22205709, -71979113, 153799206, -31895127, -71073800, -4521667, 51604968, -88036112, -18595474, 1306143, -44200160, -16601585, 84994055, -156530231, -26705481, -42767074, 154991359, -247290701, 61079592, 56027748, -84998362, -17720405, 114788510, -84711507, -6767802, -29276701, 97672783, -5199860, -32320626, 33501770, -47409121, -18184559, 66879801, -6505203, -40342707, -68644516, 55378731, -51295843, 120431378, -53879209, -174077883, -90509094, 31725906, 128679246, -103124008, -147020042, 21076566, -93024544, 160084844, 4762417, 17846979, -90366319, 84278710, -4983222, -110127203, 19151989, 79073004, 23469113, 111216068, -44601608, -128623724, -114650786, 7930791, -23312846, -101532601, -137380391, 30900806, -145970970, 87515943, -9734921, -191094652, 65505899, 1731259, -180275574, -69754228, 77025011, 122311547, -244916663, 250431269, -104598410, -61833151, -130311027, 85316308, -212348327, 107654825, -124144830, 78345574, -134036168, 233783007, -176745623, -245793149, -13838232, -66266865, -20028276, -140147150, -41872319, -122566901, 70664264, 117958121, -232292950, -168169573, -109397247, -39902776, -152164444, -115807272, 111359060, 50387371, 71202464, -99377677, -422723234, -244237900, -292690158, 15818793, 282692969, -29961377, 418259978, -8071593, 107642077, -79500504, -210016251, -128166541, -17287662, 105175920, 41585572, 107684024, 268095613, 44127002, 201967880, 4669721, -473302573, 162665248, 107357226, 86766437, 29536827, -53082474, 153850049, 209729329, 149679884, -17530696, -43343786, 97220153, -248473749, 289094448, -17380752, -241769865, 123502478, 93131974, 5111398, 160672486, -139137521, 119492926, -214213207, 90943120, -82252577, -187793106, 128080279, 175929382, 88767193, 124997914, -109111346, 138963655, -116092451, -13824691, -289120764, -87477282, 55719670, 32153726, 100380823, -43572072, 77614851, -121250123, -22468230, -64734533, -191159114, 28916353, -132727191, -30305959, -84394932, -57025678, 33685010, 73990323, -12405550, -5456697, -217086866, 46706188, -379131, -208118424, 197883174, 54489501, 102880768, 104553536, -111535408, -100732841, -185521901, -135961130, -46552129, 15102813, 81753656, 85684940, 70560098, -53397540, 96422285, -99602968, -34592543, -116987407, -33760760, -129733995, 111610010, 67424253, 127781898, 30145988, 54500662, -74581698, -156488284, -82095146, -44217836, -15372952, -41317970, 73613368, 77667788, -44445109, 112916872, 6450930, -112444282, -20944955, -32718692, 44492293, -85026458, 50405409, 36509506, 32771319, 131552696, -27265053, -50580587, -39745484, -64544968, 51587041, -21255245, 70639811, 136448622, 15468611, 111786336, 6677085, -6655440, 37450340, -25574334, 50274614, -106562309, 16726879, 72245248, -73157936, 90100221, 100076661, -153099313, 70423454, -54884091, 53996366, -235061407, -24027729, 26347756, -126573771, 20139009, 101645820, -249887049, -34928162, -35611246, 98229773, -11780074, -30031757, 63287571, -88274904, -14832993, 106340021, -103469536, -299342, -45306940, 123426884, -181786925, -5785735, 35794966, -170419723, -37899464, 122550227, -135570407, -22428719, -68069115, 109320126, -71306363, 53466901, 98808520, -116858289, 5013536, 132611200, -206851035, -47640845, -91318280, 86056724, -36969811, 52999262, 21748625, -101936750, -69941610, 34095459, -62603272, -8002794, -63323252, -33879962, -54827817, 118658960, 69841623, 45175131, -86029023, 76518267, 4108639, -74932478, -199565157, 56128755, 35022102, 83624251, -24716010, -57389729, 50353687, 15963601, 122698136, -97081780, -187141731, -26496416, -250645727, 118335761, -190838754, -5485191, 700140, 60003217, -5768037, 51015634, -127930716, -129678085, -151469663, 272544980, -33013847, -92373282, -107889526, -60020611, 14050149, -17808072, -158828065, -183199078, 59912890, 228631660, -194056958, -95075466, -7322156, -4767388, -113618433, -210786760, -86852200, -111807115, -97948372, 312652290, -83384313, -193859220, -88101618, 30013900, -86767182, -24829939, 4632300, 103457630, 55983651, -134086654, -388834864, -237484187, -205199093, 73143125, 222373977, -37354346, 308310628, 164074779, 214763373, -13233649, -683426619, -81850640, -162336409, 76194808, 94755903, 78836672, 443954587, 57676062, 21196354, -276221484, -492807478, 76524526, -20232791, 165015578, 133047253, -34542646, 162105754, 70640504, -6532399, -37420716, 94921641, 70676751, -250755131, 109666601, -17328843, -251309782, 77914685, 23243325, 232078925, 97126834, -347487003, 45816034, -258990377, 29198922, -208108097, -295137733, 260775089, 80902472, 109288178, 71245432, 107364714, 79447068, -206676036, -85581504, -341171414, 46926655, -28587142, 34399480, 62083222, 41811116, -120978400, 76603413, -173388392, -196712911, -144565865, 43628491, -4254031, -109037876, 97743824, 108723007, 53446770, -9879485, -133600727, -162806049, -190673143, 55870987, -9616963, -21884270, 94042867, -15848503, 53614646, -100430019, 52851159, -29276757, -266617268, -62858351, -197969005, -51188760, 103563190, 22530664, 59239767, -96219763, 81962615, -51471386, -87091520, -73802635, -135562435, -66732027, 25112286, 85535116, 105764858, -40496342, -33890393, -32439295, -117055222, 43415390, -153405905, -21402286, -7753721, 23782827, 21589089, -54146826, 81641085, -118164621, -176982597, -17111780, -89607410, 33842586, -62288407, 5445768, 57757199, -81916988, 119874068, -26822627, -181356326, 61584044, -49818389, 58553860, -74855782, 28173715, 85864387, -98989487, 105114102, 96959278, -169499472, 23759304, -177094996, 114520445, -83199672, -34449439, 17066931, -131842703, 58342420, 28558291, -175583094, 59202019, -50308872, 79849318, -134861887, 10363376, 70772484, -153203085, 33532873, 78629367, -113367856, 55146549, -95429800, 96241705, -107077941, -20925248, 76835506, -113855697, 229122, 81725009, -137174875, 8457481, -94990879, 166947678, -48462845, 33359151, 117052309, 2412698, 52719198, 118075453, 28751079, 22715570, -155999169, 35855237, -27187673, 72007567, 34629412, -158045411, -25974207, -16424997, -126416773, -23602718, -98405570, 120018892, -38732789, 128382236, 61563443, 4334215, 43736029, 59825849, 64376570, 7568989, -162426338, 102131873, -25151433, 137981951, 45954067, -100575179, -4634878, 61115313, -239776835, 18903924, -62682807, -7855213, -31972915, 91343112, 34202263, -19702455, 50149385, -62377233, -40933996, -26900273, -193134189, 8469288, -97775549, 160596818, -154852, 21985570, 86858034, -54705903, -230742693, 15413934, -82085609, 2967583, -277795911, 295008421, -83216518, 61566640, 134034276, -88554405, -203713641, -132095709, -194560722, 19727515, -140536278, 377944440, -256164700, 96717946, -144506067, -178322032, -202794805, 6167511, -237090051, -24994422, -114891171, 234953687, -270587265, -154315189, -104622021, -28576698, 36715180, -32263543, 23182578, -14006501, 24599066, -36941975, -231248483, -261331946, -168178558, -20236610, 177302748, 41420139, 393280208, 148733109, 106187545, -106567465, -359967113, -211928532, -242318630, 34540698, 219171390, -30381985, 347064435, 72275274, 206511587, -69651604, -269362241, -116070196, -312631309, 49947422, 138768822, 86254567, 321006387, 59248924, -68102390, 115789369, 21258678, 43835368, 42237621, 30896451, 48740439, 23852259, 130390406, -207768664, -47714267, -32744113, -74313954, -42751912, -57183161, 45067757, -178069323, -17903339, 145690277, -42996716, 112244874, -22461535, -29394303, -7268160, -52468415, -108919650, -104103304, 13301326, 73118567, 52122585, 102203101, 41605446, 20729775, -4756979, 28424459, -155371502, -17511636, 5618455, 5505410, 85295744, 12006207, 89617185, 93758240, -39406087, -153368384, -241891935, -90154208, 53801153, -120463274, -79570785, 65761127, -1749706, 16324637, -11701186, -7000958, -144215629, -138270855, 9694869, -4271094, -23293948, -20631906, 40544529, 71963839, -71064740, -9691846, -109736159, -12922682, 30643217, -35176665, -46242494, -14466372, 9448271, 113289818, -145989195, -4036755, -183882639, -195301861, 4021, -108849742, -29356122, -67162082, -21066487, 54286130, -37272744, 10526482, -60174353, -41485541, 2865440, -62782958, 23706807, -34915790, 29373392, 78020118, -60742889, 39947003, -52154515, -162217796, 88050753, -72458081, 99737048, -42748697, -15486274, 98778419, -128959313, 117810436, -7891280, -140950561, 60189892, -75075269, 103687696, -109656133, -24568789, 55729210, -56693640, 45544911, 46638649, -162557945, 82414679, -46959918, 122021846, -94312273, -29045252, 43453511, -109392732, 73498666, 137959450, -262110621, 113448173, -84190778, 104442701, -100794993, -26269838, 78128979, -59670106, 58610216, 84028505, -85727572, 45743622, -38702264, 136455491, -52206412, 45553278, 94647445, 593185, 59135664, 14566269, -91658048, 93533218, -135452375, 74432090, -118939385, 33731665, 74469298, -106429741, -28835874, -6782036, -182697445, -2498070, -159455717, -7095523, -115772590, 67315385, 19261394, -16263384, -31492002, 47693666, -39771084, 4596450, -191949159, 109282121, -41737929, 176183045, 49117070, -64561613, 30915311, 29620407, 2893496, -18496534, -262342095, 22436675, -234095857, 96940890, -2360378, -98985575, 75271532, -69449812, -194845855, 37035126, -113779925, 183235765, -149916559, 251155227, -70426412, 44822343, -41890278, -61741471, -215094775, 17531373, 17955095, 125160202, -395399243, 335667253, -205445498, 36661822, 106172755, -298021674, -131296813, 149831742, -152337998, -50975349, -142238781, 55555943, 7414503, -56777347, 45333765, -247847423, -131157160, -42443521, 94617777, 85236117, -674920, -127619997, -110627405, -238216773, 113546230, -118094176, -89480944, -43810755, -54322362, 100974418, 75726859, -143400818, -113175832, -154504582, -187756747, 72137855, 247611836, 68631254, 361026198, -20328971, 84361926, -80435194, -275552869, -201325044, -204022661, 62847689, 101187266, 137793422, 402560502, 125373289, 71965083, -50101351, -261195809, -105130158, -351795524, 39305378, 127342358, 182584837, 268619955, 5872700, -61339963, -283582568, 200342223, 8253841, -245697677, -15453566, -46875224, -70767008, 295693785, -55255871, -91680028, -95004864, 73351100, -116039589, -144697770, 28367452, 152834192, -174705505, -63008472, -88461675, -7720714, -155545652, -66431984, -181921944, -44198927, -102810718, 72217673, -103470832, 19380037, -10873705, -62271141, -80253527, -30498905, -9392755, -92821188, -188107312, 130760700, -76010957, -76217137, 57086561, 25389533, -15896982, 70127338, -59904151, -39096519, -50495520, 98055489, -48684098, 99183686, -21243267, -3472016, -16496863, 22819467, -1531700, -43835662, -235298395, -43487124, -28770875, 1411286, -16739937, 5815316, 19590784, 92848785, -90667523, 74965760, -218714759, 5173832, 89013316, -2661000, 33121753, -6853809, 27433986, 83297171, 20221582, 24822537, -314445853, -24927283, 37617594, 44272605, -49217533, -30727884, 40896989, 87439671, -48320048, 15917020, -291133046, 498756, 74219130, -38178034, 82501598, -107258618, -51894177, 70915312, -44813283, 98300375, -180083826, -120133698, 44382792, -18560104, 59459455, -84189810, 608372, 106448852, -60624797, 76855265, -208100826, -23504596, 96551590, -70630424, 59041973, -178883463, -81958562, 11976243, -127206415, 33458024, -133123294, -184476703, 70106976, -115763716, 124505751, -134904072, -107285880, 58098488, -81714951, 65501727, -54967996, -121233992, 106560916, -67717083, 115786768, -165175915, 3017982, 73136702, -44342708, 20765053, 42705785, -150930598, 150259167, -11536768, 119568467, -65968163, 28902337, 181749165, -8362856, 104058735, 72236627, -147410452, 24714878, -38988758, 87793052, -91595255, 103438176, 46948701, -42912520, 34783300, -48470229, -129783452, 71107171, -78185678, -42767484, -59693720, 38922083, -12630623, -25923016, -28742036, -70919432, -223260432, 85664302, -44159379, 68933368, -219870687, 39450809, 89447848, -32077536, 100595839, -22798387, -71988337, 111717351, -71793690, -54249298, -61929524, 245707497, 18240113, -108395569, -70535570, -173575878, -225413129, -22004273, -33837587, -8927001, -280123979, 196394712, -14321835, 60900822, -127734199, -138997093, -211129040, 121566169, -92673548, -82775481, -153716132, 237139121, -142317012, -47841210, -187140435, -207685739, -455791712, 134040847, 87361112, 114196859, -425729543, 260356188, -181019858, 22210993, -111119688, -45858849, -88038564, -30509865, -21117721, -7947894, 10317043, 153958380, -172336534, -171138123, -271465749, -31065254, -48311338, -24680125, 132385224, 17330486, 104894705, -54976512, -246877924, -260067344, -214282215, 73610313, 162718728, 104286954, 276916683, -59842139, 188695416, -119815715, -196019292, -212569252, -321269423, -6521657, 99401899, 93171805, 306998223, 107119374, 173998252, -37438814, -222931355, -193744272, -302967906, -4079162, 83364613, 17315023, 234204367, -1666133, 240136, -58288269, -134615734, -197842419, -87672941, 55912495, 197556570, -16284633, 223441079, 9465343, -143247560, -241852850, -15789185, -172284588, -175468922, -81901811, 251160443, -115683600, 74981622, -26771059, -242849812, -263266951, -5599113, -166970432, -300582826, -97479284, 180481881, -209161952, 99652112, -131234497, -156241432, -224324241, 145548612, -19994594, -171622038, -48338279, 66083044, -53565931, 66723987, -98029844, -220512420, -201157823, 93429819, -152852833, 26765415, -190880239, 127589792, -159902900, 40562432, -120807737, 7813635, -189877123, 117491335, -124061972, -102100506, -267322332, 106384002, -118795246, 69641665, -103520073, -53850815, -200905979, 179110706, -53804014, 8922664, -162673518, 57634469, -6573940, 58015388, -124558493, -153043017, -66446543, 130323887, -72730362, 29318064, -244522065, 75033933, 72479084, 55088967, -73817424, -149910852, -104268976, 78163639, -104608573, 50772544, -294131011, 15290111, -3008157, -4542491, -193150148, -102219105, -100083761, 110312127, -96885808, 45206364, -131240442, 11218441, 67198828, 3057756, -87778509, -126699179, -56301467, 192075804, -77898584, 32713592, -362665176, -43960690, 97357415, 33006877, -31603161, -68997167, -33976428, 10695164, -111500077, 73275007, -397870332, 35443407, 124488093, -34120534, -60754679, -276832789, 10038649, 184156835, -76964386, 128172606, -211034715, -66597737, 134736061, 6232857, -39594110, -251294762, 9064019, 178444400, -96698299, -2729977, -227530092, -21945793, 134384573, -29954577, 12067228, -260677904, 6219201, 100102946, -89615509, 112058572, -190338597, -3633221, 108622715, 13208897, -4475008, -340887487, 116163924, 144893482, -15374810, 152549490, -135821968, -38194243, 155272797, 23164518, -55430703, -337428629, 6389415, 260498464, -106046796, -14626136, -148564950, -45506477, 112057991, 16511448, -54023396, -272287667, 101869874, 11766030, -17775547, -88984400, -87819502, -49801953, 127287865, 90537123, -13634355, -297335804, 111679144, 15346251, -184175313, 180056319, -126949653, -23016006, 41588858, 7008638, -70856571, -287807345, -71089745, 98498173, 4188922, 77512413, -12443037, -166635171, -33697642, 97184911, 55136558, -108204097, -158643439, -116194494, 20063614, 299149454, -98990984, -274892896, -64999916, 140215993, 54330681, 24120420, -135055602, -57066821, -191674888, 181565851, -146967009, 21351213, -16867049, 171806797, -66968642, 185455203, -11874815, -83583981, -302038819, -232983008, -31969756, 224264562, -92488028, 236445531], "dense_bias": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]} \ No newline at end of file +{"in": [[["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["329411774873733504"], ["725490212440490752"], ["623529434204101504"], ["592156887054443392"], ["235294118523597728"], ["141176477074623104"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["870588243007659904"], ["996078431606292736"], ["996078431606292736"], ["996078431606292736"], ["996078431606292736"], ["945098042488098176"], ["776470601558685312"], ["776470601558685312"], ["776470601558685312"], ["776470601558685312"], ["776470601558685312"], ["776470601558685312"], ["776470601558685312"], ["776470601558685312"], ["666666686534881536"], ["203921571373939520"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["262745112180709824"], ["447058826684951808"], ["282352954149246208"], ["447058826684951808"], ["639215707778930688"], ["890196084976196352"], ["996078431606292736"], ["882352948188781696"], ["996078431606292736"], ["996078431606292736"], ["996078431606292736"], ["980392158031463680"], ["898039221763610880"], ["996078431606292736"], ["996078431606292736"], ["549019634723663360"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["66666670143604280"], ["258823543787002560"], ["54901961237192152"], ["262745112180709824"], ["262745112180709824"], ["262745112180709824"], ["231372550129890432"], ["82352943718433376"], ["925490200519561728"], ["996078431606292736"], ["415686279535293568"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["325490206480026240"], ["992156863212585472"], ["819607853889465344"], ["70588238537311552"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["86274512112140656"], ["913725495338439936"], ["1000000000000000000"], ["325490206480026240"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["505882382392883328"], ["996078431606292736"], ["933333337306976256"], ["172549024224281312"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["231372550129890432"], ["976470589637756288"], ["996078431606292736"], ["243137255311012256"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["521568655967712384"], ["996078431606292736"], ["733333349227905280"], ["19607843831181528"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["35294119268655776"], ["803921580314636288"], ["972549021244049024"], ["227450981736183168"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["494117647409439104"], ["996078431606292736"], ["713725507259368960"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["294117659330368064"], ["984313726425170944"], ["941176474094390912"], ["223529413342475904"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["74509806931018832"], ["866666674613952640"], ["996078431606292736"], ["650980412960052480"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["11764706112444400"], ["796078443527221632"], ["996078431606292736"], ["858823537826538112"], ["137254908680915840"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["149019613862037664"], ["996078431606292736"], ["996078431606292736"], ["301960796117782592"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["121568627655506128"], ["878431379795074432"], ["996078431606292736"], ["450980395078659072"], ["3921568859368562"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["521568655967712384"], ["996078431606292736"], ["996078431606292736"], ["203921571373939520"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["239215686917304992"], ["949019610881805440"], ["996078431606292736"], ["996078431606292736"], ["203921571373939520"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["474509805440902720"], ["996078431606292736"], ["996078431606292736"], ["858823537826538112"], ["156862750649452224"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["474509805440902720"], ["996078431606292736"], ["811764717102050816"], ["70588238537311552"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]], [["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"], ["0"]]], "conv2d_1_weights": [[[["21888242871839275222246405745257275088548364400416034343697607025318088933377", "76597700887314432", "563483182201044992", "575205556701102080"]], [["333779638197157888", "21888242871839275222246405745257275088548364400416034343697310917353441067009", "1135447035026079744", "397742868149567488"]], [["1063507432329707520", "279788909989199872", "512672757016690688", "235229328667836416"]]], [[["21888242871839275222246405745257275088548364400416034343697313523470876803073", "21888242871839275222246405745257275088548364400416034343697125705513095397377", "349651054184366080", "44979448734285824"]], [["21888242871839275222246405745257275088548364400416034343696890071169011548161", "21888242871839275222246405745257275088548364400416034343697734652023636230145", "21888242871839275222246405745257275088548364400416034343697458993944472846337", "289852911716925440"]], [["1237123754329374720", "1227225813217181696", "338257880337612800", "467278423031545856"]]], [[["210187229790732288", "21888242871839275222246405745257275088548364400416034343697617397492310081537", "21888242871839275222246405745257275088548364400416034343697248546731721752577", "21888242871839275222246405745257275088548364400416034343698086691380284882945"]], [["21888242871839275222246405745257275088548364400416034343696891881377467727873", "225830737633345536", "21888242871839275222246405745257275088548364400416034343697016553489112760321", "519505431509336064"]], [["21888242871839275222246405745257275088548364400416034343697757101886411898881", "549716300188876800", "21888242871839275222246405745257275088548364400416034343698107825110462234625", "401959220364181504"]]]], "conv2d_1_bias": ["21888242871839275222246405745257275088548364392490780293356517527490618458113", "21888242871839275222246405745257275088548364031477251968118730361886325342209", "21888242871839275222246405745257275088548364332153970239312269417557797109761", "48458611567652466590022551732224"], "conv2d_1_out": [[["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698056903689501440482", "180714083339864411", "21888242871839275222246405745257275088548364400416034343698172375712415245632", "132458558818594845"], ["21888242871839275222246405745257275088548364400416034343697447534299703758307", "472836160728498032", "21888242871839275222246405745257275088548364400416034343697742988690792042575", "462797145036026919"], ["21888242871839275222246405745257275088548364400416034343697042581758423823307", "312938111196631380", "21888242871839275222246405745257275088548364400416034343696967618906229042225", "588873668831494942"], ["21888242871839275222246405745257275088548364400416034343697273662232800290335", "40251729517945176", "21888242871839275222246405745257275088548364400416034343696713225668300393573", "476756692679063567"], ["21888242871839275222246405745257275088548364400416034343697452949616010986399", "21888242871839275222246405745257275088548364400416034343698101009610684376469", "21888242871839275222246405745257275088548364400416034343696882310344829191375", "328994105393495616"], ["21888242871839275222246405745257275088548364400416034343697956746929965382613", "21888242871839275222246405745257275088548364400416034343697987090094982302802", "21888242871839275222246405745257275088548364400416034343697345182546057925779", "109456628620339748"], ["21888242871839275222246405745257275088548364400416034343698068367844764508386", "21888242871839275222246405745257275088548364400416034343698097631604819330142", "21888242871839275222246405745257275088548364400416034343697811596023767008313", "45744476791701409"], ["29665567373879513", "21888242871839275222246405745257275088548364400416034343698120976821431967079", "21888242871839275222246405745257275088548364400416034343698069204447204082754", "21888242871839275222246405745257275088548364400416034343698187647476642845605"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["18288532180637129", "882470242454462795", "27466707853490745", "503916444720170009"], ["21888242871839275222246405745257275088548364400416034343697081005844233483802", "1479467302179290516", "21888242871839275222246405745257275088548364400416034343697074122888345500253", "1287193573747264557"], ["21888242871839275222246405745257275088548364400416034343696159285156398111077", "330589394985868590", "21888242871839275222246405745257275088548364400416034343695878653180014329352", "1332073649264690972"], ["21888242871839275222246405745257275088548364400416034343695928065646762658340", "21888242871839275222246405745257275088548364400416034343698043349512433714571", "21888242871839275222246405745257275088548364400416034343695962587408309799526", "1290931201984973357"], ["21888242871839275222246405745257275088548364400416034343695618622089662507488", "21888242871839275222246405745257275088548364400416034343697730091574460366244", "21888242871839275222246405745257275088548364400416034343695829603662021487100", "1110497366530311737"], ["21888242871839275222246405745257275088548364400416034343696021880703651279248", "21888242871839275222246405745257275088548364400416034343697787957322705887557", "21888242871839275222246405745257275088548364400416034343696057642234445832229", "941177353572563512"], ["21888242871839275222246405745257275088548364400416034343696431046451148329387", "21888242871839275222246405745257275088548364400416034343697939552936480553313", "21888242871839275222246405745257275088548364400416034343696032041692422482964", "737610925240405686"], ["21888242871839275222246405745257275088548364400416034343696910970986063361493", "21888242871839275222246405745257275088548364400416034343698099177740827730270", "21888242871839275222246405745257275088548364400416034343696353323449587432467", "610844231988804777"], ["21888242871839275222246405745257275088548364400416034343697001268330802309580", "146196063560418662", "21888242871839275222246405745257275088548364400416034343696465108046910786090", "624307106018387499"], ["21888242871839275222246405745257275088548364400416034343697001268330802309580", "146196063560418662", "21888242871839275222246405745257275088548364400416034343696465108046910786090", "624307106018387499"], ["21888242871839275222246405745257275088548364400416034343697001268330802309580", "146196063560418662", "21888242871839275222246405745257275088548364400416034343696465108046910786090", "624307106018387499"], ["21888242871839275222246405745257275088548364400416034343697001268330802309580", "146196063560418662", "21888242871839275222246405745257275088548364400416034343696465108046910786090", "624307106018387499"], ["21888242871839275222246405745257275088548364400416034343697001268330802309580", "146196063560418662", "21888242871839275222246405745257275088548364400416034343696465108046910786090", "624307106018387499"], ["21888242871839275222246405745257275088548364400416034343697001268330802309580", "146196063560418662", "21888242871839275222246405745257275088548364400416034343696465108046910786090", "624307106018387499"], ["21888242871839275222246405745257275088548364400416034343697050359980045257194", "85835061647279426", "21888242871839275222246405745257275088548364400416034343696475688913063236144", "580170409942484497"], ["21888242871839275222246405745257275088548364400416034343697401342484610684963", "21888242871839275222246405745257275088548364400416034343698010846005694171478", "21888242871839275222246405745257275088548364400416034343696650686472972965111", "337122013969203208"], ["21888242871839275222246405745257275088548364400416034343698076696136423139783", "21888242871839275222246405745257275088548364400416034343697858676661918120071", "21888242871839275222246405745257275088548364400416034343697324841060111694957", "27656689858753070"], ["42853784927611099", "21888242871839275222246405745257275088548364400416034343698084158685054049634", "21888242871839275222246405745257275088548364400416034343698009242735070676025", "21888242871839275222246405745257275088548364400416034343698180275229519999908"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["1309880024415949253", "1304640458110238029", "437977010458490676", "589955691019477526"], ["425051183372927508", "1027095126098492312", "78951831499110739", "1335711644570182698"], ["21888242871839275222246405745257275088548364400416034343697402970559110177685", "21888242871839275222246405745257275088548364400416034343697673253036233769301", "418795669538615584", "1732952255421801261"], ["21888242871839275222246405745257275088548364400416034343697168528299352197074", "21888242871839275222246405745257275088548364400416034343697595746254851405726", "557603386269882634", "1877472810332012850"], ["21888242871839275222246405745257275088548364400416034343696502743758526933979", "21888242871839275222246405745257275088548364400416034343697755589205841035610", "224847349343049261", "1904558581965755955"], ["21888242871839275222246405745257275088548364400416034343695909441954035115934", "21888242871839275222246405745257275088548364400416034343698067778473369994123", "21888242871839275222246405745257275088548364400416034343697530864979829348902", "1879970303457291375"], ["21888242871839275222246405745257275088548364400416034343695463058583542831448", "21888242871839275222246405745257275088548364400416034343697904138266782172768", "21888242871839275222246405745257275088548364400416034343696639578180296569805", "1660853152878216793"], ["21888242871839275222246405745257275088548364400416034343695703790267790831058", "21888242871839275222246405745257275088548364400416034343697971317658870419984", "21888242871839275222246405745257275088548364400416034343696179443167046323710", "1479198460112556568"], ["21888242871839275222246405745257275088548364400416034343696058938368280349191", "21888242871839275222246405745257275088548364400416034343698117068804039121240", "21888242871839275222246405745257275088548364400416034343696063851837459657316", "1364599529983087641"], ["21888242871839275222246405745257275088548364400416034343695885792180891594165", "5297810223486339", "21888242871839275222246405745257275088548364400416034343696037468293794353752", "1437042734229667387"], ["21888242871839275222246405745257275088548364400416034343695909695825207732672", "21888242871839275222246405745257275088548364400416034343698142751513847006564", "21888242871839275222246405745257275088548364400416034343695928787690552554021", "1423680536319509557"], ["21888242871839275222246405745257275088548364400416034343695916708917956725164", "21888242871839275222246405745257275088548364400416034343698134128513573700989", "21888242871839275222246405745257275088548364400416034343695930299242860046880", "1417375294022952007"], ["21888242871839275222246405745257275088548364400416034343695974112833243779448", "21888242871839275222246405745257275088548364400416034343698085315319406724478", "21888242871839275222246405745257275088548364400416034343695956864429978812396", "1376123667643759704"], ["21888242871839275222246405745257275088548364400416034343696035056135537072548", "21888242871839275222246405745257275088548364400416034343698129815780865722704", "21888242871839275222246405745257275088548364400416034343696060212727988580823", "1374591696086064190"], ["21888242871839275222246405745257275088548364400416034343695753248203685715318", "21888242871839275222246405745257275088548364400416034343698065525653027984643", "21888242871839275222246405745257275088548364400416034343695985335826212278771", "1383890672193943059"], ["21888242871839275222246405745257275088548364400416034343695545549979253627401", "21888242871839275222246405745257275088548364400416034343697245905788950076809", "21888242871839275222246405745257275088548364400416034343695860022778343997010", "944614338447082536"], ["21888242871839275222246405745257275088548364400416034343696831308396404638176", "21888242871839275222246405745257275088548364400416034343696928579575873274271", "21888242871839275222246405745257275088548364400416034343696681332050600829944", "257326272051826737"], ["21888242871839275222246405745257275088548364400416034343698137950146755269084", "21888242871839275222246405745257275088548364400416034343697661733355738496333", "21888242871839275222246405745257275088548364400416034343697750754668018339364", "21888242871839275222246405745257275088548364400416034343698148900144957333154"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["1250917361296149951", "565659580742961488", "535134217420264500", "327611468239419419"], ["1557703212809666071", "21888242871839275222246405745257275088548364400416034343698130113876386455958", "1454526302508115022", "865683963470633003"], ["399719295681129936", "21888242871839275222246405745257275088548364400416034343697512663827465569624", "1986382422864095281", "1404642482724552490"], ["580824063664836086", "21888242871839275222246405745257275088548364400416034343697602963633170478438", "2299990180122108014", "1514338489441692989"], ["748800824968072678", "21888242871839275222246405745257275088548364400416034343697939080584182515065", "2184661574899462217", "1644461351195343172"], ["576057179424055567", "21888242871839275222246405745257275088548364400416034343698001617729886357388", "2151393000739533485", "1839649876953133661"], ["21888242871839275222246405745257275088548364400416034343698040518930072999310", "21888242871839275222246405745257275088548364400416034343697925524036074497185", "1825339379340157256", "2022446635055381073"], ["21888242871839275222246405745257275088548364400416034343697364319191013317727", "21888242871839275222246405745257275088548364400416034343697504465541863011810", "1303258522904313985", "1924915236656616044"], ["21888242871839275222246405745257275088548364400416034343697875925156238071334", "21888242871839275222246405745257275088548364400416034343697525769305439267631", "1407000786372344704", "1807888718983447586"], ["21888242871839275222246405745257275088548364400416034343697512152478550797537", "21888242871839275222246405745257275088548364400416034343697761618372345493132", "1230523345420176724", "1967672523967614984"], ["21888242871839275222246405745257275088548364400416034343697454547362508094446", "21888242871839275222246405745257275088548364400416034343697517007500078245722", "1071664384222575475", "1948367261860422444"], ["21888242871839275222246405745257275088548364400416034343697449167693011830308", "21888242871839275222246405745257275088548364400416034343697480510891496006548", "1069381484623641346", "1928426914098360644"], ["21888242871839275222246405745257275088548364400416034343697475695253807039179", "21888242871839275222246405745257275088548364400416034343697297807094230583919", "1104833090788275860", "1809200430639557710"], ["21888242871839275222246405745257275088548364400416034343697531185670294540446", "21888242871839275222246405745257275088548364400416034343697921950403957708941", "1319595249177716318", "2095612664490216882"], ["21888242871839275222246405745257275088548364400416034343696189587935718434598", "46478084315950890", "295718270843563628", "2578393386577160667"], ["21888242871839275222246405745257275088548364400416034343695364485617972760002", "21888242871839275222246405745257275088548364400416034343696767048867375803328", "21888242871839275222246405745257275088548364400416034343697187408817817504550", "1925689675358439724"], ["21888242871839275222246405745257275088548364400416034343695929346233263506910", "21888242871839275222246405745257275088548364400416034343696250077284356328248", "21888242871839275222246405745257275088548364400416034343697304895394401706006", "767482040258018824"], ["21888242871839275222246405745257275088548364400416034343697680785003542731706", "21888242871839275222246405745257275088548364400416034343697383410110456178252", "21888242871839275222246405745257275088548364400416034343698113743612386554455", "93198739420764970"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["279423454358437322", "73144229759655264", "134633998990239798", "61853814960591392"], ["563141428095743472", "21888242871839275222246405745257275088548364400416034343698094197616806847866", "527459777754298426", "209714800798734884"], ["292594471798171107", "21888242871839275222246405745257275088548364400416034343697903598643346828107", "800350476552420430", "395413062943127076"], ["302719915276010979", "21888242871839275222246405745257275088548364400416034343698110926213344757621", "801633574072235088", "474664401382983222"], ["660411619033888257", "21888242871839275222246405745257275088548364400416034343698004946799814773588", "994352977520844899", "490636188561212463"], ["975588125060210199", "21888242871839275222246405745257275088548364400416034343697997951647872446309", "1456567256069234824", "751994792816429132"], ["1207332416942124518", "21888242871839275222246405745257275088548364400416034343698022619653567767341", "1919421412038728854", "1096371076317666892"], ["407680048326830476", "21888242871839275222246405745257275088548364400416034343697503062740094604626", "1933902575994624347", "1219506466910805121"], ["781397014094638532", "21888242871839275222246405745257275088548364400416034343697788160847174630017", "2212193489591510037", "1308585115803330581"], ["795764260540196870", "21888242871839275222246405745257275088548364400416034343697800198286734949458", "2051055774385201342", "1339474747872521512"], ["542733581669690865", "21888242871839275222246405745257275088548364400416034343697584754494989825380", "2187810748511053912", "1414238948225429286"], ["487239371390062120", "21888242871839275222246405745257275088548364400416034343697541864431629008247", "2169156807050057841", "1395889355301556019"], ["105770437200048680", "21888242871839275222246405745257275088548364400416034343697543612125017582923", "2050732599964684187", "1422385140436923203"], ["733552894758041003", "1017725238988995887", "1933121053305318023", "2190110413297412298"], ["21888242871839275222246405745257275088548364400416034343697402401715016678388", "640008953057675156", "255327666698873200", "2691138018145281421"], ["21888242871839275222246405745257275088548364400416034343696008113878556479732", "21888242871839275222246405745257275088548364400416034343696229991726169350000", "21888242871839275222246405745257275088548364400416034343697971450924736675939", "1960503082176481077"], ["21888242871839275222246405745257275088548364400416034343696438818515558441448", "21888242871839275222246405745257275088548364400416034343696055265868611655869", "356018570600057961", "897028877076266033"], ["21888242871839275222246405745257275088548364400416034343697520925708875684690", "21888242871839275222246405745257275088548364400416034343697756141090482391924", "387183281380179020", "326251164053923061"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["70892573932345819", "18283656189712996", "34109923519539518", "15730414673967780"], ["297504814265681879", "12495733816328546", "208319990659625533", "87447539652912932"], ["104959994782383062", "21888242871839275222246405745257275088548364400416034343697993086004886758504", "359524450596150713", "154255267859778147"], ["143189218181221067", "43927285928453473", "342814982175778098", "232567419081463454"], ["334337098616513990", "21888242871839275222246405745257275088548364400416034343698046834047534618798", "463903489410432932", "197938722649048217"], ["210221221190686158", "21888242871839275222246405745257275088548364400416034343698062754355042067309", "581019609502778397", "317491257994025490"], ["138284254827915475", "21888242871839275222246405745257275088548364400416034343698101403165701186415", "556622213212347999", "344790346910117395"], ["21888242871839275222246405745257275088548364400416034343698093028358926637527", "757343413892348897", "372504811127854374", "826774532270804626"], ["45230316589237598", "1972942486883040377", "21888242871839275222246405745257275088548364400416034343697731546390029332529", "1808058485663612634"], ["21888242871839275222246405745257275088548364400416034343697677719414481738195", "21888242871839275222246405745257275088548364400416034343697719656296569070613", "21888242871839275222246405745257275088548364400416034343697371538728137276940", "1878018173635574815"], ["21888242871839275222246405745257275088548364400416034343696335702210518486475", "21888242871839275222246405745257275088548364400416034343695619733987127838515", "283352439106531379", "1393135748498672144"], ["21888242871839275222246405745257275088548364400416034343696993765134587834311", "21888242871839275222246405745257275088548364400416034343696800725928932220775", "956118440639542338", "757416740922272551"], ["21888242871839275222246405745257275088548364400416034343697893076569343082979", "21888242871839275222246405745257275088548364400416034343698159530171816159590", "258845217543344439", "242328536501208669"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698084738631078219215", "383601161084112244", "21888242871839275222246405745257275088548364400416034343698184553779678369852", "243706764601762863"], ["253966681754551716", "1833342602658414440", "21888242871839275222246405745257275088548364400416034343697918985761272368664", "1191775983605973043"], ["21888242871839275222246405745257275088548364400416034343697709420398050933259", "1132797275786189633", "21888242871839275222246405745257275088548364400416034343697013514914940324647", "1932090604719596111"], ["21888242871839275222246405745257275088548364400416034343696394764734190229572", "21888242871839275222246405745257275088548364400416034343696237423642067300159", "21888242871839275222246405745257275088548364400416034343697541673970269096215", "1694932666201401353"], ["21888242871839275222246405745257275088548364400416034343696611683506670716359", "21888242871839275222246405745257275088548364400416034343695827421006468557187", "536048114461000085", "1032641907125892284"], ["21888242871839275222246405745257275088548364400416034343697484666993885377240", "21888242871839275222246405745257275088548364400416034343697751258505746332013", "490829456972821055", "493934107655349162"], ["21888242871839275222246405745257275088548364400416034343698162026089249295836", "5037957999267812", "39707023212866364", "40651205655972131"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698100735525844724703", "126820323440293215", "21888242871839275222246405745257275088548364400416034343698181822915772973760", "93050788475450912"], ["21888242871839275222246405745257275088548364400416034343698181574896999375397", "1233634464488541539", "21888242871839275222246405745257275088548364400416034343698050587775325103450", "769431329474828948"], ["21888242871839275222246405745257275088548364400416034343698094086345923673863", "1795409597648916834", "21888242871839275222246405745257275088548364400416034343697253690991374939259", "1741855527421671063"], ["21888242871839275222246405745257275088548364400416034343697705645107657984846", "21888242871839275222246405745257275088548364400416034343697591764424826927002", "21888242871839275222246405745257275088548364400416034343697413652602497738705", "1896397053831310098"], ["21888242871839275222246405745257275088548364400416034343696328557228397537844", "21888242871839275222246405745257275088548364400416034343695641298793214430316", "287600413486211182", "1405173726501252615"], ["21888242871839275222246405745257275088548364400416034343696708728843040250125", "21888242871839275222246405745257275088548364400416034343696759394608773239219", "898398885156324397", "768142620323509665"], ["21888242871839275222246405745257275088548364400416034343697856125459808900573", "21888242871839275222246405745257275088548364400416034343698042658583488316260", "243671943477039675", "195033394019914913"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["53043192059076054", "570292219059968334", "27936206343411772", "317813189288225816"], ["312177802587346381", "1896230632734903593", "21888242871839275222246405745257275088548364400416034343697905936411784608340", "1313735135886157831"], ["21888242871839275222246405745257275088548364400416034343697649977007737781824", "662848794901682581", "21888242871839275222246405745257275088548364400416034343697227283020006119060", "1945408686743926448"], ["21888242871839275222246405745257275088548364400416034343696587524897041825884", "21888242871839275222246405745257275088548364400416034343695983423224437750259", "21888242871839275222246405745257275088548364400416034343697955347534899510295", "1624833199988595815"], ["21888242871839275222246405745257275088548364400416034343697026119142875517125", "21888242871839275222246405745257275088548364400416034343695880377295962545780", "1152423227793110530", "1024113913299766927"], ["21888242871839275222246405745257275088548364400416034343697491989427490637676", "21888242871839275222246405745257275088548364400416034343697847451497932190955", "788044815657336598", "614169476542214768"], ["21888242871839275222246405745257275088548364400416034343698101139058230390234", "12847919763553892", "97160211191478846", "99299616148727333"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698188399190203691867", "19032813880414819", "21888242871839275222246405745257275088548364400416034343698200717320693557855", "14235255276236964"], ["485565789036161952", "1154348346549572906", "175591323815303726", "639671025631679536"], ["180190259919829063", "1739143432440297574", "21888242871839275222246405745257275088548364400416034343697833493135539870696", "1742813698286858237"], ["21888242871839275222246405745257275088548364400416034343697375997939286760493", "21888242871839275222246405745257275088548364400416034343697370683841662931591", "21888242871839275222246405745257275088548364400416034343697696829873682959985", "1912886859143941104"], ["21888242871839275222246405745257275088548364400416034343696291451868834506201", "21888242871839275222246405745257275088548364400416034343695543044395851695458", "414703508602022991", "1285512243990156045"], ["21888242871839275222246405745257275088548364400416034343697059400830977465544", "21888242871839275222246405745257275088548364400416034343697129369484725991400", "861712595109472822", "681648339505608486"], ["21888242871839275222246405745257275088548364400416034343698041522518306743008", "21888242871839275222246405745257275088548364400416034343698201294703530430434", "143791395536027767", "140784308913910957"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698026929408972407250", "314569440430833516", "21888242871839275222246405745257275088548364400416034343698168442927158768957", "215155783326594090"], ["409089581066139123", "1774729196547388592", "21888242871839275222246405745257275088548364400416034343698034330202626162228", "1165701726359854920"], ["21888242871839275222246405745257275088548364400416034343698030489624084233523", "917774627859351614", "21888242871839275222246405745257275088548364400416034343697325280882513966672", "1877163480669404759"], ["21888242871839275222246405745257275088548364400416034343696565151563519717806", "21888242871839275222246405745257275088548364400416034343696091348283743851837", "21888242871839275222246405745257275088548364400416034343697838724297966418983", "1546831150158352948"], ["21888242871839275222246405745257275088548364400416034343696859889646030443791", "21888242871839275222246405745257275088548364400416034343696056058768345783727", "892412229187906878", "895101487100397252"], ["21888242871839275222246405745257275088548364400416034343697570222886808697942", "21888242871839275222246405745257275088548364400416034343697997172625651613794", "514944890853680836", "439895375817897193"], ["21888242871839275222246405745257275088548364400416034343698192469605871048154", "1132976974450436", "10980428173990911", "11326999338190693"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698072683148186673617", "161312332724926832", "21888242871839275222246405745257275088548364400416034343698175776705107104572", "118271763651340333"], ["21888242871839275222246405745257275088548364400416034343698026955157847090110", "1223414003916981271", "21888242871839275222246405745257275088548364400416034343697945198058585435813", "787690885259158921"], ["21888242871839275222246405745257275088548364400416034343698003194524746955973", "1750523420682758032", "21888242871839275222246405745257275088548364400416034343697084292911399599875", "1666973251095553506"], ["21888242871839275222246405745257275088548364400416034343697491503361779321783", "21888242871839275222246405745257275088548364400416034343697393663501423880336", "21888242871839275222246405745257275088548364400416034343697227376086345359898", "1676469728492209639"], ["21888242871839275222246405745257275088548364400416034343696370017169312078148", "21888242871839275222246405745257275088548364400416034343695549123555871444565", "325334071492177348", "1160015703307880775"], ["21888242871839275222246405745257275088548364400416034343697110622612028537026", "21888242871839275222246405745257275088548364400416034343697174233631326734612", "842146560395229230", "655770413372719498"], ["21888242871839275222246405745257275088548364400416034343698068353736231316954", "17053283483178596", "128096540919351870", "130879527183341093"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698170866456665690330", "40590316611531621", "21888242871839275222246405745257275088548364400416034343698196938439565851262", "29998362515045669"], ["21888242871839275222246405745257275088548364400416034343698082785585486694897", "853827247396798721", "21888242871839275222246405745257275088548364400416034343698131602347032180803", "524556204894009905"], ["21888242871839275222246405745257275088548364400416034343697993888197532733312", "1907315492316226460", "21888242871839275222246405745257275088548364400416034343697374746397085528639", "1503345257117491210"], ["21888242871839275222246405745257275088548364400416034343697621292055762367944", "286858233833858394", "21888242871839275222246405745257275088548364400416034343696889594245493859900", "1846520562405943121"], ["21888242871839275222246405745257275088548364400416034343696518738923255583191", "21888242871839275222246405745257275088548364400416034343695884958103414122287", "21888242871839275222246405745257275088548364400416034343697972848253529759851", "1491020471560560207"], ["21888242871839275222246405745257275088548364400416034343696852399406131114416", "21888242871839275222246405745257275088548364400416034343696140581939068006655", "912010747625737371", "887514717085826123"], ["21888242871839275222246405745257275088548364400416034343697578880027641738665", "21888242871839275222246405745257275088548364400416034343698017415130697591132", "480261353000869478", "420641566134512329"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698198918830576320827", "6098311934566820", "21888242871839275222246405745257275088548364400416034343698202984649424027975", "4777390708339524"], ["21888242871839275222246405745257275088548364400416034343697925003133991297908", "531345548516516029", "21888242871839275222246405745257275088548364400416034343698138638403517998149", "360968182929138130"], ["21888242871839275222246405745257275088548364400416034343698003677907286686428", "1830968837360742697", "21888242871839275222246405745257275088548364400416034343697539861599944931585", "1308372768328201487"], ["21888242871839275222246405745257275088548364400416034343697852382987862411765", "977354955943349140", "21888242871839275222246405745257275088548364400416034343696733356885043182991", "1837719147724822676"], ["21888242871839275222246405745257275088548364400416034343697103468126605385673", "21888242871839275222246405745257275088548364400416034343696691855150113383224", "21888242871839275222246405745257275088548364400416034343697765874601591811807", "1798310107816313947"], ["21888242871839275222246405745257275088548364400416034343696426015074419973595", "21888242871839275222246405745257275088548364400416034343695648169457693558321", "617269050477852280", "1197046745648525137"], ["21888242871839275222246405745257275088548364400416034343697165799083434156240", "21888242871839275222246405745257275088548364400416034343697293627916193196387", "880524390305081434", "643479574105359808"], ["21888242871839275222246405745257275088548364400416034343698070695544945536467", "16752900360348261", "125886803081646661", "128623819252297259"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698152108660171344343", "95987523031544550", "21888242871839275222246405745257275088548364400416034343698193738069939701694", "65445659738176294"], ["407730549301585303", "1573135917549628530", "25679519406597160", "870775073090909525"], ["21888242871839275222246405745257275088548364400416034343697605241608201690522", "1696558877595204174", "21888242871839275222246405745257275088548364400416034343697059481417185309559", "1830612383068672239"], ["21888242871839275222246405745257275088548364400416034343697319970086310454806", "21888242871839275222246405745257275088548364400416034343697248221546237065263", "21888242871839275222246405745257275088548364400416034343697403437583469401633", "1869567026439836475"], ["21888242871839275222246405745257275088548364400416034343696678568095372911026", "21888242871839275222246405745257275088548364400416034343695737221001465783106", "397225645250821168", "1445580386191902770"], ["21888242871839275222246405745257275088548364400416034343696944820282556641199", "21888242871839275222246405745257275088548364400416034343696530756044883818832", "1209800402728203325", "874855325381293354"], ["21888242871839275222246405745257275088548364400416034343697693190485267559898", "21888242871839275222246405745257275088548364400416034343698105654420204751196", "414739576093437498", "380669659578310302"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698149827178418712798", "66459317431448417", "21888242871839275222246405745257275088548364400416034343698192403782643372671", "48914089404718370"], ["21888242871839275222246405745257275088548364400416034343697848777844494543734", "696145393251592952", "21888242871839275222246405745257275088548364400416034343698031530957305187050", "488698667632627047"], ["314448244704873104", "2038901449889906918", "21888242871839275222246405745257275088548364400416034343697596073732928707214", "1543077565244982773"], ["21888242871839275222246405745257275088548364400416034343697988638542165182902", "119519085452157569", "21888242871839275222246405745257275088548364400416034343697206183787550587130", "1914154396337587275"], ["21888242871839275222246405745257275088548364400416034343696767843687768342429", "21888242871839275222246405745257275088548364400416034343695963460664456485736", "240079106514671008", "1649608481941486509"], ["21888242871839275222246405745257275088548364400416034343696847651008440648351", "21888242871839275222246405745257275088548364400416034343696071579207737086708", "1294349368456448605", "1028252145930748693"], ["21888242871839275222246405745257275088548364400416034343697469014323764160038", "21888242871839275222246405745257275088548364400416034343697819035825856364098", "741543340315664789", "561761955490299058"], ["21888242871839275222246405745257275088548364400416034343698122215336658365910", "10144471658080869", "77272570652131906", "78998244769332776"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698121388727055969756", "435538011006905683", "21888242871839275222246405745257275088548364400416034343698194980740082966590", "266504185551717402"], ["21888242871839275222246405745257275088548364400416034343698159846562639793621", "1727624874251343173", "21888242871839275222246405745257275088548364400416034343697771645130973592656", "1152151952400414480"], ["21888242871839275222246405745257275088548364400416034343697640027317075076621", "1290512824706034585", "21888242871839275222246405745257275088548364400416034343696831430785926055782", "1875726003782923890"], ["21888242871839275222246405745257275088548364400416034343696784601400211417079", "21888242871839275222246405745257275088548364400416034343696495103811960702603", "21888242871839275222246405745257275088548364400416034343697492648639721378477", "1737618203558068286"], ["21888242871839275222246405745257275088548364400416034343696729763951039857844", "21888242871839275222246405745257275088548364400416034343695655207886912327426", "666469423585566648", "1206468872780649653"], ["21888242871839275222246405745257275088548364400416034343697346184284007691977", "21888242871839275222246405745257275088548364400416034343697402508589459550964", "863953540610029251", "690562783311171082"], ["21888242871839275222246405745257275088548364400416034343698020366565066261276", "18531226207395269", "171452748918039501", "173914376449872711"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698097228979470228443", "131131823576946020", "21888242871839275222246405745257275088548364400416034343698181067139619227327", "96203409623729700"], ["36310060178397621", "1249440937337445719", "21888242871839275222246405745257275088548364400416034343698067318560282902324", "778103775901464226"], ["21888242871839275222246405745257275088548364400416034343698085390264377632447", "1735840759119775107", "21888242871839275222246405745257275088548364400416034343697289088439835434017", "1736955547676833449"], ["21888242871839275222246405745257275088548364400416034343697389871699361073632", "21888242871839275222246405745257275088548364400416034343698114994831471763485", "21888242871839275222246405745257275088548364400416034343697371842641591220465", "2237639969540334375"], ["21888242871839275222246405745257275088548364400416034343695358882911501907935", "21888242871839275222246405745257275088548364400416034343695968385607458079057", "21888242871839275222246405745257275088548364400416034343697581768811155615910", "1918803301254276136"], ["21888242871839275222246405745257275088548364400416034343696550666732935896705", "21888242871839275222246405745257275088548364400416034343696169929119202600276", "77522795235274386", "846109265036186588"], ["21888242871839275222246405745257275088548364400416034343697797415860716652142", "21888242871839275222246405745257275088548364400416034343697895274176691367965", "134930153527238753", "246227138835207740"], ["21888242871839275222246405745257275088548364400416034343698201836841562150875", "21888242871839275222246405745257275088548364400416034343698204118020184618957", "2141476035993133", "2304166810462452"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["83785414458380756", "554048501779337577", "35123868962594620", "302562379008878632"], ["346348800505472462", "1852620969747066752", "21888242871839275222246405745257275088548364400416034343697954736827185322543", "1282423785010274355"], ["21888242871839275222246405745257275088548364400416034343697556940455032627139", "825316112372007296", "21888242871839275222246405745257275088548364400416034343697287945392394820620", "2055185821344414644"], ["21888242871839275222246405745257275088548364400416034343696880816299763986891", "21888242871839275222246405745257275088548364400416034343697476480808721769818", "21888242871839275222246405745257275088548364400416034343697848531402172032046", "2473041937198815289"], ["21888242871839275222246405745257275088548364400416034343695227039343694577574", "21888242871839275222246405745257275088548364400416034343695851407407429446490", "21888242871839275222246405745257275088548364400416034343697688943728078997159", "1838138668234572617"], ["21888242871839275222246405745257275088548364400416034343696496939219683731895", "21888242871839275222246405745257275088548364400416034343696459434296186044486", "21888242871839275222246405745257275088548364400416034343698186231538477363233", "738600389498528820"], ["21888242871839275222246405745257275088548364400416034343697933749715610534101", "21888242871839275222246405745257275088548364400416034343697907466657860568663", "36235211721290805", "108086939904578086"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["629281018704325089", "909737414024590198", "237353324483830080", "468780789101556013"], ["629805352131807710", "1705806076828517244", "81888026993083958", "1568309376495794746"], ["21888242871839275222246405745257275088548364400416034343697367759867929620424", "84634455388286563", "21888242871839275222246405745257275088548364400416034343697973051018022630975", "2312936521476139594"], ["21888242871839275222246405745257275088548364400416034343697008128084663844028", "21888242871839275222246405745257275088548364400416034343696815098278982428526", "150085441666678892", "2244304109025661271"], ["21888242871839275222246405745257275088548364400416034343696414986355160703437", "21888242871839275222246405745257275088548364400416034343695702017028599663298", "698507846220588586", "1325476393767234874"], ["21888242871839275222246405745257275088548364400416034343696721202620006858539", "21888242871839275222246405745257275088548364400416034343697056660280371496767", "908685982067862603", "729909413475991026"], ["21888242871839275222246405745257275088548364400416034343697942692723975067082", "21888242871839275222246405745257275088548364400416034343698050264054534171222", "169685340019960902", "124400879648234152"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]], [["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["1091664131518823921", "714724324322860403", "403706669110589510", "333395275191167531"], ["1826422244032808426", "854072169205670248", "1032704933765114955", "1026072217841986611"], ["381103740709662199", "21888242871839275222246405745257275088548364400416034343697645865025330511737", "1607194969416238173", "1592858648513955653"], ["21888242871839275222246405745257275088548364400416034343696988598672187715001", "21888242871839275222246405745257275088548364400416034343696261862450358651204", "1899730731091518536", "1484281670336856639"], ["21888242871839275222246405745257275088548364400416034343697247071737242772944", "21888242871839275222246405745257275088548364400416034343696648226287284103470", "1848005634651100791", "1008460900029574969"], ["21888242871839275222246405745257275088548364400416034343697680809758997870034", "21888242871839275222246405745257275088548364400416034343698053352799687724892", "686654955128097116", "559614590200767609"], ["21888242871839275222246405745257275088548364400416034343698110506293087268306", "11646387272232549", "88321259840657990", "90276784424551980"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"], ["21888242871839275222246405745257275088548364400416034343698204178650554445275", "21888242871839275222246405745257275088548364400416034343698203817637026120037", "21888242871839275222246405745257275088548364400416034343698204118313744391231", "48458611567652"]]], "conv2d_1_remainder": [[["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["693731138989719552", "451561698805153792", "655947984149938176", "831122580133642240"], ["857487717313282048", "928941520596238336", "842848547203710976", "685682639025471488"], ["490108201419145216", "681096624334700544", "628291680730087424", "135801794453831680"], ["664738550352707584", "30979283721650176", "355917071846998016", "741692199990984704"], ["412988286282760192", "111188773813878784", "191134362908491776", "595853903749185536"], ["857725126721929216", "652445902159216640", "538966498366455808", "628005436740599808"], ["696782613462646784", "355788496426500096", "469530307974922240", "176299951215345664"], ["491476004573544448", "820612312789942272", "801932091093417984", "926014595673358336"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["516711342120108032", "809506068923416576", "262764574770200576", "493207377210507264"], ["857762747314339840", "718837210483261440", "825830638829436928", "759156114996330496"], ["338389348631183360", "351382091764072448", "762566079867518976", "342532248786960384"], ["768472686414528512", "535581158287081472", "443900838957285376", "232733526048112640"], ["153318607942844416", "598356622671347712", "412279506497437696", "456273395625754624"], ["714559878137643008", "698440257236893696", "719739761617534976", "440943610840481792"], ["863462111544082432", "322554414592163840", "573994021111988224", "549413850855243776"], ["108455280113614848", "463613829371920384", "728237362281709568", "131232330843684864"], ["959010037273198592", "275135731048382464", "313618530358263808", "915869516543819776"], ["959010037273198592", "275135731048382464", "313618530358263808", "915869516543819776"], ["959010037273198592", "275135731048382464", "313618530358263808", "915869516543819776"], ["959010037273198592", "275135731048382464", "313618530358263808", "915869516543819776"], ["959010037273198592", "275135731048382464", "313618530358263808", "915869516543819776"], ["959010037273198592", "275135731048382464", "313618530358263808", "915869516543819776"], ["47457641139273728", "509218950009585664", "583136369449369600", "763397741599260672"], ["872481350416334848", "698815569772412928", "914109534705287168", "738523018579410944"], ["921893016957353984", "585988675568402432", "451356248882806784", "56285307574157312"], ["540801495033184256", "99418748680404992", "484443611247673344", "780436439318134784"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["371751089928404992", "782702809063358464", "291689210013810688", "818129312122667008"], ["746310981297111040", "79263546564673536", "434438177362804736", "411589462499786752"], ["644899551017172992", "303963711879512064", "971447629856636928", "133817153167818752"], ["95993810162286592", "782645454216888320", "423712524036734976", "157141226522935296"], ["341523097697386496", "814341890051407872", "543498226849546240", "380603427745693696"], ["931353333500477440", "226334904921096192", "625623145495920640", "798972915736641536"], ["919241307711602688", "579075917253705728", "609820530753667072", "500269009413603328"], ["90886274379677696", "707321465835618304", "495317895801995264", "175487872363659264"], ["134908844804931584", "583169256490008576", "766120760293195776", "173531757704642560"], ["419885553684578304", "197998718796169216", "314608442138689536", "362549786738688000"], ["701028277609037824", "703928377904726016", "23626185295527936", "56362339494789120"], ["330732116976599040", "750377305260425216", "633156920456511488", "370629317337808896"], ["48452159783829504", "806274308944691200", "140195896120049664", "288936760927322112"], ["528404713928130560", "464513073242439680", "319277779611287552", "646885921710931968"], ["256831043503128576", "978194175452774400", "526145455771877376", "274237207270916096"], ["677508420443570176", "235743186052448256", "563225852747972608", "45820413135028224"], ["462862010366033920", "33424635073134592", "782442422369255424", "855805930797531136"], ["401203564513591296", "670184809134292992", "512602545665081344", "213586421562998784"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["296409514442489856", "11865848633360384", "878832012724535296", "611911255471685632"], ["142742919147945984", "567486983711752192", "494115216666656768", "654626668194037760"], ["769608242304122880", "252263019328045056", "219063236414930944", "159506104288018432"], ["633549036995477504", "916317272107909120", "814188289820459008", "164395639401873408"], ["136916378495483904", "120004219135590400", "413262902200107008", "532719556690444288"], ["588087006729601024", "20404051215908864", "874713732493344768", "35449748062994432"], ["603658519323607040", "905489522383388672", "917272235643764736", "704802966675914752"], ["863531893583773696", "449699968754384896", "227246202735558656", "57045765722210304"], ["685635377319116800", "529696148194590720", "948389579621138432", "670191744338886656"], ["259751428749262848", "384416186004406272", "72597265254973440", "910779810557460480"], ["737100569292570624", "91326129746214912", "201682179893493760", "844890511277817856"], ["880353150917410816", "740352440315150336", "134384409862733824", "134068690041700352"], ["121918346707337216", "27136162443821056", "38406439947993088", "393327855704473600"], ["353517109263466496", "370147368622882816", "570382551920148480", "294624511003197440"], ["868453277451943936", "415984363819761664", "457331817420161024", "289321923994976256"], ["966927987622281216", "493142635832410112", "905944497681858560", "878274541121437696"], ["79089626059112448", "510814297782484992", "239894684360245248", "774294576182591488"], ["842295715072573440", "217594051714875392", "427195315337560064", "475950296969248768"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["501976510720638976", "366501125286789120", "443228977279533056", "969391487747883008"], ["761218787985850368", "17698312232370176", "397666276859183104", "615940625571774464"], ["477137478018662400", "176727745845788672", "942932880806903808", "326535254010494976"], ["722423822649917440", "697127817324789760", "921918180568334336", "243809364851818496"], ["43686368309411840", "601985912302469120", "195093721574014976", "850305825722597376"], ["622740812664668160", "488684060087943168", "519819649485897728", "288130347140382720"], ["952651315784712192", "386005545264349184", "609736930475114496", "739498671159115776"], ["466584658865291264", "57118846663524352", "226047039626280960", "408060237356728320"], ["753705506755837952", "764704893884694528", "509389337009061888", "217785850040942592"], ["342258962141806592", "117051171492593664", "388488709412487168", "12875286603366400"], ["813578714840039424", "179988943491825664", "108418571706564608", "303358332413411328"], ["421427269351768064", "30443265130496000", "149111226052116480", "344609590619668480"], ["654040528876208128", "561570422963306496", "10058185443639296", "595154396750544896"], ["623605798646579200", "610403348157562880", "702552876005982208", "241078126197080064"], ["704553539381493760", "353967794786664448", "50115013075009536", "686945003635474432"], ["639329804374769664", "567811806196924416", "878544682567073792", "676747734481108992"], ["23476059592982528", "133726227823329280", "598008550211190784", "792332691383779328"], ["921976077207470080", "938165565666885632", "912381847744282624", "408188914689114112"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["840055685830148096", "927825405911498752", "801196756221558784", "804272750229192704"], ["95147173653774336", "271141837429276672", "912879543032479744", "219779091030605824"], ["242406584199151616", "201462787942383616", "936886052809605120", "455397810600411136"], ["933628593499799552", "824807216557850624", "292077691261681664", "201745557877161984"], ["692529825757790208", "499017713829281792", "474428281529040896", "945544993307361280"], ["417720432213884928", "508109761041924096", "184914888348139520", "504384827663319040"], ["490493878367158272", "164599001235587072", "687773398941827072", "868013339808366592"], ["953183575080435712", "928284797226975232", "554413246143528960", "695018952517484544"], ["856697982073438208", "237693804285263872", "992113440220774400", "120495106646605824"], ["260254440613216256", "620843534990180352", "582962703957753856", "574325471913967616"], ["221128812909821952", "469764172171182080", "468090265921650688", "542051942352814080"], ["639332232383168512", "327971374375632896", "410404511332958208", "175881142875193344"], ["684079893158821888", "784335880697151488", "126092089665781760", "992971248192192512"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["741070086466961408", "80806434143469568", "605575347961069568", "632842884825219072"], ["737134503082852352", "641682327736418304", "830079071462621184", "595340061245177856"], ["161096732012707840", "810003803588526080", "601474452238630912", "898258544412065792"], ["983781224932966400", "447570489285017600", "645254863112372224", "418764742303940608"], ["976207122111397888", "245229721849692160", "750162093965836288", "216021679838593024"], ["273989784530321408", "141995192718721024", "878259524029644800", "229930370548105216"], ["480837826874966016", "376420821086765056", "963577338661961728", "342018221266960384"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["737034345441132544", "86990199663624192", "18682512152985600", "489391955432701952"], ["155403148879462400", "36201880716836864", "19148572037218304", "179161906767986688"], ["162739327919980544", "376759553225129984", "618842424065130496", "348169282615771136"], ["770911945001533440", "105020628255113216", "778604778631462912", "57095231215501312"], ["324385725440327680", "450865864136458240", "619442390876815360", "434413386772774912"], ["342401941328887808", "978014415959359488", "263058534959939584", "323782410428481536"], ["509776308147847168", "93644800155451392", "519140519879901184", "566553477860032512"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["273791038599462912", "299492769243070464", "485958444374818816", "469649614859927552"], ["441100269886636032", "694843722348363776", "901704809031401472", "174090180578508800"], ["74332043737300992", "3857167569125376", "28839534101004288", "268719180788793344"], ["749337010626625536", "966710871755063296", "83238257959632896", "765517162675961856"], ["430885870593114112", "312642025739780096", "719048583859929088", "629681770952130560"], ["2774541578534912", "835555125515255808", "67905662061379584", "224788792463065088"], ["737173607557103616", "600080123482341376", "608904208565403648", "21573508900061184"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["750383662940815360", "988806153789243392", "159428078484324352", "73659183113699328"], ["658433078988898304", "650979213714128896", "404818555180679168", "184847050741907456"], ["638097143781130240", "298924928171245568", "28082258875514880", "105655088288890880"], ["674758652154871808", "896959915038867456", "109208598571122688", "37259338540122112"], ["276262008735662080", "927955694451949568", "251680888035999744", "555401673286877184"], ["566937645624852480", "369160640209879040", "294540959937986560", "864956702039474176"], ["901560110867021824", "643483193057214464", "900951622593806336", "607605087319883776"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["465143059569180672", "718932487347109888", "88144716445515776", "877657227666128896"], ["747962947117252608", "576763026116444160", "460301671429570560", "206175334391873536"], ["108395793965645824", "369665951115247616", "560303941110464512", "368716473688129536"], ["127515795489816576", "894252110878605312", "297225647060156416", "944648176528261120"], ["5516939791695872", "125484886525476864", "176932770684600320", "855790699930451968"], ["668071098986528768", "793235313343070208", "348078795496882176", "30938381747486720"], ["228945056675659776", "665270451923058688", "88470217635921920", "511116128690110464"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["473984898948923392", "624228573267361792", "944525920422854656", "312833176972820480"], ["159877094194282496", "237463722690609152", "815850782421155840", "967979203380903936"], ["482774486382280704", "388383522844311552", "297578450136858624", "197695118864023552"], ["729897173464383488", "756505016296275968", "379851955842580480", "275299578256031744"], ["924045761540521984", "119174470210420736", "835616820922679296", "294984332739870720"], ["772667815992492032", "430540269475332096", "460341570014019584", "641765203370311680"], ["419931689393586176", "640772652078727168", "908254649109708800", "327151460897521664"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["126645420884230144", "985285568244744192", "809459045649612800", "533509125041815552"], ["589484315302166528", "937909334134489088", "41030140275720192", "448216277146402816"], ["89331849849208832", "333785777098981376", "305450398679302144", "126432124652224512"], ["994047186163728384", "941706857214902272", "867431101028892672", "583551656560164864"], ["325829513850650624", "988523761630707712", "809918545215881216", "604613174693724160"], ["452488700709044224", "393753557213904896", "765399013489115136", "146961581110198272"], ["906545470709432320", "493244023552868352", "361072272391798784", "580767965263953920"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["665354616788484096", "93354248966766592", "141101520499769344", "150106017260109824"], ["950633867001462784", "391192260989681664", "493392281495142400", "129420931557228544"], ["612561430523412480", "418587164993650688", "770044986006700032", "843247720350351360"], ["907320645706055680", "72594567730298880", "281243217365041152", "327344612617224192"], ["255760638643535872", "370929642292641792", "811276041280028672", "204549513706471424"], ["81176046381563904", "253707086590902272", "829062615696146432", "122544392050049024"], ["708386175293063168", "945917884557164544", "120860592425140224", "905885471920357376"], ["617891738181697536", "513268338748293120", "326680271368486912", "879102255196012544"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["965896189724065792", "478135267470344192", "287358578038931456", "232514918382305280"], ["116470505716056064", "575632726723919872", "479795150799765504", "915812018434080768"], ["223931054828552192", "11115424075218944", "176691123109494784", "631305781612118016"], ["476944875821727744", "515053333036662784", "441194225426497536", "581208963202416640"], ["540603682570108928", "538998513499635712", "725439763967901696", "299046444612452352"], ["889601886662426624", "374316635091369984", "140583955306643456", "379278871752081408"], ["762335638564110336", "674701828406116352", "913886573380501504", "916188013837942784"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["10693660017164288", "209625210353876992", "646599275845255168", "41488398127988736"], ["771501336256315392", "477163012954783744", "599147494302810112", "210919365263228928"], ["627287068594143232", "199138502056083456", "974874686106894336", "36823464103641088"], ["504137592423055360", "761072879362899968", "141997452709068800", "917018361701072896"], ["71198670960197632", "588762887707951104", "822481036741967872", "3110023759396864"], ["976694164215824384", "691986881752334336", "554993261436731392", "379785490041929728"], ["788738784900153344", "84360606368137216", "641638954127065088", "480453592440373248"], ["846294787728080896", "99162018326249472", "280349317594087424", "769397214280679424"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["50731785297068032", "38214317544570880", "792083111225327616", "273964931917283328"], ["651893470376493056", "53515548831252480", "521730670844968960", "580951922526126080"], ["362093756160147456", "558800302740602880", "599958046898913280", "6300727181312000"], ["232373385498722304", "661214181287526400", "429644916722761728", "289538942993694720"], ["311361787508555776", "747447418242203648", "228211827037700096", "417545892204904448"], ["588094646750543872", "479117588766654464", "574053369024610304", "469266047964807168"], ["397215103314034688", "220104403163283456", "385228159306170368", "990292435458588672"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["615472365066256384", "154687342029832192", "130350253492142080", "194953518165000192"], ["113704650163355648", "210888884790493184", "635076735273271296", "195280570743783424"], ["61346099881312256", "56900218038517760", "603403099926691840", "894812251225849856"], ["360222114044968960", "310965872255565824", "568507680600096768", "325223770543620096"], ["804299049376677888", "641938925882966016", "459964090984169472", "81239777917009920"], ["480343866386415616", "963892728009326592", "266554833987174400", "475452741054889984"], ["517509956995121152", "526775522400665600", "837868465306730496", "38413659962081280"], ["730376993351663616", "472682213986533376", "671714467660955648", "64887020856541184"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["989004738059042816", "215475411293569024", "869263875589013504", "186105761424736256"], ["264918439779893248", "880234541850034176", "935721206395961344", "131713689707610112"], ["682650108016721920", "322519234305327104", "511919230215782400", "278320058045825024"], ["217705375814123520", "325301400038539264", "962408371152748544", "707624150192881664"], ["332037790597120000", "579378263495540736", "643045622192537600", "506232398132543488"], ["54779778039283712", "143066803236241408", "585907847804485632", "31152217862963200"], ["678141248513507328", "150846297000640512", "514883729010458624", "381480456042315776"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["525894083107618816", "175932146553716736", "147189574035046400", "33957482190340096"], ["73252176164028416", "541390045442998272", "943018031912058880", "947125738943283200"], ["340082702508359680", "314032088520327168", "726505702650544128", "525000447918342144"], ["33811955184828416", "516882149210324992", "495220816180412416", "146590130650742784"], ["971422129709907968", "331776018330943488", "999617258455564288", "679101272994349056"], ["746076028490219520", "400334274144239616", "269951514052919296", "954079074168864768"], ["887043385389219840", "306028789409513472", "435385778481659904", "479132511266406400"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]], [["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["409521187129655296", "655190305205911552", "607776833553301504", "519109248596312064"], ["677315973389746176", "10742624199639040", "675651122650939392", "371409390568472576"], ["314406844250718208", "778086441214279680", "271608683613126656", "442146005925494784"], ["801528704216858624", "515553342942085120", "204621235036880896", "350911945020538880"], ["279026223422898176", "623191364689723392", "131302272398524416", "798322391988830208"], ["340073129531146240", "654188569202786304", "562445678426456064", "148093877498937344"], ["638174049735540736", "638936441766543360", "251144867167076352", "822798871658758144"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"], ["313340914809962496", "526175310516846592", "65230981988614144", "466590022551732224"]]], "bn_1_a": ["2841135978698730496", "2735074520111084032", "2077485799789428736", "1246628046035766528"], "bn_1_b": ["973027706146240347371209174433136640", "21888242871839275222246405745257275088548313660114425304393876048847354986497", "21888242871839275222246405745257275088548289323761480930304632907162959478785", "21888242871839275222246405745257275088547805460839885356867510565180138323969"], "bn_1_out": [[["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["554576998812671403", "443526183159054795", "21888242871839275222246405745257275088548364400416034343698063023304276564017", "21888242871839275222246405745257275088548364400416034343697810373554020247329"], ["21888242871839275222246405745257275088548364400416034343697027462276949281076", "1242501833786624848", "21888242871839275222246405745257275088548364400416034343697170977864240483283", "17996324478206653"], ["21888242871839275222246405745257275088548364400416034343695876937042253374888", "805168752696556320", "21888242871839275222246405745257275088548364400416034343695560158147225061446", "175166854988332778"], ["21888242871839275222246405745257275088548364400416034343696533468091979125452", "59351178185895753", "21888242871839275222246405745257275088548364400416034343695031659807865840364", "35398688079988620"], ["21888242871839275222246405745257275088548364400416034343697042847926945780756", "21888242871839275222246405745257275088548364400416034343697871249585826088080", "21888242871839275222246405745257275088548364400416034343695382930822316406715", "21888242871839275222246405745257275088548364400416034343698055380278423487264"], ["270018025784900221", "21888242871839275222246405745257275088548364400416034343697559671221085951843", "21888242871839275222246405745257275088548364400416034343696344541247486377407", "21888242871839275222246405745257275088548364400416034343697781698702722145485"], ["587148222795962035", "21888242871839275222246405745257275088548364400416034343697862010488055814070", "21888242871839275222246405745257275088548364400416034343697313508624257399627", "21888242871839275222246405745257275088548364400416034343697702273347379275983"], ["1057311616940680645", "21888242871839275222246405745257275088548364400416034343697925861395179511347", "21888242871839275222246405745257275088548364400416034343697848686465854064040", "21888242871839275222246405745257275088548364400416034343697624628894783442735"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["1024987912922238044", "2362881573284412499", "21888242871839275222246405745257275088548364400416034343698186171616787674027", "69256796697809066"], ["21888242871839275222246405745257275088548364400416034343695986105094895808661", "3995713019919023850", "21888242871839275222246405745257275088548364400416034343695781418657693030268", "1045712033561360926"], ["21888242871839275222246405745257275088548364400416034343693367371286375789917", "853446329235748839", "21888242871839275222246405745257275088548364400416034343693297847314556612591", "1101660794409587861"], ["21888242871839275222246405745257275088548364400416034343692710445218573427359", "21888242871839275222246405745257275088548364400416034343697713544920273601033", "21888242871839275222246405745257275088548364400416034343693472219481956735945", "1050371465748143953"], ["21888242871839275222246405745257275088548364400416034343691831273995119673774", "21888242871839275222246405745257275088548364400416034343696856761115900157630", "21888242871839275222246405745257275088548364400416034343693195947637439966730", "825437586016560124"], ["21888242871839275222246405745257275088548364400416034343692976986552043356401", "21888242871839275222246405745257275088548364400416034343697015028249513645638", "21888242871839275222246405745257275088548364400416034343693669694533455796939", "614358509108291785"], ["21888242871839275222246405745257275088548364400416034343694139482078508385586", "21888242871839275222246405745257275088548364400416034343697429653550109334821", "21888242871839275222246405745257275088548364400416034343693616509770935376311", "360586890318093971"], ["21888242871839275222246405745257275088548364400416034343695503012941715738383", "21888242871839275222246405745257275088548364400416034343697866239285257015517", "21888242871839275222246405745257275088548364400416034343694283968059176954456", "202555975207435339"], ["21888242871839275222246405745257275088548364400416034343695759559976634526320", "349116826775602306", "21888242871839275222246405745257275088548364400416034343694516198972751400992", "219339171552959714"], ["21888242871839275222246405745257275088548364400416034343695759559976634526320", "349116826775602306", "21888242871839275222246405745257275088548364400416034343694516198972751400992", "219339171552959714"], ["21888242871839275222246405745257275088548364400416034343695759559976634526320", "349116826775602306", "21888242871839275222246405745257275088548364400416034343694516198972751400992", "219339171552959714"], ["21888242871839275222246405745257275088548364400416034343695759559976634526320", "349116826775602306", "21888242871839275222246405745257275088548364400416034343694516198972751400992", "219339171552959714"], ["21888242871839275222246405745257275088548364400416034343695759559976634526320", "349116826775602306", "21888242871839275222246405745257275088548364400416034343694516198972751400992", "219339171552959714"], ["21888242871839275222246405745257275088548364400416034343695759559976634526320", "349116826775602306", "21888242871839275222246405745257275088548364400416034343694516198972751400992", "219339171552959714"], ["21888242871839275222246405745257275088548364400416034343695899036027552323081", "184024988434598785", "21888242871839275222246405745257275088548364400416034343694538180571932588588", "164317128365382271"], ["21888242871839275222246405745257275088548364400416034343696896225049166951350", "21888242871839275222246405745257275088548364400416034343697624645407176017822", "21888242871839275222246405745257275088548364400416034343694901735517642850342", "21888242871839275222246405745257275088548364400416034343698065512757209578969"], ["610810031868396223", "21888242871839275222246405745257275088548364400416034343697208450912272115449", "21888242871839275222246405745257275088548364400416034343696302282099286466643", "21888242871839275222246405745257275088548364400416034343697679724604897943325"], ["1094781136327493612", "21888242871839275222246405745257275088548364400416034343697825161048494294345", "21888242871839275222246405745257275088548364400416034343697724116860365850069", "21888242871839275222246405745257275088548364400416034343697615438444757796802"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["4694574971293165326", "3517548573274324802", "834814365308327102", "176515734194304852"], ["2180655916015536305", "2758441407513227896", "88944654253356892", "1106196021388760303"], ["21888242871839275222246405745257275088548364400416034343696900850630203462050", "21888242871839275222246405745257275088548364400416034343696701303478236232491", "794965401926366700", "1601407307900767866"], ["21888242871839275222246405745257275088548364400416034343696234768291077629807", "21888242871839275222246405745257275088548364400416034343696489316655341509734", "1083336462336767496", "1781570684880489643"], ["21888242871839275222246405745257275088548364400416034343694343183878077561054", "21888242871839275222246405745257275088548364400416034343696926499037812611213", "392040520827064384", "1815336567447633802"], ["21888242871839275222246405745257275088548364400416034343692657532775108976736", "21888242871839275222246405745257275088548364400416034343697780359948883208247", "21888242871839275222246405745257275088548364400416034343696730293866916850006", "1784684129855243371"], ["21888242871839275222246405745257275088548364400416034343691389296920910542038", "21888242871839275222246405745257275088548364400416034343697332791789379144103", "21888242871839275222246405745257275088548364400416034343694878658197347734185", "1511526544575926796"], ["21888242871839275222246405745257275088548364400416034343692073248370240276173", "21888242871839275222246405745257275088548364400416034343697516532432956261212", "21888242871839275222246405745257275088548364400416034343693922734241334427288", "1285070709880244296"], ["21888242871839275222246405745257275088548364400416034343693082272416307558361", "21888242871839275222246405745257275088548364400416034343697915172676384187744", "21888242871839275222246405745257275088548364400416034343693682594895539348197", "1142208469535155115"], ["21888242871839275222246405745257275088548364400416034343692590340553742854063", "21888242871839275222246405745257275088548364400416034343698167936179954097806", "21888242871839275222246405745257275088548364400416034343693627783458226555707", "1232518199693638768"], ["21888242871839275222246405745257275088548364400416034343692658254057631452586", "21888242871839275222246405745257275088548364400416034343697985416801587141928", "21888242871839275222246405745257275088548364400416034343693402001048279167811", "1215860509022155509"], ["21888242871839275222246405745257275088548364400416034343692678179207762566340", "21888242871839275222246405745257275088548364400416034343697961832253252712936", "21888242871839275222246405745257275088548364400416034343693405141276733623170", "1208000217138215902"], ["21888242871839275222246405745257275088548364400416034343692841271536802790331", "21888242871839275222246405745257275088548364400416034343697828324529641380489", "21888242871839275222246405745257275088548364400416034343693460330075741607578", "1156574782749325918"], ["21888242871839275222246405745257275088548364400416034343693014419745608978209", "21888242871839275222246405745257275088548364400416034343697950036607911071852", "21888242871839275222246405745257275088548364400416034343693675034697289307564", "1154664984039773590"], ["21888242871839275222246405745257275088548364400416034343692213765091343407239", "21888242871839275222246405745257275088548364400416034343697774198317367390180", "21888242871839275222246405745257275088548364400416034343693519478997116812199", "1166257348455271902"], ["21888242871839275222246405745257275088548364400416034343691623666193197558557", "21888242871839275222246405745257275088548364400416034343695532476910950994489", "21888242871839275222246405745257275088548364400416034343693259142919642123897", "618643150846667920"], ["21888242871839275222246405745257275088548364400416034343695276680692080026145", "21888242871839275222246405745257275088548364400416034343694664566071001291189", "21888242871839275222246405745257275088548364400416034343694965401269991084138", "21888242871839275222246405745257275088548364400416034343697966037147381145629"], ["784841004462592554", "21888242871839275222246405745257275088548364400416034343696669796293633790763", "21888242871839275222246405745257275088548364400416034343697187111571649602958", "21888242871839275222246405745257275088548364400416034343697576325384395232604"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["4527054027703610794", "1496380804737753077", "1036657083118614848", "21888242871839275222246405745257275088548364400416034343698053656644169724801"], ["5398674348194387826", "21888242871839275222246405745257275088548364400416034343697950851921374388620", "2946681084327418507", "520246331716906277"], ["2108684578486014685", "21888242871839275222246405745257275088548364400416034343696262080025129530071", "4051604621898064824", "1192127137468749980"], ["2623227850718408170", "21888242871839275222246405745257275088548364400416034343696509056722884007674", "4703120284305396432", "1328877255980465161"], ["3100472670842322305", "21888242871839275222246405745257275088548364400416034343697428361631374454492", "4463526744645828840", "1491092064873000265"], ["2609684484395634656", "21888242871839275222246405745257275088548364400416034343697599405385149507974", "4394411754249335376", "1734419555347036507"], ["508025669298203942", "21888242871839275222246405745257275088548364400416034343697391283462063554665", "3717039985822212655", "1962299120721713872"], ["21888242871839275222246405745257275088548364400416034343696791036837677544945", "21888242871839275222246405745257275088548364400416034343696239657103069380649", "2632424420234844874", "1840713744108725535"], ["40392376585988347", "21888242871839275222246405745257275088548364400416034343696297924484009268530", "2847947499427692307", "1694825205047453442"], ["21888242871839275222246405745257275088548364400416034343697211051309749593483", "21888242871839275222246405745257275088548364400416034343696942989257496460192", "2481318121866385927", "1894016177643026018"], ["21888242871839275222246405745257275088548364400416034343697047387342003554296", "21888242871839275222246405745257275088548364400416034343696273960293416164809", "2151290885809069471", "1869949696464128257"], ["21888242871839275222246405745257275088548364400416034343697032102969444210178", "21888242871839275222246405745257275088548364400416034343696174139349212414929", "2146548194309938836", "1845091499696235485"], ["21888242871839275222246405745257275088548364400416034343697107471376846596007", "21888242871839275222246405745257275088548364400416034343695674430848584216345", "2220198402696694411", "1696460421586272345"], ["21888242871839275222246405745257275088548364400416034343697265127195602213090", "21888242871839275222246405745257275088548364400416034343697381509311916676501", "2666363737082885093", "2053509945032258616"], ["21888242871839275222246405745257275088548364400416034343693453465602957328936", "76380722547092577", "539273853862374294", "2655357933271241779"], ["21888242871839275222246405745257275088548364400416034343691109237721902380835", "21888242871839275222246405745257275088548364400416034343694222767545974367446", "21888242871839275222246405745257275088548364400416034343696016768567487065931", "1841679181114354465"], ["21888242871839275222246405745257275088548364400416034343692714083538954824144", "21888242871839275222246405745257275088548364400416034343692808811741636309203", "21888242871839275222246405745257275088548364400416034343696260845262006617663", "397825060065410679"], ["21888242871839275222246405745257275088548364400416034343697690159243682990498", "21888242871839275222246405745257275088548364400416034343695908561477107495105", "21888242871839275222246405745257275088548364400416034343697941215949055124740", "21888242871839275222246405745257275088548364400416034343697761431162076613588"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["1766907735616279219", "149314617499744688", "204623566517674074", "21888242871839275222246405745257275088548364400416034343697722355700143688696"], ["2572989078604841243", "21888242871839275222246405745257275088548364400416034343697852618274940506893", "1020713543691229603", "21888242871839275222246405745257275088548364400416034343697906683352004015664"], ["1804328387140375314", "21888242871839275222246405745257275088548364400416034343697331315879070678109", "1587640095338942193", "21888242871839275222246405745257275088548364400416034343698138180013693316854"], ["1833096148905546576", "21888242871839275222246405745257275088548364400416034343697898372233088562358", "1590305712216102181", "32790379069818338"], ["2849346917734099613", "21888242871839275222246405745257275088548364400416034343697608510639486387153", "1990677536224478924", "52701256911513366"], ["3744806228646040134", "21888242871839275222246405745257275088548364400416034343697589378377644622253", "2950921136368674561", "378518223048829297"], ["4403223274169807037", "21888242871839275222246405745257275088548364400416034343697656847211483849912", "3912494072768819857", "807827356451036508"], ["2131302159245235597", "21888242871839275222246405745257275088548364400416034343696235820335695843390", "3942578485251615253", "961331387824011325"], ["3193082876538276900", "21888242871839275222246405745257275088548364400416034343697015584904102322285", "4520723906459572129", "1072379329836406437"], ["3233902177329584146", "21888242871839275222246405745257275088548364400416034343697048508198331129159", "4185962591307952717", "1110887211505585679"], ["2515007611876024880", "21888242871839275222246405745257275088548364400416034343696459253373012921594", "4470069108104982176", "1204090360504957664"], ["2357341014441098715", "21888242871839275222246405745257275088548364400416034343696341945853548800686", "4431315809609659569", "1181215243332717805"], ["1273535900757993265", "21888242871839275222246405745257275088548364400416034343696346725925204857882", "4185291201038473150", "1214245632184204106"], ["3057151227721914023", "2732814068023726929", "3940954882962368120", "2171313488982551324"], ["21888242871839275222246405745257275088548364400416034343696899234466783150933", "1699731878541978880", "455362947306863885", "2795908553024030554"], ["21888242871839275222246405745257275088548364400416034343692937873129954068935", "21888242871839275222246405745257275088548364400416034343692753876243216896417", "21888242871839275222246405745257275088548364400416034343697645604911048629502", "1885078550431777589"], ["21888242871839275222246405745257275088548364400416034343694161563570332718888", "21888242871839275222246405745257275088548364400416034343692275988002206288516", "664546870329537219", "559321780118256495"], ["21888242871839275222246405745257275088548364400416034343697235977250075041126", "21888242871839275222246405745257275088548364400416034343696928008483433225512", "729291114429783248", "21888242871839275222246405745257275088548364400416034343698051960850820945201"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["1174443148567987795", "21888242871839275222246405745257275088548364400416034343698203453436378411636", "21888242871839275222246405745257275088548364400416034343698199972802998829024", "21888242871839275222246405745257275088548364400416034343697664856975767849589"], ["1818279337792552470", "21888242871839275222246405745257275088548364400416034343698187623037370586955", "357705167854225080", "21888242871839275222246405745257275088548364400416034343697754261555147654847"], ["1271233323646499894", "21888242871839275222246405745257275088548364400416034343697576070481490510318", "671830286237185729", "21888242871839275222246405745257275088548364400416034343697837545942822267795"], ["1379847745682649918", "69404098871507952", "637116602871831724", "21888242871839275222246405745257275088548364400416034343697935172066880614815"], ["1922924866039363796", "21888242871839275222246405745257275088548364400416034343697723075383442516890", "888676257169526650", "21888242871839275222246405745257275088548364400416034343697892002962710307289"], ["1570294781157082767", "21888242871839275222246405745257275088548364400416034343697766618610858472514", "1131983333587807753", "21888242871839275222246405745257275088548364400416034343698041040506246038222"], ["1365912077825374628", "21888242871839275222246405745257275088548364400416034343697872325988124826852", "1081298089242603316", "21888242871839275222246405745257275088548364400416034343698075072316120062525"], ["657212096835196716", "2020650372701866946", "698796800917947243", "471740743527901137"], ["1101533185935857336", "5345404423909361057", "21888242871839275222246405745257275088548364400416034343697147206646889033413", "1695036840952229574"], ["21888242871839275222246405745257275088548364400416034343697681449488305896577", "21888242871839275222246405745257275088548364400416034343696828219853229396427", "21888242871839275222246405745257275088548364400416034343696399295841492894063", "1782250550069988706"], ["21888242871839275222246405745257275088548364400416034343693868596126093229579", "21888242871839275222246405745257275088548364400416034343691084775850463859242", "513584014026104352", "1177782519864487886"], ["21888242871839275222246405745257275088548364400416034343695738242375914344516", "21888242871839275222246405745257275088548364400416034343694314876818949537332", "1911245828792047663", "385277375621724204"], ["89121873444161839", "21888242871839275222246405745257275088548364400416034343698031307681480231156", "462670609236290198", "21888242871839275222246405745257275088548364400416034343697947340549616717476"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["633659852791434634", "998437459957143634", "21888242871839275222246405745257275088548364400416034343698088323066084585097", "21888242871839275222246405745257275088548364400416034343697949058687420702937"], ["1694581583069827658", "4963588337556129382", "21888242871839275222246405745257275088548364400416034343697536609278967899987", "926761789606081066"], ["21888242871839275222246405745257275088548364400416034343697771516293284473970", "3047544663845016617", "21888242871839275222246405745257275088548364400416034343695655506453589762597", "1849658759176665819"], ["21888242871839275222246405745257275088548364400416034343694036400787089764341", "21888242871839275222246405745257275088548364400416034343692774203087024988384", "21888242871839275222246405745257275088548364400416034343696752749391065484742", "1554011021679858237"], ["21888242871839275222246405745257275088548364400416034343694652696516039239416", "21888242871839275222246405745257275088548364400416034343691652815325220476791", "1038555691243212607", "728380786786011759"], ["21888242871839275222246405745257275088548364400416034343697132961310374695639", "21888242871839275222246405745257275088548364400416034343696914654250329344747", "944614572425978754", "56812535347821044"], ["853244030903453604", "21888242871839275222246405745257275088548364400416034343698167225464756643520", "7414122323225696", "21888242871839275222246405745257275088548364400416034343697695923932735411424"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["679109206060010803", "296122733664753122", "21888242871839275222246405745257275088548364400416034343698082649735099967214", "21888242871839275222246405745257275088548364400416034343697761246722278747579"], ["908784851942869226", "3323341889344452581", "21888242871839275222246405745257275088548364400416034343697810010594386145354", "400255098672921274"], ["660217981757472077", "4859838742083406371", "21888242871839275222246405745257275088548364400416034343696154468841831814902", "1612506376477290509"], ["21888242871839275222246405745257275088548364400416034343697760790179919032566", "21888242871839275222246405745257275088548364400416034343696478426053498144682", "21888242871839275222246405745257275088548364400416034343696486786817450869489", "1805162177576723628"], ["21888242871839275222246405745257275088548364400416034343693848296260322243259", "21888242871839275222246405745257275088548364400416034343691143757202122432896", "522409120477758450", "1192789400860066318"], ["21888242871839275222246405745257275088548364400416034343694928415512763642237", "21888242871839275222246405745257275088548364400416034343694201832578300153279", "1791334271905504332", "398648557701703705"], ["21888242871839275222246405745257275088548364400416034343698188325322502254135", "21888242871839275222246405745257275088548364400416034343697711655178119834890", "431148347827228848", "21888242871839275222246405745257275088548364400416034343697888381098558279066"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["1123730627530308121", "1509051415759488797", "21888242871839275222246405745257275088548364400416034343698187146993233507541", "21888242871839275222246405745257275088548364400416034343698041441834826284940"], ["1859967292828259788", "5135591786238314371", "21888242871839275222246405745257275088548364400416034343697509499440710588458", "1078799489309306329"], ["21888242871839275222246405745257275088548364400416034343697602629538369947832", "1762200548012890544", "21888242871839275222246405745257275088548364400416034343696099606656311845136", "1866261453747600813"], ["21888242871839275222246405745257275088548364400416034343694584058621027261102", "21888242871839275222246405745257275088548364400416034343692079493016668832263", "21888242871839275222246405745257275088548364400416034343697612150347333444475", "1466623061086838234"], ["21888242871839275222246405745257275088548364400416034343695830164512915597066", "21888242871839275222246405745257275088548364400416034343691797654723295111283", "2319066236534271854", "717749550505944024"], ["21888242871839275222246405745257275088548364400416034343697153765339942233721", "21888242871839275222246405745257275088548364400416034343697177749252270132149", "1562075259572381461", "206701318327643911"], ["680255696439495275", "21888242871839275222246405745257275088548364400416034343698188586292181184186", "126772304501425841", "21888242871839275222246405745257275088548364400416034343697769036686111098389"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["928173596894841995", "1315862681299835", "21888242871839275222246405745257275088548364400416034343698121902593017952180", "21888242871839275222246405745257275088548364400416034343697662993068129344408"], ["2352586139402117636", "3106488448371057136", "289711827239107432", "238492264639928556"], ["1484972736615542523", "4705946587276951076", "21888242871839275222246405745257275088548364400416034343697358999563021923150", "1613700859150727195"], ["21888242871839275222246405745257275088548364400416034343696824217749583388867", "21888242871839275222246405745257275088548364400416034343695873754183595001329", "21888242871839275222246405745257275088548364400416034343697075083577161286872", "1825718831353119021"], ["21888242871839275222246405745257275088548364400416034343693742874888265161053", "21888242871839275222246405745257275088548364400416034343690875024103406747093", "786463995690142579", "1043616040731514952"], ["21888242871839275222246405745257275088548364400416034343695924722314413872181", "21888242871839275222246405745257275088548364400416034343695213741434599784794", "1715119025286213929", "290822361412414676"], ["510876999936891874", "21888242871839275222246405745257275088548364400416034343698145536788016304634", "223647927804589344", "21888242871839275222246405745257275088548364400416034343697820752667593353350"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["469415991966026270", "809630559718934909", "21888242871839275222246405745257275088548364400416034343698054852998752612498", "21888242871839275222246405745257275088548364400416034343697913466233421235531"], ["2135306833424039173", "4803276303964939281", "21888242871839275222246405745257275088548364400416034343697776235717965050668", "894256889243518904"], ["479531047212142819", "2459441698253505544", "21888242871839275222246405745257275088548364400416034343696303195824081615405", "1781185065847611616"], ["21888242871839275222246405745257275088548364400416034343694520492938194173452", "21888242871839275222246405745257275088548364400416034343692374676096458428320", "21888242871839275222246405745257275088548364400416034343697369867228679469227", "1369383518120178075"], ["21888242871839275222246405745257275088548364400416034343695357883908708072106", "21888242871839275222246405745257275088548364400416034343692278156642066104474", "1778897079142892306", "556919041718690273"], ["21888242871839275222246405745257275088548364400416034343697376037235948838192", "21888242871839275222246405745257275088548364400416034343697587247693817822891", "994714043869225824", "21888242871839275222246405745257275088548364400416034343698193632912475543146"], ["939738201295626946", "21888242871839275222246405745257275088548364400416034343698156545050654148246", "21888242871839275222246405745257275088548364400416034343698151921604862156107", "21888242871839275222246405745257275088548364400416034343697659367554711925870"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["599408586607677430", "390460949406589467", "21888242871839275222246405745257275088548364400416034343698070088818299088589", "21888242871839275222246405745257275088548364400416034343697792687897281383181"], ["469489148020298749", "3295388168051378125", "21888242871839275222246405745257275088548364400416034343697591064954415655587", "423017973021821626"], ["401981958442847697", "4737071703158068392", "21888242871839275222246405745257275088548364400416034343695802546736171453350", "1519156030658152241"], ["21888242871839275222246405745257275088548364400416034343697152384361161802347", "21888242871839275222246405745257275088548364400416034343695936605265487994206", "21888242871839275222246405745257275088548364400416034343696099800000310056363", "1530994605719368499"], ["21888242871839275222246405745257275088548364400416034343693966089590129267265", "21888242871839275222246405745257275088548364400416034343690891651059080440870", "600800259159263851", "887168533436522050"], ["21888242871839275222246405745257275088548364400416034343696070250359451100245", "21888242871839275222246405745257275088548364400416034343695336448218834005857", "1674470866009185853", "258562212921913377"], ["587108138534705192", "21888242871839275222246405745257275088548364400416034343698200088275338529286", "191042090208685611", "21888242871839275222246405745257275088548364400416034343697808405088898162283"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["878360716835087943", "60277239118402506", "21888242871839275222246405745257275088548364400416034343698114052021136049470", "21888242871839275222246405745257275088548364400416034343697682643799705912751"], ["628110984693315949", "2284540847322527780", "21888242871839275222246405745257275088548364400416034343697978317216683620973", "94986900593969928"], ["375541417364976567", "5165909703238199764", "21888242871839275222246405745257275088548364400416034343696405959728183312459", "1315172784248528269"], ["21888242871839275222246405745257275088548364400416034343697521131689265354235", "733838344634014071", "21888242871839275222246405745257275088548364400416034343695398063022514332357", "1742984744527998730"], ["21888242871839275222246405745257275088548364400416034343694388628316073339247", "21888242871839275222246405745257275088548364400416034343691810183573037453176", "21888242871839275222246405745257275088548364400416034343697648507841773898230", "1299808360911881536"], ["21888242871839275222246405745257275088548364400416034343695336603118641002661", "21888242871839275222246405745257275088548364400416034343692509333812667455576", "1819612722894396453", "547461161439702723"], ["21888242871839275222246405745257275088548364400416034343697400633350242252089", "21888242871839275222246405745257275088548364400416034343697642612453592295556", "922659486493551094", "21888242871839275222246405745257275088548364400416034343698169630573331200552"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["958061325640489854", "21888242871839275222246405745257275088548364400416034343698170125611787379354", "21888242871839275222246405745257275088548364400416034343698126612936258958447", "21888242871839275222246405745257275088548364400416034343697651202628903395513"], ["179829584942456252", "1402529369512931491", "21888242871839275222246405745257275088548364400416034343697992934524119422820", "21888242871839275222246405745257275088548364400416034343698095240060225541388"], ["403355313967950661", "4957095912573743495", "21888242871839275222246405745257275088548364400416034343696748984217453072959", "1072114611518405626"], ["21888242871839275222246405745257275088548364400416034343698177692450805814112", "2622398335495906021", "21888242871839275222246405745257275088548364400416034343695073482124781468577", "1732012654141723040"], ["21888242871839275222246405745257275088548364400416034343696049923493506309325", "21888242871839275222246405745257275088548364400416034343694017107125817485245", "21888242871839275222246405745257275088548364400416034343697218523018942251391", "1682884239724433260"], ["21888242871839275222246405745257275088548364400416034343694125187253063066436", "21888242871839275222246405745257275088548364400416034343691162548981475528195", "1207291032463828808", "933332469392307269"], ["21888242871839275222246405745257275088548364400416034343696227014217539246708", "21888242871839275222246405745257275088548364400416034343695663000485219149859", "1754200262673637819", "243240107981905095"], ["593761535527904464", "21888242871839275222246405745257275088548364400416034343698199266705113004639", "186451391229595642", "21888242871839275222246405745257275088548364400416034343697805593060127657726"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["825067266333892641", "211792726883114031", "21888242871839275222246405745257275088548364400416034343698107403298683646340", "21888242871839275222246405745257275088548364400416034343697726833394580433135"], ["2131445639381570893", "4251903663152520804", "21888242871839275222246405745257275088548364400416034343698182458758167704880", "526593051754985491"], ["21888242871839275222246405745257275088548364400416034343697475530185226496337", "4589474656369863106", "21888242871839275222246405745257275088548364400416034343695751001209269707649", "1723153162004790175"], ["21888242871839275222246405745257275088548364400416034343696665035000683164029", "21888242871839275222246405745257275088548364400416034343695538810679701398181", "21888242871839275222246405745257275088548364400416034343696465565260474920414", "1771715112954604772"], ["21888242871839275222246405745257275088548364400416034343694842724727421511313", "21888242871839275222246405745257275088548364400416034343691406111589823497093", "750153982767360715", "1243161476077053691"], ["21888242871839275222246405745257275088548364400416034343695599183395836436127", "21888242871839275222246405745257275088548364400416034343693576489067891409388", "2438266502693961073", "531679608695079645"], ["21888242871839275222246405745257275088548364400416034343697725404904144489459", "21888242871839275222246405745257275088548364400416034343697883953485996034381", "786538925391390244", "21888242871839275222246405745257275088548364400416034343698119800473564718174"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["818585266441746522", "131030884121689676", "21888242871839275222246405745257275088548364400416034343698104631335772683365", "21888242871839275222246405745257275088548364400416034343697706224675357731638"], ["21888242871839275222246405745257275088548364400416034343698167449748274997137", "1853269225766103165", "21888242871839275222246405745257275088548364400416034343697770420325560597734", "50285888982157525"], ["1866417927615917893", "5525807103002391306", "21888242871839275222246405745257275088548364400416034343696865764125502741799", "1364704193893994081"], ["360626432624460189", "276153303678136203", "21888242871839275222246405745257275088548364400416034343696055773300499021312", "1827298978768111807"], ["21888242871839275222246405745257275088548364400416034343695096368824995814254", "21888242871839275222246405745257275088548364400416034343692024893927507886467", "423684280056949356", "1497508622417755550"], ["21888242871839275222246405745257275088548364400416034343695323112275121449566", "21888242871839275222246405745257275088548364400416034343692320606200386185640", "2613915778381273719", "722908387364746272"], ["21888242871839275222246405745257275088548364400416034343697088489946130602827", "21888242871839275222246405745257275088548364400416034343697100030271603706077", "1465469104880800004", "141368632761115930"], ["740136269378288888", "21888242871839275222246405745257275088548364400416034343698181192160151462338", "85456013689615997", "21888242871839275222246405745257275088548364400416034343697743728427176557318"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["737787759096583323", "1140488614835809291", "21888242871839275222246405745257275088548364400416034343698109984928260101456", "21888242871839275222246405745257275088548364400416034343697977478591754199612"], ["847051699436665603", "4674442472265925020", "21888242871839275222246405745257275088548364400416034343697230511211790168776", "877365361008235357"], ["21888242871839275222246405745257275088548364400416034343697574361114251213265", "3478908443121017747", "21888242871839275222246405745257275088548364400416034343695277229261195592718", "1779393066845396393"], ["21888242871839275222246405745257275088548364400416034343695143979764738521044", "21888242871839275222246405745257275088548364400416034343693478977554038328677", "21888242871839275222246405745257275088548364400416034343696650899963022618244", "1607224009708786654"], ["21888242871839275222246405745257275088548364400416034343694988179114917141209", "21888242871839275222246405745257275088548364400416034343691181799609893388937", "1309504108939447093", "945078357328528235"], ["21888242871839275222246405745257275088548364400416034343696739513100913505966", "21888242871839275222246405745257275088548364400416034343695960797240402496340", "1719774557741721923", "301935357075238818"], ["450770060021691229", "21888242871839275222246405745257275088548364400416034343698204130558825717871", "281113996658676011", "21888242871839275222246405745257275088548364400416034343697862053538950742334"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["669146630994453886", "307915007831967666", "21888242871839275222246405745257275088548364400416034343698081079620872739527", "21888242871839275222246405745257275088548364400416034343697765176868220717399"], ["1076189524507801873", "3366573770486318060", "21888242871839275222246405745257275088548364400416034343697844768562555303091", "411066413616107476"], ["635511231603315729", "4696913529629739409", "21888242871839275222246405745257275088548364400416034343696228006538357270938", "1606397924302368760"], ["21888242871839275222246405745257275088548364400416034343696863634988490353899", "21888242871839275222246405745257275088548364400416034343697909500206859798179", "21888242871839275222246405745257275088548364400416034343696399927217377826694", "2230565166810612342"], ["21888242871839275222246405745257275088548364400416034343691093319670969954837", "21888242871839275222246405745257275088548364400416034343692038364013624543761", "21888242871839275222246405745257275088548364400416034343696836045853652045998", "1833094434020609709"], ["21888242871839275222246405745257275088548364400416034343694479339564877123585", "21888242871839275222246405745257275088548364400416034343692589600537290692763", "85975851707852729", "495843963655832965"], ["21888242871839275222246405745257275088548364400416034343698021523368226288789", "21888242871839275222246405745257275088548364400416034343697308547842427814741", "205238823362832616", "21888242871839275222246405745257275088548364400416034343697952200656626621217"], ["966351791638569754", "21888242871839275222246405745257275088548364400416034343698153258769459380940", "21888242871839275222246405745257275088548364400416034343698133558807310447312", "21888242871839275222246405745257275088548364400416034343697648119438628176057"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["1211073461654130721", "1464623638513347506", "21888242871839275222246405745257275088548364400416034343698202079260258537200", "21888242871839275222246405745257275088548364400416034343698022429747007280177"], ["1957051744441487214", "5016316108169650420", "21888242871839275222246405745257275088548364400416034343697610881610729397560", "1039765881148163424"], ["21888242871839275222246405745257275088548364400416034343697338300041145232154", "2206560768376774053", "21888242871839275222246405745257275088548364400416034343696225631873530910955", "2003112708554012751"], ["21888242871839275222246405745257275088548364400416034343695417339377544211524", "21888242871839275222246405745257275088548364400416034343696163116772502661458", "21888242871839275222246405745257275088548364400416034343697390241348403685551", "2524023861785679110"], ["21888242871839275222246405745257275088548364400416034343690718734166912542855", "21888242871839275222246405745257275088548364400416034343691718419919317773147", "21888242871839275222246405745257275088548364400416034343697058700221653982273", "1732535640175064538"], ["21888242871839275222246405745257275088548364400416034343694326692393930385305", "21888242871839275222246405745257275088548364400416034343693381418770298360886", "21888242871839275222246405745257275088548364400416034343698091808586164965612", "361820384212820243"], ["204679812671493200", "21888242871839275222246405745257275088548364400416034343697341895187010629769", "201483249931717", "21888242871839275222246405745257275088548364400416034343697779991210354738286"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["2760900649099287140", "2437459319481365299", "418021506594556137", "25455702987790698"], ["2762390351664942436", "4614766435375288435", "95044558697491962", "1396158877451537081"], ["21888242871839275222246405745257275088548364400416034343696800812268655530738", "180741240846941517", "21888242871839275222246405745257275088548364400416034343697648929082128539495", "2324431960223575815"], ["21888242871839275222246405745257275088548364400416034343695779049470135549389", "21888242871839275222246405745257275088548364400416034343694354186267365977811", "236723719264236656", "2238872869995715209"], ["21888242871839275222246405745257275088548364400416034343694093853161976586377", "21888242871839275222246405745257275088548364400416034343691309826100630690835", "1376063477011357381", "1093436470679595447"], ["21888242871839275222246405745257275088548364400416034343694963855209293736915", "21888242871839275222246405745257275088548364400416034343695014876342392256645", "1812705569660282644", "350985969755700255"], ["230088115493771544", "21888242871839275222246405745257275088548364400416034343697732456708190795395", "277442229770496240", "21888242871839275222246405745257275088548364400416034343697800328625180517482"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]], [["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["4074593946859273793", "1904083986750026897", "763618217804125919", "21888242871839275222246405745257275088548364400416034343698060866900128630633"], ["6162141655963525099", "2285210726721391810", "2070353180716095477", "720190827870954315"], ["2055795255493133678", "21888242871839275222246405745257275088548364400416034343696626395227458208172", "3263848071901826624", "1426762688459137532"], ["21888242871839275222246405745257275088548364400416034343695723563753706771348", "21888242871839275222246405745257275088548364400416034343692841045048884542125", "3871586962712806164", "1291407582309752524"], ["21888242871839275222246405745257275088548364400416034343696457920878359234034", "21888242871839275222246405745257275088548364400416034343693897778934751700610", "3764128809365099571", "698236065158352700"], ["21888242871839275222246405745257275088548364400416034343697690229577297253065", "21888242871839275222246405745257275088548364400416034343697740904656359396635", "1351439264080255744", "138691666966102312"], ["706869284412292419", "21888242871839275222246405745257275088548364400416034343698185300011279085588", "108409508585065923", "21888242871839275222246405745257275088548364400416034343697757788571029080142"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"], ["973005189421817592", "21888242871839275222246405745257275088548364400416034343698152437199136300055", "21888242871839275222246405745257275088548364400416034343698128968107786241045", "21888242871839275222246405745257275088548364400416034343697645307409523760974"]]], "bn_1_remainder": [[["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["891421901655239680", "469346156653676032", "454655565560414208", "147226393774176512"], ["509077945867130880", "74328530245115904", "908958165001568256", "988999996136995584"], ["482658488469370880", "100486030054615040", "991766836333510656", "675446327454729728"], ["741175969671456768", "716204558051520512", "936313524797046784", "543271808412713728"], ["791918294975424512", "237442776138246144", "602825039229485056", "72416352297369600"], ["717128574964166656", "335104282446860800", "401091282658918400", "784085995296183296"], ["496056460698840064", "128545742268295680", "266271149194215424", "933511156942466304"], ["797900137995865088", "317336075382385664", "646516959690752000", "373539054537430016"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["697424879175322624", "216204975209080320", "207013314164031488", "43595431121487104"], ["328578237732326400", "799352568963131392", "322473274174603264", "841195829031176448"], ["906507037248204800", "180659937545845760", "678773461398192128", "999067065391213568"], ["844778581139637248", "683604145839633408", "942260941384712192", "687218231482222848"], ["863632598646854656", "615190665136018944", "511095397354438656", "927487163919967488"], ["598660908942447616", "548244858525992960", "871613699168665600", "651355149213554688"], ["76286453102786560", "311986590154801152", "886618471413186560", "702565037029506560"], ["781745822384091136", "207917774355851776", "379811398070304768", "660420428072932608"], ["108648095731852288", "843374092129496064", "586755208956215296", "843581183327661824"], ["108648095731852288", "843374092129496064", "586755208956215296", "843581183327661824"], ["108648095731852288", "843374092129496064", "586755208956215296", "843581183327661824"], ["108648095731852288", "843374092129496064", "586755208956215296", "843581183327661824"], ["108648095731852288", "843374092129496064", "586755208956215296", "843581183327661824"], ["108648095731852288", "843374092129496064", "586755208956215296", "843581183327661824"], ["438287398564088832", "779436152017216512", "621052184388567040", "398760816481344768"], ["406784090049632256", "994546165231442432", "25113429909962752", "624396070006450176"], ["114625905405822976", "245258629902609408", "581099742883217408", "729200232053069312"], ["730176023732511744", "794749729828647424", "40104351242387456", "479778812476000000"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["252381940292656128", "321995692287543808", "555935785973448704", "226280291808878080"], ["719444589070020608", "493521466684452864", "374844023963779072", "912572199762960896"], ["932691707441082368", "506801787068704768", "354955206818004992", "473351616941820160"], ["950114517158669312", "364897307467770368", "372788355777953792", "588748331225713152"], ["990014275458824192", "806559465170182656", "298498934647947264", "250411039735502592"], ["580628214934223872", "434191613554947072", "443399828569980928", "73055563097924352"], ["124565203858338816", "116728855345843712", "853209132458049536", "724662103846733056"], ["763053938361445376", "799736575911898624", "336019200993263616", "877857369970784256"], ["721241860233529344", "451290351631842816", "842318941124165632", "550885033968108800"], ["329662688094056448", "159240235179529728", "81329905539350528", "383136363357650688"], ["847790573894865920", "163780678815389184", "481918372530880512", "792940981846536448"], ["895865277330301952", "169035793576310784", "175829684540276736", "84747071930850048"], ["8160451568546816", "71569441485138432", "165507511716544512", "887680213808216064"], ["356582876804924416", "414097087110065664", "802178489695862784", "703281049591260672"], ["73928901213838336", "720779981534323712", "112756658031296512", "458774804179957504"], ["50398966652821504", "829924337209217024", "121579453953212416", "746052314371983360"], ["520662582369915904", "866930225620343808", "884875210404003840", "497721784769887488"], ["555075114629686272", "728459748842657792", "1317836102696960", "551083140264389888"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["353716310585742336", "810305749254250496", "850984672171655168", "540710183683235584"], ["362503139817337856", "798549356560865792", "360028036711055360", "938004114809351936"], ["965693160454864896", "866210373566447104", "983355343614377984", "827870367250883072"], ["871777778562615296", "467547526817905152", "164021828298473472", "99442114988300544"], ["990968864896124928", "423955075876745216", "643928755197050880", "78626591360775168"], ["149430041094607872", "453419319007831552", "614257086444208128", "529875820103727360"], ["583460309036858368", "107696878238253056", "199052987796291584", "326966031027952896"], ["829925248945203200", "347691422074221056", "520899240276656128", "919854112452803584"], ["700948734242102272", "321297578134371328", "658505188185997312", "273381169951029760"], ["795903315176488960", "776013392686671360", "802604563274924032", "513938240748283904"], ["279339829221325824", "186537368842314240", "199946212044832768", "630257159764982784"], ["80942153929573376", "397649957806044672", "121210664641101824", "958452839057552384"], ["215909440787003392", "326383157992684544", "625194582930096128", "487995063072159232"], ["445751904878541824", "243336465204533248", "914258301436297216", "71895124165954048"], ["43913771957001216", "487636858321679360", "915779447738597376", "92672127486582528"], ["738514071639321600", "835542131469061632", "516621076741881856", "738296452754586624"], ["442538866876627968", "881354505059139072", "761577773721321472", "583102065822951424"], ["978682155081206784", "564778758098675200", "65884902966951936", "5784718410752512"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["621284362219108352", "181372449201635328", "23839469223018496", "524453447248355328"], ["700531962112458752", "855072024721678848", "295189686154952704", "314117641922991104"], ["475390929920115712", "850631359092290560", "892969054946459648", "577273217301140480"], ["680996764691252224", "768146881159211008", "53242817365671936", "601690524463021568"], ["697331303055322112", "539101741877949952", "764926890420600832", "422903787601666816"], ["507679498644665344", "563064316263041024", "942709338748485632", "642137687739522048"], ["743767246189037568", "940404180032002048", "782333835410931712", "958737606117219328"], ["818384931036532736", "527808341857735168", "775449081198018560", "780348555192618240"], ["772779242838208512", "654962628952391680", "537840074991206400", "975216396048421120"], ["397523021345884160", "116022539666657792", "627873517671546880", "978979637419378688"], ["776569750701255680", "83313280742135296", "936411446928998400", "564129127199567360"], ["800268849011548160", "64707082793815040", "610143596298502144", "743182530126960384"], ["517545079833681920", "337865220536988672", "705195282533580800", "66551088303777536"], ["790236898447664128", "605422778305867264", "35781793125892096", "638781781613789696"], ["592686807272621056", "306232676421199872", "918328150051258368", "565569686341904640"], ["467239748107207680", "193933391375003136", "447204211527516160", "865615557711819008"], ["15338658900898816", "790124934680786944", "164446943829950464", "450096949534571776"], ["550624590736206848", "40239478477960704", "976744626363301888", "869314643000930560"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["16449820986532864", "393579268064970752", "902112222147772416", "271624563804296192"], ["934999611525018624", "280226713872868352", "803986444900499456", "809196496993768448"], ["611665739406395392", "191712996590411264", "345158977980071936", "51543621498291968"], ["238074514463695872", "715419706851734016", "859837922871607296", "893274385238296064"], ["48059128456775680", "120254154220636672", "371920709872517120", "690784003556508928"], ["523895548192811008", "716901124854913024", "161196728582799360", "548069680850627072"], ["101568498925962240", "902699772717628416", "3033168593682432", "662729201621382912"], ["365510877805824000", "830473640976003584", "956336226009874432", "522670037568186880"], ["183945033545525248", "282831549042450944", "561283383453286400", "983836968184943104"], ["886923226887395328", "736562968740554752", "17441960387280896", "608485742746620672"], ["758765026798942208", "71136280246895616", "295493444019290112", "532207943531024384"], ["948994386643748864", "392291616956967936", "543343588656807936", "510809157348801280"], ["805378231038728192", "536040648568470016", "321729773843382272", "366078880223459584"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["97051401846581248", "709389830750578688", "124058477966000128", "183352662618678016"], ["470279493211467776", "456601666268712960", "584655013308661760", "917513158139533056"], ["690327336276867072", "611259345896731136", "919484685671989248", "783748076782600960"], ["78777688150328320", "488211275571764224", "9593721030967296", "122331917461140736"], ["65102057152284672", "849002732110341120", "788144120548425728", "967294230498304"], ["164688331005211648", "71608567770519552", "969039043953819648", "669786116482277888"], ["997277360091915264", "616817833151268864", "868741175820419072", "690692715920459520"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["602958849663543296", "214535953130933760", "82936109479100416", "333285848686501888"], ["252244753788907520", "281896563498096128", "221663686763872256", "125592907193680896"], ["727608235389126656", "142671353899885568", "824596873470279680", "122293468211407616"], ["489215542758964224", "336527072107635200", "491859334907559936", "721162172226628096"], ["833537339869791232", "236543558640117248", "240222051986309120", "729990288019299072"], ["749506372758212608", "735595944702854144", "566225121280655360", "385237371821321472"], ["211605561539874816", "843388073607763456", "138538787808083968", "733976921623260416"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["725741458946279424", "113520483879533568", "30461152248463360", "446660769048115200"], ["820451412553071616", "828716909788217856", "687271257262391296", "135762899204709120"], ["552069008776205312", "836818336228137472", "559730952962441216", "810209086462160896"], ["32427489625859072", "409688990334567424", "942045735361970176", "586327806227708672"], ["315117201960644608", "890704584782788096", "594839372357173248", "723038932517847808"], ["609185431660667904", "72116112431133696", "672416628836663296", "830054400011513856"], ["585521307429276672", "58042164519143424", "513010740519501824", "332332630649938176"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["842703890212976640", "855316195473561088", "424631896976654336", "627095625437369344"], ["846987033090424832", "422077237822927872", "877589579023253504", "617289444141199360"], ["558688869858341888", "238864605346229248", "798971636307853312", "715253973495519488"], ["810122204459995136", "738731424624258048", "620140511858262016", "933385213856395264"], ["862050042692706304", "984142644066529792", "513185532979052544", "588833422237690112"], ["871427701334930432", "822655618465127936", "262726276648796160", "670657812401384960"], ["306370451077272576", "916748605860033024", "866583862714695680", "776008672162875648"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["997306473059396608", "432515395624507392", "673437423201681408", "906939304994447872"], ["166652066651931648", "50342515416653824", "114804031342116864", "504963013401946112"], ["374209534258518016", "974053857735318528", "276064871384219648", "193589242385935104"], ["793121201319312384", "670842435820369920", "571448656357228544", "93369147478352896"], ["258918024138450944", "127541745150950400", "86897742336229376", "792126193454609408"], ["347139651080739840", "669738846100140544", "393447774461886464", "121114825184384256"], ["541075605637204992", "828838106961528832", "720425909097201664", "535339861220352256"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["51397387949424640", "69793330950037504", "577728066054914048", "261402968587602176"], ["407222149669895168", "661539264397655552", "501082860026855424", "699043465134224640"], ["199210420457353216", "279866621435904", "203429976388141056", "240168025477675520"], ["348130730932094976", "474443167364197888", "188141556904361984", "280583012164991744"], ["938342092095702016", "938763214500489216", "324004836870455296", "378395264689527552"], ["311225675284245504", "323463508650718720", "802978828620136448", "655686458691191296"], ["817121282954529792", "688986674166269952", "21750941824319488", "98102612666163456"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["251462055416204288", "472624701702666752", "676319419685797888", "525459909671395584"], ["850461997734379520", "319849097367613952", "813973170796888064", "471089576629288192"], ["98880864282383360", "150212925748377600", "610889249538703360", "83214212982047232"], ["921977248598520832", "616046960069055488", "827460347779219456", "423618082333482240"], ["929014380769593344", "578542987936824320", "545470537719611392", "268788106669179648"], ["834146869877330944", "861385179996036096", "301415870007476224", "296686540761239296"], ["909784142650728448", "409254114185807360", "475389708069502976", "523671625311352064"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["78735428257740800", "369374074085509120", "772249288494022656", "693605473748481024"], ["416217075893502976", "675809570640439808", "214866014176542720", "394216725272340992"], ["443764010985808896", "433026248843805184", "432335156914159616", "992331138004255488"], ["749035127267586048", "151144657601423360", "466190794162962432", "937985706866017280"], ["15204126519484416", "554814424238882304", "500965106911019008", "801431377971994368"], ["283434977294153728", "643336877279633408", "439143428546101248", "572117758801042688"], ["807485097869595648", "240659664191595520", "557987443970670592", "85021198852734976"], ["555483719525898240", "378993729302559232", "27812954542833664", "737458747308175104"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["557480336724084736", "701765103348116480", "357630541672611840", "320624083418115584"], ["108389660784636928", "145350168761123840", "788688893230972928", "853324816401207552"], ["40394407428459520", "825578495057640448", "334348975091220480", "481565989888844544"], ["448466169534864384", "556088475816983552", "266862723976658944", "94193605928337152"], ["877171859113749504", "347358296007766528", "74453976767266816", "852449528126310912"], ["443608680024205312", "135830285971893760", "638818764556730368", "647384027751883264"], ["537282069192150016", "76494026964305408", "942429671092125696", "108366599938999808"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["3623137980988416", "647150285306868224", "509784286605606912", "228071987242547712"], ["105334269504412672", "239257847077433344", "292815460286201856", "334183815319911168"], ["59110244008116224", "169808448102624256", "171373631223234560", "858536665539850496"], ["220432323998080000", "581882357410329088", "585728135254900736", "107024667053559552"], ["726642605465915392", "520674322661170688", "301622078452269056", "314807689915599104"], ["701095691808712704", "46683426014049792", "172553475445096448", "946514691518976256"], ["452472299328019456", "133559815421686272", "655165093530959872", "646937807316158976"], ["857805979796691968", "387509499857074688", "995906667409833984", "508507494603950080"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["382096740323779584", "640266894657844736", "813304991435063296", "520487792236548608"], ["581183409091866624", "735446412619004416", "344538574966095872", "164668776040353792"], ["209176899582234624", "260192007979737600", "700741354610884608", "98427597563382272"], ["508575227425441792", "416542309249938432", "727924057436848128", "347997109306959360"], ["532900024060511232", "588608959540064768", "660554805925380096", "555784186002043136"], ["534736993857331200", "272038980546409984", "882327196690939904", "356801309546971648"], ["768341947197973504", "807329686244735488", "539360177023483904", "383928223244245760"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["803017796163598336", "75712497694443520", "464780154211401728", "393547402109309952"], ["142159130639686656", "657144966594149888", "676376991207915520", "391346445810055680"], ["880021421950904320", "390801301365282304", "79332038212845568", "531428056834823424"], ["919246962932782080", "791348260619974656", "766743466543415296", "23743370882628352"], ["997826671321786368", "715942411182120960", "467071388293922816", "873292362867804160"], ["168140135842316288", "310203062098195968", "465934482304139264", "515201840942754816"], ["689767147592023040", "270511451703638016", "15983264501989376", "82163989348355072"], ["908464850668484608", "848042576682997760", "818007203639853056", "246250472312235008"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["67718499429871616", "504308303888761344", "151092669297983488", "768259346169858048"], ["213840834520737792", "893475506531794944", "123435201033928704", "618374892335617792"], ["325509203969431552", "652407845919588352", "466451366154469376", "194202232338064384"], ["225428646238828544", "882674396115149312", "919698397786406912", "239369566930674944"], ["700573037744397312", "156766550193250816", "525184207538094080", "627489538403792128"], ["108074265077270528", "266926842192050688", "654557119801196544", "569474361329165312"], ["541382218169544704", "104885299454692352", "153329766630555648", "673509969770933760"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["259819563215350784", "674522057888009216", "690422339644162048", "571382100312361216"], ["508512213018060800", "941098619591538688", "31117178856800256", "956524304994890240"], ["903361848906150912", "142192028535952896", "509951546149830656", "855430876450537984"], ["825926119903978496", "451788616375699968", "558703346180423680", "186966436897565440"], ["889615863196815360", "970878951540060672", "393212425772990464", "655069639933325824"], ["769296937310205952", "44395237309127680", "689146825058942976", "436846410689006080"], ["698354914792033280", "414189139673930240", "358639234786263040", "109768793277892608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]], [["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["652895984090131456", "148352834884875776", "482831998245142528", "380745629180030720"], ["339837074205095936", "673095319956770816", "566903051971330048", "644938224027784960"], ["950222456732857344", "533538694925086720", "49745372937322496", "188539195583611136"], ["980058490708271104", "405362980377777664", "99924229346033664", "887065950740607744"], ["660592648529400832", "442895021508594176", "732383894598713344", "139172172286665984"], ["17694448753257472", "949154740465927680", "106486695520108544", "323764898638619904"], ["361690627689360384", "612846824731048448", "987542795604983808", "697080386609953792"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"], ["875111176958507008", "536133221581752320", "825123496738947072", "512234071878980608"]]], "relu_1_out": [[["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["554576998812671403", "443526183159054795", 0, 0], [0, "1242501833786624848", 0, "17996324478206653"], [0, "805168752696556320", 0, "175166854988332778"], [0, "59351178185895753", 0, "35398688079988620"], [0, 0, 0, 0], ["270018025784900221", 0, 0, 0], ["587148222795962035", 0, 0, 0], ["1057311616940680645", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["1024987912922238044", "2362881573284412499", 0, "69256796697809066"], [0, "3995713019919023850", 0, "1045712033561360926"], [0, "853446329235748839", 0, "1101660794409587861"], [0, 0, 0, "1050371465748143953"], [0, 0, 0, "825437586016560124"], [0, 0, 0, "614358509108291785"], [0, 0, 0, "360586890318093971"], [0, 0, 0, "202555975207435339"], [0, "349116826775602306", 0, "219339171552959714"], [0, "349116826775602306", 0, "219339171552959714"], [0, "349116826775602306", 0, "219339171552959714"], [0, "349116826775602306", 0, "219339171552959714"], [0, "349116826775602306", 0, "219339171552959714"], [0, "349116826775602306", 0, "219339171552959714"], [0, "184024988434598785", 0, "164317128365382271"], [0, 0, 0, 0], ["610810031868396223", 0, 0, 0], ["1094781136327493612", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["4694574971293165326", "3517548573274324802", "834814365308327102", "176515734194304852"], ["2180655916015536305", "2758441407513227896", "88944654253356892", "1106196021388760303"], [0, 0, "794965401926366700", "1601407307900767866"], [0, 0, "1083336462336767496", "1781570684880489643"], [0, 0, "392040520827064384", "1815336567447633802"], [0, 0, 0, "1784684129855243371"], [0, 0, 0, "1511526544575926796"], [0, 0, 0, "1285070709880244296"], [0, 0, 0, "1142208469535155115"], [0, 0, 0, "1232518199693638768"], [0, 0, 0, "1215860509022155509"], [0, 0, 0, "1208000217138215902"], [0, 0, 0, "1156574782749325918"], [0, 0, 0, "1154664984039773590"], [0, 0, 0, "1166257348455271902"], [0, 0, 0, "618643150846667920"], [0, 0, 0, 0], ["784841004462592554", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["4527054027703610794", "1496380804737753077", "1036657083118614848", 0], ["5398674348194387826", 0, "2946681084327418507", "520246331716906277"], ["2108684578486014685", 0, "4051604621898064824", "1192127137468749980"], ["2623227850718408170", 0, "4703120284305396432", "1328877255980465161"], ["3100472670842322305", 0, "4463526744645828840", "1491092064873000265"], ["2609684484395634656", 0, "4394411754249335376", "1734419555347036507"], ["508025669298203942", 0, "3717039985822212655", "1962299120721713872"], [0, 0, "2632424420234844874", "1840713744108725535"], ["40392376585988347", 0, "2847947499427692307", "1694825205047453442"], [0, 0, "2481318121866385927", "1894016177643026018"], [0, 0, "2151290885809069471", "1869949696464128257"], [0, 0, "2146548194309938836", "1845091499696235485"], [0, 0, "2220198402696694411", "1696460421586272345"], [0, 0, "2666363737082885093", "2053509945032258616"], [0, "76380722547092577", "539273853862374294", "2655357933271241779"], [0, 0, 0, "1841679181114354465"], [0, 0, 0, "397825060065410679"], [0, 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["1766907735616279219", "149314617499744688", "204623566517674074", 0], ["2572989078604841243", 0, "1020713543691229603", 0], ["1804328387140375314", 0, "1587640095338942193", 0], ["1833096148905546576", 0, "1590305712216102181", "32790379069818338"], ["2849346917734099613", 0, "1990677536224478924", "52701256911513366"], ["3744806228646040134", 0, "2950921136368674561", "378518223048829297"], ["4403223274169807037", 0, "3912494072768819857", "807827356451036508"], ["2131302159245235597", 0, "3942578485251615253", "961331387824011325"], ["3193082876538276900", 0, "4520723906459572129", "1072379329836406437"], ["3233902177329584146", 0, "4185962591307952717", "1110887211505585679"], ["2515007611876024880", 0, "4470069108104982176", "1204090360504957664"], ["2357341014441098715", 0, "4431315809609659569", "1181215243332717805"], ["1273535900757993265", 0, "4185291201038473150", "1214245632184204106"], ["3057151227721914023", "2732814068023726929", "3940954882962368120", "2171313488982551324"], [0, "1699731878541978880", "455362947306863885", "2795908553024030554"], [0, 0, 0, "1885078550431777589"], [0, 0, "664546870329537219", "559321780118256495"], [0, 0, "729291114429783248", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["1174443148567987795", 0, 0, 0], ["1818279337792552470", 0, "357705167854225080", 0], ["1271233323646499894", 0, "671830286237185729", 0], ["1379847745682649918", "69404098871507952", "637116602871831724", 0], ["1922924866039363796", 0, "888676257169526650", 0], ["1570294781157082767", 0, "1131983333587807753", 0], ["1365912077825374628", 0, "1081298089242603316", 0], ["657212096835196716", "2020650372701866946", "698796800917947243", "471740743527901137"], ["1101533185935857336", "5345404423909361057", 0, "1695036840952229574"], [0, 0, 0, "1782250550069988706"], [0, 0, "513584014026104352", "1177782519864487886"], [0, 0, "1911245828792047663", "385277375621724204"], ["89121873444161839", 0, "462670609236290198", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["633659852791434634", "998437459957143634", 0, 0], ["1694581583069827658", "4963588337556129382", 0, "926761789606081066"], [0, "3047544663845016617", 0, "1849658759176665819"], [0, 0, 0, "1554011021679858237"], [0, 0, "1038555691243212607", "728380786786011759"], [0, 0, "944614572425978754", "56812535347821044"], ["853244030903453604", 0, "7414122323225696", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["679109206060010803", "296122733664753122", 0, 0], ["908784851942869226", "3323341889344452581", 0, "400255098672921274"], ["660217981757472077", "4859838742083406371", 0, "1612506376477290509"], [0, 0, 0, "1805162177576723628"], [0, 0, "522409120477758450", "1192789400860066318"], [0, 0, "1791334271905504332", "398648557701703705"], [0, 0, "431148347827228848", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["1123730627530308121", "1509051415759488797", 0, 0], ["1859967292828259788", "5135591786238314371", 0, "1078799489309306329"], [0, "1762200548012890544", 0, "1866261453747600813"], [0, 0, 0, "1466623061086838234"], [0, 0, "2319066236534271854", "717749550505944024"], [0, 0, "1562075259572381461", "206701318327643911"], ["680255696439495275", 0, "126772304501425841", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["928173596894841995", "1315862681299835", 0, 0], ["2352586139402117636", "3106488448371057136", "289711827239107432", "238492264639928556"], ["1484972736615542523", "4705946587276951076", 0, "1613700859150727195"], [0, 0, 0, "1825718831353119021"], [0, 0, "786463995690142579", "1043616040731514952"], [0, 0, "1715119025286213929", "290822361412414676"], ["510876999936891874", 0, "223647927804589344", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["469415991966026270", "809630559718934909", 0, 0], ["2135306833424039173", "4803276303964939281", 0, "894256889243518904"], ["479531047212142819", "2459441698253505544", 0, "1781185065847611616"], [0, 0, 0, "1369383518120178075"], [0, 0, "1778897079142892306", "556919041718690273"], [0, 0, "994714043869225824", 0], ["939738201295626946", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["599408586607677430", "390460949406589467", 0, 0], ["469489148020298749", "3295388168051378125", 0, "423017973021821626"], ["401981958442847697", "4737071703158068392", 0, "1519156030658152241"], [0, 0, 0, "1530994605719368499"], [0, 0, "600800259159263851", "887168533436522050"], [0, 0, "1674470866009185853", "258562212921913377"], ["587108138534705192", 0, "191042090208685611", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["878360716835087943", "60277239118402506", 0, 0], ["628110984693315949", "2284540847322527780", 0, "94986900593969928"], ["375541417364976567", "5165909703238199764", 0, "1315172784248528269"], [0, "733838344634014071", 0, "1742984744527998730"], [0, 0, 0, "1299808360911881536"], [0, 0, "1819612722894396453", "547461161439702723"], [0, 0, "922659486493551094", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["958061325640489854", 0, 0, 0], ["179829584942456252", "1402529369512931491", 0, 0], ["403355313967950661", "4957095912573743495", 0, "1072114611518405626"], [0, "2622398335495906021", 0, "1732012654141723040"], [0, 0, 0, "1682884239724433260"], [0, 0, "1207291032463828808", "933332469392307269"], [0, 0, "1754200262673637819", "243240107981905095"], ["593761535527904464", 0, "186451391229595642", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["825067266333892641", "211792726883114031", 0, 0], ["2131445639381570893", "4251903663152520804", 0, "526593051754985491"], [0, "4589474656369863106", 0, "1723153162004790175"], [0, 0, 0, "1771715112954604772"], [0, 0, "750153982767360715", "1243161476077053691"], [0, 0, "2438266502693961073", "531679608695079645"], [0, 0, "786538925391390244", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["818585266441746522", "131030884121689676", 0, 0], [0, "1853269225766103165", 0, "50285888982157525"], ["1866417927615917893", "5525807103002391306", 0, "1364704193893994081"], ["360626432624460189", "276153303678136203", 0, "1827298978768111807"], [0, 0, "423684280056949356", "1497508622417755550"], [0, 0, "2613915778381273719", "722908387364746272"], [0, 0, "1465469104880800004", "141368632761115930"], ["740136269378288888", 0, "85456013689615997", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["737787759096583323", "1140488614835809291", 0, 0], ["847051699436665603", "4674442472265925020", 0, "877365361008235357"], [0, "3478908443121017747", 0, "1779393066845396393"], [0, 0, 0, "1607224009708786654"], [0, 0, "1309504108939447093", "945078357328528235"], [0, 0, "1719774557741721923", "301935357075238818"], ["450770060021691229", 0, "281113996658676011", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["669146630994453886", "307915007831967666", 0, 0], ["1076189524507801873", "3366573770486318060", 0, "411066413616107476"], ["635511231603315729", "4696913529629739409", 0, "1606397924302368760"], [0, 0, 0, "2230565166810612342"], [0, 0, 0, "1833094434020609709"], [0, 0, "85975851707852729", "495843963655832965"], [0, 0, "205238823362832616", 0], ["966351791638569754", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["1211073461654130721", "1464623638513347506", 0, 0], ["1957051744441487214", "5016316108169650420", 0, "1039765881148163424"], [0, "2206560768376774053", 0, "2003112708554012751"], [0, 0, 0, "2524023861785679110"], [0, 0, 0, "1732535640175064538"], [0, 0, 0, "361820384212820243"], ["204679812671493200", 0, "201483249931717", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["2760900649099287140", "2437459319481365299", "418021506594556137", "25455702987790698"], ["2762390351664942436", "4614766435375288435", "95044558697491962", "1396158877451537081"], [0, "180741240846941517", 0, "2324431960223575815"], [0, 0, "236723719264236656", "2238872869995715209"], [0, 0, "1376063477011357381", "1093436470679595447"], [0, 0, "1812705569660282644", "350985969755700255"], ["230088115493771544", 0, "277442229770496240", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]], [["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["4074593946859273793", "1904083986750026897", "763618217804125919", 0], ["6162141655963525099", "2285210726721391810", "2070353180716095477", "720190827870954315"], ["2055795255493133678", 0, "3263848071901826624", "1426762688459137532"], [0, 0, "3871586962712806164", "1291407582309752524"], [0, 0, "3764128809365099571", "698236065158352700"], [0, 0, "1351439264080255744", "138691666966102312"], ["706869284412292419", 0, "108409508585065923", 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0], ["973005189421817592", 0, 0, 0]]], "avg2d_1_out": [[["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]], [["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]], [["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["625146844414076646", "421507004236419910", "0", "4499081119551663"], ["486502594710908796", "216129982720613018", "0", "52641385767080349"], ["554007101157133851", "0", "0", "0"], ["897617554645069466", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]], [["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["1975054700057734918", "3158646143497747261", "230939754890420998", "599420146460558786"], ["0", "213361582308937209", "469575466065783549", "1383752563234747330"], ["0", "0", "98010130206766096", "1259954198106932270"], ["0", "0", "0", "839935029995425100"], ["0", "174558413387801153", "0", "703351253083678327"], ["0", "174558413387801153", "0", "715634767316572709"], ["0", "174558413387801153", "0", "687479527473754734"], ["0", "46006247108649696", "0", "487304406916830523"], ["622608043164620597", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]], [["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["3566406297529779770", "411423855559374441", "1302168819413734258", "130061582929226569"], ["2092334241312586186", "0", "2983167678439626407", "638448693129758369"], ["3076077575404524177", "0", "3449884292872079425", "914182775045094858"], ["1760637775678311644", "0", "3551134241019373159", "1393042902276371810"], ["1616844357613462348", "0", "3508988029765400770", "1443026981008117894"], ["1218087156579280898", "0", "3299805999458412513", "1525086699999509802"], ["1082671782119976822", "683203517005931732", "3253202055945105193", "1783882371946321597"], ["0", "444028150272267864", "248659200292309544", "2294506054460351096"], ["0", "0", "348459496189830116", "239286710045916793"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]], [["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["1023364679208360142", "0", "0", "0"], ["1258880760070671887", "0", "257383863522852702", "0"], ["1312195747641412224", "17351024717876988", "381448215010339593", "0"], ["1135717975298927405", "249609364989285908", "553320355707602767", "0"], ["863331716460220427", "3844296949503093500", "174699200229486810", "1235799533315719399"], ["0", "0", "388034926317329239", "1310606219600086647"], ["235591476086903860", "0", "831486283194385577", "110522477742386312"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]], [["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["1142897994590361984", "2566026956251752217", "0", "369763646995556900"], ["165054495439368019", "1655509822524074228", "0", "1687638267222113296"], ["0", "0", "1548721222122479024", "628972206848839489"], ["656566518820782614", "0", "139480163082163672", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]], [["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["835899991926125862", "202736605600058686", "0", "0"], ["1613099189163460537", "3768788259466613259", "72427956809776858", "1131908769720446567"], ["0", "0", "641340268708258721", "1198909357980875580"], ["362653800308129705", "0", "733370249240007274", "72705590353103669"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]], [["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["949344071275135179", "15069309779600626", "0", "0"], ["518137534171567173", "2784074917004673784", "0", "458294414466079955"], ["100495489610711924", "1367727511948020615", "0", "1523235935454350251"], ["0", "0", "1254385833639099312", "423297976949534537"], ["876530926700039492", "0", "47760522552171402", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]], [["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["1023600954074602410", "1466556439887141581", "0", "131648262938746372"], ["100838828491987665", "3042242226109878155", "0", "1574748885154880903"], ["0", "0", "1098927879481287649", "1097764448472218466"], ["391691681237430514", "0", "681797644823655926", "60810026995476273"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]], [["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["875595851095491257", "317879874739374741", "0", "0"], ["678367406763145874", "3883106811038859309", "0", "1017937127682445839"], ["90156608156115047", "69038325919534050", "433297097249099112", "1469277492055795561"], ["112692515005422807", "0", "1520068359415617914", "291553094300275255"], ["914787959410935416", "0", "21364003422403999", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]], [["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["1228365340399468423", "2538857131250320913", "0", "362708073691067725"], ["158877807900828932", "1725868574501628365", "0", "2091024915363168240"], ["0", "0", "21493962926963182", "1105823605516081863"], ["536009198432970136", "0", "51360076653191083", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]], [["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["3940006650896757117", "2810380117082018110", "836759365953067373", "535451352077570523"], ["513948813873283419", "45185310211735379", "1843039688469717361", "1820368775247045270"], ["0", "0", "2076084280029248835", "570337543139937678"], ["720741944687424786", "0", "96462934588890540", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"], ["973005189421817592", "0", "0", "0"]]], "avg2d_1_remainder": [[["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]], [["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]], [["0", "0", "0", "0"], ["0", "0", "0", "0"], ["3", "3", "0", "1"], ["0", "1", "0", "2"], ["1", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]], [["0", "0", "0", "0"], ["0", "0", "0", "0"], ["3", "3", "2", "3"], ["0", "3", "0", "3"], ["0", "0", "0", "2"], ["0", "0", "0", "2"], ["0", "0", "0", "3"], ["0", "0", "0", "3"], ["0", "0", "0", "0"], ["0", "1", "0", "1"], ["1", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]], [["0", "0", "0", "0"], ["0", "0", "0", "0"], ["2", "1", "0", "1"], ["1", "0", "2", "3"], ["0", "0", "1", "3"], ["0", "0", "3", "0"], ["1", "0", "0", "0"], ["3", "0", "0", "3"], ["0", "1", "2", "3"], ["0", "1", "3", "3"], ["0", "0", "3", "2"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]], [["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["3", "0", "0", "0"], ["0", "0", "1", "0"], ["2", "0", "2", "0"], ["1", "2", "1", "0"], ["2", "2", "3", "0"], ["0", "0", "3", "0"], ["3", "0", "3", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]], [["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["2", "3", "0", "3"], ["1", "3", "0", "0"], ["0", "0", "1", "2"], ["3", "0", "1", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]], [["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["1", "0", "0", "0"], ["3", "1", "0", "3"], ["0", "0", "1", "1"], ["0", "0", "1", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]], [["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["3", "2", "0", "0"], ["3", "0", "0", "3"], ["1", "3", "0", "2"], ["0", "0", "3", "2"], ["0", "0", "3", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]], [["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "2", "0", "3"], ["1", "2", "0", "1"], ["0", "0", "0", "1"], ["0", "0", "1", "3"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]], [["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["1", "3", "0", "0"], ["0", "2", "0", "0"], ["1", "3", "1", "2"], ["1", "0", "1", "0"], ["0", "0", "1", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]], [["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["2", "0", "0", "0"], ["1", "2", "0", "3"], ["0", "0", "1", "3"], ["2", "0", "1", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]], [["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "1", "3", "2"], ["2", "1", "0", "0"], ["0", "0", "0", "2"], ["3", "0", "3", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"], ["0", "0", "0", "0"]]], "conv2d_2_weights": [[[["25584972005900288", "21888242871839275222246405745257275088548364400416034343697916728726834380801", "21888242871839275222246405745257275088548364400416034343697862302196884832257", "745631473914085376", "21888242871839275222246405745257275088548364400416034343698167542340040785921", "527924460762693632", "21888242871839275222246405745257275088548364400416034343697568936654754807809", "21888242871839275222246405745257275088548364400416034343698126020808131215361"], ["21888242871839275222246405745257275088548364400416034343697812579119980871681", "228715203309600768", "21888242871839275222246405745257275088548364400416034343697996313886713708545", "10466923347181568", "215397952833716224", "275340337482825728", "256412743026868224", "21888242871839275222246405745257275088548364400416034343698097050884352507905"], ["586556674228092928", "21888242871839275222246405745257275088548364400416034343698011798205888462849", "118870779059240960", "21888242871839275222246405745257275088548364400416034343697777950482300403713", "21888242871839275222246405745257275088548364400416034343697697348789561458689", "21888242871839275222246405745257275088548364400416034343697974296389705793537", "21888242871839275222246405745257275088548364400416034343697937790146942337025", "21888242871839275222246405745257275088548364400416034343697830282356699693057"], ["219299483945533440", "21888242871839275222246405745257275088548364400416034343698079133500564307969", "319408334027358208", "582927255064281088", "184274695661551616", "21888242871839275222246405745257275088548364400416034343697821057385423175681", "21888242871839275222246405745257275088548364400416034343697598686278306496513", "21888242871839275222246405745257275088548364400416034343697830813042858786817"]], [["106261708560924672", "21888242871839275222246405745257275088548364400416034343697622291074967928833", "21888242871839275222246405745257275088548364400416034343698116497594325663745", "253998335751356416", "21888242871839275222246405745257275088548364400416034343697777506520120950785", "436052567680614400", "21888242871839275222246405745257275088548364400416034343697149533304458838017", "21888242871839275222246405745257275088548364400416034343698159676755978223617"], ["21888242871839275222246405745257275088548364400416034343697943564404054294529", "622876085914173440", "21888242871839275222246405745257275088548364400416034343698083610273825947649", "701761990757974016", "147754605923532800", "369588876487950336", "405805415117357056", "21888242871839275222246405745257275088548364400416034343698149792331128111105"], ["21888242871839275222246405745257275088548364400416034343698164137453177274369", "270701051248640000", "150898693782896640", "21888242871839275222246405745257275088548364400416034343698088579233159839745", "21888242871839275222246405745257275088548364400416034343697679637581383335937", "21888242871839275222246405745257275088548364400416034343698092776799187501057", "226718936870158336", "8207343200239616"], ["51248421654233088", "536409666872147968", "466499934439342080", "21888242871839275222246405745257275088548364400416034343698162029474638462977", "362206102584033280", "144831382462398464", "21888242871839275222246405745257275088548364400416034343697521841891677569025", "21888242871839275222246405745257275088548364400416034343697353813425209212929"]], [["21888242871839275222246405745257275088548364400416034343698045799812703453185", "21888242871839275222246405745257275088548364400416034343697909779383850106881", "125671069498474496", "35243917515423744", "21888242871839275222246405745257275088548364400416034343697793882955542691841", "346564965563367424", "148382787840245760", "21888242871839275222246405745257275088548364400416034343697799498779901034497"], ["76810464977223680", "204550153934209024", "21888242871839275222246405745257275088548364400416034343698144868477540761601", "21888242871839275222246405745257275088548364400416034343698093187724478513153", "410055061918449664", "21888242871839275222246405745257275088548364400416034343698006234144475971585", "21888242871839275222246405745257275088548364400416034343698087588899600728065", "183411029277933568"], ["240180377988104192", "371744159796559872", "248724906185850880", "79599865847349248", "675343956157923328", "21888242871839275222246405745257275088548364400416034343697817073682997051393", "751092404571865088", "21888242871839275222246405745257275088548364400416034343697999332441268944897"], ["275045445028282368", "459538891964153856", "437959395721084928", "997112048296919040", "161791314961104896", "21888242871839275222246405745257275088548364400416034343697869256195613655041", "89623125515304960", "21888242871839275222246405745257275088548364400416034343697475106531463659521"]]], [[["548201551122923520", "21888242871839275222246405745257275088548364400416034343697682863926456352769", "21888242871839275222246405745257275088548364400416034343698142464103308853249", "693470917170298880", "21888242871839275222246405745257275088548364400416034343698010525211941666817", "648441999002697728", "538394147921330176", "138776105640263680"], ["21888242871839275222246405745257275088548364400416034343697381649967248048129", "76457538924576768", "301157162560782336", "21888242871839275222246405745257275088548364400416034343697269236997935857665", "622173635422978048", "21888242871839275222246405745257275088548364400416034343697858828564774780929", "21888242871839275222246405745257275088548364400416034343697376393064716697601", "156000427735777280"], ["21888242871839275222246405745257275088548364400416034343698049277361823678465", "257899214028144640", "21888242871839275222246405745257275088548364400416034343698129824955154563073", "192425633056292864", "21888242871839275222246405745257275088548364400416034343697312504567195238401", "492342821378850816", "153447997391241216", "427705281560969216"], ["21888242871839275222246405745257275088548364400416034343697953408228578557953", "21888242871839275222246405745257275088548364400416034343698014808531286360065", "21888242871839275222246405745257275088548364400416034343698040205944217927681", "21888242871839275222246405745257275088548364400416034343697769079622487506945", "21888242871839275222246405745257275088548364400416034343698202911826025381889", "21888242871839275222246405745257275088548364400416034343698007831717691260929", "127100752442163200", "21888242871839275222246405745257275088548364400416034343698178331813284413441"]], [["21888242871839275222246405745257275088548364400416034343698086765227952570369", "21888242871839275222246405745257275088548364400416034343697700338155518951425", "439042002357583872", "21888242871839275222246405745257275088548364400416034343698093375466088955905", "21888242871839275222246405745257275088548364400416034343697866258239721570305", "347988523883692032", "517139007608455168", "210532407722377216"], ["21888242871839275222246405745257275088548364400416034343697480076736338067457", "266733171482034176", "644173419985764352", "21888242871839275222246405745257275088548364400416034343697596519140888150017", "404941027179233280", "26719966505992192", "21888242871839275222246405745257275088548364400416034343698057000984332206081", "21888242871839275222246405745257275088548364400416034343697958226614948986881"], ["335794871212179456", "126496356054335488", "212425852644753408", "21888242871839275222246405745257275088548364400416034343698111708456682520577", "21888242871839275222246405745257275088548364400416034343697778080087233527809", "21888242871839275222246405745257275088548364400416034343698002124994645065729", "21888242871839275222246405745257275088548364400416034343697953567967002230785", "350265028349263872"], ["31697522216927232", "122315849636773888", "291477783744348160", "21888242871839275222246405745257275088548364400416034343697695000301444005889", "21888242871839275222246405745257275088548364400416034343697936777857510408193", "308812374830219264", "21888242871839275222246405745257275088548364400416034343697607357576758951937", "21888242871839275222246405745257275088548364400416034343697800338703705440257"]], [["21888242871839275222246405745257275088548364400416034343697822042788359831553", "21888242871839275222246405745257275088548364400416034343697946691827440549889", "194836037422284800", "21888242871839275222246405745257275088548364400416034343697500495904216449025", "21888242871839275222246405745257275088548364400416034343697885633867985977345", "736954815342444544", "70083751622737920", "159215674613301248"], ["21888242871839275222246405745257275088548364400416034343697727688747778048001", "21888242871839275222246405745257275088548364400416034343698163664160666157057", "309893022961631232", "82284246177153024", "349351162387890176", "21888242871839275222246405745257275088548364400416034343698026533809184309249", "412386370166718464", "21888242871839275222246405745257275088548364400416034343697727838109560733697"], ["368914085586141184", "21888242871839275222246405745257275088548364400416034343698112911339583176705", "307800171297636352", "21888242871839275222246405745257275088548364400416034343698110365119761350657", "21888242871839275222246405745257275088548364400416034343698110382754897068033", "21888242871839275222246405745257275088548364400416034343697854335651026042881", "21888242871839275222246405745257275088548364400416034343698026155748983046145", "861886205573201920"], ["3306537749577728", "21888242871839275222246405745257275088548364400416034343698080771025565384705", "21888242871839275222246405745257275088548364400416034343697882494521770508289", "21888242871839275222246405745257275088548364400416034343697588082725607178241", "21888242871839275222246405745257275088548364400416034343697655725917898539009", "677940727744823296", "21888242871839275222246405745257275088548364400416034343697339324816892624897", "144591998165188608"]]], [[["490179600970678272", "82190401141735424", "400499927915954176", "21888242871839275222246405745257275088548364400416034343697784908191880970241", "176834386375737344", "21888242871839275222246405745257275088548364400416034343698179707811284385793", "609257672331493376", "21888242871839275222246405745257275088548364400416034343698084715420450816001"], ["21888242871839275222246405745257275088548364400416034343697752763385327386625", "21888242871839275222246405745257275088548364400416034343697710720328423964673", "262538397183115264", "21888242871839275222246405745257275088548364400416034343698045383561652994049", "308767088695050240", "21888242871839275222246405745257275088548364400416034343697699877838104035329", "21888242871839275222246405745257275088548364400416034343698172979974795952129", "21888242871839275222246405745257275088548364400416034343698043491130342899713"], ["21888242871839275222246405745257275088548364400416034343697871758752797949953", "166411256662589440", "21888242871839275222246405745257275088548364400416034343698025384750813806593", "128383934051385344", "21888242871839275222246405745257275088548364400416034343697814998973274914817", "633254925924564992", "282267415356637184", "378460182977445888"], ["2704411520401408", "21888242871839275222246405745257275088548364400416034343698184251669787705345", "21888242871839275222246405745257275088548364400416034343698029004154113884161", "21888242871839275222246405745257275088548364400416034343697981258394253656065", "119680380394536960", "21888242871839275222246405745257275088548364400416034343697979119105403256833", "924496520827371520", "157188089272336384"]], [["48069273976832000", "21888242871839275222246405745257275088548364400416034343698103955654166183937", "577561157284397056", "21888242871839275222246405745257275088548364400416034343697420976955552956417", "164668908689686528", "21888242871839275222246405745257275088548364400416034343698109985178364411905", "549559344904011776", "21888242871839275222246405745257275088548364400416034343697726745435520892929"], ["21888242871839275222246405745257275088548364400416034343697495493263749021697", "21888242871839275222246405745257275088548364400416034343697667870470503923713", "272117256584953856", "175920984270831616", "444364738147647488", "87734679934861312", "21888242871839275222246405745257275088548364400416034343697716260320839729153", "21888242871839275222246405745257275088548364400416034343698150372246202351617"], ["7091970795110400", "56319206072778752", "21888242871839275222246405745257275088548364400416034343697979083147937054721", "157589118958698496", "21888242871839275222246405745257275088548364400416034343697642639255626842113", "122193846795763712", "316077535349702656", "1175238979310583808"], ["43682265531678720", "21888242871839275222246405745257275088548364400416034343697802246459458846721", "21888242871839275222246405745257275088548364400416034343697985057155388014593", "25145828779753472", "21888242871839275222246405745257275088548364400416034343698056739764421263361", "340505041586618368", "1077089562028670976", "18230388119830528"]], [["21888242871839275222246405745257275088548364400416034343698150861400027693057", "21888242871839275222246405745257275088548364400416034343698004377292674957313", "119039021518159872", "21888242871839275222246405745257275088548364400416034343697751690743015014401", "21888242871839275222246405745257275088548364400416034343698126249180132278273", "258238224386752512", "21888242871839275222246405745257275088548364400416034343697660715501665386497", "50246500273356800"], ["21888242871839275222246405745257275088548364400416034343697352640383741329409", "21888242871839275222246405745257275088548364400416034343697648321909676310529", "198932233631825920", "590693449288646656", "240891624572321792", "130219903721406464", "21888242871839275222246405745257275088548364400416034343697940525199296299009", "121230683199766528"], ["21888242871839275222246405745257275088548364400416034343698081223208312242177", "26539863494885376", "21888242871839275222246405745257275088548364400416034343698034792859495825409", "248461779309428736", "21888242871839275222246405745257275088548364400416034343697681601721467404289", "21888242871839275222246405745257275088548364400416034343697884404132949786625", "18098393037406208", "140764400620404736"], ["21888242871839275222246405745257275088548364400416034343697868187023634857985", "21888242871839275222246405745257275088548364400416034343697774799694292058113", "21888242871839275222246405745257275088548364400416034343697670515689321922561", "21888242871839275222246405745257275088548364400416034343698178250189578436609", "21888242871839275222246405745257275088548364400416034343697709160911698132993", "514375797448900608", "349338964680769536", "609860342142468096"]]]], "conv2d_2_bias": ["5176128931244168779332327571456", "21888242871839275222246405745257275088548364399639488701486574631292931932161", "5947054881783319730896582475776", "21888242871839275222246405745257275088548364399463504387673044625444749443073", "1382482837055964182914518745088", "5498964713354428005347976282112", "7641107521236554410547663077376", "1866009341340854822489406046208"], "conv2d_2_out": [[["151443532606342120", "21888242871839275222246405745257275088548364400416034343695445103896159586204", "1368543458414900467", "21888242871839275222246405745257275088548364400416034343697889320797389307844", "21888242871839275222246405745257275088548364400416034343696909822999783625702", "3064925807006993607", "273553711551724155", "21888242871839275222246405745257275088548364400416034343697690313879935243528"], ["2305026476699616", "21888242871839275222246405745257275088548364400416034343695373293266199614991", "1198295106837870704", "21888242871839275222246405745257275088548364400416034343698176204306451678278", "21888242871839275222246405745257275088548364400416034343696976681311186900595", "3098423106640951325", "27883597011977947", "21888242871839275222246405745257275088548364400416034343697831290365393377446"], ["21888242871839275222246405745257275088548364400416034343698184832882497403512", "21888242871839275222246405745257275088548364400416034343695370561116710062230", "1015473543006296779", "21888242871839275222246405745257275088548364400416034343698170935451451176569", "21888242871839275222246405745257275088548364400416034343696893396612372850645", "2867000842935234867", "21888242871839275222246405745257275088548364400416034343698088918257846453636", "21888242871839275222246405745257275088548364400416034343697829033084426636881"], ["141320053681274300", "21888242871839275222246405745257275088548364400416034343695521202884006170187", "930207102854293965", "21888242871839275222246405745257275088548364400416034343698003250214300891118", "21888242871839275222246405745257275088548364400416034343696707284616704078508", "3008620425064308043", "21888242871839275222246405745257275088548364400416034343697954476092920648171", "21888242871839275222246405745257275088548364400416034343697881874633411034563"], ["284330154256901203", "21888242871839275222246405745257275088548364400416034343695584949817367452122", "1117152200463263489", "21888242871839275222246405745257275088548364400416034343697717772771666529394", "21888242871839275222246405745257275088548364400416034343696696894210531175854", "3114911484496342492", "21888242871839275222246405745257275088548364400416034343698101544972406146923", "21888242871839275222246405745257275088548364400416034343697740000495123836606"], ["456384818107520143", "21888242871839275222246405745257275088548364400416034343695605635126262011720", "1298309131902942134", "21888242871839275222246405745257275088548364400416034343697514660015222043443", "21888242871839275222246405745257275088548364400416034343696770070353773387560", "3099398704571414847", "148135680860252424", "21888242871839275222246405745257275088548364400416034343697662955798941260747"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"]], [["21888242871839275222246405745257275088548364400416034343695656654891865609471", "21888242871839275222246405745257275088548364400416034343693476514608631811783", "1778527995339561833", "1009762458805633395", "21888242871839275222246405745257275088548364400416034343697304379388049071762", "3673928470816514801", "21888242871839275222246405745257275088548364400416034343697379988731796191114", "25589373141028379"], ["21888242871839275222246405745257275088548364400416034343695701394499521748439", "21888242871839275222246405745257275088548364400416034343693481815113581930705", "1767405459406205712", "21888242871839275222246405745257275088548364400416034343698060288026310573811", "21888242871839275222246405745257275088548364400416034343697819420934479735734", "3381092815474283339", "651521283906983888", "21888242871839275222246405745257275088548364400416034343697823330567786317326"], ["21888242871839275222246405745257275088548364400416034343696693839679727083755", "21888242871839275222246405745257275088548364400416034343693901174772551391219", "702135617903483955", "21888242871839275222246405745257275088548364400416034343697351024485017502846", "21888242871839275222246405745257275088548364400416034343697486447987263292538", "1667768916695293250", "2416277132687351546", "541363051473982081"], ["21888242871839275222246405745257275088548364400416034343697370863080805088419", "21888242871839275222246405745257275088548364400416034343695398211725315510734", "21888242871839275222246405745257275088548364400416034343697336284643813263677", "169570528256778799", "21888242871839275222246405745257275088548364400416034343696313307949424933761", "3111313874890923907", "2025863631888571792", "857632713282422075"], ["21888242871839275222246405745257275088548364400416034343697627394461839081921", "21888242871839275222246405745257275088548364400416034343695334766071165664095", "21888242871839275222246405745257275088548364400416034343697695034126926368350", "444656306298745737", "21888242871839275222246405745257275088548364400416034343696316244318049535365", "3112843247119995191", "1627616653759823522", "608215705800718617"], ["21888242871839275222246405745257275088548364400416034343697704553593053251481", "21888242871839275222246405745257275088548364400416034343695065718903123039777", "21888242871839275222246405745257275088548364400416034343697868902869971205046", "782592944090240628", "21888242871839275222246405745257275088548364400416034343696303726696051773696", "3369481686467750309", "1207635588757658257", "564264733285437916"], ["21888242871839275222246405745257275088548364400416034343697676708836445643313", "21888242871839275222246405745257275088548364400416034343694950153974680160884", "21888242871839275222246405745257275088548364400416034343697946339074077719325", "838639171467491677", "21888242871839275222246405745257275088548364400416034343696338804919909779844", "3350775651697282066", "1119899971458994869", "508259819764005562"], ["21888242871839275222246405745257275088548364400416034343697852239030000550745", "21888242871839275222246405745257275088548364400416034343695118636002119041899", "21888242871839275222246405745257275088548364400416034343698031611324160085884", "764449739863562536", "21888242871839275222246405745257275088548364400416034343696412551097719207893", "3218718743125690786", "1064895594424307951", "372014026489795173"], ["21888242871839275222246405745257275088548364400416034343698104232668058020827", "21888242871839275222246405745257275088548364400416034343695379012782619938037", "166262748362380873", "446813524873771396", "21888242871839275222246405745257275088548364400416034343696563193820083060985", "3049749124400952704", "389509808732886385", "99375910756737357"], ["21888242871839275222246405745257275088548364400416034343698184283827531841645", "21888242871839275222246405745257275088548364400416034343695534563310611709831", "663148824940208403", "21888242871839275222246405745257275088548364400416034343698049506252768864249", "21888242871839275222246405745257275088548364400416034343696626167180384747053", "3021501451574146933", "21888242871839275222246405745257275088548364400416034343698061953378709316998", "21888242871839275222246405745257275088548364400416034343698006694672570521287"], ["321580765506892551", "21888242871839275222246405745257275088548364400416034343695583031984195640934", "1188167842378820590", "21888242871839275222246405745257275088548364400416034343697629965558760264282", "21888242871839275222246405745257275088548364400416034343696721439215563251090", "3106130597644835233", "21888242871839275222246405745257275088548364400416034343698184770601835148658", "21888242871839275222246405745257275088548364400416034343697695811503012181030"]], [["21888242871839275222246405745257275088548364400416034343696292938860243150134", "21888242871839275222246405745257275088548364400416034343694553285830137606407", "2414658021714656613", "21888242871839275222246405745257275088548364400416034343695981980809547047102", "21888242871839275222246405745257275088548364400416034343696685655837051959219", "3768733083675571987", "21888242871839275222246405745257275088548364400416034343697662260769955957638", "21888242871839275222246405745257275088548364400416034343697252197849427463505"], ["21888242871839275222246405745257275088548364400416034343696005701160085121720", "21888242871839275222246405745257275088548364400416034343695881112327812361812", "4109117076859296933", "21888242871839275222246405745257275088548364400416034343693618130352553896956", "21888242871839275222246405745257275088548364400416034343695452973792826893531", "3122375140541891314", "458209753108158546", "395686206485030602"], ["21888242871839275222246405745257275088548364400416034343696736468203629490260", "21888242871839275222246405745257275088548364400416034343696206282803090731844", "1676490590227308070", "21888242871839275222246405745257275088548364400416034343692373373900433395887", "21888242871839275222246405745257275088548364400416034343694427656645059089281", "3326630845996644333", "21888242871839275222246405745257275088548364400416034343698149815292127402134", "4009246104385737891"], ["21888242871839275222246405745257275088548364400416034343696789931156788774672", "21888242871839275222246405745257275088548364400416034343696777265371291352911", "21888242871839275222246405745257275088548364400416034343697851347209531660994", "21888242871839275222246405745257275088548364400416034343694463271329744064503", "21888242871839275222246405745257275088548364400416034343691548132359152422839", "3846235609521560766", "3898449054670268495", "4396297984012434033"], ["21888242871839275222246405745257275088548364400416034343697305839905000309786", "21888242871839275222246405745257275088548364400416034343696454438263890022953", "21888242871839275222246405745257275088548364400416034343697112298495102796293", "21888242871839275222246405745257275088548364400416034343695771431907408902822", "21888242871839275222246405745257275088548364400416034343691490293938912614293", "4210847402348338953", "4955761224301376490", "5106959768718521980"], ["21888242871839275222246405745257275088548364400416034343696649689104265454834", "21888242871839275222246405745257275088548364400416034343696324424106561217861", "21888242871839275222246405745257275088548364400416034343696363892484667618434", "21888242871839275222246405745257275088548364400416034343696857938127631083983", "21888242871839275222246405745257275088548364400416034343691511618550234261450", "4450236705137667204", "4507680756100022354", "5351029513047853276"], ["21888242871839275222246405745257275088548364400416034343695813396990091253985", "21888242871839275222246405745257275088548364400416034343695857246374884257968", "21888242871839275222246405745257275088548364400416034343696155286573268996457", "21888242871839275222246405745257275088548364400416034343697593158762798442105", "21888242871839275222246405745257275088548364400416034343691737829572872204193", "4648819039873821832", "4047809233592118329", "5549283339137934473"], ["21888242871839275222246405745257275088548364400416034343695723879345269063120", "21888242871839275222246405745257275088548364400416034343695402966609099864605", "21888242871839275222246405745257275088548364400416034343696154415067942495821", "21888242871839275222246405745257275088548364400416034343697651221632118800051", "21888242871839275222246405745257275088548364400416034343693444365819380650320", "5451513127348166992", "4591867149603018422", "5356914321031654671"], ["21888242871839275222246405745257275088548364400416034343696416313550314053997", "21888242871839275222246405745257275088548364400416034343695884319244860958402", "21888242871839275222246405745257275088548364400416034343697235437630706126576", "21888242871839275222246405745257275088548364400416034343697747499322828558487", "21888242871839275222246405745257275088548364400416034343695920460036283333226", "3840292078452657926", "3818008437689354148", "1164975116647586213"], ["21888242871839275222246405745257275088548364400416034343697257523158897457889", "21888242871839275222246405745257275088548364400416034343695924386303321701157", "21888242871839275222246405745257275088548364400416034343697960476193978976034", "21888242871839275222246405745257275088548364400416034343697272943979273124642", "21888242871839275222246405745257275088548364400416034343696869937321055164271", "1889761543876628054", "930788037242391025", "613648165080330241"], ["21888242871839275222246405745257275088548364400416034343697913298818078168693", "21888242871839275222246405745257275088548364400416034343695767746972566275049", "856216724994658234", "21888242871839275222246405745257275088548364400416034343697639414272367409332", "21888242871839275222246405745257275088548364400416034343696572220902116323447", "3060967085276197097", "21888242871839275222246405745257275088548364400416034343697936368593952254109", "21888242871839275222246405745257275088548364400416034343697891059519307619575"]], [["91302755351330059", "21888242871839275222246405745257275088548364400416034343695504863171079056631", "2578781165130633462", "21888242871839275222246405745257275088548364400416034343695790432207373036824", "21888242871839275222246405745257275088548364400416034343697044534904013428107", "4000141031629448459", "208750666775877334", "497297868516443717"], ["975798686244988135", "21888242871839275222246405745257275088548364400416034343696865173991431110250", "4411227011616272907", "872261216743120449", "21888242871839275222246405745257275088548364400416034343695660262197996509476", "4642876234854309841", "241652525026736837", "1743409963697781713"], ["2175112608947629435", "21888242871839275222246405745257275088548364400416034343696300005100795956203", "4118554175867721337", "21888242871839275222246405745257275088548364400416034343698027208552489133331", "21888242871839275222246405745257275088548364400416034343694064752537332935117", "6333777491495113450", "21888242871839275222246405745257275088548364400416034343697901743301849977689", "2480152620313377553"], ["3207244669255531852", "21888242871839275222246405745257275088548364400416034343696417259565432661717", "5392981291158190537", "21888242871839275222246405745257275088548364400416034343696062250861764258215", "21888242871839275222246405745257275088548364400416034343691437919566536600102", "3788792633027569694", "21888242871839275222246405745257275088548364400416034343697141769629646338897", "3675536395341484824"], ["3649952810026300044", "21888242871839275222246405745257275088548364400416034343696478723602707051286", "4545603868886463311", "21888242871839275222246405745257275088548364400416034343696490586147236714751", "21888242871839275222246405745257275088548364400416034343691033222378766141183", "4234427034368541222", "21888242871839275222246405745257275088548364400416034343697302011046382864628", "4419936217829624128"], ["2485668711553703676", "21888242871839275222246405745257275088548364400416034343697362529523862564481", "4141531417518848936", "21888242871839275222246405745257275088548364400416034343695745880943279190255", "21888242871839275222246405745257275088548364400416034343691170672052483293083", "3468791515567241095", "21888242871839275222246405745257275088548364400416034343697274418159886941243", "4494511952821603086"], ["21888242871839275222246405745257275088548364400416034343696578648906951197298", "21888242871839275222246405745257275088548364400416034343695066650283617361460", "3964593838085581645", "21888242871839275222246405745257275088548364400416034343697845574575778988049", "21888242871839275222246405745257275088548364400416034343692011952138372914781", "4637029822155715966", "21888242871839275222246405745257275088548364400416034343696703495866230356486", "5391518812026019417"], ["21888242871839275222246405745257275088548364400416034343695753359060008205675", "21888242871839275222246405745257275088548364400416034343695609846046835982154", "2625375540892625589", "21888242871839275222246405745257275088548364400416034343696545188744985863212", "21888242871839275222246405745257275088548364400416034343693267968391813371946", "5003763994530349938", "21888242871839275222246405745257275088548364400416034343696835655951545592361", "1623930518427908099"], ["21888242871839275222246405745257275088548364400416034343695786377863499011448", "21888242871839275222246405745257275088548364400416034343696224051647660651610", "1686737216005482643", "21888242871839275222246405745257275088548364400416034343695926742456742119376", "21888242871839275222246405745257275088548364400416034343695405802722674683475", "734174015960230711", "1441976296936606924", "259737791643444978"], ["21888242871839275222246405745257275088548364400416034343696823410192383465059", "21888242871839275222246405745257275088548364400416034343696814192375076177972", "27624784632018291", "21888242871839275222246405745257275088548364400416034343695743412435306671347", "21888242871839275222246405745257275088548364400416034343696653786092387068669", "992816696804748049", "308465701816604370", "956770296941243527"], ["21888242871839275222246405745257275088548364400416034343697403594070583472937", "21888242871839275222246405745257275088548364400416034343696339914193468027287", "979836073023484142", "21888242871839275222246405745257275088548364400416034343696901263430751674067", "21888242871839275222246405745257275088548364400416034343696232878050997261543", "2925927824171062963", "21888242871839275222246405745257275088548364400416034343698068470311605552506", "21888242871839275222246405745257275088548364400416034343698109316544242926149"]], [["462707794751463145", "21888242871839275222246405745257275088548364400416034343695476314150725113862", "2010855994110512637", "21888242871839275222246405745257275088548364400416034343697762124083601687450", "21888242871839275222246405745257275088548364400416034343696788480727633940637", "3367245007587598291", "1520616831964843210", "21888242871839275222246405745257275088548364400416034343696318311074413272961"], ["1331019925092916497", "21888242871839275222246405745257275088548364400416034343695854102313141443638", "2470920483113918673", "983797098772309562", "21888242871839275222246405745257275088548364400416034343696760391427758011050", "3273494563787010035", "296308259724886015", "21888242871839275222246405745257275088548364400416034343695886651472179845389"], ["1950772979132358557", "21888242871839275222246405745257275088548364400416034343696262783991167177586", "2735061176638391015", "1875030432202406990", "21888242871839275222246405745257275088548364400416034343695928628830514769333", "3603249825954776461", "275354614157849346", "21888242871839275222246405745257275088548364400416034343694087145747300467089"], ["3635052306158178924", "21888242871839275222246405745257275088548364400416034343696442708356644027892", "4016356998552374476", "779465482523957613", "21888242871839275222246405745257275088548364400416034343695140425422225983592", "1993026364153490328", "21888242871839275222246405745257275088548364400416034343697355472901292693985", "21888242871839275222246405745257275088548364400416034343693586071805935114622"], ["4005058672603643166", "21888242871839275222246405745257275088548364400416034343696996894112027982015", "4379854839240594761", "1087475084653623838", "21888242871839275222246405745257275088548364400416034343695417295365267894161", "1789055382833002285", "21888242871839275222246405745257275088548364400416034343697547496568810598255", "21888242871839275222246405745257275088548364400416034343693168149521167007416"], ["1974122011372468729", "21888242871839275222246405745257275088548364400416034343695810405010802666793", "5409048878695917014", "2101352937585649840", "21888242871839275222246405745257275088548364400416034343695843723264001115373", "1362550201533825094", "21888242871839275222246405745257275088548364400416034343697538580573870881367", "21888242871839275222246405745257275088548364400416034343693909968388744589081"], ["21888242871839275222246405745257275088548364400416034343697017100849271149160", "21888242871839275222246405745257275088548364400416034343694932671383149487648", "5917731011040935004", "2001267972835022435", "21888242871839275222246405745257275088548364400416034343697524067725257939071", "1660152173409807217", "410532269495615804", "21888242871839275222246405745257275088548364400416034343692423023568392857521"], ["21888242871839275222246405745257275088548364400416034343696729699069751256728", "21888242871839275222246405745257275088548364400416034343697044050394294693097", "6208256227868188524", "21888242871839275222246405745257275088548364400416034343697499936292464366203", "21888242871839275222246405745257275088548364400416034343696046798297312972866", "520296321352421768", "21888242871839275222246405745257275088548364400416034343695317268355745432302", "21888242871839275222246405745257275088548364400416034343692816919803551323129"], ["21888242871839275222246405745257275088548364400416034343697092738751825421413", "21888242871839275222246405745257275088548364400416034343697598425191275413277", "3082882717967659964", "21888242871839275222246405745257275088548364400416034343693898692229161076685", "821319720444622581", "21888242871839275222246405745257275088548364400416034343696455315011315495276", "21888242871839275222246405745257275088548364400416034343693480551201887314336", "21888242871839275222246405745257275088548364400416034343696947573352940725282"], ["21888242871839275222246405745257275088548364400416034343697485506233347820580", "21888242871839275222246405745257275088548364400416034343697501336136282273124", "1291257713479693997", "21888242871839275222246405745257275088548364400416034343697210824410370112158", "21888242871839275222246405745257275088548364400416034343696406672833759435628", "1163552746569798529", "21888242871839275222246405745257275088548364400416034343697959129695880937071", "21888242871839275222246405745257275088548364400416034343697780088041895840103"], ["21888242871839275222246405745257275088548364400416034343698167245518740676174", "21888242871839275222246405745257275088548364400416034343696369708598435191685", "1592896782157083645", "21888242871839275222246405745257275088548364400416034343696499627164906166213", "21888242871839275222246405745257275088548364400416034343695977543666906425318", "2417672109396156438", "165647290482905558", "21888242871839275222246405745257275088548364400416034343697851402169256416322"]], [["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["485362022261597849", "21888242871839275222246405745257275088548364400416034343695597005070228926143", "1334830605137656344", "21888242871839275222246405745257275088548364400416034343697484826475248885709", "21888242871839275222246405745257275088548364400416034343696762738798935294833", "3115006143255347110", "201538657235650295", "21888242871839275222246405745257275088548364400416034343697633569280190059657"], ["515229231610562692", "21888242871839275222246405745257275088548364400416034343695594044429760287853", "1424029967844808657", "21888242871839275222246405745257275088548364400416034343697526405932179113654", "21888242871839275222246405745257275088548364400416034343696818440945062890575", "3118950538566203525", "376692454199708284", "21888242871839275222246405745257275088548364400416034343697483291156101564072"], ["388593770050237137", "21888242871839275222246405745257275088548364400416034343695460870346493732910", "1485538361648771935", "21888242871839275222246405745257275088548364400416034343697785644087179539703", "21888242871839275222246405745257275088548364400416034343696709643924118019435", "3177568915915120654", "274798208916587657", "21888242871839275222246405745257275088548364400416034343697444864617303952397"], ["21888242871839275222246405745257275088548364400416034343693929018229369188184", "21888242871839275222246405745257275088548364400416034343692610387444858866000", "2325272622932806402", "1390644149077437655", "21888242871839275222246405745257275088548364400416034343697676341519520250270", "4259762087082885029", "21888242871839275222246405745257275088548364400416034343697925726106374785227", "21888242871839275222246405745257275088548364400416034343697491337185220540059"], ["21888242871839275222246405745257275088548364400416034343694028188956674054380", "21888242871839275222246405745257275088548364400416034343694732748265743633813", "3549250182371814966", "21888242871839275222246405745257275088548364400416034343697235638928844197588", "1544717479828665747", "3237269898790013955", "21888242871839275222246405745257275088548364400416034343697198526650422998234", "21888242871839275222246405745257275088548364400416034343696215129436681562639"], ["21888242871839275222246405745257275088548364400416034343694883168498599949879", "581545662430537897", "3803827132560483365", "21888242871839275222246405745257275088548364400416034343697445984944207663728", "2380999175244123099", "432557996874870425", "21888242871839275222246405745257275088548364400416034343697474775242084044197", "21888242871839275222246405745257275088548364400416034343696819256721290009222"], ["21888242871839275222246405745257275088548364400416034343695748775025036762510", "1217635615170972381", "990367048462126046", "21888242871839275222246405745257275088548364400416034343695720548731458549406", "1090301586736597854", "858013953021130726", "21888242871839275222246405745257275088548364400416034343697170377848438344807", "21888242871839275222246405745257275088548364400416034343697661403623919779856"], ["21888242871839275222246405745257275088548364400416034343697691824049807824936", "21888242871839275222246405745257275088548364400416034343697401505377683958886", "1711734255949295745", "21888242871839275222246405745257275088548364400416034343696773665541743983307", "21888242871839275222246405745257275088548364400416034343695251930438044212825", "1927112723073162405", "303532046937574242", "21888242871839275222246405745257275088548364400416034343697896470528877417775"], ["791344008409837766", "21888242871839275222246405745257275088548364400416034343695850955630231389892", "1723912732506875281", "21888242871839275222246405745257275088548364400416034343696450628378555324352", "21888242871839275222246405745257275088548364400416034343696346271263309952749", "2338239580530077380", "225116032552127778", "21888242871839275222246405745257275088548364400416034343697375169538754102422"]], [["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["481767818764952524", "21888242871839275222246405745257275088548364400416034343695608182480410985686", "1328683049298323259", "21888242871839275222246405745257275088548364400416034343697502659509477449418", "21888242871839275222246405745257275088548364400416034343696788875636350583296", "3093405427343128445", "202952114081937024", "21888242871839275222246405745257275088548364400416034343697654587125455304563"], ["21888242871839275222246405745257275088548364400416034343696140999115683163209", "21888242871839275222246405745257275088548364400416034343693979741716230562198", "1610167231634391670", "1251683367508350061", "21888242871839275222246405745257275088548364400416034343697379947033280606402", "3444860572422879003", "21888242871839275222246405745257275088548364400416034343698125148301886988800", "21888242871839275222246405745257275088548364400416034343698140187814809885873"], ["21888242871839275222246405745257275088548364400416034343693205481226436323665", "21888242871839275222246405745257275088548364400416034343693034791512507633444", "2125037408712463782", "444526996534544305", "973668969585154144", "4199000638382025761", "21888242871839275222246405745257275088548364400416034343698179914902721031395", "21888242871839275222246405745257275088548364400416034343697367302593075067018"], ["21888242871839275222246405745257275088548364400416034343693743753928025876028", "21888242871839275222246405745257275088548364400416034343696990298269677036584", "3910559194249718822", "584464529053398141", "1308722054085997881", "2161545371036065241", "21888242871839275222246405745257275088548364400416034343697720980702329878215", "21888242871839275222246405745257275088548364400416034343696387960327080557877"], ["21888242871839275222246405745257275088548364400416034343694812734695486760907", "1256885633277153928", "1884572160415713095", "21888242871839275222246405745257275088548364400416034343696484281790012288119", "3422760120312289423", "618191457008539865", "21888242871839275222246405745257275088548364400416034343697141092943854918288", "21888242871839275222246405745257275088548364400416034343698188155499697844540"], ["21888242871839275222246405745257275088548364400416034343696838805351007916232", "262803050507110675", "1377176431173276621", "21888242871839275222246405745257275088548364400416034343696876487880356791997", "21888242871839275222246405745257275088548364400416034343696372277897541038404", "1659969961311402570", "414670650707611839", "21888242871839275222246405745257275088548364400416034343697497263255203772811"], ["945977649053837664", "21888242871839275222246405745257275088548364400416034343696230385452168441817", "2018987255244361660", "21888242871839275222246405745257275088548364400416034343696100377493427541586", "21888242871839275222246405745257275088548364400416034343695640391601844261599", "1816965461293766551", "131975927450687010", "21888242871839275222246405745257275088548364400416034343697188004966357899506"], ["567055244889863936", "21888242871839275222246405745257275088548364400416034343695675959684577083469", "1453267428211535349", "21888242871839275222246405745257275088548364400416034343697187653497347053488", "21888242871839275222246405745257275088548364400416034343696724303316079037441", "2898432473221576369", "357926798921794305", "21888242871839275222246405745257275088548364400416034343697626531601266702936"]], [["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["21888242871839275222246405745257275088548364400416034343697403613993299745933", "21888242871839275222246405745257275088548364400416034343694735468788674863661", "1556073083121829714", "136731537848049415", "21888242871839275222246405745257275088548364400416034343697080371866464973597", "3349196307945055760", "21888242871839275222246405745257275088548364400416034343698034627113229657527", "21888242871839275222246405745257275088548364400416034343697903624641565323458"], ["21888242871839275222246405745257275088548364400416034343693471041642913468757", "21888242871839275222246405745257275088548364400416034343692619846510375002502", "1985705934193751373", "1884331113524073052", "260753789476793208", "3632630105048903279", "531531353809235384", "21888242871839275222246405745257275088548364400416034343697590272467540587744"], ["21888242871839275222246405745257275088548364400416034343693642154061794230870", "21888242871839275222246405745257275088548364400416034343694822929080115848045", "2657300165254684037", "21888242871839275222246405745257275088548364400416034343697871215962038170332", "1687033032498295672", "2441899085244079602", "21888242871839275222246405745257275088548364400416034343697449665230440306261", "21888242871839275222246405745257275088548364400416034343696540062921106552927"], ["21888242871839275222246405745257275088548364400416034343693874573776021649786", "830794737360041376", "2624144728184586651", "21888242871839275222246405745257275088548364400416034343697950001847376783365", "2224446629409094014", "305343107109998123", "21888242871839275222246405745257275088548364400416034343696544035457695751450", "21888242871839275222246405745257275088548364400416034343697790074843585772085"], ["21888242871839275222246405745257275088548364400416034343695512216025622934742", "944160975654862770", "468823474316748187", "21888242871839275222246405745257275088548364400416034343696527939882849055797", "579325868590243501", "1926047930302521203", "21888242871839275222246405745257275088548364400416034343697273624644880767289", "21888242871839275222246405745257275088548364400416034343697750152086605833666"], ["21888242871839275222246405745257275088548364400416034343697903292369832638749", "21888242871839275222246405745257275088548364400416034343697080609868006882581", "1818217504674698381", "21888242871839275222246405745257275088548364400416034343696646613300859236932", "21888242871839275222246405745257275088548364400416034343695337765543633875839", "1932391715949537560", "230806762582167160", "21888242871839275222246405745257275088548364400416034343697737916021747031502"], ["863544102977130763", "21888242871839275222246405745257275088548364400416034343695699709218642380577", "1649973624311812259", "21888242871839275222246405745257275088548364400416034343696700035857089828927", "21888242871839275222246405745257275088548364400416034343696423561525639259071", "2539840210041882014", "297788953538863951", "21888242871839275222246405745257275088548364400416034343697407340267773351723"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"]], [["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["227843272060350448", "21888242871839275222246405745257275088548364400416034343695454596365824791498", "1380142915384195618", "21888242871839275222246405745257275088548364400416034343697714898488881807186", "21888242871839275222246405745257275088548364400416034343696867567909497963568", "3113792780527140411", "163192688139380650", "21888242871839275222246405745257275088548364400416034343697687591467160069206"], ["21888242871839275222246405745257275088548364400416034343694121798084523762254", "21888242871839275222246405745257275088548364400416034343692835755679419113459", "1971016818002550849", "1813180354847130313", "21888242871839275222246405745257275088548364400416034343697802991380098972491", "3942607353839315395", "21888242871839275222246405745257275088548364400416034343698170733860635665934", "21888242871839275222246405745257275088548364400416034343698100934800264254599"], ["21888242871839275222246405745257275088548364400416034343693456645179271436289", "21888242871839275222246405745257275088548364400416034343693729306092549098281", "2337727579155481853", "21888242871839275222246405745257275088548364400416034343697989220826720250973", "1751969450398501007", "3167708007939663023", "21888242871839275222246405745257275088548364400416034343697594806021953208246", "21888242871839275222246405745257275088548364400416034343697083071817455441463"], ["21888242871839275222246405745257275088548364400416034343693963784157646818172", "29940413093461959", "3273117121197192195", "21888242871839275222246405745257275088548364400416034343697426970785853154282", "1955287609784377863", "214154462063006556", "21888242871839275222246405745257275088548364400416034343697777530183144195457", "21888242871839275222246405745257275088548364400416034343697115742272786454686"], ["21888242871839275222246405745257275088548364400416034343694892025985180695593", "2477431392420818999", "1380194894625578456", "21888242871839275222246405745257275088548364400416034343695261925149763066537", "2263072527992939098", "331397786145004184", "21888242871839275222246405745257275088548364400416034343697253240649060906476", "758584555713798519"], ["21888242871839275222246405745257275088548364400416034343696759767322040347901", "112578599006795534", "1300658104207466856", "21888242871839275222246405745257275088548364400416034343696894428869604822407", "21888242871839275222246405745257275088548364400416034343695739395973556223494", "2174689294144616604", "645732058586341799", "21888242871839275222246405745257275088548364400416034343697905052538394635391"], ["809694682050860421", "21888242871839275222246405745257275088548364400416034343696132473252624570190", "1909211545614570715", "21888242871839275222246405745257275088548364400416034343696168374444137539339", "21888242871839275222246405745257275088548364400416034343695763344730480028433", "2047686110216966407", "104206560192228003", "21888242871839275222246405745257275088548364400416034343697332026975413308255"], ["518884260797080691", "21888242871839275222246405745257275088548364400416034343695630374981168464037", "1367162248113590535", "21888242871839275222246405745257275088548364400416034343697390760104280173210", "21888242871839275222246405745257275088548364400416034343696762729868017800579", "3035642509868931115", "242628210875952911", "21888242871839275222246405745257275088548364400416034343697643632275032449266"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"]], [["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["21888242871839275222246405745257275088548364400416034343696285839180654955824", "21888242871839275222246405745257275088548364400416034343694006006010026346107", "1749923383307281352", "748297117552658020", "21888242871839275222246405745257275088548364400416034343697337620700860539869", "3552416526078600136", "21888242871839275222246405745257275088548364400416034343697841043908781387961", "21888242871839275222246405745257275088548364400416034343698028838075199455460"], ["21888242871839275222246405745257275088548364400416034343692985314243590836053", "21888242871839275222246405745257275088548364400416034343692656621849504628539", "2175377667567109330", "555829589314338595", "795726337446155929", "3950675357181718933", "655645836297577076", "21888242871839275222246405745257275088548364400416034343697149963577377648016"], ["21888242871839275222246405745257275088548364400416034343694028594797532642246", "21888242871839275222246405745257275088548364400416034343696353263888968790999", "3425732868748176214", "21888242871839275222246405745257275088548364400416034343697011963003981029535", "2471629205312361156", "2455563645519348357", "21888242871839275222246405745257275088548364400416034343697768793920606042943", "21888242871839275222246405745257275088548364400416034343696824099049850192104"], ["21888242871839275222246405745257275088548364400416034343694440126779868836489", "1943632204340430647", "2419720295466084583", "21888242871839275222246405745257275088548364400416034343696485624352136292149", "4131642076794518916", "21888242871839275222246405745257275088548364400416034343697904803803049019502", "21888242871839275222246405745257275088548364400416034343697527611026742657171", "21888242871839275222246405745257275088548364400416034343697099496465103579572"], ["21888242871839275222246405745257275088548364400416034343697183320759875581276", "984028850182413360", "1360010711504658213", "21888242871839275222246405745257275088548364400416034343696583624932324787748", "21888242871839275222246405745257275088548364400416034343697964379730062466199", "595579219255919619", "456911876718107932", "21888242871839275222246405745257275088548364400416034343696823779398792337802"], ["270323590373678206", "21888242871839275222246405745257275088548364400416034343696888251931982174593", "2011682850176761137", "21888242871839275222246405745257275088548364400416034343696463359067220571880", "21888242871839275222246405745257275088548364400416034343695100918270226752026", "1741956137640906739", "100801966774558790", "21888242871839275222246405745257275088548364400416034343697479078576775445276"], ["856489718818313428", "21888242871839275222246405745257275088548364400416034343695676019698741661442", "1629717577978272419", "21888242871839275222246405745257275088548364400416034343696758186045047655071", "21888242871839275222246405745257275088548364400416034343696462572740085958553", "2583394920922670015", "316831036296618441", "21888242871839275222246405745257275088548364400416034343697422814433784102582"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"]], [["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["21888242871839275222246405745257275088548364400416034343694597038304019662138", "21888242871839275222246405745257275088548364400416034343693129399568830456695", "2502019043254738711", "21888242871839275222246405745257275088548364400416034343697761614146064944682", "21888242871839275222246405745257275088548364400416034343697303809782099286812", "4123920904790947986", "21888242871839275222246405745257275088548364400416034343696946659018613404227", "21888242871839275222246405745257275088548364400416034343697569515736675701517"], ["21888242871839275222246405745257275088548364400416034343694195972751529684710", "21888242871839275222246405745257275088548364400416034343695051007288650992168", "3877363839974551812", "21888242871839275222246405745257275088548364400416034343694886904408935328780", "476816812681077162", "3226525675124590779", "416012902345771939", "21888242871839275222246405745257275088548364400416034343697141074955375053301"], ["21888242871839275222246405745257275088548364400416034343695041452449260574543", "1369663558141133774", "3323121116882697874", "21888242871839275222246405745257275088548364400416034343697048222222079167323", "766815458902114639", "2449392002963831266", "2463694382977846949", "21888242871839275222246405745257275088548364400416034343697380880234383921003"], ["21888242871839275222246405745257275088548364400416034343695013715927657838092", "1812669870051827400", "201133483677981226", "21888242871839275222246405745257275088548364400416034343696006203364234286766", "1112104762338193027", "1755422954380376539", "1842687958830133306", "670531126889148317"], ["21888242871839275222246405745257275088548364400416034343697178779266575885149", "21888242871839275222246405745257275088548364400416034343697522784319255760371", "1243566032642056798", "21888242871839275222246405745257275088548364400416034343696742434340989849206", "21888242871839275222246405745257275088548364400416034343695881557166986923161", "1702997317997550673", "621410014859224277", "21888242871839275222246405745257275088548364400416034343697823962373745512504"], ["1016589746659400967", "21888242871839275222246405745257275088548364400416034343695806271946632321157", "1809648441041233708", "21888242871839275222246405745257275088548364400416034343696171356533679479330", "21888242871839275222246405745257275088548364400416034343696068539809279430807", "1963636905352284330", "21888242871839275222246405745257275088548364400416034343698075672700983083732", "21888242871839275222246405745257275088548364400416034343697074712485513317386"], ["504380011436063174", "21888242871839275222246405745257275088548364400416034343695624456080124196459", "1350944991452356000", "21888242871839275222246405745257275088548364400416034343697430536901164061591", "21888242871839275222246405745257275088548364400416034343696774706721611728399", "3061907633928417340", "225357372297275200", "21888242871839275222246405745257275088548364400416034343697650511654573953513"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"], ["493338298840509767", "21888242871839275222246405745257275088548364400416034343695611831266205439292", "1328501874196784039", "21888242871839275222246405745257275088548364400416034343697483051609544729979", "21888242871839275222246405745257275088548364400416034343696783401479909452011", "3097553308411685237", "194066175746910729", "21888242871839275222246405745257275088548364400416034343697653949151114799861"]]], "conv2d_2_remainder": [[["232731444967899136", "377572524545015808", "826688140257525760", "795552297065381888", "539748736978124800", "373004935387938816", "936318795913625600", "21871821251149824"], ["948189979245281280", "180196178620055552", "301949815489560576", "200844053800812544", "220497203716161536", "689427051541430272", "355710658009104384", "480293774829551616"], ["38789909766733824", "698711964608364544", "143251539336888320", "141803610657783808", "981553401042042880", "371391248827940864", "332241861191401472", "515944762839138304"], ["362602891502944256", "148151289725321216", "89269816957599744", "806407269258100736", "496214389325824000", "198157819381547008", "739272982510698496", "903660523457347584"], ["474198245272453120", "648434746283261952", "818828789543600128", "91288174493171712", "477809619715751936", "263032005192581120", "345586253994393600", "713178337885552640"], ["68630784304742400", "424727634812076032", "536009453009895424", "876135122006966272", "310833351890305024", "917239402808475648", "662738067171311616", "992283660543066112"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"]], [["267578755160473600", "264968756246609920", "388654355701301248", "265573716775403520", "864953733364842496", "87813729392787456", "832004172197658624", "739334467213328384"], ["174464380713828352", "135951992286609408", "964744627645054976", "500353968517939200", "375109944645255168", "485242040157995008", "909269854639357952", "696428492449644544"], ["653180861345693696", "850061897665871872", "964591929097715712", "146815041900642304", "523038304669270016", "516574440670625792", "206268204477579264", "715985885721264128"], ["84616286226087936", "171492397604929536", "330470452878114816", "950867641443287040", "373872658380488704", "255216166141952000", "68640378533707776", "252631232493649920"], ["785819965298049024", "212351483092926464", "338731472299753472", "680216970208739328", "131549920815480832", "58124391120371712", "989380118696165376", "141000311953948672"], ["515546164773257216", "599482255823339520", "83298019961470976", "858787882984275968", "205740469817442304", "933191149954007040", "979533443079340032", "605278649306841088"], ["84541343652642816", "802685342297882624", "517286396475473920", "972567939816095744", "898273790534090752", "378183709674176512", "896620218637090816", "667349345797406720"], ["354940914845614080", "112522673591418880", "92758940042133504", "761245318906904576", "32312546051489792", "99061821053861888", "627417118222319616", "609933008384557056"], ["914601912221302784", "845021135022063616", "326415034898710528", "446527545910755328", "863940350306156544", "261430229484961792", "62684411641724928", "35607803299889152"], ["155315578050969600", "196885311369248768", "867324070907346944", "178393367617470464", "950675914206740480", "760345245946478592", "915245533139566592", "513518547488997376"], ["254352114359468032", "507906877654040576", "94039806094868480", "324113602874966016", "138422551924441088", "55901354981064704", "828000345591119872", "752831898514620416"]], [["884218508723617792", "527536315704016896", "40591448714510336", "421177706163208192", "793066008103878656", "737059535630630912", "643989607147110400", "927576169627254784"], ["155285224673247232", "291594303029116928", "171448901860851712", "174737643822907392", "713560031388762112", "540122167807311872", "76888584022917120", "910350582501867520"], ["895656460125732864", "109914474174218240", "820420905240363008", "622234557286449152", "343431848157773824", "303445244319105024", "819774715660599296", "693127945162850304"], ["438046051872800768", "92499503290515456", "40321009724424192", "454805044674953216", "716265930009083904", "532633822941413376", "567002475050303488", "333006185267200000"], ["594046806866526208", "931680527140782080", "549911839755993088", "151176000301694976", "432127508170670080", "988553924405100544", "349656380255764480", "18017618989416448"], ["84597001959505920", "898023002051969024", "537579720495857664", "970861291021795328", "627202439060914176", "553123392525434880", "78381855568035840", "463953491380928512"], ["43485098221240320", "279080585369223168", "96749646023491584", "759383594947837952", "296872547570417664", "659588443669528576", "865743060615299072", "563383931336654848"], ["354269557644591104", "215953077508767744", "143546884283170816", "21320925865050112", "870524117703720960", "982695512966692864", "159335059250741248", "659801962503733248"], ["267724563177013248", "308044559057420288", "649129491224068096", "557387267126591488", "583309186372993024", "695448823558307840", "804673341493346304", "430802895064793088"], ["892361461173583872", "853909495304159232", "447430398563844096", "521618357315436544", "408611609964445696", "259855018862575616", "244080237935853568", "809161447305904128"], ["942878926876704768", "139362489495191552", "895515415190962176", "867829495771693056", "884567434343219200", "296230022886981632", "754326731289001984", "136490960604889088"]], [["615841590014115840", "723474879925977088", "374410075624177664", "853226445047332864", "996013973605711872", "624426325816639488", "527142710048980992", "562875970630713344"], ["193079106773188608", "726548801610579968", "732959955777486848", "770616758017720320", "475023959961894912", "503082379508449280", "880326254804074496", "881754686894112768"], ["459324919360258048", "602686791976747008", "907343157123612672", "383390862458486784", "99474188272664576", "837483150427291648", "91059203826778112", "736532516279418880"], ["374017022571315200", "506105204566917120", "594493483050074112", "939173570585034752", "284845703930052608", "268689257466953728", "252911643070038016", "628577985219264512"], ["793512149657845760", "155638107931934720", "70576600934252544", "433171548896493568", "642029816618942464", "606258081653325824", "557857631823462400", "559477784334827520"], ["377402696557133824", "212664802445623296", "820847187912032256", "609490178792751104", "265260414610702336", "110956626403655680", "756810449744822272", "340976270576189440"], ["175504678541066240", "671531407894642688", "30535773743480832", "734433010425790464", "565499923824377856", "338896700498771968", "823990601338585088", "345187883457183744"], ["497325576627421184", "4171556384931840", "338325531412660224", "486243771629174784", "150048293227593728", "855130586173931520", "733826884887904256", "55254870928916480"], ["192394824392114176", "388937450723737600", "887547094373761024", "7151695706718208", "577803096449089536", "189671698910674944", "586407236953178112", "921856756273381376"], ["510287371166023680", "564936244917960704", "345904515994877952", "199839182875000832", "438429670238584832", "153461011517276160", "30667956681179136", "645456140058230784"], ["116436599572529152", "775832141096812544", "544256768097124352", "994949729697136640", "42604235118346240", "239165882504577024", "280563876401774592", "765827547256586240"]], [["858939432504131584", "908540972253315072", "328545775987195904", "953997310234984448", "509278241409728512", "310746101925019648", "690492362636918784", "487479390230282240"], ["759968897475280896", "417848114323128320", "519039714638692352", "848845113900138496", "678307496325808128", "141127487493242880", "909151752243380224", "762606822716604416"], ["886481426989187072", "376246881922842624", "520691925565833216", "486592826797719552", "171263318691938304", "921084404895055872", "727500079509274624", "892227514351484928"], ["961190442283565056", "683374450994053120", "57191367571406848", "717154036694646784", "272568157397581824", "971693520511303680", "337176080156721152", "332859864511152128"], ["425967666881626112", "504984301226950656", "833555467693981696", "61533003142660096", "546524587513348096", "179123157660860416", "812430970195542016", "644316597544288256"], ["105878403864592384", "71575261767794688", "488907653358551040", "177639277394395136", "5237747510935552", "544493337473187840", "259251884389826560", "808588328380137472"], ["314420570500628480", "711777750924656640", "39922268223045632", "95156442148110336", "219132908953665536", "835004096818446336", "713646192655859712", "66538173160751104"], ["698111726440415232", "336816348071985152", "914301038437072896", "495499651103326208", "832120223558270976", "287735262771937280", "858907453560717312", "799421843694944256"], ["712402684404039680", "833688766375788544", "702669857297006592", "514842090779181056", "245519164159819776", "722861843931201536", "155342001278287872", "619348355941400576"], ["486742967006265344", "569212404707360768", "799002896987062272", "814398125223182336", "902570144993378304", "996052669826859008", "127675852237832192", "490115317291810816"], ["107309328107307008", "921729866715365376", "339751153060020224", "89143566033485824", "689658642047959040", "81840151347068928", "485703572590690304", "925548687681912832"]], [["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["89598120706179072", "246499227487174656", "551571423913574400", "437398754317828096", "818423917935853568", "205584935458177024", "632652514457812992", "739380901756010496"], ["843475229386735616", "180652906805985280", "305788238350254080", "738331950674870272", "710744671378735104", "656517461625798656", "147144145101651968", "337146958957510656"], ["266797277347840000", "842412411325251584", "819791389849288704", "574042195383287808", "892560820605026304", "335855423146426368", "758268924943663104", "740839623853342720"], ["326188543364038656", "341702963064209408", "399297544929673216", "300033288721137664", "865209840575447040", "366784247820451840", "831841839003205632", "726194256722001920"], ["77861848127635456", "502769754926219264", "325247809024950272", "891388688394878976", "747173123124887552", "694205074617139200", "230790094699364352", "978872045633273856"], ["101141363053559808", "825789440142868480", "246898234021904384", "549948824947523584", "842637623539531776", "540540113251991552", "623886200749424640", "295613428709195776"], ["143306330741669888", "473126981310611456", "866251307726929920", "243772236583665664", "603460704460603392", "802692052011188224", "216739588079616", "690025121567735808"], ["849434839827611648", "905108101169676288", "53628266901929984", "833453097997565952", "945793326309703680", "572639866392412160", "13178444107481088", "75728492788449280"], ["384121863773093888", "222160899183738880", "618676886664118272", "953959945481748480", "148385517691469824", "364929012519141376", "94990935657021440", "767328330185441280"]], [["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["45171437804191744", "490200488097873920", "290861040130064384", "116281617524981760", "786726059757535232", "533194264439160832", "391235250572754944", "622313900355354624"], ["206443460274683904", "352343649424244736", "757502501794086912", "759019915258363904", "866678328446943232", "430044324448960512", "711061352468447232", "430502516371750912"], ["352863156554432512", "623829312051871744", "519544838927417344", "242108829173284864", "447315113762881536", "303809359561621504", "443046230595469312", "315984981144633344"], ["411534194765987840", "890368248712003584", "962953138156339200", "307328325992054784", "12599308150636544", "669401582352990208", "276532308761640960", "640845869036339200"], ["120745686350692352", "59274736460365824", "280731341094649856", "551547599751479296", "242122714387841024", "10410952343945216", "787661127686553600", "648817715358990336"], ["15942492348481536", "930103708267839488", "592435644939894784", "922027188345110528", "935166522254688256", "442730648937431040", "99519889209032704", "824336884906328064"], ["132881315480469504", "782419674429128704", "310801499654455296", "505420603560034304", "40070519072489472", "469426397514039296", "710029425595908096", "237075928564105216"], ["420562650083098624", "123819420216721408", "978064822783180800", "978110539981127680", "886100974832189440", "965308116853587968", "685059447807803392", "437160319018860544"]], [["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["248842947008659456", "353019029877686272", "935022492021948416", "999598169988005888", "702714974292672512", "49270884254351360", "918900395519508480", "439967099886764032"], ["980041268584251392", "937239109595561984", "702502417130586112", "134920789719777280", "355919433276850176", "928353974629957632", "864317758830018560", "773476549514231808"], ["696395210410426368", "271445022091509760", "524022035040174080", "936089895002439680", "936851941783240704", "300812854082666496", "343984446051975168", "853208635013595136"], ["396253571827105792", "513560336394092544", "64445225182167040", "294659208869052416", "361497501310124032", "74425490746900480", "521795234590097408", "308248971081416704"], ["304488965888278528", "142646678635675648", "159714157954072576", "921977224808103936", "105965580119179264", "510221162607017984", "743241988691722240", "378687353891061760"], ["989207316900347904", "192528987555102720", "819144228606836736", "358735965114859520", "721203883401543680", "855292843615322112", "654985283181215744", "500181289717727232"], ["302323455203999744", "119734257932304384", "765275864778932224", "964957226245029888", "234433325597982720", "125902923581882368", "610948054088155136", "699637577754869760"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"]], [["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["536111642149126144", "939678590914265088", "22846404703027200", "718776527010660352", "79418354970132480", "840197149881008128", "460580364014321664", "512441092315807744"], ["777453559291314176", "61072625282580480", "134752077759643648", "703296210160320512", "278552004791894016", "31414170252738560", "985085859217539072", "675893688645713920"], ["810190097197563904", "438370250352754688", "986854098767446016", "472662163061735424", "966688275389743104", "105357214262493184", "729853503703089152", "212766559933300736"], ["773774122683727872", "937097032617951232", "894705681592221696", "630096900795400192", "266617623511564288", "326290956507676672", "459642299106721792", "898764186206339072"], ["865135319750541312", "350351506601672704", "134007117561462784", "297741265521344512", "630419724309102592", "221963338435788800", "722062162863063040", "751201240326864896"], ["281163593889611776", "713637211811610624", "762462132651425792", "758436162148237312", "525511599189655552", "562939424830128128", "608272264726839296", "896793859039166464"], ["130240952635490304", "325107612467855360", "325260591997648896", "301872876885639168", "932491748171579392", "528990874437419008", "71308264034533376", "137848428092194816"], ["880733762207612928", "591571017473720320", "523918075679211520", "825640171477925888", "477206144561446912", "29048571109310464", "795613377713143808", "181243423353470976"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"]], [["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["677417361026056192", "34776542971691008", "706659793453973504", "160900907120197632", "409934865011572736", "697083094420684800", "158841960652603392", "499188911509340160"], ["471579673448415232", "605389523707756544", "872955715515842560", "579551655605043200", "373558338366734336", "841000314047561728", "975134730149167104", "399254859496554496"], ["637594727646756864", "273883910422134784", "681621793762967552", "332336755481509888", "602370021442715648", "337868025099976704", "846426545580408832", "746354973851516928"], ["444023507204964352", "738771113215262720", "772219530511646720", "701493885002579968", "914993019519762432", "508631465964863488", "483905749118353408", "136729918545592320"], ["382695597522812928", "346786262364979200", "866599548629024768", "228219685505859584", "284301613527990272", "789120661234909184", "704495674578698240", "308911630039384064"], ["801510268349186048", "972155331389947904", "368396104508375040", "943262336159055872", "157999853916127232", "972746107196276736", "548116432297656320", "717994984144633856"], ["430470358172172288", "877743957065072640", "360674453951348736", "792233723566751744", "925692728822464512", "636041725930110976", "879853482628874240", "673364961632452608"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"]], [["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["380972351606226944", "697744884960329728", "692590327978262528", "174632589527351296", "660204453272748032", "658386122438082560", "728928323823468544", "429936155141603328"], ["922817727289884672", "162301832352497664", "621286012759310336", "732793529418645504", "830259255903256576", "26902346285187072", "943868625596710912", "797216070991609856"], ["94895771040088064", "503347638402809856", "429347652643586048", "30025684098744320", "700102047707693056", "4671225585991680", "353118609528848384", "252865399959846912"], ["794877039956197376", "932811519561826304", "700423680585891840", "429605309752541184", "819811676757164032", "923636140252332032", "926489198072430592", "883930219636588544"], ["612850676280590336", "87919306342924288", "467266548542210048", "556975430696697856", "924000268438208512", "831773546041311232", "764126439163035648", "50570722145468416"], ["627558019433234432", "99577035695849472", "785952175897444352", "618014948581965824", "67308200602894336", "275209966830747648", "807815540517371904", "729078156396068864"], ["67593315988013056", "319739663249571840", "929744043376640000", "434732245331738624", "452464769451425792", "882559489563164672", "481735956907425792", "443154672608346112"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"], ["827321361029660672", "756105701791891456", "188921528719769600", "316520882381520896", "910151361710522368", "858825399198285824", "200659981760724992", "976882615106666496"]]], "bn_2_a": ["1417286396026611456", "1089671730995178240", "1245530605316162048", "1974420309066772480", "1521677494049072384", "1604889154434204160", "1556055545806884864", "1518827795982360832"], "bn_2_b": ["969359695911407535426792638434508800", "2546032190322876130958845446644039680", "21888242871839275222246405745257275088546042784004825237083083414716322676737", "1177197575569152869542815109853741056", "1765072822570800935727904196179001344", "21888242871839275222246405745257275088542779806166309001209565617356344918017", "21888242871839275222246405745257275088548002487390655162792584901510104612865", "588358938694000261121173793422704640"], "bn_2_out": [[["1183998554440588778", "21888242871839275222246405745257275088548364400416034343697743724366639529790", "21888242871839275222246405745257275088548364400416034343697587132926760373824", "555520188028190246", "21888242871839275222246405745257275088548364400416034343697999655475625376512", "21888242871839275222246405745257275088548364400416034343697538458512894177905", "63751744556936369", "21888242871839275222246405745257275088548364400416034343698012061380413810399"], ["972626578579315052", "21888242871839275222246405745257275088548364400416034343697665474353187193751", "21888242871839275222246405745257275088548364400416034343697375083394366557171", "1121948814657275902", "21888242871839275222246405745257275088548364400416034343698101392263377864371", "21888242871839275222246405745257275088548364400416034343697592217965779549484", "21888242871839275222246405745257275088548364400416034343697885661976196847279", "21993809299031663"], ["941929969668725469", "21888242871839275222246405745257275088548364400416034343697662497207123575201", "21888242871839275222246405745257275088548364400416034343697147373541302569542", "1111545880338757308", "21888242871839275222246405745257275088548364400416034343697974659811593869093", "21888242871839275222246405745257275088548364400416034343697220810884663632783", "21888242871839275222246405745257275088548364400416034343697662909645008647926", "18565388223404158"], ["1169650685479628053", "21888242871839275222246405745257275088548364400416034343697826647282453297990", "21888242871839275222246405745257275088548364400416034343697041171580486891173", "780464742578555669", "21888242871839275222246405745257275088548364400416034343697691457376412140094", "21888242871839275222246405745257275088548364400416034343697448094616078086363", "21888242871839275222246405745257275088548364400416034343697453710168685564470", "98822601603670846"], ["1372336955519861538", "21888242871839275222246405745257275088548364400416034343697896110513674720352", "21888242871839275222246405745257275088548364400416034343697274017421072679983", "216812282060827383", "21888242871839275222246405745257275088548364400416034343697675646529184805570", "21888242871839275222246405745257275088548364400416034343697618679984573879871", "21888242871839275222246405745257275088548364400416034343697682557514224579203", "21888242871839275222246405745257275088548364400416034343698087526792650524917"], ["1616187689968275363", "21888242871839275222246405745257275088548364400416034343697918650710024025066", "21888242871839275222246405745257275088548364400416034343697499653923545961393", "21888242871839275222246405745257275088548364400416034343698019968906514796965", "21888242871839275222246405745257275088548364400416034343697786997019457790242", "21888242871839275222246405745257275088548364400416034343697593783692317238845", "21888242871839275222246405745257275088548364400416034343698072780898163789304", "21888242871839275222246405745257275088548364400416034343697970509166555412616"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"]], [["21888242871839275222246405745257275088548364400416034343695562964272620885449", "21888242871839275222246405745257275088548364400416034343695598608270080575191", "21888242871839275222246405745257275088548364400416034343698097781215206413685", "3170893081568195671", "395856475973697685", "311653707255122665", "21888242871839275222246405745257275088548364400416034343696559775924411890475", "627224789902358615"], ["21888242871839275222246405745257275088548364400416034343695626373109915499240", "21888242871839275222246405745257275088548364400416034343695604384080484719787", "21888242871839275222246405745257275088548364400416034343698083927756292689872", "893081356995205839", "1179583605677469399", "21888242871839275222246405745257275088548364400416034343698045871515773238390", "651890281655503300", "9904247443034871"], ["21888242871839275222246405745257275088548364400416034343697032952162622699881", "21888242871839275222246405745257275088548364400416034343696061348445983519450", "21888242871839275222246405745257275088548364400416034343696757101565780752838", "21888242871839275222246405745257275088548364400416034343697696883592394042736", "672906165771018065", "21888242871839275222246405745257275088548364400416034343695296176572589910989", "3397948407145330664", "1410596188990513822"], ["21888242871839275222246405745257275088548364400416034343697992488218762224205", "21888242871839275222246405745257275088548364400416034343697692627293665744444", "21888242871839275222246405745257275088548364400416034343694801571745886301254", "1512001070378517941", "21888242871839275222246405745257275088548364400416034343697091951948633005942", "21888242871839275222246405745257275088548364400416034343697612906219936255267", "2790443314069508754", "1890955342371113379"], ["151880079447126666", "21888242871839275222246405745257275088548364400416034343697623492357884159643", "21888242871839275222246405745257275088548364400416034343695248405206745026772", "2055136017280011878", "21888242871839275222246405745257275088548364400416034343697096420154683294032", "21888242871839275222246405745257275088548364400416034343697615360692839784634", "2170748895151436826", "1512133858617161714"], ["261236666446201462", "21888242871839275222246405745257275088548364400416034343697330319264563802602", "21888242871839275222246405745257275088548364400416034343695464964047515222462", "2722364978113281165", "21888242871839275222246405745257275088548364400416034343697077372371010286513", "21888242871839275222246405745257275088548364400416034343698027236940759917135", "1517235029820935764", "1445379899900496609"], ["221772671705566306", "21888242871839275222246405745257275088548364400416034343697204391428945116850", "21888242871839275222246405745257275088548364400416034343695561413209689395065", "2833023787693499787", "21888242871839275222246405745257275088548364400416034343697130750114786229692", "21888242871839275222246405745257275088548364400416034343697997215828434323534", "1380713535958560136", "1360318080532556788"], ["470549227122854602", "21888242871839275222246405745257275088548364400416034343697387981531426019442", "21888242871839275222246405745257275088548364400416034343695667622406951156234", "2686542667216581834", "21888242871839275222246405745257275088548364400416034343697242968013830977476", "21888242871839275222246405745257275088548364400416034343697785279128099667397", "1295123670030082701", "1153384182622019462"], ["827696382226960734", "21888242871839275222246405745257275088548364400416034343697671706748545382510", "21888242871839275222246405745257275088548364400416034343696089655506208713980", "2059395273445638622", "21888242871839275222246405745257275088548364400416034343697472197654094335603", "21888242871839275222246405745257275088548364400416034343697514101619579452627", "244185872645805946", "739293834202395444"], ["941151801535363775", "21888242871839275222246405745257275088548364400416034343697841205761639390407", "21888242871839275222246405745257275088548364400416034343696708542321941868353", "871793604346695695", "21888242871839275222246405745257275088548364400416034343697568022799190054596", "21888242871839275222246405745257275088548364400416034343697468767235821706267", "21888242871839275222246405745257275088548364400416034343697620950795285294092", "288402746574706038"], ["1425131740088150124", "21888242871839275222246405745257275088548364400416034343697894020705082632882", "21888242871839275222246405745257275088548364400416034343697362469576534679628", "43443937616147527", "21888242871839275222246405745257275088548364400416034343697712996110933435687", "21888242871839275222246405745257275088548364400416034343697604587634499581964", "21888242871839275222246405745257275088548364400416034343697812061216450846038", "21888242871839275222246405745257275088548364400416034343698020411323154897150"]], [["21888242871839275222246405745257275088548364400416034343696464760885012200465", "21888242871839275222246405745257275088548364400416034343696771935430904586913", "685914056208675998", "21888242871839275222246405745257275088548364400416034343694993815955545755344", "21888242871839275222246405745257275088548364400416034343697658545349191763646", "463804602222957030", "21888242871839275222246405745257275088548364400416034343696999006894816607806", "21888242871839275222246405745257275088548364400416034343697346638575413138108"], ["21888242871839275222246405745257275088548364400416034343696057662800152255931", "14643853278607032", "2796414668846431864", "21888242871839275222246405745257275088548364400416034343690326581605661708465", "21888242871839275222246405745257275088548364400416034343695782800825176077872", "21888242871839275222246405745257275088548364400416034343697630658325213808455", "351086802087572698", "1189338147590280621"], ["21888242871839275222246405745257275088548364400416034343697093368989632275860", "368972927943713318", "21888242871839275222246405745257275088548364400416034343697970690504252057808", "21888242871839275222246405745257275088548364400416034343687868909186753089563", "21888242871839275222246405745257275088548364400416034343694222598797155223050", "21888242871839275222246405745257275088548364400416034343697958466091629448890", "21888242871839275222246405745257275088548364400416034343697757668812924709819", "6677713362969056710"], ["21888242871839275222246405745257275088548364400416034343697169141305836337605", "991156491402956490", "21888242871839275222246405745257275088548364400416034343695443097935141232159", "21888242871839275222246405745257275088548364400416034343691995245115050513184", "21888242871839275222246405745257275088548364400416034343689840891497723322219", "588187565394441015", "5704290246186098067", "7265578516233301641"], ["21888242871839275222246405745257275088548364400416034343697900331756267664735", "639380918468782958", "21888242871839275222246405745257275088548364400416034343694522590142500516924", "21888242871839275222246405745257275088548364400416034343694578103927112490882", "21888242871839275222246405745257275088548364400416034343689752880075353053203", "1173349077280948286", "7349526711389693454", "8344951388387340223"], ["21888242871839275222246405745257275088548364400416034343696970378152644186881", "497708166598424475", "21888242871839275222246405745257275088548364400416034343693590427551300935955", "21888242871839275222246405745257275088548364400416034343696723323874246540573", "21888242871839275222246405745257275088548364400416034343689785329256470547726", "1557542373015106974", "6652288613877230826", "8715651300233036786"], ["21888242871839275222246405745257275088548364400416034343695785112716120758292", "21888242871839275222246405745257275088548364400416034343698192824374848086291", "21888242871839275222246405745257275088548364400416034343693330602504204080655", "21888242871839275222246405745257275088548364400416034343698174958427965944568", "21888242871839275222246405745257275088548364400416034343690129549478524530423", "1876245008295384264", "5936702980920151091", "9016764721958505075"], ["21888242871839275222246405745257275088548364400416034343695658240575909925146", "21888242871839275222246405745257275088548364400416034343697697808556109722230", "21888242871839275222246405745257275088548364400416034343693329517017647228059", "85412360546253709", "21888242871839275222246405745257275088548364400416034343692726347277615412777", "3164480043611421176", "6783287318369048559", "8724589310172853259"], ["21888242871839275222246405745257275088548364400416034343696639618154863691966", "18138340130109227", "21888242871839275222246405745257275088548364400416034343694675963704606641852", "275504988393650090", "21888242871839275222246405745257275088548364400416034343696494164120621287589", "578648856842916115", "5579120178024818822", "2357755527486147345"], ["21888242871839275222246405745257275088548364400416034343697831853089315820946", "61798281078911786", "21888242871839275222246405745257275088548364400416034343695579021425197434495", "21888242871839275222246405745257275088548364400416034343697542719856110137619", "21888242871839275222246405745257275088548364400416034343697938962335969404930", "21888242871839275222246405745257275088548364400416034343695652450132317590930", "1086444861942546936", "1520384828771578160"], ["557088434109530402", "21888242871839275222246405745257275088548364400416034343698095299406201215976", "21888242871839275222246405745257275088548364400416034343696949014300363807527", "62099669656650276", "21888242871839275222246405745257275088548364400416034343697485933961661285831", "21888242871839275222246405745257275088548364400416034343697532105203322999585", "21888242871839275222246405745257275088548364400416034343697425533894495102444", "112772861606330530"]], [["1098761848990593527", "21888242871839275222246405745257275088548364400416034343697808842359184045871", "890334454373968919", "21888242871839275222246405745257275088548364400416034343694615618505240037724", "456972663865253", "835188708144008166", "21888242871839275222246405745257275088548364400416034343698167101183156803662", "1343668764279556340"], ["2352345899187068966", "1086948029680043458", "3172701838756314372", "2899407836718063764", "21888242871839275222246405745257275088548364400416034343696098226926100007844", "1866707464972652320", "14111726346909987", "3236298451350789769"], ["4052117206398833523", "471099466317010567", "2808168864486823264", "827768572068911117", "21888242871839275222246405745257275088548364400416034343693670375783930374174", "4580416552974644866", "21888242871839275222246405745257275088548364400416034343697371655016694171889", "4355283676704444490"], ["5514943934376141727", "598868341764602377", "4395506840825891604", "21888242871839275222246405745257275088548364400416034343695152302776853267275", "21888242871839275222246405745257275088548364400416034343689673183171643526967", "495997955420815818", "21888242871839275222246405745257275088548364400416034343696189093769394476124", "6170865781083458919"], ["6142388159700785548", "665843965655338616", "3340072327132538137", "21888242871839275222246405745257275088548364400416034343695998016663579999130", "21888242871839275222246405745257275088548364400416034343689057364569108268137", "1211191772975720390", "21888242871839275222246405745257275088548364400416034343696438438314575299166", "7301480922802780181"], ["4492264145825467042", "1628902293624654699", "2836787722189047953", "21888242871839275222246405745257275088548364400416034343694527655584618549778", "21888242871839275222246405745257275088548364400416034343689266518644168046488", "21888242871839275222246405745257275088548364400416034343698186618208410404225", "21888242871839275222246405745257275088548364400416034343696395502250518497680", "7414748622014412206"], ["21888242871839275222246405745257275088548364400416034343696869693847419643455", "21888242871839275222246405745257275088548364400416034343697331334163559265255", "2616406551774354040", "469146759635839115", "21888242871839275222246405745257275088548364400416034343690546675617057954413", "1857324620640332603", "21888242871839275222246405745257275088548364400416034343695507115449249382086", "8777147572960915720"], ["21888242871839275222246405745257275088548364400416034343695700021774568457076", "21888242871839275222246405745257275088548364400416034343697923239231134946638", "948369175421131682", "21888242871839275222246405745257275088548364400416034343696105825141503721489", "21888242871839275222246405745257275088548364400416034343692457927282078133862", "2445892316444786592", "21888242871839275222246405745257275088548364400416034343695712763882938465915", "3054829748826352520"], ["21888242871839275222246405745257275088548364400416034343695746818875569052087", "388335135564002063", "21888242871839275222246405745257275088548364400416034343697983452990259995774", "21888242871839275222246405745257275088548364400416034343694884752229928310525", "21888242871839275222246405745257275088548364400416034343695711021669355249878", "21888242871839275222246405745257275088548364400416034343693797860241765131703", "1881882188391101660", "982855916309139456"], ["21888242871839275222246405745257275088548364400416034343697216590687536782986", "1031394803537632313", "21888242871839275222246405745257275088548364400416034343695916977679323835354", "21888242871839275222246405745257275088548364400416034343694522781712344515204", "21888242871839275222246405745257275088548364400416034343697610049875994109200", "21888242871839275222246405745257275088548364400416034343694212953075126284867", "118076740623759203", "2041528260058658076"], ["21888242871839275222246405745257275088548364400416034343698038877405303614657", "514587276411433248", "21888242871839275222246405745257275088548364400416034343697102985981742940364", "21888242871839275222246405745257275088548364400416034343696808866232624307649", "21888242871839275222246405745257275088548364400416034343696969563582346964255", "21888242871839275222246405745257275088548364400416034343697315382157752561151", "21888242871839275222246405745257275088548364400416034343697631091504860132678", "444267697746489384"]], [["1625149158748129780", "21888242871839275222246405745257275088548364400416034343697777733298756748477", "182966272338992975", "304380413079358987", "21888242871839275222246405745257275088548364400416034343697815011671018423195", "21888242871839275222246405745257275088548364400416034343698023647319083209120", "2004251229047009322", "21888242871839275222246405745257275088548364400416034343695928225383221260201"], ["2855796128585957500", "21888242871839275222246405745257275088548364400416034343698189398379646438083", "755990673811876073", "3119626547386170407", "21888242871839275222246405745257275088548364400416034343697772268815573625741", "21888242871839275222246405745257275088548364400416034343697873188248604251656", "99159085434114802", "21888242871839275222246405745257275088548364400416034343695272608780946440840"], ["3734163700972004110", "430540675358258075", "1084985991706042955", "4879295741027833261", "21888242871839275222246405745257275088548364400416034343696506594390956781803", "198222316666412012", "66554049044655544", "21888242871839275222246405745257275088548364400416034343692539469466970254115"], ["6121269878274555583", "626599170135626636", "2680879152363636144", "2716190054480986203", "21888242871839275222246405745257275088548364400416034343695307203003830964468", "21888242871839275222246405745257275088548364400416034343695818178722414524485", "21888242871839275222246405745257275088548364400416034343696521627930396862173", "21888242871839275222246405745257275088548364400416034343691778424436982121124"], ["6645674867880949337", "1230479721497730344", "3133626837907152994", "3324330468313375414", "21888242871839275222246405745257275088548364400416034343695728509764936488348", "21888242871839275222246405745257275088548364400416034343695490827906673971578", "21888242871839275222246405745257275088548364400416034343696820427423164274490", "21888242871839275222246405745257275088548364400416034343691143672454315864287"], ["3767255966726299015", "21888242871839275222246405745257275088548364400416034343698141782664567123468", "4415519512857726485", "5326151492055381887", "21888242871839275222246405745257275088548364400416034343696377395501273468010", "21888242871839275222246405745257275088548364400416034343694806334366896928151", "21888242871839275222246405745257275088548364400416034343696806553639791941905", "21888242871839275222246405745257275088548364400416034343692270367569976853438"], ["21888242871839275222246405745257275088548364400416034343697491105820581155753", "21888242871839275222246405745257275088548364400416034343697185341143169606502", "5049098677070932796", "5128541705019511097", "730151274409494477", "21888242871839275222246405745257275088548364400416034343695283952543898924908", "276897989302158693", "21888242871839275222246405745257275088548364400416034343690011954445734645518"], ["21888242871839275222246405745257275088548364400416034343697083775188273772618", "1281864589222594636", "5410956726245391100", "21888242871839275222246405745257275088548364400416034343697990898089276970397", "21888242871839275222246405745257275088548364400416034343696686410209067387216", "21888242871839275222246405745257275088548364400416034343693454610249313668262", "21888242871839275222246405745257275088548364400416034343693350068443809244175", "21888242871839275222246405745257275088548364400416034343690610214996426127546"], ["21888242871839275222246405745257275088548364400416034343697598306390895312303", "1885951133868676506", "1518208366619887784", "21888242871839275222246405745257275088548364400416034343690880528672784809949", "3014856556590058907", "21888242871839275222246405745257275088548364400416034343689812847319729958063", "21888242871839275222246405745257275088548364400416034343690492034530469682299", "21888242871839275222246405745257275088548364400416034343696883966422811949072"], ["21888242871839275222246405745257275088548364400416034343698154970399258642127", "1780155935253615423", "21888242871839275222246405745257275088548364400416034343697490871166088915604", "21888242871839275222246405745257275088548364400416034343697420069717677557041", "21888242871839275222246405745257275088548364400416034343697234023191859312239", "21888242871839275222246405745257275088548364400416034343694486965509665152934", "21888242871839275222246405745257275088548364400416034343697460951433379905350", "21888242871839275222246405745257275088548364400416034343698148412872960586792"], ["917003638274344334", "547053397245974614", "21888242871839275222246405745257275088548364400416034343697866571857885668108", "21888242871839275222246405745257275088548364400416034343696015867432481195636", "21888242871839275222246405745257275088548364400416034343696581026996619057252", "21888242871839275222246405745257275088548364400416034343696499688073431109372", "21888242871839275222246405745257275088548364400416034343698100029935433123924", "52540176033560529"]], [["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1657256687210735510", "21888242871839275222246405745257275088548364400416034343697909246781927867324", "21888242871839275222246405745257275088548364400416034343697545142536211032994", "21888242871839275222246405745257275088548364400416034343697961064959300438961", "21888242871839275222246405745257275088548364400416034343697775840757464277949", "21888242871839275222246405745257275088548364400416034343697618831901389578583", "21888242871839275222246405745257275088548364400416034343698155878895715321216", "21888242871839275222246405745257275088548364400416034343697925876105048931546"], ["1699587076708302208", "21888242871839275222246405745257275088548364400416034343697906020655703551863", "21888242871839275222246405745257275088548364400416034343697656243072437488305", "21888242871839275222246405745257275088548364400416034343698043160283503448175", "21888242871839275222246405745257275088548364400416034343697860601459596873079", "21888242871839275222246405745257275088548364400416034343697625162218644773175", "224241357041881146", "21888242871839275222246405745257275088548364400416034343697697629513055238069"], ["1520108359784301912", "21888242871839275222246405745257275088548364400416034343697760904621866788937", "21888242871839275222246405745257275088548364400416034343697732853659404163558", "350818785812793627", "21888242871839275222246405745257275088548364400416034343697695047481405477121", "21888242871839275222246405745257275088548364400416034343697719238216702581892", "65688251583274275", "21888242871839275222246405745257275088548364400416034343697639266217826030850"], ["21888242871839275222246405745257275088548364400416034343693114408333587889233", "21888242871839275222246405745257275088548364400416034343694654813984270165126", "574581806357491571", "3922913626192526147", "961862880071912199", "1251851724303989612", "21888242871839275222246405745257275088548364400416034343697408973592679001111", "21888242871839275222246405745257275088548364400416034343697709850045728422263"], ["21888242871839275222246405745257275088548364400416034343693254961656281140915", "21888242871839275222246405745257275088548364400416034343696967490573760017506", "2099083316858958620", "21888242871839275222246405745257275088548364400416034343697469064006912503931", "4115634646290283548", "21888242871839275222246405745257275088548364400416034343697815051676627560305", "21888242871839275222246405745257275088548364400416034343696277410846337473473", "21888242871839275222246405745257275088548364400416034343695771510243799356211"], ["21888242871839275222246405745257275088548364400416034343694466712529933776496", "3179726058956297954", "2416166699726993206", "21888242871839275222246405745257275088548364400416034343697884375451577402820", "5388185680889186317", "21888242871839275222246405745257275088548364400416034343693313799963931417050", "21888242871839275222246405745257275088548364400416034343696707268999412985612", "21888242871839275222246405745257275088548364400416034343696689075555974011555"], ["21888242871839275222246405745257275088548364400416034343695693524884164520442", "3872855298827608319", "21888242871839275222246405745257275088548364400416034343697116102633955601649", "21888242871839275222246405745257275088548364400416034343694477639151126295126", "3424160208833874494", "21888242871839275222246405745257275088548364400416034343693996609613639984591", "21888242871839275222246405745257275088548364400416034343696233609746901433661", "21888242871839275222246405745257275088548364400416034343697968151679988557921"], ["243195257976825979", "1671373179725228573", "21888242871839275222246405745257275088548364400416034343698014587568552325588", "21888242871839275222246405745257275088548364400416034343696556934369173475128", "21888242871839275222246405745257275088548364400416034343695476877676875149704", "21888242871839275222246405745257275088548364400416034343695712394634715437381", "110399699588147176", "120991253345266593"], ["2090920793607839010", "21888242871839275222246405745257275088548364400416034343698185969528232946873", "21888242871839275222246405745257275088548364400416034343698029756233830916317", "21888242871839275222246405745257275088548364400416034343695919123233590469696", "21888242871839275222246405745257275088548364400416034343697142111481501114629", "21888242871839275222246405745257275088548364400416034343696372207669344657239", "21888242871839275222246405745257275088548364400416034343698192566601332096361", "21888242871839275222246405745257275088548364400416034343697533411395281344700"]], [["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1652162671490388812", "21888242871839275222246405745257275088548364400416034343697921426489828995277", "21888242871839275222246405745257275088548364400416034343697537485567265253550", "21888242871839275222246405745257275088548364400416034343697996274864253598052", "21888242871839275222246405745257275088548364400416034343697815612594724742131", "21888242871839275222246405745257275088548364400416034343697584165146694044511", "21888242871839275222246405745257275088548364400416034343698158078313079744390", "21888242871839275222246405745257275088548364400416034343697957798592649441765"], ["21888242871839275222246405745257275088548364400416034343696249418752031572653", "21888242871839275222246405745257275088548364400416034343696146960623501402369", "21888242871839275222246405745257275088548364400416034343697888082731277221766", "3648546636898727959", "510846061000808650", "21888242871839275222246405745257275088548364400416034343698148211697302635932", "21888242871839275222246405745257275088548364400416034343697719285605962750347", "491155841580879949"], ["21888242871839275222246405745257275088548364400416034343692088949182309273876", "21888242871839275222246405745257275088548364400416034343695117275099306392272", "325182718784016849", "2054880705455411935", "3246682980242480770", "1154336334276270308", "21888242871839275222246405745257275088548364400416034343697804505478915554293", "21888242871839275222246405745257275088548364400416034343697521462859514542400"], ["21888242871839275222246405745257275088548364400416034343692851835759624638236", "1223292418545804330", "2549104749129428594", "2331176211661328850", "3756525718239136762", "21888242871839275222246405745257275088548364400416034343696088633048876391968", "21888242871839275222246405745257275088548364400416034343697090378371236452158", "21888242871839275222246405745257275088548364400416034343696034010604141731116"], ["21888242871839275222246405745257275088548364400416034343694366887658961036972", "3915624933998963253", "25675892515463761", "21888242871839275222246405745257275088548364400416034343695985569212640479359", "6973409865178707001", "21888242871839275222246405745257275088548364400416034343693611721090800037345", "21888242871839275222246405745257275088548364400416034343696188040808715967365", "564010494697634608"], ["21888242871839275222246405745257275088548364400416034343697238410036419889394", "2832401245279772674", "21888242871839275222246405745257275088548364400416034343697597885558545792012", "21888242871839275222246405745257275088548364400416034343696759948882756345195", "21888242871839275222246405745257275088548364400416034343697181685191506523872", "21888242871839275222246405745257275088548364400416034343695283660113678388592", "283337540337748141", "21888242871839275222246405745257275088548364400416034343697718850725539892890"], ["2310080948860647770", "395236903285790881", "193094006941019731", "21888242871839275222246405745257275088548364400416034343695227580772725562223", "21888242871839275222246405745257275088548364400416034343696067990287141794155", "21888242871839275222246405745257275088548364400416034343695535620488895059835", "21888242871839275222246405745257275088548364400416034343698047635424251963325", "21888242871839275222246405745257275088548364400416034343697249140640302838814"], ["1773039380289350375", "21888242871839275222246405745257275088548364400416034343697995281393214680654", "21888242871839275222246405745257275088548364400416034343697692659224145964699", "21888242871839275222246405745257275088548364400416034343697374320596425210238", "21888242871839275222246405745257275088548364400416034343697717354348229002117", "21888242871839275222246405745257275088548364400416034343697271255167216367919", "195040955075982860", "21888242871839275222246405745257275088548364400416034343697915187082680938143"]], [["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["21888242871839275222246405745257275088548364400416034343698038905641498360272", "21888242871839275222246405745257275088548364400416034343696970455050691702810", "21888242871839275222246405745257275088548364400416034343697820706813736308107", "1447163100786273694", "54989271881463696", "21888242871839275222246405745257275088548364400416034343697994681156775252115", "21888242871839275222246405745257275088548364400416034343697578429608339478737", "131857118551247825"], ["21888242871839275222246405745257275088548364400416034343692465324347905492809", "21888242871839275222246405745257275088548364400416034343694665121260564730387", "151641102987131574", "4897659195117488725", "2161855995505647005", "245374407938826126", "465179285485921289", "21888242871839275222246405745257275088548364400416034343697860115702519472919"], ["21888242871839275222246405745257275088548364400416034343692707839651376404049", "21888242871839275222246405745257275088548364400416034343697065758057859543036", "988132272127297434", "519773633418594291", "4332193019840814785", "21888242871839275222246405745257275088548364400416034343696538569684214180665", "21888242871839275222246405745257275088548364400416034343696668196426539471744", "21888242871839275222246405745257275088548364400416034343696265028251789432982"], ["21888242871839275222246405745257275088548364400416034343693037244950519317555", "3451325729883676894", "946836160523857119", "675330085498957934", "5149963195255936714", "21888242871839275222246405745257275088548364400416034343693109634167065230648", "21888242871839275222246405745257275088548364400416034343695258986196212478405", "21888242871839275222246405745257275088548364400416034343698163581104960219101"], ["21888242871839275222246405745257275088548364400416034343695358253032437635192", "3574857715002806786", "21888242871839275222246405745257275088548364400416034343696466504150351554522", "21888242871839275222246405745257275088548364400416034343696071768637792516043", "2646619958525004880", "21888242871839275222246405745257275088548364400416034343695710685760346115369", "21888242871839275222246405745257275088548364400416034343696394267497092459715", "21888242871839275222246405745257275088548364400416034343698102945311966839820"], ["542906431138596459", "1321702414226828866", "21888242871839275222246405745257275088548364400416034343698147215713793307774", "21888242871839275222246405745257275088548364400416034343696306079844458188164", "21888242871839275222246405745257275088548364400416034343695607491025250265644", "21888242871839275222246405745257275088548364400416034343695720866833129067291", "21888242871839275222246405745257275088548364400416034343698201421693355028922", "21888242871839275222246405745257275088548364400416034343698084360836545848112"], ["2193249005429898230", "21888242871839275222246405745257275088548364400416034343698021160589109941906", "21888242871839275222246405745257275088548364400416034343697937662811644182273", "21888242871839275222246405745257275088548364400416034343696411558424442130642", "21888242871839275222246405745257275088548364400416034343697259722334196768893", "21888242871839275222246405745257275088548364400416034343696695754333175260643", "101463127254997117", "21888242871839275222246405745257275088548364400416034343697582273192732796892"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"]], [["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1292278865828732357", "21888242871839275222246405745257275088548364400416034343697754068042491033262", "21888242871839275222246405745257275088548364400416034343697601580405420678788", "211137239756670858", "21888242871839275222246405745257275088548364400416034343697935356855728672854", "21888242871839275222246405745257275088548364400416034343697616884588706684955", "21888242871839275222246405745257275088548364400416034343698096210437843731414", "21888242871839275222246405745257275088548364400416034343698007926504218738161"], ["21888242871839275222246405745257275088548364400416034343693387632599726447692", "21888242871839275222246405745257275088548364400416034343694900391378534757327", "133345359205946149", "4757177692180224098", "1154583122539006628", "742853532643911561", "21888242871839275222246405745257275088548364400416034343697790219267462334960", "431537272012875250"], ["21888242871839275222246405745257275088548364400416034343692444920435834748468", "21888242871839275222246405745257275088548364400416034343695874068003941564530", "590094835520706825", "752764834815570615", "4431005305503722567", "21888242871839275222246405745257275088548364400416034343697703412552439896195", "21888242871839275222246405745257275088548364400416034343696894043560095923724", "21888242871839275222246405745257275088548364400416034343697089765257029829579"], ["21888242871839275222246405745257275088548364400416034343693163681610781011098", "2578657412085139523", "1755151138026325916", "21888242871839275222246405745257275088548364400416034343697846833511162447725", "4740389972772693547", "21888242871839275222246405745257275088548364400416034343692963286499621763573", "21888242871839275222246405745257275088548364400416034343697178372504470070538", "21888242871839275222246405745257275088548364400416034343697139386052693972563"], ["21888242871839275222246405745257275088548364400416034343694479266125167655663", "5245619144123864670", "21888242871839275222246405745257275088548364400416034343697601645147156662229", "21888242871839275222246405745257275088548364400416034343693572123437209789662", "5208739355818395716", "21888242871839275222246405745257275088548364400416034343693151449038870776111", "21888242871839275222246405745257275088548364400416034343696362548867351260938", "1740518247515047272"], ["21888242871839275222246405745257275088548364400416034343697126390513195397557", "2668705907175623074", "21888242871839275222246405745257275088548364400416034343697502579640442286970", "21888242871839275222246405745257275088548364400416034343696795371936292405040", "21888242871839275222246405745257275088548364400416034343696218643011388355201", "21888242871839275222246405745257275088548364400416034343696109727588520023161", "642881925489392536", "134025847945401869"], ["2116928953717184544", "288544747323274983", "56365000876814976", "21888242871839275222246405745257275088548364400416034343695361835333161994080", "21888242871839275222246405745257275088548364400416034343696255085295809761073", "21888242871839275222246405745257275088548364400416034343695905901556055924929", "21888242871839275222246405745257275088548364400416034343698004424746325890057", "21888242871839275222246405745257275088548364400416034343697467885270889416897"], ["1704767299851434380", "21888242871839275222246405745257275088548364400416034343697945609030544508516", "21888242871839275222246405745257275088548364400416034343697585412587057714345", "21888242871839275222246405745257275088548364400416034343697775338406059603954", "21888242871839275222246405745257275088548364400416034343697775827167488125733", "21888242871839275222246405745257275088548364400416034343697491462066911227242", "15629947723547959", "21888242871839275222246405745257275088548364400416034343697941160061326380020"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"]], [["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["21888242871839275222246405745257275088548364400416034343696454698605715704855", "21888242871839275222246405745257275088548364400416034343696175580081985220141", "21888242871839275222246405745257275088548364400416034343698062153295467013405", "2654650601681246895", "446439033551553799", "116640505011035054", "21888242871839275222246405745257275088548364400416034343697277203389482680856", "322034761985160143"], ["21888242871839275222246405745257275088548364400416034343691776909512668139949", "21888242871839275222246405745257275088548364400416034343694705194308012044702", "387883051867015805", "2274638805091626496", "2975911681684714038", "755801783706073908", "658308314276856875", "21888242871839275222246405745257275088548364400416034343697191362321321855774"], ["21888242871839275222246405745257275088548364400416034343693255536849008969257", "529134062216008985", "1945238722454281617", "21888242871839275222246405745257275088548364400416034343697027433718213371485", "5526095357929014884", "21888242871839275222246405745257275088548364400416034343696560499788800071953", "21888242871839275222246405745257275088548364400416034343697164778394697953387", "21888242871839275222246405745257275088548364400416034343696696430219188496561"], ["21888242871839275222246405745257275088548364400416034343693838795529103921121", "4663953258844487179", "692219273098568196", "21888242871839275222246405745257275088548364400416034343695988219994564296738", "8052099584295189559", "21888242871839275222246405745257275088548364400416034343692139116161057030015", "21888242871839275222246405745257275088548364400416034343696789484415148078657", "21888242871839275222246405745257275088548364400416034343697114711468417038049"], ["21888242871839275222246405745257275088548364400416034343697726687038629576882", "3618300610850341411", "21888242871839275222246405745257275088548364400416034343697576505129336250178", "21888242871839275222246405745257275088548364400416034343696181714330388789239", "1400164142480170436", "21888242871839275222246405745257275088548364400416034343693575430955673369449", "349067234333062621", "21888242871839275222246405745257275088548364400416034343696695944724276812281"], ["1352485643073091917", "1112095409108125558", "183996146875696810", "21888242871839275222246405745257275088548364400416034343695944258963839540578", "21888242871839275222246405745257275088548364400416034343695247085859779757979", "21888242871839275222246405745257275088548364400416034343695415238838883140102", "21888242871839275222246405745257275088548364400416034343697999127009857108262", "21888242871839275222246405745257275088548364400416034343697691231330481948199"], ["2183250922729260791", "21888242871839275222246405745257275088548364400416034343697995346788953280563", "21888242871839275222246405745257275088548364400416034343697912433285993056171", "21888242871839275222246405745257275088548364400416034343696526371336522112649", "21888242871839275222246405745257275088548364400416034343697319084821235833530", "21888242871839275222246405745257275088548364400416034343696765654816292354729", "131093665733914651", "21888242871839275222246405745257275088548364400416034343697605775786189570781"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"]], [["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["21888242871839275222246405745257275088548364400416034343694061184097662687410", "21888242871839275222246405745257275088548364400416034343695220366823805772401", "794724882248532725", "303373582050458582", "394989719419433480", "1033841684118140183", "21888242871839275222246405745257275088548364400416034343695885490821050908155", "21888242871839275222246405745257275088548364400416034343697828589802728158729"], ["21888242871839275222246405745257275088548364400416034343693492759346203745537", "21888242871839275222246405745257275088548364400416034343697314288434156312768", "2507758919425395380", "21888242871839275222246405745257275088548364400416034343692831674870198237699", "2490634235211808390", "21888242871839275222246405745257275088548364400416034343697797808388594107338", "285426158443175541", "21888242871839275222246405745257275088548364400416034343697177862035156334525"], ["21888242871839275222246405745257275088548364400416034343694691046219914427212", "4038515850603540323", "1817432645040720559", "21888242871839275222246405745257275088548364400416034343697099024654817216207", "2931918648471060193", "21888242871839275222246405745257275088548364400416034343696550594986597677978", "3471732282426769158", "21888242871839275222246405745257275088548364400416034343697542084958538308155"], ["21888242871839275222246405745257275088548364400416034343694651735625173770614", "4521247305345055694", "21888242871839275222246405745257275088548364400416034343696133088074274173357", "21888242871839275222246405745257275088548364400416034343695041641459457721880", "3457337610445621713", "21888242871839275222246405745257275088548364400416034343695436851587013068175", "2505411792150016761", "1606780252284614124"], ["21888242871839275222246405745257275088548364400416034343697720250441958271555", "1803527413921036580", "21888242871839275222246405745257275088548364400416034343697431469717986668137", "21888242871839275222246405745257275088548364400416034343696495270852127971258", "21888242871839275222246405745257275088548364400416034343696434966499959007722", "21888242871839275222246405745257275088548364400416034343695352714251767959721", "605035474462453760", "10863851895527804"], ["2410158514191915904", "21888242871839275222246405745257275088548364400416034343698137278981378308789", "21888242871839275222246405745257275088548364400416034343698136542682778925809", "21888242871839275222246405745257275088548364400416034343695367723231317056027", "21888242871839275222246405745257275088548364400416034343696719493778513344856", "21888242871839275222246405745257275088548364400416034343695771011898729778111", "21888242871839275222246405745257275088548364400416034343697642298822794100740", "21888242871839275222246405745257275088548364400416034343697077068871320288319"], ["1684210624547486582", "21888242871839275222246405745257275088548364400416034343697939159371398012296", "21888242871839275222246405745257275088548364400416034343697565213497551879334", "21888242871839275222246405745257275088548364400416034343697853874521656777084", "21888242871839275222246405745257275088548364400416034343697794052076051526445", "21888242871839275222246405745257275088548364400416034343697533614679654165561", "21888242871839275222246405745257275088548364400416034343698192942139380956627", "21888242871839275222246405745257275088548364400416034343697951608654193129060"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"], ["1668561355496973052", "21888242871839275222246405745257275088548364400416034343697925402468561668154", "21888242871839275222246405745257275088548364400416034343697537259908131365188", "21888242871839275222246405745257275088548364400416034343697957560628408287789", "21888242871839275222246405745257275088548364400416034343697807282694069368889", "21888242871839275222246405745257275088548364400416034343697590822036034854264", "21888242871839275222246405745257275088548364400416034343698144251299453828727", "21888242871839275222246405745257275088548364400416034343697956829619487959708"]]], "bn_2_remainder": [[["329030397081835520", "134365469095266560", "145978440877057536", "354953605664854016", "356405576160073984", "876863031789227520", "421012583068807168", "246029149726926592"], ["272680101290909696", "377601556891261440", "830364066250022912", "296894660221710336", "660536802566928896", "439484522208934400", "610621681432211456", "283768296580826368"], ["149303436570353920", "652025011812140800", "883336302058624512", "342942678867542016", "32184098825348096", "578348888364869120", "260569288294641664", "199219095819276288"], ["151672307492889600", "271210897309396480", "656087191082621440", "597405627596353536", "226535097709983488", "510987222328481280", "893991750577659904", "978871947727667712"], ["944207765494490368", "348286287526490880", "233980918960046592", "650798846067798016", "980233372278276352", "41649963347589120", "856460641057349632", "692962292740447488"], ["902803541989067008", "388594993839238400", "399775532825111552", "463785677794369536", "584598954124403456", "769819562189585920", "550078194441027584", "504658942990092800"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"]], [["408270801247220224", "308802639687467520", "602517430058095104", "824784144608710656", "323994279147681024", "137768457832194560", "984134266066374656", "919347190152755968"], ["740748734524037632", "937648336274124800", "793290762329399296", "464078062021042176", "535439818956630272", "870482185348912640", "87165977415188480", "391909708023606528"], ["971356222251017728", "734945484346140160", "888281869062120960", "564129121871998976", "125391963328331008", "683631062106342400", "493081111010516992", "735955051866956032"], ["531864839934848512", "438516028433493760", "252935184128768000", "915659198074392576", "844548653493616640", "288394165199275520", "551857887838273536", "323286018994871040"], ["27868984517607424", "652207483963558400", "342932938182818304", "221994716602658816", "976361031252120576", "256899125648616960", "323374715509088256", "380594475216713984"], ["678478844340086784", "147434230195118080", "322255343815731712", "870335872382058496", "329742537490471680", "363792256545507840", "196883010954039296", "547389898068810752"], ["558302242312114176", "538129182926229760", "565925703405615104", "204112961506390016", "526173688659488512", "557213878287016960", "579008495745880064", "636908130961652224"], ["993655217022855168", "955592449003343360", "852573078385767936", "678803666017550336", "457799426700387328", "705712166691292160", "203110108632870912", "308592554080568576"], ["705979581314560", "356119326040980480", "895705288477889024", "381859876917723136", "195155261350598656", "49254368576471040", "661070802384293888", "819357868050705664"], ["401784473431405568", "567225134475543040", "515791721753470464", "913605073126588416", "42603547926944768", "655028609296263680", "442666644792594432", "842551486609262080"], ["584561823252173056", "46434371840341760", "942614200073149440", "812199909002080256", "628387884576158976", "920867323219591680", "100965678658588672", "341379964203648256"]], [["842975663988855552", "368369003401249280", "801303311897004544", "685346729114873856", "971413147546368512", "905521225671288320", "681255868055867392", "325729698859667456"], ["80023153802944768", "842896829779636480", "204971331691579904", "174065636854091776", "246069869679608320", "950712999343088640", "943302589975764992", "877914841148885504"], ["257936041252939008", "479983988294140160", "286704995452308480", "980168200634310656", "426473936686776320", "904757377965447680", "656677164894375936", "353786461959389952"], ["506023551374362880", "924893938658122240", "751985056149193216", "80188578582798336", "574679864885038592", "861160038826408960", "952817868727676928", "339898423425700096"], ["807579040753028864", "722260077396408320", "126713936966125568", "324123012941459456", "89654883829244928", "171689085019066880", "264741648442564608", "52462719505792000"], ["141625688531498752", "24247564636810240", "129144038820430336", "739382949070708736", "421066058630057216", "278004669208791040", "787551571800367104", "286024213447990272"], ["882781762303172608", "500853479770481920", "777343085194301440", "849582363924791296", "72713919884566528", "267060223089643520", "462219868663189504", "641530300080466176"], ["136399862275623168", "859200683312460800", "178508955443238912", "361943892466917376", "438660785472023296", "792219424837509120", "184464097721081856", "638925619362950912"], ["433058907019310080", "204545878685838080", "827823769859825152", "61784147439558656", "949406095665491200", "350155819062594560", "840692590252933120", "933583971417113856"], ["423706614021496832", "851301112699489280", "367807527296795136", "1377707132973056", "214007971088852480", "77411524355927040", "733352176538062848", "934608950806225152"], ["643287479630867456", "363811448089999360", "147643646835684352", "81379179710304256", "451521245658648064", "753016247033745920", "131325177562382336", "936074806074717696"]], [["810080686841064704", "45328900369175040", "348859913397431296", "619718769307324416", "405714734022357504", "732742565939811840", "562595065421389824", "921528063935997184"], ["147570405409583360", "164732671311225600", "765567507918214656", "731369526172184576", "593342678465171200", "876673621427560960", "641781248382652416", "123529268559769856"], ["589513945448316160", "68696274688888320", "765537980513399296", "613217083999051776", "163773716707769344", "587494960198374400", "558670694320275456", "524689102117908736"], ["408206169070605312", "758914327509703680", "972370837666320896", "989313330813444096", "907342769059043584", "879053812361149440", "950355387332231168", "756998829242718208"], ["608285304898212864", "543120105861482240", "523229015396802048", "70006849414373376", "11481719129650688", "890420540260305920", "458702670622666752", "464254346052059136"], ["384872411445421056", "893719843558359040", "858016778722562048", "465467860155703296", "190143104552780288", "662015253708377600", "866652268562522112", "3523918559432192"], ["443285749939566336", "239665202676896000", "290291257668590080", "414686304359612416", "637136414131768320", "123535584752040960", "702663249206104064", "796001348554979584"], ["174254885855733248", "699809500159394560", "562599739829627392", "790654359043526656", "587752359268199680", "765498421871764480", "445152620333400064", "781016630575883008"], ["761687218088468736", "324325477963232000", "182128927153513984", "385859414629093376", "802190015362914816", "676877843812380160", "201226208789315584", "361434559357006336"], ["715749340441636352", "527175011571994880", "724342024770201088", "224540428821651456", "714953987158797312", "774271637164106240", "249401954325372928", "728693804721039104"], ["44605897286686720", "459340193218900480", "23776348944423936", "589112444042797056", "44163234185788928", "446058172692948480", "805634618777145344", "978791648284427264"]], [["51553650853297920", "798547588455028480", "833039139157981696", "631322252658896896", "183616615171329024", "530033336897512960", "12877750578290688", "375622184249294848"], ["760600893706098432", "629297282194302720", "968161250475303424", "692341832636194816", "407198868121103616", "955796281695168000", "364609438924894208", "911839476407634944"], ["957252888350337792", "324083907273194240", "30025674241379840", "316001596545376256", "477623971179660288", "63674685772700160", "895167248375816192", "470721809976889344"], ["48937449910662144", "582501935541735680", "319517870109267968", "47698836088631296", "488154840403583744", "317653671473786880", "950442628608819200", "686114679521516800"], ["280372629986218496", "708618713909619200", "24405749890011648", "77073456504119296", "259199689939210240", "511629847972928000", "913085183072788480", "297385187570161408"], ["18173273627668224", "419953607834449920", "577046302898465792", "599294722082144256", "277952162811419648", "569886493063613440", "246183073700405248", "928574811547506688"], ["401917038837297408", "731176605908645120", "140838183213709312", "368214603694329856", "105472949939975680", "83234876955845120", "824129420902907904", "363047063625248768"], ["334946648258396416", "832859319082874880", "942566318312118272", "657355969440014336", "726806967461192960", "622053410276577280", "14176344948953088", "636959350143514624"], ["974842530510027776", "779001141747758080", "130888132500027392", "619297274165149696", "268227380208904448", "563660227592803840", "858480284657086464", "528128176147185920"], ["198438800957084928", "255690022211887360", "367043586019006976", "639055128105332736", "15608211559757568", "458717498190103040", "332664957054869504", "573545677360276992"], ["163841444311169792", "719478656611200000", "171076788424686080", "704061701771739136", "877234078071478528", "410690445926804480", "71201789787791360", "694042400856531200"]], [["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["136840374082866944", "486849297550993920", "157037012153413632", "142578996464009216", "149280871997452288", "532703377942400000", "630681013528752128", "368348889218385920"], ["730448968647908352", "307455368912184320", "588864476679430656", "206198508316962816", "185308911245641216", "270184636498086400", "758107561871130624", "124590049709459200"], ["284446893795350272", "629770379874144000", "388239207168704000", "524430497665294336", "527322991833043456", "544453091405143040", "963227418258640896", "893981340043545600"], ["630348784010756352", "291236105746105600", "734929188958012416", "887540729123475456", "153105387824804096", "254177190929943040", "88706819245580288", "977362192286800384"], ["267579845371497728", "104321070696094720", "952309087641791488", "770573497998299136", "328166753923432192", "346977876255475200", "855648995841806336", "944376649546386944"], ["578772572703734272", "830654083233800960", "48403870062512640", "324347493562126336", "73001004636399360", "283636968532390400", "394278436794810368", "919405514049824000"], ["87626524813835008", "612500169856229120", "853366991651683328", "197716014478667776", "428549708924065280", "74796113669442560", "607896270309777408", "246982012035231488"], ["552721258636587264", "810863051872106240", "465689392411066880", "361659352924512256", "231295161525385216", "773781251143027200", "906853033042190336", "499990727898820096"], ["6286002111556096", "472231336944615680", "365353008435716608", "616670791624953856", "43682909120044032", "246981904054323200", "196187139358269440", "433390240127366400"]], [["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["389135650869023744", "63408783128938240", "156112680045655552", "13911163151937536", "736421196924558080", "289780428769753600", "886229254762921984", "44924405760307712"], ["275594032573642752", "120485653886437120", "997308148135521280", "685887913134862336", "598164075911062784", "896459584815674880", "128614894585999360", "474575894463557632"], ["422645464909426688", "453935548835324160", "529421842957126656", "380668283768467456", "737906337032560640", "767058229189788160", "110272915422781440", "746580035696470272"], ["546550715677097216", "993121747550997760", "3996376701848576", "672988125155700736", "964671267218619648", "611329932210024960", "559325434975313920", "779074633512104960"], ["333488369355671040", "564944364920166400", "441816999009799680", "402056678617686016", "285101024663595776", "386124155445260800", "365847331872468992", "560974062359288576"], ["761239451356074240", "757860705675751680", "402788024880060928", "977921558921363456", "984966859119095552", "158606611865113600", "765315071772422144", "708522784591170048"], ["791191225061187584", "85640312454727680", "601788563392460800", "63898925437874176", "128470410181842432", "739391053049474560", "623006839066533888", "92481889924780288"], ["909563133413359616", "368321232482780160", "493136278678415872", "966112173523931136", "897797544454389760", "104129667713917440", "495353503722016768", "690991121544034048"]], [["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["270055812603728896", "824699071864202240", "62097026399675392", "430712467455840256", "238732615701105664", "77042082960384000", "876167022768447488", "271162495988228352"], ["570837118530800640", "514117981406222080", "591948468404673024", "402392075236950016", "720225303570569216", "777037553715863040", "994219989058945024", "934843701403074304"], ["44050836747367168", "347089295000806400", "965339872245008896", "654035275167584256", "959351008740923392", "437041467095966720", "224427415853809664", "68224110457986560"], ["882613105224068864", "543574149538897920", "485424233127802368", "854377304141316096", "947693866726110720", "258975485135214080", "996109405439528960", "311725955221206016"], ["809877293374124800", "486226725534164480", "656449783016388096", "890810393661587456", "663964657913577728", "607907807367226880", "262538708528889856", "383623737623601408"], ["44243458329428992", "655169636316503040", "546080859433425408", "34097568294752256", "941478567378990592", "535882579164672000", "52009372017983488", "439176501273160960"], ["840228170740329728", "518600493499310080", "686319989911127552", "622380102669049856", "295484431406855680", "313165881244400640", "611781787113254912", "951907822473144832"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"]], [["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["579028091726041088", "907176482816869120", "65675023933686784", "262519366128562176", "144140698226166528", "293284433896732160", "654057753115598848", "343281483821970688"], ["848832825073302272", "189444415958197760", "199591531158159872", "879964738735927296", "718365080883048960", "865779326597465600", "275313284033499136", "674560624171697664"], ["25366243758047232", "541897662342871040", "404718458585496064", "87060280127143936", "42364848618892032", "101698036121198080", "845924513265864704", "102578134958208512"], ["715051338220698880", "118788944508611840", "200424611734996480", "901165364669280256", "64600665873236736", "27044033258895360", "498663302039339008", "388304405107490048"], ["180693421719033856", "446143707427421440", "179841098347819008", "146239497518022656", "180684864884670976", "906602296446627840", "370795662932455424", "101566865427912448"], ["4317205288674304", "270147794210019840", "524386158599262208", "77262574512480256", "881889671686650112", "834399967598295040", "252820824039747584", "753993263477636608"], ["609755816290091776", "978036633910931200", "675208811409405440", "962808913200111616", "320152394354688", "168505775036075520", "501755275353763840", "801843217692499456"], ["970666312171504896", "80151985315220480", "971928735693196800", "660655869498781696", "701748645647370752", "455988435422860800", "636363014758756352", "722512609383780608"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"]], [["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["264393572988840192", "621209373865377280", "850525186074710016", "478385796441030656", "311626619698138112", "806832390564188160", "453197368971198464", "450160783070774016"], ["971873664524143616", "775376362766056960", "326753253726888960", "549240852401606656", "91937465250766080", "907371699195783680", "8538096793894912", "461241854639140608"], ["536202094589690624", "308587902782927360", "33596198597307392", "627977729442717696", "281630286772917248", "687717175634987520", "23307685969190912", "297409322083501824"], ["794152732894738432", "343184888767560960", "726113271816687104", "834475765230780416", "305398821520217088", "311374861982784000", "514517482749435904", "579449585966355200"], ["551584753497218304", "758916053201326080", "86586907676281344", "437820574845095936", "875107782103608832", "800815509731837440", "383473159345258496", "680341799836002560"], ["603269375571636736", "403288904304721920", "625687988594909696", "66203410883383296", "77926577291910400", "9253878782256640", "740527872225271808", "356183169940060928"], ["62104046217939968", "717804299995687680", "886321943007135232", "89548785712766976", "931977323920160768", "743442449356684800", "881196313722294272", "18061062265099520"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"]], [["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["410556371016773376", "836497893596582400", "558397072088821248", "989273534917472256", "847182447363860224", "842168170401244160", "225843846608396288", "452534522862013440"], ["55884158250558208", "808189791474289920", "370932969278212096", "282827281693495296", "550238112206295552", "752847581075863040", "498580161271148544", "93335979252937728"], ["116554900882285056", "817885647457917440", "980343046123267072", "250787764929191936", "558519650156030720", "608547609771688960", "680141089752797184", "773856480367585792"], ["516710034336902400", "557453747359815680", "598654987431891968", "485685521834520576", "487227080266067712", "590038502136624640", "326286416009797632", "550966120882224384"], ["71477303200187392", "809870337343792640", "639878458702183424", "910070739748171776", "503013741134346240", "967910794563822080", "333104059188760576", "996019751134074624"], ["778415366254186752", "15031697608289280", "430465182082095104", "966783529410359296", "268045440661794304", "736075722125235200", "406947116723908608", "334628735829256448"], ["215183834402630144", "254013674952117760", "467527507899269120", "370579097741336576", "214904731698693632", "900437091780556800", "429183201618690048", "186693864998234112"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"], ["333731447116599552", "543228504509671680", "347135332298132992", "947125002065698816", "545666139112624640", "418767001052408320", "685703401285423104", "315199465403675648"]]], "relu_2_out": [[["1183998554440588778", 0, 0, "555520188028190246", 0, 0, "63751744556936369", 0], ["972626578579315052", 0, 0, "1121948814657275902", 0, 0, 0, "21993809299031663"], ["941929969668725469", 0, 0, "1111545880338757308", 0, 0, 0, "18565388223404158"], ["1169650685479628053", 0, 0, "780464742578555669", 0, 0, 0, "98822601603670846"], ["1372336955519861538", 0, 0, "216812282060827383", 0, 0, 0, 0], ["1616187689968275363", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, "3170893081568195671", "395856475973697685", "311653707255122665", 0, "627224789902358615"], [0, 0, 0, "893081356995205839", "1179583605677469399", 0, "651890281655503300", "9904247443034871"], [0, 0, 0, 0, "672906165771018065", 0, "3397948407145330664", "1410596188990513822"], [0, 0, 0, "1512001070378517941", 0, 0, "2790443314069508754", "1890955342371113379"], ["151880079447126666", 0, 0, "2055136017280011878", 0, 0, "2170748895151436826", "1512133858617161714"], ["261236666446201462", 0, 0, "2722364978113281165", 0, 0, "1517235029820935764", "1445379899900496609"], ["221772671705566306", 0, 0, "2833023787693499787", 0, 0, "1380713535958560136", "1360318080532556788"], ["470549227122854602", 0, 0, "2686542667216581834", 0, 0, "1295123670030082701", "1153384182622019462"], ["827696382226960734", 0, 0, "2059395273445638622", 0, 0, "244185872645805946", "739293834202395444"], ["941151801535363775", 0, 0, "871793604346695695", 0, 0, 0, "288402746574706038"], ["1425131740088150124", 0, 0, "43443937616147527", 0, 0, 0, 0]], [[0, 0, "685914056208675998", 0, 0, "463804602222957030", 0, 0], [0, "14643853278607032", "2796414668846431864", 0, 0, 0, "351086802087572698", "1189338147590280621"], [0, "368972927943713318", 0, 0, 0, 0, 0, "6677713362969056710"], [0, "991156491402956490", 0, 0, 0, "588187565394441015", "5704290246186098067", "7265578516233301641"], [0, "639380918468782958", 0, 0, 0, "1173349077280948286", "7349526711389693454", "8344951388387340223"], [0, "497708166598424475", 0, 0, 0, "1557542373015106974", "6652288613877230826", "8715651300233036786"], [0, 0, 0, 0, 0, "1876245008295384264", "5936702980920151091", "9016764721958505075"], [0, 0, 0, "85412360546253709", 0, "3164480043611421176", "6783287318369048559", "8724589310172853259"], [0, "18138340130109227", 0, "275504988393650090", 0, "578648856842916115", "5579120178024818822", "2357755527486147345"], [0, "61798281078911786", 0, 0, 0, 0, "1086444861942546936", "1520384828771578160"], ["557088434109530402", 0, 0, "62099669656650276", 0, 0, 0, "112772861606330530"]], [["1098761848990593527", 0, "890334454373968919", 0, "456972663865253", "835188708144008166", 0, "1343668764279556340"], ["2352345899187068966", "1086948029680043458", "3172701838756314372", "2899407836718063764", 0, "1866707464972652320", "14111726346909987", "3236298451350789769"], ["4052117206398833523", "471099466317010567", "2808168864486823264", "827768572068911117", 0, "4580416552974644866", 0, "4355283676704444490"], ["5514943934376141727", "598868341764602377", "4395506840825891604", 0, 0, "495997955420815818", 0, "6170865781083458919"], ["6142388159700785548", "665843965655338616", "3340072327132538137", 0, 0, "1211191772975720390", 0, "7301480922802780181"], ["4492264145825467042", "1628902293624654699", "2836787722189047953", 0, 0, 0, 0, "7414748622014412206"], [0, 0, "2616406551774354040", "469146759635839115", 0, "1857324620640332603", 0, "8777147572960915720"], [0, 0, "948369175421131682", 0, 0, "2445892316444786592", 0, "3054829748826352520"], [0, "388335135564002063", 0, 0, 0, 0, "1881882188391101660", "982855916309139456"], [0, "1031394803537632313", 0, 0, 0, 0, "118076740623759203", "2041528260058658076"], [0, "514587276411433248", 0, 0, 0, 0, 0, "444267697746489384"]], [["1625149158748129780", 0, "182966272338992975", "304380413079358987", 0, 0, "2004251229047009322", 0], ["2855796128585957500", 0, "755990673811876073", "3119626547386170407", 0, 0, "99159085434114802", 0], ["3734163700972004110", "430540675358258075", "1084985991706042955", "4879295741027833261", 0, "198222316666412012", "66554049044655544", 0], ["6121269878274555583", "626599170135626636", "2680879152363636144", "2716190054480986203", 0, 0, 0, 0], ["6645674867880949337", "1230479721497730344", "3133626837907152994", "3324330468313375414", 0, 0, 0, 0], ["3767255966726299015", 0, "4415519512857726485", "5326151492055381887", 0, 0, 0, 0], [0, 0, "5049098677070932796", "5128541705019511097", "730151274409494477", 0, "276897989302158693", 0], [0, "1281864589222594636", "5410956726245391100", 0, 0, 0, 0, 0], [0, "1885951133868676506", "1518208366619887784", 0, "3014856556590058907", 0, 0, 0], [0, "1780155935253615423", 0, 0, 0, 0, 0, 0], ["917003638274344334", "547053397245974614", 0, 0, 0, 0, 0, "52540176033560529"]], [["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1657256687210735510", 0, 0, 0, 0, 0, 0, 0], ["1699587076708302208", 0, 0, 0, 0, 0, "224241357041881146", 0], ["1520108359784301912", 0, 0, "350818785812793627", 0, 0, "65688251583274275", 0], [0, 0, "574581806357491571", "3922913626192526147", "961862880071912199", "1251851724303989612", 0, 0], [0, 0, "2099083316858958620", 0, "4115634646290283548", 0, 0, 0], [0, "3179726058956297954", "2416166699726993206", 0, "5388185680889186317", 0, 0, 0], [0, "3872855298827608319", 0, 0, "3424160208833874494", 0, 0, 0], ["243195257976825979", "1671373179725228573", 0, 0, 0, 0, "110399699588147176", "120991253345266593"], ["2090920793607839010", 0, 0, 0, 0, 0, 0, 0]], [["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1652162671490388812", 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, "3648546636898727959", "510846061000808650", 0, 0, "491155841580879949"], [0, 0, "325182718784016849", "2054880705455411935", "3246682980242480770", "1154336334276270308", 0, 0], [0, "1223292418545804330", "2549104749129428594", "2331176211661328850", "3756525718239136762", 0, 0, 0], [0, "3915624933998963253", "25675892515463761", 0, "6973409865178707001", 0, 0, "564010494697634608"], [0, "2832401245279772674", 0, 0, 0, 0, "283337540337748141", 0], ["2310080948860647770", "395236903285790881", "193094006941019731", 0, 0, 0, 0, 0], ["1773039380289350375", 0, 0, 0, 0, 0, "195040955075982860", 0]], [["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, "1447163100786273694", "54989271881463696", 0, 0, "131857118551247825"], [0, 0, "151641102987131574", "4897659195117488725", "2161855995505647005", "245374407938826126", "465179285485921289", 0], [0, 0, "988132272127297434", "519773633418594291", "4332193019840814785", 0, 0, 0], [0, "3451325729883676894", "946836160523857119", "675330085498957934", "5149963195255936714", 0, 0, 0], [0, "3574857715002806786", 0, 0, "2646619958525004880", 0, 0, 0], ["542906431138596459", "1321702414226828866", 0, 0, 0, 0, 0, 0], ["2193249005429898230", 0, 0, 0, 0, 0, "101463127254997117", 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0]], [["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1292278865828732357", 0, 0, "211137239756670858", 0, 0, 0, 0], [0, 0, "133345359205946149", "4757177692180224098", "1154583122539006628", "742853532643911561", 0, "431537272012875250"], [0, 0, "590094835520706825", "752764834815570615", "4431005305503722567", 0, 0, 0], [0, "2578657412085139523", "1755151138026325916", 0, "4740389972772693547", 0, 0, 0], [0, "5245619144123864670", 0, 0, "5208739355818395716", 0, 0, "1740518247515047272"], [0, "2668705907175623074", 0, 0, 0, 0, "642881925489392536", "134025847945401869"], ["2116928953717184544", "288544747323274983", "56365000876814976", 0, 0, 0, 0, 0], ["1704767299851434380", 0, 0, 0, 0, 0, "15629947723547959", 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0]], [["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, "2654650601681246895", "446439033551553799", "116640505011035054", 0, "322034761985160143"], [0, 0, "387883051867015805", "2274638805091626496", "2975911681684714038", "755801783706073908", "658308314276856875", 0], [0, "529134062216008985", "1945238722454281617", 0, "5526095357929014884", 0, 0, 0], [0, "4663953258844487179", "692219273098568196", 0, "8052099584295189559", 0, 0, 0], [0, "3618300610850341411", 0, 0, "1400164142480170436", 0, "349067234333062621", 0], ["1352485643073091917", "1112095409108125558", "183996146875696810", 0, 0, 0, 0, 0], ["2183250922729260791", 0, 0, 0, 0, 0, "131093665733914651", 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0]], [["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], [0, 0, "794724882248532725", "303373582050458582", "394989719419433480", "1033841684118140183", 0, 0], [0, 0, "2507758919425395380", 0, "2490634235211808390", 0, "285426158443175541", 0], [0, "4038515850603540323", "1817432645040720559", 0, "2931918648471060193", 0, "3471732282426769158", 0], [0, "4521247305345055694", 0, 0, "3457337610445621713", 0, "2505411792150016761", "1606780252284614124"], [0, "1803527413921036580", 0, 0, 0, 0, "605035474462453760", "10863851895527804"], ["2410158514191915904", 0, 0, 0, 0, 0, 0, 0], ["1684210624547486582", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0], ["1668561355496973052", 0, 0, 0, 0, 0, 0, 0]]], "avg2d_2_out": [[["539156283254975957", "0", "0", "1435360860312216914", "393860020412791771", "77913426813780666", "178910506553109917", "164780711661106287"], ["527895163787088380", "0", "0", "851002923323957729", "168226541442754516", "0", "1547097930303709854", "854734880297175551"], ["850410347845366257", "0", "0", "1248578319363530106", "0", "0", "921995981243093147", "739378439629414580"], ["1007361152455591753", "0", "0", "1379891613727520405", "0", "0", "668959301497160709", "628425565788644062"], ["1276492723689067653", "0", "0", "732797219448083579", "0", "0", "61046468161451486", "256924145194275370"]], [["862776937044415623", "275397970739662622", "1886341254546347788", "724851959179515941", "114243165966313", "791425193834904379", "91299632108620671", "1442326340805156682"], ["2391765285193743812", "607524306857070688", "1800918926328178717", "206942143017227779", "0", "1416150518447475424", "1426072561546524516", "6117360334247565440"], ["2658663076381563147", "857958836086800187", "1544215012330396522", "0", "0", "985520805817943912", "3500453831316731070", "7944208058359392349"], ["0", "0", "891193931798871430", "138639780045523206", "0", "2335985497247981158", "3179997574822299912", "7393332838479656643"], ["0", "374916640077663847", "0", "68876247098412522", "0", "144662214210729028", "2166380992245556655", "1725631133156380759"]], [["1954516999582008346", "0", "234739236537717262", "856001740116382348", "0", "0", "525852578620281031", "0"], ["3303069335791399352", "264284961373471177", "941466286017419774", "1898871448877204866", "0", "49555579166603003", "72698851521634172", "0"], ["2983259798597887566", "307619930374432586", "2030932039280592762", "3231053593093519268", "240465720017978049", "312962931075997403", "16422062895818568", "0"], ["0", "1115397662044723147", "3743826354975568930", "1282135426254877774", "2558492900397241085", "0", "69224497325539673", "0"], ["60798814494206494", "2302583886918782205", "379552091654971946", "0", "1609754191355983350", "0", "27599924897036794", "30247813336316648"]], [["1668561355496973052", "0", "0", "0", "0", "0", "0", "0"], ["1247321345621083729", "0", "0", "361790775196568423", "13747317970365924", "0", "0", "32964279637811956"], ["0", "0", "366239023474611464", "2780215042722555727", "2562894514147437802", "349927685553774108", "116294821371480322", "122788960395219987"], ["0", "3041275199357812815", "880404200542187368", "751626574290071696", "4631629684299696339", "0", "0", "141002623674408652"], ["1261559096357285614", "1137335140698098105", "48273501735254932", "0", "0", "0", "96200166898186314", "0"]], [["1668561355496973052", "0", "0", "0", "0", "0", "0", "0"], ["323069716457183089", "0", "130307102768240488", "2474401084677442086", "1144233459443818616", "403823955340255130", "164577078569214218", "188393008499508848"], ["0", "1942936183286408921", "1245675992274970638", "188191208703892653", "5687397555125155139", "0", "0", "0"], ["338121410768272979", "3161180267814488678", "45999036718924202", "0", "1652225874574641538", "0", "247987289955613789", "468636023865112285"], ["1918377132948713191", "72136186830818745", "14091250219203744", "0", "0", "0", "36680903364365652", "0"]]], "avg2d_2_remainder": [[["2", "0", "0", "2", "0", "1", "1", "1"], ["2", "0", "0", "2", "1", "0", "2", "1"], ["1", "0", "0", "2", "0", "0", "2", "3"], ["0", "0", "0", "1", "0", "0", "1", "2"], ["1", "0", "0", "1", "0", "0", "2", "2"]], [["1", "2", "1", "0", "1", "0", "1", "2"], ["2", "0", "0", "1", "0", "3", "3", "0"], ["2", "0", "2", "0", "0", "2", "0", "0"], ["0", "0", "2", "0", "0", "3", "2", "2"], ["0", "1", "0", "2", "0", "3", "1", "1"]], [["0", "0", "0", "2", "0", "0", "0", "0"], ["3", "3", "3", "0", "0", "0", "2", "0"], ["0", "0", "2", "3", "3", "0", "3", "0"], ["0", "2", "2", "1", "2", "0", "1", "0"], ["3", "1", "0", "0", "1", "0", "0", "1"]], [["0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "2", "0", "0", "0", "1"], ["0", "0", "1", "2", "2", "2", "1", "1"], ["0", "3", "2", "0", "1", "0", "0", "0"], ["3", "1", "3", "0", "0", "0", "2", "0"]], [["0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "2", "3", "1", "3", "3", "1"], ["0", "3", "2", "3", "1", "0", "0", "0"], ["1", "1", "2", "0", "0", "0", "1", "1"], ["3", "3", "0", "0", "0", "0", "2", "0"]]], "flatten_out": ["539156283254975957", "0", "0", "1435360860312216914", "393860020412791771", "77913426813780666", "178910506553109917", "164780711661106287", "527895163787088380", "0", "0", "851002923323957729", "168226541442754516", "0", "1547097930303709854", "854734880297175551", "850410347845366257", "0", "0", "1248578319363530106", "0", "0", "921995981243093147", "739378439629414580", "1007361152455591753", "0", "0", "1379891613727520405", "0", "0", "668959301497160709", "628425565788644062", "1276492723689067653", "0", "0", "732797219448083579", "0", "0", "61046468161451486", "256924145194275370", "862776937044415623", "275397970739662622", "1886341254546347788", "724851959179515941", "114243165966313", "791425193834904379", "91299632108620671", "1442326340805156682", "2391765285193743812", "607524306857070688", "1800918926328178717", "206942143017227779", "0", "1416150518447475424", "1426072561546524516", "6117360334247565440", "2658663076381563147", "857958836086800187", "1544215012330396522", "0", "0", "985520805817943912", "3500453831316731070", "7944208058359392349", "0", "0", "891193931798871430", "138639780045523206", "0", "2335985497247981158", "3179997574822299912", "7393332838479656643", "0", "374916640077663847", "0", "68876247098412522", "0", "144662214210729028", "2166380992245556655", "1725631133156380759", "1954516999582008346", "0", "234739236537717262", "856001740116382348", "0", "0", "525852578620281031", "0", "3303069335791399352", "264284961373471177", "941466286017419774", "1898871448877204866", "0", "49555579166603003", "72698851521634172", "0", "2983259798597887566", "307619930374432586", "2030932039280592762", "3231053593093519268", "240465720017978049", "312962931075997403", "16422062895818568", "0", "0", "1115397662044723147", "3743826354975568930", "1282135426254877774", "2558492900397241085", "0", "69224497325539673", "0", "60798814494206494", "2302583886918782205", "379552091654971946", "0", "1609754191355983350", "0", "27599924897036794", "30247813336316648", "1668561355496973052", "0", "0", "0", "0", "0", "0", "0", "1247321345621083729", "0", "0", "361790775196568423", "13747317970365924", "0", "0", "32964279637811956", "0", "0", "366239023474611464", "2780215042722555727", "2562894514147437802", "349927685553774108", "116294821371480322", "122788960395219987", "0", "3041275199357812815", "880404200542187368", "751626574290071696", "4631629684299696339", "0", "0", "141002623674408652", "1261559096357285614", "1137335140698098105", "48273501735254932", "0", "0", "0", "96200166898186314", "0", "1668561355496973052", "0", "0", "0", "0", "0", "0", "0", "323069716457183089", "0", "130307102768240488", "2474401084677442086", "1144233459443818616", "403823955340255130", "164577078569214218", "188393008499508848", "0", "1942936183286408921", "1245675992274970638", "188191208703892653", "5687397555125155139", "0", "0", "0", "338121410768272979", "3161180267814488678", "45999036718924202", "0", "1652225874574641538", "0", "247987289955613789", "468636023865112285", "1918377132948713191", "72136186830818745", "14091250219203744", "0", "0", "0", "36680903364365652", "0"], "dense_weights": [["84046196380794880", "40086948408197120", "21888242871839275222246405745257275088548364400416034343698204066941549674497", "86542010466435072", "49136594824724480", "295121977595658240", "21888242871839275222246405745257275088548364400416034343697817093268047921153", "21888242871839275222246405745257275088548364400416034343698146656901922816001", "21888242871839275222246405745257275088548364400416034343698179989382897860609", "21888242871839275222246405745257275088548364400416034343698079633443347496961"], ["21888242871839275222246405745257275088548364400416034343698035385255745028097", "34548452788535296", "21888242871839275222246405745257275088548364400416034343698143149008858644481", "19256009130246144", "21888242871839275222246405745257275088548364400416034343698151647129934757889", "64702995119472640", "21888242871839275222246405745257275088548364400416034343698131539652128014337", "60100688553705472", "13414082661056512", "6053688757977088"], ["21888242871839275222246405745257275088548364400416034343698066889734214385665", "49926404950720512", "21888242871839275222246405745257275088548364400416034343698107543790104346625", "126767188102086656", "21888242871839275222246405745257275088548364400416034343698203776900151640065", "21888242871839275222246405745257275088548364400416034343698014010371743940609", "198403798035595264", "21888242871839275222246405745257275088548364400416034343698155569689206456321", "21888242871839275222246405745257275088548364400416034343698142870999920541697", "21888242871839275222246405745257275088548364400416034343698025713384531427329"], ["96905139486457856", "21888242871839275222246405745257275088548364400416034343698139301877802598401", "14566178647179264", "141808807817773056", "1048723236847616", "21888242871839275222246405745257275088548364400416034343698163929310472175617", "21888242871839275222246405745257275088548364400416034343697987583884648251393", "21888242871839275222246405745257275088548364400416034343697914013190811811841", "21888242871839275222246405745257275088548364400416034343698148450183912882177", "143207515457323008"], ["21888242871839275222246405745257275088548364400416034343698129264401792892929", "12781406061068288", "21888242871839275222246405745257275088548364400416034343698026545285336924161", "195356759257251840", "21888242871839275222246405745257275088548364400416034343698177643873340227585", "22235067166228480", "135065296846192640", "21888242871839275222246405745257275088548364400416034343698046614396200812545", "137737780116586496", "85753359981608960"], ["21888242871839275222246405745257275088548364400416034343697955504980072857601", "7500536001593344", "78440147368017920", "8718909775544320", "76515426493792256", "104617603669950464", "247362302041391104", "76555206480887808", "135711131078492160", "21888242871839275222246405745257275088548364400416034343698045834464499597313"], ["21888242871839275222246405745257275088548364400416034343698132237764702240769", "56660673152679936", "21888242871839275222246405745257275088548364400416034343698159667848216051713", "189876380987555840", "68837008516055040", "21888242871839275222246405745257275088548364400416034343698075032356552441857", "61673604361748480", "190088019796033536", "21888242871839275222246405745257275088548364400416034343698198866352574300161", "21888242871839275222246405745257275088548364400416034343698104235514235191297"], ["126242248609234944", "21888242871839275222246405745257275088548364400416034343698071341639615381505", "50300956163702784", "165450987874549760", "41484449161936896", "44578702515765248", "74629308785623040", "19885391490318336", "21888242871839275222246405745257275088548364400416034343698106037253015863297", "151050855884259328"], ["372752102721585152", "277831573133328384", "21888242871839275222246405745257275088548364400416034343698118630792912437249", "21888242871839275222246405745257275088548364400416034343698116668834671755265", "21888242871839275222246405745257275088548364400416034343697708547521648787457", "159807950603419648", "33879762887770112", "21888242871839275222246405745257275088548364400416034343698086630374569410561", "21888242871839275222246405745257275088548364400416034343698013606765077200897", "227777096552808448"], ["21888242871839275222246405745257275088548364400416034343698155257372069593089", "21888242871839275222246405745257275088548364400416034343698071006348698451969", "246350716984098816", "191743076853612544", "21888242871839275222246405745257275088548364400416034343697952433700499095553", "21888242871839275222246405745257275088548364400416034343698163587693068419073", "182181878357295104", "82918415278276608", "32243799107305472", "21888242871839275222246405745257275088548364400416034343698064822128368156673"], ["21888242871839275222246405745257275088548364400416034343698095717743683698689", "21888242871839275222246405745257275088548364400416034343698171304701327310849", "144671729938071552", "217129065172172800", "26115413351858176", "31255851402526720", "205592508137209856", "21888242871839275222246405745257275088548364400416034343698054018473142517761", "31158138749059072", "21888242871839275222246405745257275088548364400416034343697987442752022904833"], ["21888242871839275222246405745257275088548364400416034343698154522172452765697", "21888242871839275222246405745257275088548364400416034343698020512488373616641", "122512876966510592", "155170829032751104", "21888242871839275222246405745257275088548364400416034343698147857525670674433", "21888242871839275222246405745257275088548364400416034343697800192571738161153", "21888242871839275222246405745257275088548364400416034343697694326953651208193", "21888242871839275222246405745257275088548364400416034343698057281583135588353", "139266238718148608", "299973916250603520"], ["21888242871839275222246405745257275088548364400416034343698136648820669284353", "21888242871839275222246405745257275088548364400416034343698180217089178992641", "21888242871839275222246405745257275088548364400416034343698151002829005783041", "21888242871839275222246405745257275088548364400416034343698144133260744065025", "146072112614866944", "5641280092635136", "610728406572597248", "21888242871839275222246405745257275088548364400416034343698034314881175388161", "21888242871839275222246405745257275088548364400416034343698203298413951320065", "21888242871839275222246405745257275088548364400416034343698117771438675984385"], ["21888242871839275222246405745257275088548364400416034343697951962731565285377", "225107121543315456", "98491932333834240", "21888242871839275222246405745257275088548364400416034343697985166110118379521", "21888242871839275222246405745257275088548364400416034343697966083896839766017", "21888242871839275222246405745257275088548364400416034343698200125336606212097", "425361432008196096", "21888242871839275222246405745257275088548364400416034343698145984859800076289", "21888242871839275222246405745257275088548364400416034343698070719264494452737", "21888242871839275222246405745257275088548364400416034343698191921094103924737"], ["21888242871839275222246405745257275088548364400416034343698072609264853057537", "296761383792410624", "23103060729397248", "68621701805506560", "21888242871839275222246405745257275088548364400416034343698138670620689301505", "48807230962663424", "21888242871839275222246405745257275088548364400416034343697976485482996957185", "451386459920793600", "21888242871839275222246405745257275088548364400416034343698029061758215258113", "21888242871839275222246405745257275088548364400416034343697869692461211713537"], ["21888242871839275222246405745257275088548364400416034343697902211891992723457", "21888242871839275222246405745257275088548364400416034343697982258142381080577", "156540528463183872", "549612980455604224", "21888242871839275222246405745257275088548364400416034343698064702891486085121", "21888242871839275222246405745257275088548364400416034343698023676264363065345", "21888242871839275222246405745257275088548364400416034343698128614306953035777", "21888242871839275222246405745257275088548364400416034343698089861624495079425", "314393289694380032", "276879842740273152"], ["210418934686416896", "470706494128521216", "65393381047533568", "21888242871839275222246405745257275088548364400416034343697803807559811858433", "21888242871839275222246405745257275088548364400416034343697840671126674472961", "211471562451189760", "21888242871839275222246405745257275088548364400416034343698123389874374443009", "340144882809044992", "21888242871839275222246405745257275088548364400416034343698105808597546958849", "21888242871839275222246405745257275088548364400416034343698034312235475533825"], ["21888242871839275222246405745257275088548364400416034343698096052751132786689", "179073902582956032", "21888242871839275222246405745257275088548364400416034343697956756945859772417", "21888242871839275222246405745257275088548364400416034343698025566599729119233", "21888242871839275222246405745257275088548364400416034343697786742795751391233", "309327633466785792", "154888426343104512", "33640138072391680", "32112568529059840", "216186371390308352"], ["21888242871839275222246405745257275088548364400416034343697848664576208404481", "21888242871839275222246405745257275088548364400416034343697961962411862786049", "69380347648802816", "219824913064656896", "362217406937956352", "184683026792316928", "21888242871839275222246405745257275088548364400416034343698189464314828554241", "21888242871839275222246405745257275088548364400416034343697960478672460709889", "104654497439023104", "21888242871839275222246405745257275088548364400416034343697867175094980182017"], ["90241755424751616", "125530108671819776", "295713136894279680", "21888242871839275222246405745257275088548364400416034343698035833289553477633", "21888242871839275222246405745257275088548364400416034343698024355247152955393", "21888242871839275222246405745257275088548364400416034343698108202663857356801", "21888242871839275222246405745257275088548364400416034343697984114495965888513", "21888242871839275222246405745257275088548364400416034343698111663883511922689", "21888242871839275222246405745257275088548364400416034343698162670365363404801", "382169969569300480"], ["21888242871839275222246405745257275088548364400416034343698016945157257035777", "521472320372473856", "21888242871839275222246405745257275088548364400416034343697964348060037283841", "21888242871839275222246405745257275088548364400416034343697917618540978896897", "474232284321415168", "238313286985056256", "376626025783623680", "21888242871839275222246405745257275088548364400416034343698055010352889856001", "64091627999723520", "21888242871839275222246405745257275088548364400416034343697697356005106515969"], ["21888242871839275222246405745257275088548364400416034343698107818839809982465", "203871720900132864", "371712067800924160", "241691673900351488", "124081673900916736", "13423412403765248", "239170820155375616", "21888242871839275222246405745257275088548364400416034343698083710449643159553", "21888242871839275222246405745257275088548364400416034343698055475394768797697", "21888242871839275222246405745257275088548364400416034343698067775562629251073"], ["47213871110291456", "21888242871839275222246405745257275088548364400416034343698156825378730016769", "438789011603980288", "111193799895547904", "21888242871839275222246405745257275088548364400416034343697918561148861415425", "21888242871839275222246405745257275088548364400416034343698174307321553879041", "21888242871839275222246405745257275088548364400416034343697558310012311306241", "216856300389138432", "264307940888936448", "245187193163743232"], ["21888242871839275222246405745257275088548364400416034343698083429395573243905", "21888242871839275222246405745257275088548364400416034343697873609711903834113", "57745036430802944", "398894537860186112", "21888242871839275222246405745257275088548364400416034343697829339800356782081", "21888242871839275222246405745257275088548364400416034343698190360694904324097", "21888242871839275222246405745257275088548364400416034343697918350712643780609", "199497056190988288", "200594626493546496", "437635967503826944"], ["128314793667854336", "75490226390171648", "395578651308982272", "21888242871839275222246405745257275088548364400416034343698027247838907334657", "21888242871839275222246405745257275088548364400416034343697752424976264200193", "72731079269679104", "185286229179236352", "132262418368692224", "21888242871839275222246405745257275088548364400416034343697866144440268095489", "21888242871839275222246405745257275088548364400416034343698004140828955508737"], ["21888242871839275222246405745257275088548364400416034343698114581686724329473", "239326143352668160", "21888242871839275222246405745257275088548364400416034343697622892851425705985", "21888242871839275222246405745257275088548364400416034343698158944511298895873", "20946284919652352", "690722206820335616", "313872052463337472", "21888242871839275222246405745257275088548364400416034343698090951335007485953", "21888242871839275222246405745257275088548364400416034343698086845492301398017", "21888242871839275222246405745257275088548364400416034343698142997340678520833"], ["21888242871839275222246405745257275088548364400416034343698063317077338357761", "21888242871839275222246405745257275088548364400416034343698044955817270050817", "21888242871839275222246405745257275088548364400416034343698202227854496759809", "104749227237703680", "239970508706152448", "321610174781456384", "21888242871839275222246405745257275088548364400416034343698104937749978021889", "21888242871839275222246405745257275088548364400416034343698118371608815992833", "35302075667578880", "21888242871839275222246405745257275088548364400416034343698030195200084672513"], ["12335281365581824", "17819359749603328", "21888242871839275222246405745257275088548364400416034343697687971501564755969", "21888242871839275222246405745257275088548364400416034343698005740463755100161", "190760560134979584", "68476647875018752", "21888242871839275222246405745257275088548364400416034343698145309845559967745", "81431849787719680", "21888242871839275222246405745257275088548364400416034343698162368231594000385", "63628351352340480"], ["21888242871839275222246405745257275088548364400416034343698051884252353527809", "357796098883977216", "21888242871839275222246405745257275088548364400416034343697917605965314654209", "21888242871839275222246405745257275088548364400416034343698008213145146884097", "418116852971995136", "270823440636706816", "301191487939411968", "21888242871839275222246405745257275088548364400416034343698015106842534871041", "21888242871839275222246405745257275088548364400416034343698186887441825136641", "21888242871839275222246405745257275088548364400416034343697609282546741280769"], ["21888242871839275222246405745257275088548364400416034343698111505038441447425", "88315213484392448", "130951671659364352", "306304320087785472", "121144354357116928", "21888242871839275222246405745257275088548364400416034343698044055471865724929", "14391343413460992", "180137748802306048", "21888242871839275222246405745257275088548364400416034343698069166608047144961", "21888242871839275222246405745257275088548364400416034343698109001321615982593"], ["383373178887471104", "21888242871839275222246405745257275088548364400416034343697903139604928659457", "21888242871839275222246405745257275088548364400416034343698152458002580373505", "364482847567773696", "21888242871839275222246405745257275088548364400416034343697760177151715311617", "28324055186669568", "21888242871839275222246405745257275088548364400416034343697664081725233299457", "249357108191952896", "168224093638754304", "455279521357103104"], ["21888242871839275222246405745257275088548364400416034343697933489286951206913", "21888242871839275222246405745257275088548364400416034343697861766803441582081", "60121261447053312", "89861427480756224", "21888242871839275222246405745257275088548364400416034343697789475803700920321", "73213550125907968", "242285496078696448", "21454871324524544", "310173638944882688", "335706704123527168"], ["149542085412782080", "21888242871839275222246405745257275088548364400416034343698110913724524003329", "315443563817074688", "233326984573222912", "10576138996809728", "21888242871839275222246405745257275088548364400416034343697944017454384545793", "144281523569295360", "21888242871839275222246405745257275088548364400416034343698105099111899332609", "21888242871839275222246405745257275088548364400416034343697943292343645896705", "97096918366158848"], ["21888242871839275222246405745257275088548364400416034343697946720792699994113", "21888242871839275222246405745257275088548364400416034343698139686831426371585", "21888242871839275222246405745257275088548364400416034343697785606587923038209", "21888242871839275222246405745257275088548364400416034343698093174925475971073", "21888242871839275222246405745257275088548364400416034343698108500502659465217", "511304380436185088", "430429871374598144", "21888242871839275222246405745257275088548364400416034343697997859920321445889", "21888242871839275222246405745257275088548364400416034343698156445244059549697", "21888242871839275222246405745257275088548364400416034343698067861633773862913"], ["21888242871839275222246405745257275088548364400416034343698159068356680876033", "138147794874531840", "21888242871839275222246405745257275088548364400416034343698117954095045148673", "21888242871839275222246405745257275088548364400416034343698184530741730213889", "62520593387356160", "21888242871839275222246405745257275088548364400416034343698139574994772951041", "21888242871839275222246405745257275088548364400416034343698010564330503798785", "195171336929148928", "23519668262141952", "61815943872905216"], ["21888242871839275222246405745257275088548364400416034343698175990817737408513", "65070614255239168", "21888242871839275222246405745257275088548364400416034343698021042195280166913", "21888242871839275222246405745257275088548364400416034343698106068193960263681", "567717607638040576", "377939529861955584", "21888242871839275222246405745257275088548364400416034343698170078391527538689", "255760870070550528", "21888242871839275222246405745257275088548364400416034343697996745256049049601", "21888242871839275222246405745257275088548364400416034343697871098564784947201"], ["21888242871839275222246405745257275088548364400416034343698114370683571011585", "246103601745756160", "21888242871839275222246405745257275088548364400416034343698025325445905383425", "21888242871839275222246405745257275088548364400416034343698131132875775410177", "417297613730086912", "147879142795247616", "65292878812807168", "21888242871839275222246405745257275088548364400416034343697928448404094976001", "280024617794404352", "21888242871839275222246405745257275088548364400416034343698012799053527515137"], ["7583529265266688", "135079161000624128", "105648876857327616", "21888242871839275222246405745257275088548364400416034343698156409819169292289", "21888242871839275222246405745257275088548364400416034343698130858719422971905", "21888242871839275222246405745257275088548364400416034343697983938625645051905", "21888242871839275222246405745257275088548364400416034343698183940379148025857", "124640234397761536", "21888242871839275222246405745257275088548364400416034343698036856161784823809", "127752410650116096"], ["364598261928951808", "21888242871839275222246405745257275088548364400416034343697993597096560689153", "21888242871839275222246405745257275088548364400416034343698185603592348499969", "253441982867701760", "21888242871839275222246405745257275088548364400416034343697691048175617441793", "21888242871839275222246405745257275088548364400416034343697985914327781081089", "21888242871839275222246405745257275088548364400416034343698102120449000341505", "21888242871839275222246405745257275088548364400416034343698095966637038501889", "141965239116627968", "439645943478878208"], ["21888242871839275222246405745257275088548364400416034343698153479358688264193", "21888242871839275222246405745257275088548364400416034343697982770944296353793", "44951922288885760", "21888242871839275222246405745257275088548364400416034343698198029332704657409", "148163452450373632", "336413002905419776", "21888242871839275222246405745257275088548364400416034343698015063257206751233", "21888242871839275222246405745257275088548364400416034343698038303308065538049", "234715839557795840", "21888242871839275222246405745257275088548364400416034343698139917286486573057"], ["21888242871839275222246405745257275088548364400416034343698012685700750639105", "27057160093433856", "21888242871839275222246405745257275088548364400416034343698190357890290679809", "103003924327301120", "21888242871839275222246405745257275088548364400416034343698078067094544449537", "21888242871839275222246405745257275088548364400416034343698159617635753394177", "21888242871839275222246405745257275088548364400416034343697962548365661044737", "49353056881475584", "123250417340514304", "23462566671941632"], ["68640603956576256", "21888242871839275222246405745257275088548364400416034343698053950732918325249", "189032059136638976", "108051868109766656", "50701848411111424", "21888242871839275222246405745257275088548364400416034343698022897758590992385", "21888242871839275222246405745257275088548364400416034343698083016503187210241", "21888242871839275222246405745257275088548364400416034343698143534228770390017", "21888242871839275222246405745257275088548364400416034343698200907016627552257", "21888242871839275222246405745257275088548364400416034343698139539282119884801"], ["21888242871839275222246405745257275088548364400416034343698166038405702483969", "21888242871839275222246405745257275088548364400416034343698114563665041555457", "21888242871839275222246405745257275088548364400416034343698029506218610917377", "235443888054075392", "173520406790012928", "125063194187137024", "226300108839321600", "21888242871839275222246405745257275088548364400416034343698178321975661821953", "191450108544417792", "21888242871839275222246405745257275088548364400416034343698037744498460590081"], ["177743905830207488", "33356335223406592", "279391196017590272", "279666331622572032", "90060679603552256", "21888242871839275222246405745257275088548364400416034343697833534127979102209", "24186324495892480", "21888242871839275222246405745257275088548364400416034343697850968465385455617", "21888242871839275222246405745257275088548364400416034343698118551189988573185", "59882143437815808"], ["21063150979776512", "85852943093334016", "21888242871839275222246405745257275088548364400416034343697931751783701413889", "21888242871839275222246405745257275088548364400416034343698151800305648402433", "12539223592665088", "43724536599805952", "252377604072407040", "21888242871839275222246405745257275088548364400416034343697999558305009106945", "248901188823547904", "152225512259846144"], ["108213642347937792", "18446115737174016", "21888242871839275222246405745257275088548364400416034343697681743661546602497", "21888242871839275222246405745257275088548364400416034343698036562145503608833", "213929108378222592", "344699781525798912", "172885662163271680", "76623419151482880", "21888242871839275222246405745257275088548364400416034343698173388333844004865", "21888242871839275222246405745257275088548364400416034343698020712891547648001"], ["18337455212068864", "25575802250723328", "25271963379302400", "21888242871839275222246405745257275088548364400416034343698145341645497827329", "110995071758761984", "21888242871839275222246405745257275088548364400416034343698119577953460289537", "21888242871839275222246405745257275088548364400416034343698000376788336771073", "537723411468648448", "48054525059137536", "21888242871839275222246405745257275088548364400416034343698044469145935806465"], ["29098233779191808", "21888242871839275222246405745257275088548364400416034343698136573675921473537", "139425753803522048", "437529005638287360", "97169151126142976", "21888242871839275222246405745257275088548364400416034343698064455587269181441", "76019332001300480", "259621255395672064", "21888242871839275222246405745257275088548364400416034343698090716271447375873", "21888242871839275222246405745257275088548364400416034343697998912341927788545"], ["21888242871839275222246405745257275088548364400416034343698103049115419017217", "433989231031877632", "188105102114947072", "21888242871839275222246405745257275088548364400416034343698011064762913259521", "21888242871839275222246405745257275088548364400416034343697612573110165307393", "193365852936994816", "72538243828023296", "638699432627404800", "21888242871839275222246405745257275088548364400416034343698111215746624258049", "21888242871839275222246405745257275088548364400416034343697879190111371919361"], ["140275848090484736", "21888242871839275222246405745257275088548364400416034343698192804164076044289", "194724849308925952", "26255195209990144", "21888242871839275222246405745257275088548364400416034343697986261223699644417", "21888242871839275222246405745257275088548364400416034343698111397329251598337", "2981230215692288", "21888242871839275222246405745257275088548364400416034343698084631307811291137", "21888242871839275222246405745257275088548364400416034343697994080280381489153", "216248751495315456"], ["1802890637213696", "113009102182940672", "27526834094604288", "1145798490324992", "188073250637479936", "160378184821374976", "21888242871839275222246405745257275088548364400416034343697827872192851869697", "21888242871839275222246405745257275088548364400416034343698184407886338195457", "21888242871839275222246405745257275088548364400416034343698015310355265224705", "146431498298327040"], ["58043300434673664", "21888242871839275222246405745257275088548364400416034343698057483034281639937", "156624160066371584", "219535827405897728", "120554200080842752", "21888242871839275222246405745257275088548364400416034343698048571836135899137", "21888242871839275222246405745257275088548364400416034343698028446134782918657", "21888242871839275222246405745257275088548364400416034343698174092085710290945", "21888242871839275222246405745257275088548364400416034343697856550582840459265", "73494466756870144"], ["87847319747166208", "21888242871839275222246405745257275088548364400416034343697797257906484150273", "21888242871839275222246405745257275088548364400416034343698097223396008919041", "21888242871839275222246405745257275088548364400416034343697908276420174413825", "42777049634439168", "55731044661329920", "373854947243982848", "21888242871839275222246405745257275088548364400416034343698156351235815374849", "103928862714363904", "84440500148371456"], ["21888242871839275222246405745257275088548364400416034343698066633925962235905", "338423940953145344", "21888242871839275222246405745257275088548364400416034343697891314426091405313", "21888242871839275222246405745257275088548364400416034343697844046970969128961", "635360147094372352", "348498697278980096", "21888242871839275222246405745257275088548364400416034343698126394813883351041", "45107279845916672", "19980694667132928", "21888242871839275222246405745257275088548364400416034343698033847966690705409"], ["21888242871839275222246405745257275088548364400416034343698074916564234141697", "21888242871839275222246405745257275088548364400416034343698190268081450778625", "21888242871839275222246405745257275088548364400416034343698073621545695051777", "21888242871839275222246405745257275088548364400416034343698044064285138616321", "198610952898215936", "9115429209374720", "21888242871839275222246405745257275088548364400416034343697973488918674276353", "372116069604655104", "344832100878254080", "15011825527554048"], ["236410564933320704", "103580077010190336", "21888242871839275222246405745257275088548364400416034343697905262246485819393", "422588085725822976", "21888242871839275222246405745257275088548364400416034343697649468322346958849", "21888242871839275222246405745257275088548364400416034343698198640824378458113", "21888242871839275222246405745257275088548364400416034343698009530033659445249", "213912546984329216", "21888242871839275222246405745257275088548364400416034343698129582048984170497", "21888242871839275222246405745257275088548364400416034343698055549457184849921"], ["21888242871839275222246405745257275088548364400416034343698114144587902615553", "242460954082672640", "304739337084338176", "21888242871839275222246405745257275088548364400416034343697849116578566635521", "21888242871839275222246405745257275088548364400416034343697812768888815878145", "386187756855885824", "200231375339520000", "21888242871839275222246405745257275088548364400416034343698204066643930251265", "21888242871839275222246405745257275088548364400416034343697997599971720822785", "21888242871839275222246405745257275088548364400416034343697926622922735091713"], ["21888242871839275222246405745257275088548364400416034343697912600868125933569", "362415800067293184", "311866783772442624", "283735864675139584", "21888242871839275222246405745257275088548364400416034343697901926087688978433", "21888242871839275222246405745257275088548364400416034343698139381085589471233", "27001508054695936", "21888242871839275222246405745257275088548364400416034343697898732246928457729", "21888242871839275222246405745257275088548364400416034343698105344973007224833", "50207506265276416"], ["180273830546112512", "21888242871839275222246405745257275088548364400416034343697903094490592182273", "90634727752466432", "153430937781141504", "21888242871839275222246405745257275088548364400416034343697711157934051819521", "21888242871839275222246405745257275088548364400416034343698021824721141628929", "21888242871839275222246405745257275088548364400416034343697827344873947136001", "555023883334320128", "353027929271173120", "21888242871839275222246405745257275088548364400416034343697997331278566785025"], ["56992360592048128", "366078926134444032", "142586110999003136", "286354025199173632", "21888242871839275222246405745257275088548364400416034343697812098942637178881", "21888242871839275222246405745257275088548364400416034343697926491067239104513", "292182192740630528", "240446906478624768", "21888242871839275222246405745257275088548364400416034343697775499361644445697", "21888242871839275222246405745257275088548364400416034343697841578429925818369"], ["91314088499478528", "21888242871839275222246405745257275088548364400416034343698024203772246360065", "21888242871839275222246405745257275088548364400416034343698090271295655641089", "21888242871839275222246405745257275088548364400416034343697719695435683069953", "392904020554940416", "143920376949243904", "440309807983886336", "21888242871839275222246405745257275088548364400416034343697655155374442938369", "21888242871839275222246405745257275088548364400416034343698034019421785161729", "192145566828855296"], ["21888242871839275222246405745257275088548364400416034343697766261368027086849", "507107613272440832", "26703920508174336", "63894196943060992", "297758400320634880", "142654478288420864", "21888242871839275222246405745257275088548364400416034343697582144813061373953", "21888242871839275222246405745257275088548364400416034343698052745273037291521", "150765223379206144", "21888242871839275222246405745257275088548364400416034343697901150210436890625"], ["120920784129490944", "21888242871839275222246405745257275088548364400416034343697773823568484761601", "360345144794284032", "21888242871839275222246405745257275088548364400416034343697933393388921421825", "21888242871839275222246405745257275088548364400416034343698012513902058799105", "21888242871839275222246405745257275088548364400416034343698158040025546096641", "21888242871839275222246405745257275088548364400416034343697699136526748745729", "21888242871839275222246405745257275088548364400416034343698203715140166090753", "505553419226841088", "327821590844669952"], ["21888242871839275222246405745257275088548364400416034343697866274148280434689", "21888242871839275222246405745257275088548364400416034343697831767487671173121", "21888242871839275222246405745257275088548364400416034343698194363592613036033", "416760364860964864", "21888242871839275222246405745257275088548364400416034343697956377098952114177", "21888242871839275222246405745257275088548364400416034343698125305146320617473", "21888242871839275222246405745257275088548364400416034343698045778217607888897", "432936860965142528", "21888242871839275222246405745257275088548364400416034343698046792998120849409", "257006170068221952"], ["13514554831011840", "125784336376004608", "21888242871839275222246405745257275088548364400416034343698131879349681389569", "21888242871839275222246405745257275088548364400416034343697490058721370308609", "21888242871839275222246405745257275088548364400416034343698052321806441775105", "1163553507169533952", "329674611534856192", "21888242871839275222246405745257275088548364400416034343698142904346046627841", "21888242871839275222246405745257275088548364400416034343697777578022736494593", "21888242871839275222246405745257275088548364400416034343697991063959209246721"], ["21888242871839275222246405745257275088548364400416034343698128360826573160449", "15091863316856832", "21888242871839275222246405745257275088548364400416034343698082918217155608577", "286869489994170368", "21888242871839275222246405745257275088548364400416034343697883679692226035713", "120134212408836096", "21888242871839275222246405745257275088548364400416034343698086513817746931713", "25603878451937280", "127067835812806656", "21888242871839275222246405745257275088548364400416034343698180220858012794881"], ["311146878534156288", "21888242871839275222246405745257275088548364400416034343697936514541655425025", "496748117794750464", "21888242871839275222246405745257275088548364400416034343698082892653510262785", "21888242871839275222246405745257275088548364400416034343698000696608781500417", "21888242871839275222246405745257275088548364400416034343698012011304985821185", "21888242871839275222246405745257275088548364400416034343698158088872209154049", "507977052092104704", "109802866146803712", "21888242871839275222246405745257275088548364400416034343697888908660290093057"], ["21888242871839275222246405745257275088548364400416034343697824616916879147009", "19762755141632000", "106495346191892480", "21888242871839275222246405745257275088548364400416034343698138278361326157825", "21888242871839275222246405745257275088548364400416034343698155005717050818561", "1361955067527168", "322541014453583872", "221343888378429440", "21888242871839275222246405745257275088548364400416034343698058731581274587137", "21888242871839275222246405745257275088548364400416034343698157614450121637889"], ["21888242871839275222246405745257275088548364400416034343697976095001750274049", "65091161378783232", "191978990817247232", "21888242871839275222246405745257275088548364400416034343697921100093008642049", "581448411924922368", "21888242871839275222246405745257275088548364400416034343697995460407992516609", "156834201147015168", "21888242871839275222246405745257275088548364400416034343698113095404701614081", "21888242871839275222246405745257275088548364400416034343698137575970964504577", "21888242871839275222246405745257275088548364400416034343698199572425870409729"], ["21888242871839275222246405745257275088548364400416034343698001768134402375681", "282149527094296576", "181892947317358592", "154537957011750912", "411457351560724480", "21888242871839275222246405745257275088548364400416034343697921604768845791233", "21888242871839275222246405745257275088548364400416034343697610841929107374081", "138138079658508288", "100389929921544192", "21888242871839275222246405745257275088548364400416034343698089678461319774209"], ["422895467945263104", "21888242871839275222246405745257275088548364400416034343697782434393797689345", "21888242871839275222246405745257275088548364400416034343698087930985155919873", "312876513403863040", "21888242871839275222246405745257275088548364400416034343697851089617822941185", "111781025004126208", "21888242871839275222246405745257275088548364400416034343698114328146214912001", "195027507064340480", "26068248168497152", "254111997765877760"], ["25497923756228608", "21888242871839275222246405745257275088548364400416034343697568965997971374081", "39898601207365632", "155285006443347968", "21888242871839275222246405745257275088548364400416034343697631897954736406529", "379938716879159296", "27994178076016640", "207699275495243776", "107090216342257664", "193576271974760448"], ["21888242871839275222246405745257275088548364400416034343697915862088333393921", "253910237382180864", "21888242871839275222246405745257275088548364400416034343697628758986478059521", "21888242871839275222246405745257275088548364400416034343697740788672908754945", "21888242871839275222246405745257275088548364400416034343698047718683832221697", "561224750957854720", "564792803628941312", "21888242871839275222246405745257275088548364400416034343697820479626422517761", "21888242871839275222246405745257275088548364400416034343697886678335312887809", "21888242871839275222246405745257275088548364400416034343698153573719119757313"], ["21888242871839275222246405745257275088548364400416034343697839063743753879553", "75916725232599040", "21888242871839275222246405745257275088548364400416034343697735678486460235777", "21888242871839275222246405745257275088548364400416034343698093923821743505409", "252630148149411840", "662467369326608384", "149998245299355648", "50367180264439808", "21888242871839275222246405745257275088548364400416034343697915625006138654721", "21888242871839275222246405745257275088548364400416034343697850561817881870337"], ["421444799791366144", "21888242871839275222246405745257275088548364400416034343697832695372405800961", "261872402374328320", "21888242871839275222246405745257275088548364400416034343697791077036228345857", "21888242871839275222246405745257275088548364400416034343698089085970581291009", "21888242871839275222246405745257275088548364400416034343698081767775805636609", "21888242871839275222246405745257275088548364400416034343698163856893028597761", "21888242871839275222246405745257275088548364400416034343698124972191865896961", "26693780090388480", "174808793899597824"], ["21888242871839275222246405745257275088548364400416034343698182134089849503745", "82778751531745280", "21888242871839275222246405745257275088548364400416034343698143870198292152321", "21888242871839275222246405745257275088548364400416034343698007990253524090881", "89887343313420288", "142223280751771648", "147625894343606272", "18083459436118016", "170968852618805248", "21888242871839275222246405745257275088548364400416034343698067781360835100673"], ["21888242871839275222246405745257275088548364400416034343698148758519615062017", "472737429543976960", "21888242871839275222246405745257275088548364400416034343698106329800418263041", "21888242871839275222246405745257275088548364400416034343698063644783343042561", "554692140060377088", "21888242871839275222246405745257275088548364400416034343698030311404719833089", "21888242871839275222246405745257275088548364400416034343698022715222480912385", "21888242871839275222246405745257275088548364400416034343698108801743075672065", "21888242871839275222246405745257275088548364400416034343698170466854139592705", "39649458744459264"], ["330039958632923136", "21888242871839275222246405745257275088548364400416034343698143240654870806529", "21888242871839275222246405745257275088548364400416034343698194888680282259457", "21888242871839275222246405745257275088548364400416034343698016326424268374017", "198249986666790912", "21888242871839275222246405745257275088548364400416034343697817085708905480193", "21888242871839275222246405745257275088548364400416034343697853444806089375745", "21888242871839275222246405745257275088548364400416034343698035683944950661121", "348201141944713216", "21888242871839275222246405745257275088548364400416034343698091225551489466369"], ["246502827545853952", "21888242871839275222246405745257275088548364400416034343698153367161257590785", "21888242871839275222246405745257275088548364400416034343697948040739229270017", "21888242871839275222246405745257275088548364400416034343698144021016068751361", "21888242871839275222246405745257275088548364400416034343697967252952577998849", "14904285988913152", "206055728950018048", "206613112625823744", "103973504604438528", "360527732443971584"], ["21888242871839275222246405745257275088548364400416034343698091656396838797313", "21888242871839275222246405745257275088548364400416034343697783481060147855361", "21888242871839275222246405745257275088548364400416034343697525879504533192705", "21888242871839275222246405745257275088548364400416034343697598137553284759553", "266815067918434304", "859790880008044544", "51771235138273280", "21888242871839275222246405745257275088548364400416034343697940101801420259329", "468063646132469760", "35122561066991616"], ["21888242871839275222246405745257275088548364400416034343698079743403100209153", "21888242871839275222246405745257275088548364400416034343698170756607665766401", "21888242871839275222246405745257275088548364400416034343698140589856890290177", "136220557149470720", "38779010607480832", "21888242871839275222246405745257275088548364400416034343697972855771775369217", "21888242871839275222246405745257275088548364400416034343697937398428745072641", "21888242871839275222246405745257275088548364400416034343698050618766009565185", "312393587281100800", "8952617736601600"], ["35061965520896000", "21888242871839275222246405745257275088548364400416034343698139186923002920961", "21888242871839275222246405745257275088548364400416034343698131528107255922689", "21888242871839275222246405745257275088548364400416034343698099406227237765121", "21888242871839275222246405745257275088548364400416034343698200795119307718657", "21888242871839275222246405745257275088548364400416034343698136405910203924481", "58050971246264320", "91487871466209280", "21888242871839275222246405745257275088548364400416034343698163417526464151553", "21888242871839275222246405745257275088548364400416034343698130601218953707521"], ["80454822037291008", "21888242871839275222246405745257275088548364400416034343697992980906192666625", "21888242871839275222246405745257275088548364400416034343698155775010118041601", "21888242871839275222246405745257275088548364400416034343698185671326130241537", "21888242871839275222246405745257275088548364400416034343697889840908711493633", "192270653456384000", "28229853668966400", "101647195698102272", "21888242871839275222246405745257275088548364400416034343698169215886932574209", "21888242871839275222246405745257275088548364400416034343698136130143238750209"], ["22952337442078720", "21888242871839275222246405745257275088548364400416034343698122969611824529409", "491860891688501248", "166321938522701824", "21888242871839275222246405745257275088548364400416034343697985866756723310593", "21888242871839275222246405745257275088548364400416034343698184863752019509249", "21888242871839275222246405745257275088548364400416034343698002532415242764289", "29948867084550144", "21888242871839275222246405745257275088548364400416034343698031428079036923905", "21888242871839275222246405745257275088548364400416034343697823651786188128257"], ["171286010183811072", "87652439901077504", "21888242871839275222246405745257275088548364400416034343698025822562600091649", "21888242871839275222246405745257275088548364400416034343697968103734059728897", "21888242871839275222246405745257275088548364400416034343698097545836383698945", "21888242871839275222246405745257275088548364400416034343697758848048315760641", "245331091748028416", "53777096534654976", "25675651650420736", "394426706720456704"], ["263607861219688448", "21888242871839275222246405745257275088548364400416034343698056581091149479937", "21888242871839275222246405745257275088548364400416034343697726577931796348929", "21888242871839275222246405745257275088548364400416034343697703427714473525249", "316037574973980672", "92609691154120704", "158603469974929408", "167039953975377920", "35351431284260864", "157952644990631936"], ["21888242871839275222246405745257275088548364400416034343698097680157190914049", "21888242871839275222246405745257275088548364400416034343698113989024187154433", "17801352025473024", "1710485623799808", "108193894088310784", "21888242871839275222246405745257275088548364400416034343698188165912928976897", "139059942848987136", "4363692678316032", "295682625446608896", "165216499840057344"], ["21888242871839275222246405745257275088548364400416034343698088606875569356801", "21888242871839275222246405745257275088548364400416034343698140741164293160961", "21888242871839275222246405745257275088548364400416034343698153366791890403329", "94698789016698880", "21888242871839275222246405745257275088548364400416034343697994672212774223873", "21888242871839275222246405745257275088548364400416034343697961866771531038721", "21888242871839275222246405745257275088548364400416034343698063380556954992641", "401047725224755200", "69428889369182208", "21888242871839275222246405745257275088548364400416034343697842942992575365121"], ["21888242871839275222246405745257275088548364400416034343697769766267499053057", "224528915866058752", "15117798476873728", "21888242871839275222246405745257275088548364400416034343697763423494156058625", "192673658827702272", "21888242871839275222246405745257275088548364400416034343698171931160962138113", "21888242871839275222246405745257275088548364400416034343698016292219148828673", "21888242871839275222246405745257275088548364400416034343697863717886825070593", "131434288544481280", "698248638790369280"], ["112923005268525056", "171769314263695360", "21888242871839275222246405745257275088548364400416034343697933092792750309377", "21888242871839275222246405745257275088548364400416034343697848251331635052545", "572181453048119296", "139048397976895488", "21888242871839275222246405745257275088548364400416034343698158495889079926785", "215677967521546240", "21888242871839275222246405745257275088548364400416034343697963929524064223233", "21888242871839275222246405745257275088548364400416034343698052062304517750785"], ["21888242871839275222246405745257275088548364400416034343698115577500661710849", "54094550452404224", "104637704116895744", "81257834892754944", "21888242871839275222246405745257275088548364400416034343697863484927798935553", "290215028999585792", "21888242871839275222246405745257275088548364400416034343697684983406917582849", "421367284221607936", "409283926310256640", "21888242871839275222246405745257275088548364400416034343697952779823323545601"], ["21888242871839275222246405745257275088548364400416034343698155184361920528385", "127934912400457728", "508141497799933952", "266171338220109824", "21888242871839275222246405745257275088548364400416034343697850057760520011777", "21888242871839275222246405745257275088548364400416034343698132970769590779905", "21888242871839275222246405745257275088548364400416034343697987536227691134977", "506821808968695808", "21888242871839275222246405745257275088548364400416034343697978878759033372673", "21888242871839275222246405745257275088548364400416034343697594568057504661505"], ["350861925724192768", "49641154697756672", "21888242871839275222246405745257275088548364400416034343697567074356935262209", "21888242871839275222246405745257275088548364400416034343697978577699005792257", "345764658537299968", "21888242871839275222246405745257275088548364400416034343698064687807560941569", "173765889940783104", "21888242871839275222246405745257275088548364400416034343698048806410069737473", "322835168173752320", "447742059911053312"], ["231448915633766400", "21888242871839275222246405745257275088548364400416034343698199760329347432449", "21888242871839275222246405745257275088548364400416034343697782235794509922305", "21888242871839275222246405745257275088548364400416034343697875319727362932737", "364885784219615232", "14670014850269184", "21888242871839275222246405745257275088548364400416034343698164067509634859009", "21888242871839275222246405745257275088548364400416034343697777208105793224705", "368683634820907008", "551793758690082816"], ["21888242871839275222246405745257275088548364400416034343698045217226159554561", "21888242871839275222246405745257275088548364400416034343697941064767447760897", "21888242871839275222246405745257275088548364400416034343698067994880839254017", "21888242871839275222246405745257275088548364400416034343697789143545030901761", "196806671496904704", "214159541963587584", "21888242871839275222246405745257275088548364400416034343697624316650264199169", "21888242871839275222246405745257275088548364400416034343697861833461334016001", "798177272044453888", "567775057120591872"], ["134270487378264064", "21888242871839275222246405745257275088548364400416034343698193295854079574017", "150452721558749184", "21888242871839275222246405745257275088548364400416034343698022304898485321729", "15256471159701504", "21888242871839275222246405745257275088548364400416034343698077053044175929345", "21888242871839275222246405745257275088548364400416034343697710143497136242689", "308487503503949824", "171055095562108928", "21888242871839275222246405745257275088548364400416034343697965132613123309569"], ["21888242871839275222246405745257275088548364400416034343698073750231505174529", "156249879436328960", "44716884498579456", "21888242871839275222246405745257275088548364400416034343698018166972373532673", "312101460785496064", "188005699391848448", "21888242871839275222246405745257275088548364400416034343698174059100361457665", "21888242871839275222246405745257275088548364400416034343698130615538374672385", "21888242871839275222246405745257275088548364400416034343697911445315764879361", "130597053389602816"], ["21888242871839275222246405745257275088548364400416034343698031431446291283969", "337397924805738496", "21888242871839275222246405745257275088548364400416034343698002605292247842817", "21888242871839275222246405745257275088548364400416034343698198072008036581377", "2407919727411200", "21888242871839275222246405745257275088548364400416034343698185500506690945025", "21888242871839275222246405745257275088548364400416034343698021849838110375937", "21888242871839275222246405745257275088548364400416034343697996618606053425153", "21888242871839275222246405745257275088548364400416034343698178353681110401025", "431588859709489152"], ["144212735373082624", "21888242871839275222246405745257275088548364400416034343698163643712326860801", "21888242871839275222246405745257275088548364400416034343698049221716227391489", "312869263499067392", "21888242871839275222246405745257275088548364400416034343697924487997571465217", "21888242871839275222246405745257275088548364400416034343698166927322198835201", "21888242871839275222246405745257275088548364400416034343697730227210888937473", "307057038876213248", "333888180610662400", "21888242871839275222246405745257275088548364400416034343698181317734678134785"], ["21888242871839275222246405745257275088548364400416034343697957336783624601601", "21888242871839275222246405745257275088548364400416034343698097687999801196545", "86158959513174016", "428230367082708992", "21888242871839275222246405745257275088548364400416034343698202784827734753281", "21888242871839275222246405745257275088548364400416034343698058290024276819969", "166345698281783296", "223594056104542208", "21888242871839275222246405745257275088548364400416034343697733557700328947713", "324794772772356096"], ["160802802468126720", "24910189694025728", "21888242871839275222246405745257275088548364400416034343697945151892686372865", "21888242871839275222246405745257275088548364400416034343697787278567151763457", "86146203460304896", "21888242871839275222246405745257275088548364400416034343698123208669704224769", "256925424683057152", "61455553167097856", "21888242871839275222246405745257275088548364400416034343698125603131151613953", "313281408560791552"], ["21888242871839275222246405745257275088548364400416034343697741238338804776961", "247151092729643008", "21888242871839275222246405745257275088548364400416034343698080605978562134017", "21888242871839275222246405745257275088548364400416034343697968004966991790081", "245520912122642432", "21888242871839275222246405745257275088548364400416034343698145388967447494657", "21888242871839275222246405745257275088548364400416034343697753990783901368321", "21888242871839275222246405745257275088548364400416034343698137745733841846273", "454994576046817280", "356732905499656192"], ["21888242871839275222246405745257275088548364400416034343697848166463081283585", "21888242871839275222246405745257275088548364400416034343697654800988101410817", "102580079774662656", "21888242871839275222246405745257275088548364400416034343698120932345627279361", "487750264388845568", "72323272124923904", "193901761776320512", "21888242871839275222246405745257275088548364400416034343697665074446794227713", "690555630808727552", "18165856236208128"], ["21888242871839275222246405745257275088548364400416034343697975075324974596097", "21888242871839275222246405745257275088548364400416034343697965985026692612097", "144044441374556160", "21888242871839275222246405745257275088548364400416034343698145939247247392769", "221661956476502016", "350962221800488960", "21888242871839275222246405745257275088548364400416034343698026648072494252033", "21888242871839275222246405745257275088548364400416034343698099760733838376961", "21888242871839275222246405745257275088548364400416034343697773667540912832513", "310736760696995840"], ["258309366225043456", "21888242871839275222246405745257275088548364400416034343698065836702722686977", "21888242871839275222246405745257275088548364400416034343698176121036850855937", "147904929778892800", "21888242871839275222246405745257275088548364400416034343698032977668877582337", "365714678548004864", "194549752082202624", "187685466630258688", "21888242871839275222246405745257275088548364400416034343697768217330493423617", "21888242871839275222246405745257275088548364400416034343698019726595257794561"], ["21888242871839275222246405745257275088548364400416034343697940604054895853569", "4399100120268800", "21888242871839275222246405745257275088548364400416034343698197889998059995137", "644593227269144576", "40508860225552384", "21888242871839275222246405745257275088548364400416034343697542662724897472513", "21888242871839275222246405745257275088548364400416034343697506196253531176961", "293364373898919936", "217729535959891968", "618414542606565376"], ["374825816011309056", "79390048105005056", "21888242871839275222246405745257275088548364400416034343698111900364411240449", "21888242871839275222246405745257275088548364400416034343698073329255990689793", "33433455656173568", "159519242901782528", "21888242871839275222246405745257275088548364400416034343698115495389476945921", "257940617512878080", "21888242871839275222246405745257275088548364400416034343697846925148813262849", "21888242871839275222246405745257275088548364400416034343697534296747080155137"], ["64626677845590016", "21888242871839275222246405745257275088548364400416034343698024298364606087169", "228978862761967616", "21888242871839275222246405745257275088548364400416034343698183559950272299009", "21888242871839275222246405745257275088548364400416034343698060453777260937217", "21888242871839275222246405745257275088548364400416034343698085514550655844353", "89513758468079616", "21888242871839275222246405745257275088548364400416034343698074644254717640705", "551031831491772416", "126472244107935744"], ["21888242871839275222246405745257275088548364400416034343698148148728748310529", "372483409567547392", "119348740199809024", "21888242871839275222246405745257275088548364400416034343697971773800794030081", "21888242871839275222246405745257275088548364400416034343698124620992390103041", "21888242871839275222246405745257275088548364400416034343698112077274114162689", "21888242871839275222246405745257275088548364400416034343697980910965759148033", "544581993204023296", "5448576184352768", "21888242871839275222246405745257275088548364400416034343697912195217054760961"], ["480516336871538688", "21888242871839275222246405745257275088548364400416034343698094518073418579969", "450813957960105984", "21888242871839275222246405745257275088548364400416034343697630887366111526913", "480255786975494144", "155836548963631104", "21888242871839275222246405745257275088548364400416034343697697693142859382785", "382425640382496768", "21888242871839275222246405745257275088548364400416034343697664364780757975041", "21888242871839275222246405745257275088548364400416034343698170557523046694913"], ["21888242871839275222246405745257275088548364400416034343698032768744488435713", "21888242871839275222246405745257275088548364400416034343697736495354880196609", "59083511448993792", "626860097577943040", "21888242871839275222246405745257275088548364400416034343698016775128091721729", "21888242871839275222246405745257275088548364400416034343698041845453493895169", "388751130777092096", "21888242871839275222246405745257275088548364400416034343698010614238023778305", "182242780993552384", "21888242871839275222246405745257275088548364400416034343698037534577639030785"], ["21888242871839275222246405745257275088548364400416034343697776969443050520577", "21888242871839275222246405745257275088548364400416034343697747411959155785729", "21888242871839275222246405745257275088548364400416034343697700366639742058497", "278396241073668096", "21888242871839275222246405745257275088548364400416034343697816971565854621697", "337321783625515008", "585970703249965056", "525378094911979520", "275256070224478208", "21888242871839275222246405745257275088548364400416034343697763445724906782721"], ["21888242871839275222246405745257275088548364400416034343697555662182153191425", "113124327565557760", "21888242871839275222246405745257275088548364400416034343698000893868039471105", "220940058373390336", "21888242871839275222246405745257275088548364400416034343697915826938321043457", "611844204716359680", "220156244021739520", "21888242871839275222246405745257275088548364400416034343698125403209013919745", "62238053258756096", "21888242871839275222246405745257275088548364400416034343698126119764177715201"], ["28766990868938752", "67144228760715264", "67148124296052736", "216971491412017152", "111638852996694016", "21888242871839275222246405745257275088548364400416034343697653971028621131777", "21888242871839275222246405745257275088548364400416034343697943762711284285441", "130752591335260160", "794017888276054016", "21888242871839275222246405745257275088548364400416034343697988896959229853697"], ["177820974723366912", "21888242871839275222246405745257275088548364400416034343698052714005675376641", "21888242871839275222246405745257275088548364400416034343697996113363280592897", "21888242871839275222246405745257275088548364400416034343697984811466078814209", "21888242871839275222246405745257275088548364400416034343698026960969451700225", "455391877701566464", "80669089365753856", "326928134567886848", "21888242871839275222246405745257275088548364400416034343698008955573193670657", "21888242871839275222246405745257275088548364400416034343697770911237060689921"], ["138545586155552768", "333831040365756416", "335560365997817856", "21888242871839275222246405745257275088548364400416034343697946709539885678593", "21888242871839275222246405745257275088548364400416034343698044264860111339521", "21888242871839275222246405745257275088548364400416034343698178408693199011841", "58725178032521216", "21888242871839275222246405745257275088548364400416034343698070492361372205057", "21888242871839275222246405745257275088548364400416034343697927968707787620353", "21888242871839275222246405745257275088548364400416034343698163451117403373569"], ["268682588418211840", "123716850788859904", "388438594596896768", "21888242871839275222246405745257275088548364400416034343698094854919113670657", "245201675793465344", "21888242871839275222246405745257275088548364400416034343697805220810210672641", "21888242871839275222246405745257275088548364400416034343697735483598024212481", "522291593974120448", "21888242871839275222246405745257275088548364400416034343698066245248601817089", "21888242871839275222246405745257275088548364400416034343697762154314140221441"], ["587891000307875840", "57887822618558464", "16842365285171200", "21888242871839275222246405745257275088548364400416034343697892309690272972801", "329055586488418304", "21888242871839275222246405745257275088548364400416034343697709476299736612865", "21888242871839275222246405745257275088548364400416034343698111373423463628801", "111934381106397184", "21888242871839275222246405745257275088548364400416034343697757559455047745537", "64423173705170944"], ["21888242871839275222246405745257275088548364400416034343698103332445821599745", "21888242871839275222246405745257275088548364400416034343697938320541043654657", "21888242871839275222246405745257275088548364400416034343698042877087458525185", "421903021262241792", "21888242871839275222246405745257275088548364400416034343697929678585807765505", "247841895269531648", "292672093890281472", "72973384144650240", "137149257927884800", "21888242871839275222246405745257275088548364400416034343697750392872617639937"], ["46455895281893376", "21888242871839275222246405745257275088548364400416034343698017114585126928385", "21888242871839275222246405745257275088548364400416034343698073737131854921729", "21888242871839275222246405745257275088548364400416034343697742346543446360065", "571016245600583680", "516511908023500800", "288960726750461952", "21888242871839275222246405745257275088548364400416034343698121745906922422273", "87509769677438976", "21888242871839275222246405745257275088548364400416034343697902436054925836289"], ["68392500875755520", "156999488668434432", "21888242871839275222246405745257275088548364400416034343698102051274257072129", "182945248664616960", "96992911438118912", "21888242871839275222246405745257275088548364400416034343697984416140109021185", "21888242871839275222246405745257275088548364400416034343698018325044349894657", "21888242871839275222246405745257275088548364400416034343698069504321325629441", "101834765509853184", "21888242871839275222246405745257275088548364400416034343698127950906304495617"], ["21173636865982464", "38806687376736256", "14819091017629696", "21888242871839275222246405745257275088548364400416034343697795256073767092225", "159668862382505984", "21888242871839275222246405745257275088548364400416034343698161598590634426369", "6061367085760512", "53978414536720384", "41961950741004288", "21888242871839275222246405745257275088548364400416034343698105679757118013441"], ["2035389564977152", "21888242871839275222246405745257275088548364400416034343697980846060213370881", "149962906308444160", "21888242871839275222246405745257275088548364400416034343698053913813379448833", "21888242871839275222246405745257275088548364400416034343698118667695271444481", "86626681451708416", "91069472932102144", "84859517157769216", "102656083515932672", "18574114352529408"], ["21888242871839275222246405745257275088548364400416034343697634067737854607361", "113558763507548160", "16554258878955520", "21888242871839275222246405745257275088548364400416034343698201670066422939649", "18962920561967104", "235284183990140928", "21888242871839275222246405745257275088548364400416034343697998702180588060673", "103959193773408256", "154623564299894784", "21888242871839275222246405745257275088548364400416034343698027637907837157377"], ["321857908495089664", "21888242871839275222246405745257275088548364400416034343698164815439534751745", "269843724236750848", "21888242871839275222246405745257275088548364400416034343697817201260705611777", "21888242871839275222246405745257275088548364400416034343698148123414211067905", "21888242871839275222246405745257275088548364400416034343698094346068568309761", "55884783015690240", "21888242871839275222246405745257275088548364400416034343698194040616441085953", "191044320034291712", "21888242871839275222246405745257275088548364400416034343698184860002513059841"], ["316463567010267136", "21888242871839275222246405745257275088548364400416034343697881545608875999233", "43583326665048064", "21888242871839275222246405745257275088548364400416034343698044578787860938753", "116535442131648512", "21888242871839275222246405745257275088548364400416034343698042620179694747649", "198211400680603648", "21888242871839275222246405745257275088548364400416034343697966906073839304705", "40156488223686656", "21888242871839275222246405745257275088548364400416034343697978140127737675777"], ["21888242871839275222246405745257275088548364400416034343698057745577042509825", "21888242871839275222246405745257275088548364400416034343698138446006784622593", "196793425817763840", "259338045252173824", "12358120927920128", "311463056846618624", "10340809148727296", "21888242871839275222246405745257275088548364400416034343697948457866453057537", "58408965360320512", "56114606715699200"], ["21888242871839275222246405745257275088548364400416034343698175141584591388673", "129385322856316928", "71878446657044480", "63139399390461952", "226048234777214976", "101684622043119616", "124987241985474560", "21888242871839275222246405745257275088548364400416034343698090434100685963265", "21888242871839275222246405745257275088548364400416034343698047095965113909249", "21888242871839275222246405745257275088548364400416034343697991210829910900737"], ["21888242871839275222246405745257275088548364400416034343698062811482378207233", "282261814719283200", "21888242871839275222246405745257275088548364400416034343698097548447723814913", "21888242871839275222246405745257275088548364400416034343697985588545921744897", "234215063550951424", "140482710895329280", "21888242871839275222246405745257275088548364400416034343697970925682192023553", "21888242871839275222246405745257275088548364400416034343697813499205054889985", "21888242871839275222246405745257275088548364400416034343697910209567774474241", "310600283816198144"], ["197052893382049792", "21888242871839275222246405745257275088548364400416034343698167714551049486337", "214025487444344832", "21888242871839275222246405745257275088548364400416034343697512250095834234881", "161956499403309056", "21888242871839275222246405745257275088548364400416034343698043655507331252225", "135421658872676352", "16529932184190976", "603817838553071616", "21888242871839275222246405745257275088548364400416034343697717827090549571585"], ["194509671447396352", "21888242871839275222246405745257275088548364400416034343698037922447545597953", "184996318886756352", "21888242871839275222246405745257275088548364400416034343697802506528318554113", "62140944048193536", "21888242871839275222246405745257275088548364400416034343698187349749957394433", "51748364437422080", "288754533960515584", "21888242871839275222246405745257275088548364400416034343697988675167118688257", "21888242871839275222246405745257275088548364400416034343698173302361483640833"], ["21888242871839275222246405745257275088548364400416034343697687970298973913089", "164057820742811648", "146245354415718400", "512555659028332544", "233271046919159808", "249922978723135488", "21888242871839275222246405745257275088548364400416034343697522002695253131265", "661140327511359488", "21888242871839275222246405745257275088548364400416034343698002205155914678273", "21888242871839275222246405745257275088548364400416034343698110075991152918529"], ["399776140027232256", "21888242871839275222246405745257275088548364400416034343698054990956817547265", "331713243531706368", "21888242871839275222246405745257275088548364400416034343697417326645668216833", "92875833097584640", "21888242871839275222246405745257275088548364400416034343697297530180897603585", "232331170635841536", "21888242871839275222246405745257275088548364400416034343698168019012691165185", "582281429421916160", "113289872785014784"], ["120544270116454400", "53805834160832512", "21888242871839275222246405745257275088548364400416034343698061322666324787201", "21888242871839275222246405745257275088548364400416034343698054107104087638017", "21888242871839275222246405745257275088548364400416034343697996764068005806081", "21888242871839275222246405745257275088548364400416034343698087730882629599233", "436602392213979136", "21888242871839275222246405745257275088548364400416034343698007114200454791169", "159511013744443392", "21888242871839275222246405745257275088548364400416034343698004135589095407617"], ["9930316575670272", "21888242871839275222246405745257275088548364400416034343698107268688859103233", "21888242871839275222246405745257275088548364400416034343697962900621698793473", "51843841560412160", "65782419185205248", "203042878111350784", "21888242871839275222246405745257275088548364400416034343698077597268071940097", "21888242871839275222246405745257275088548364400416034343697876960988985556993", "271809994624598016", "218058839692410880"], ["21888242871839275222246405745257275088548364400416034343698119589060245716993", "199455652706254848", "21888242871839275222246405745257275088548364400416034343697902813771529715713", "21888242871839275222246405745257275088548364400416034343697925851701227552769", "177894298405044224", "21888242871839275222246405745257275088548364400416034343698119551762749718529", "21888242871839275222246405745257275088548364400416034343697989371501576454145", "34812311956881408", "182013068962693120", "245971162134216704"], ["21888242871839275222246405745257275088548364400416034343698197972421703630849", "21888242871839275222246405745257275088548364400416034343698060742811380088833", "21888242871839275222246405745257275088548364400416034343697998504337214537729", "128909990235734016", "174838549433024512", "191243262919442432", "21888242871839275222246405745257275088548364400416034343698013760095409668097", "156647043652124672", "21888242871839275222246405745257275088548364400416034343697955022483446824961", "97105534070554624"], ["21888242871839275222246405745257275088548364400416034343697687940096763887617", "645818976575684608", "154786979215572992", "21888242871839275222246405745257275088548364400416034343698204114186298982401", "21888242871839275222246405745257275088548364400416034343697985063529119481857", "183929277211738112", "21888242871839275222246405745257275088548364400416034343698141612355459481601", "21888242871839275222246405745257275088548364400416034343697772649221346820097", "77164799779143680", "140460102187483136"], ["21888242871839275222246405745257275088548364400416034343697958333490915180545", "177063239413137408", "21888242871839275222246405745257275088548364400416034343698070741031388708865", "317393272811028480", "159695766057648128", "201166802036719616", "21888242871839275222246405745257275088548364400416034343698040305518739718145", "21888242871839275222246405745257275088548364400416034343697734986137732120577", "21512275709919232", "3066256072638464"], ["21888242871839275222246405745257275088548364400416034343698170301491456245761", "21888242871839275222246405745257275088548364400416034343697729672713431154689", "21888242871839275222246405745257275088548364400416034343698182216602613710849", "539101408775897088", "80409278204084224", "203113641992519680", "21888242871839275222246405745257275088548364400416034343697766640699538669569", "74797705863364608", "21888242871839275222246405745257275088548364400416034343697825379840509870081", "439566916080631808"], ["507509519132131328", "238239104309919744", "484811579045445632", "21888242871839275222246405745257275088548364400416034343697879319063470014465", "21888242871839275222246405745257275088548364400416034343698068354704609378305", "21888242871839275222246405745257275088548364400416034343698111335576211816449", "425704410916585472", "21888242871839275222246405745257275088548364400416034343697853936768823328769", "177763525240815616", "21888242871839275222246405745257275088548364400416034343697602084181553184769"], ["21888242871839275222246405745257275088548364400416034343697897779554462728193", "818755181914095616", "21888242871839275222246405745257275088548364400416034343697831694060910280705", "10705086799937536", "21888242871839275222246405745257275088548364400416034343698104924693277442049", "200662486976823296", "271594696503984128", "188295815842758656", "21888242871839275222246405745257275088548364400416034343697650058107256045569", "21888242871839275222246405745257275088548364400416034343698112694667073028097"], ["21888242871839275222246405745257275088548364400416034343698197943237937725441", "21888242871839275222246405745257275088548364400416034343697574804542153818113", "21888242871839275222246405745257275088548364400416034343698002052186359463937", "198711455132942336", "203569595720663040", "216642771795050496", "23710418497175552", "21888242871839275222246405745257275088548364400416034343697696102871088496641", "292730299287076864", "17775365325848576"], ["21888242871839275222246405745257275088548364400416034343697941288552423751681", "21888242871839275222246405745257275088548364400416034343697897705096909684737", "116400623108227072", "21888242871839275222246405745257275088548364400416034343698145412963429777409", "444071202902769664", "21888242871839275222246405745257275088548364400416034343698069996387138797569", "21888242871839275222246405745257275088548364400416034343698136298944043417601", "21888242871839275222246405745257275088548364400416034343697879323805113909249", "21888242871839275222246405745257275088548364400416034343697764975420458926081", "584785842032082944"], ["21888242871839275222246405745257275088548364400416034343697828882128641720321", "428438484018003968", "21888242871839275222246405745257275088548364400416034343698100925425889837057", "324893385221472256", "183411458774663168", "7409447798308864", "21888242871839275222246405745257275088548364400416034343697847607911174373377", "458363926350921728", "21888242871839275222246405745257275088548364400416034343697894186453542371329", "21888242871839275222246405745257275088548364400416034343697956615710155210753"], ["22746170421936128", "21888242871839275222246405745257275088548364400416034343697701553837422149633", "21888242871839275222246405745257275088548364400416034343697890785904595828737", "48320014167572480", "444886044098166784", "21888242871839275222246405745257275088548364400416034343697667961145853476865", "3248994583052288", "408215716404133888", "21888242871839275222246405745257275088548364400416034343698031596613553618945", "235375855772106752"], ["21888242871839275222246405745257275088548364400416034343697944171746789687297", "21888242871839275222246405745257275088548364400416034343697830822148189454337", "21888242871839275222246405745257275088548364400416034343697907065101957988353", "88029280331628544", "257927955949289472", "104552354526789632", "174195936426196992", "21888242871839275222246405745257275088548364400416034343698150660691910983681", "379845808146612224", "79552311969447936"], ["204760349633675264", "129155799804018688", "21888242871839275222246405745257275088548364400416034343698146278983455473665", "144675818746937344", "21888242871839275222246405745257275088548364400416034343698028172837423939585", "21888242871839275222246405745257275088548364400416034343697942831201597259777", "21888242871839275222246405745257275088548364400416034343698030997362536611841", "62194712743772160", "21888242871839275222246405745257275088548364400416034343698132118175632850945", "180009363639894016"], ["74482180385931264", "338848489880420352", "222333139605782528", "21888242871839275222246405745257275088548364400416034343698063855073531789313", "21888242871839275222246405745257275088548364400416034343698067363950143471617", "68792035913498624", "21888242871839275222246405745257275088548364400416034343697976620448049266689", "137008829677174784", "21888242871839275222246405745257275088548364400416034343697841607017228140545", "21888242871839275222246405745257275088548364400416034343698147356977297096705"], ["21888242871839275222246405745257275088548364400416034343698032106357452177409", "438375973189058560", "21888242871839275222246405745257275088548364400416034343697590873354837950465", "21888242871839275222246405745257275088548364400416034343698112875313397497857", "199238499159769088", "81622769673961472", "106004938236100608", "222524076671893504", "21888242871839275222246405745257275088548364400416034343697671601319615397889", "409666934313844736"], ["21888242871839275222246405745257275088548364400416034343697751834641599299585", "21888242871839275222246405745257275088548364400416034343697794225453414744065", "425894214111330304", "476542358251372544", "21888242871839275222246405745257275088548364400416034343697842348500382121985", "88766064791388160", "491032821993832448", "21888242871839275222246405745257275088548364400416034343697879795358163271681", "460939532338987008", "21888242871839275222246405745257275088548364400416034343697086426903302111233"], ["60782510316978176", "21888242871839275222246405745257275088548364400416034343698006839563066015745", "21888242871839275222246405745257275088548364400416034343697935722103009443841", "245486999060873216", "75932968798912512", "45696892956311552", "180967588023500800", "149419764744192000", "363207414079553536", "21888242871839275222246405745257275088548364400416034343697568324776533950465"], ["21888242871839275222246405745257275088548364400416034343698116643391285493761", "244663396132192256", "731356720609099776", "21888242871839275222246405745257275088548364400416034343697990504617028354049", "54382326146138112", "21888242871839275222246405745257275088548364400416034343697837427533012795393", "21888242871839275222246405745257275088548364400416034343697885554187752701953", "100952905644769280", "301465901989888", "98158170425262080"], ["390200733779099648", "21888242871839275222246405745257275088548364400416034343698038256183684366337", "311025210700595200", "21888242871839275222246405745257275088548364400416034343697847139381781987329", "21888242871839275222246405745257275088548364400416034343698110154314176528385", "21888242871839275222246405745257275088548364400416034343697552347154595446785", "407746774694887424", "386532969147269120", "21888242871839275222246405745257275088548364400416034343697957209034117349377", "237055961078956032"], ["21888242871839275222246405745257275088548364400416034343698158246918415712257", "21888242871839275222246405745257275088548364400416034343698181707999028969473", "341039816554577920", "21888242871839275222246405745257275088548364400416034343698025438386365399041", "186003952574136320", "21888242871839275222246405745257275088548364400416034343698022871834168393729", "21888242871839275222246405745257275088548364400416034343698123910621979213825", "21888242871839275222246405745257275088548364400416034343698154572457929867265", "201932594705596416", "21888242871839275222246405745257275088548364400416034343698002040641487372289"], ["56812989872865280", "39212742174834688", "257656926333042688", "21888242871839275222246405745257275088548364400416034343698043023013267374081", "21888242871839275222246405745257275088548364400416034343698019297012628848641", "48146841086197760", "21888242871839275222246405745257275088548364400416034343698182251024629104641", "21888242871839275222246405745257275088548364400416034343697995219872644071425", "21888242871839275222246405745257275088548364400416034343698090558379859640321", "21888242871839275222246405745257275088548364400416034343698042983018531913729"], ["21888242871839275222246405745257275088548364400416034343698077158726141214721", "21888242871839275222246405745257275088548364400416034343698132323088522543105", "135267229028581376", "21888242871839275222246405745257275088548364400416034343698143601951814713345", "89258061885079552", "4710549405302784", "21888242871839275222246405745257275088548364400416034343698072918150311051265", "385400197292752896", "21888242871839275222246405745257275088548364400416034343697728601170630410241", "249206028422348800"], ["78115482200178688", "21888242871839275222246405745257275088548364400416034343698063647635201327105", "21888242871839275222246405745257275088548364400416034343697361087244382765057", "121745246051631104", "48203109452742656", "21888242871839275222246405745257275088548364400416034343698168998896594845697", "95777409923547136", "21888242871839275222246405745257275088548364400416034343698016550518482010113", "299902447994798080", "33117032530575360"], ["21888242871839275222246405745257275088548364400416034343697939509147473018881", "126167172580900864", "78664327480999936", "6881754694549504", "84429917348954112", "79348172173869056", "31617693807280128", "21888242871839275222246405745257275088548364400416034343698153387785690546177", "464044965492686848", "21888242871839275222246405745257275088548364400416034343697884630701064585217"], ["27951954252529664", "205525214589616128", "641894132381384704", "21888242871839275222246405745257275088548364400416034343697739081096991080449", "531507597358923776", "21888242871839275222246405745257275088548364400416034343697840181225524822017", "21888242871839275222246405745257275088548364400416034343697910787910890684417", "409789667299295232", "21888242871839275222246405745257275088548364400416034343697859778748979609601", "21888242871839275222246405745257275088548364400416034343697567272475186692097"], ["21888242871839275222246405745257275088548364400416034343698115091688320925697", "21888242871839275222246405745257275088548364400416034343698036155394920808449", "21888242871839275222246405745257275088548364400416034343698190972793242255361", "50559770892959744", "79969078415982592", "21888242871839275222246405745257275088548364400416034343697996180983245701121", "23466475092180992", "107332272109125632", "64124574693851136", "21888242871839275222246405745257275088548364400416034343697941006836928872449"], ["269187573493006336", "71540965306793984", "595984780277841920", "21888242871839275222246405745257275088548364400416034343698006524552984657921", "21888242871839275222246405745257275088548364400416034343698194929496430215169", "21888242871839275222246405745257275088548364400416034343698092407045452988417", "21888242871839275222246405745257275088548364400416034343698194872551606321153", "21888242871839275222246405745257275088548364400416034343697972827699869122561", "248794742354083840", "21888242871839275222246405745257275088548364400416034343698082249001121349633"], ["136654400385974272", "21888242871839275222246405745257275088548364400416034343698180662659823697921", "81394578061524992", "21888242871839275222246405745257275088548364400416034343698195998818195996673", "104291813220679680", "251395465310896128", "184907172545560576", "21888242871839275222246405745257275088548364400416034343697937538461858791425", "95565616496246784", "21888242871839275222246405745257275088548364400416034343697918776824939151361"], ["21888242871839275222246405745257275088548364400416034343698094268776336850945", "207472088905154560", "21888242871839275222246405745257275088548364400416034343697868840786376785921", "166793921068793856", "77177873659592704", "129623633411702784", "21888242871839275222246405745257275088548364400416034343698038313066231234561", "258985909473509376", "21888242871839275222246405745257275088548364400416034343697589702718551752705", "475193051325661184"], ["36579931517353984", "129046973922672640", "94575712433864704", "21888242871839275222246405745257275088548364400416034343698189515678342447105", "21888242871839275222246405745257275088548364400416034343698127029738898718721", "21888242871839275222246405745257275088548364400416034343697987975843363684353", "21888242871839275222246405745257275088548364400416034343698145362355830128641", "365481891320561664", "28740102226182144", "21888242871839275222246405745257275088548364400416034343698083666460588113921"], ["134198383467298816", "21888242871839275222246405745257275088548364400416034343697929620191432409089", "140709768636399616", "209048256003440640", "21888242871839275222246405745257275088548364400416034343698085564002909290497", "77145042929582080", "120048656660299776", "21888242871839275222246405745257275088548364400416034343698000439340240470017", "21888242871839275222246405745257275088548364400416034343698064035865885147137", "21888242871839275222246405745257275088548364400416034343697965385517977567233"], ["17261517586038784", "88994720260292608", "21888242871839275222246405745257275088548364400416034343698149329707315757057", "160856833156710400", "2458712279089152", "21888242871839275222246405745257275088548364400416034343698054522839742021633", "21888242871839275222246405745257275088548364400416034343698129395166367186945", "126154811665022976", "21888242871839275222246405745257275088548364400416034343698143403739074002945", "21888242871839275222246405745257275088548364400416034343698019514647211671553"], ["21888242871839275222246405745257275088548364400416034343698137903208817754113", "194551366989905920", "21888242871839275222246405745257275088548364400416034343698154207746486960129", "21888242871839275222246405745257275088548364400416034343698203863011964223489", "194078336471793664", "21888242871839275222246405745257275088548364400416034343698171067221848096769", "15008731003617280", "21888242871839275222246405745257275088548364400416034343698154279631354593281", "34409888553631744", "21888242871839275222246405745257275088548364400416034343698087626953010970625"], ["21888242871839275222246405745257275088548364400416034343698189725127791345665", "188519085422673920", "159463683204841472", "86769205646458880", "21888242871839275222246405745257275088548364400416034343697967860621730906113", "21888242871839275222246405745257275088548364400416034343698076016282020347905", "21888242871839275222246405745257275088548364400416034343698076931238903414785", "21888242871839275222246405745257275088548364400416034343698169470118931726337", "21888242871839275222246405745257275088548364400416034343697996760614852100097", "21888242871839275222246405745257275088548364400416034343698165617778080350209"], ["356552551232962560", "38740111088680960", "429509511422672896", "21888242871839275222246405745257275088548364400416034343697912454220762578945", "93499187471056896", "21888242871839275222246405745257275088548364400416034343698074243371060166657", "53997990997655552", "21888242871839275222246405745257275088548364400416034343698104199453689774081", "32307650238611456", "21888242871839275222246405745257275088548364400416034343697819370528427737089"], ["204380949402615808", "17493605807554560", "20299355470692352", "21888242871839275222246405745257275088548364400416034343697948852556767690753", "158513086683152384", "21888242871839275222246405745257275088548364400416034343698178292967452704769", "217715482826899456", "21888242871839275222246405745257275088548364400416034343697853829497720143873", "257819173017616384", "21888242871839275222246405745257275088548364400416034343698174012796319039489"], ["21888242871839275222246405745257275088548364400416034343697786636624159834113", "21888242871839275222246405745257275088548364400416034343698171947303596720129", "21888242871839275222246405745257275088548364400416034343698057742209788149761", "811543004111175680", "21888242871839275222246405745257275088548364400416034343698128143965084450817", "518507109311053824", "21888242871839275222246405745257275088548364400416034343697615183831805984769", "320102538181345280", "21888242871839275222246405745257275088548364400416034343697327502111956533249", "449480422154305536"], ["128615303939620864", "139667981369081856", "21888242871839275222246405745257275088548364400416034343697999432617086156801", "21888242871839275222246405745257275088548364400416034343697812456318275944449", "236100914971148288", "21888242871839275222246405745257275088548364400416034343697815060923883192321", "21888242871839275222246405745257275088548364400416034343698107622697243508737", "47571079245332480", "29200003029270528", "327305679373074432"], ["21888242871839275222246405745257275088548364400416034343698045000639548751873", "102496027264679936", "7648040210923520", "135252669089447936", "21888242871839275222246405745257275088548364400416034343698116428969338208257", "22083398986104832", "241098332758343680", "21888242871839275222246405745257275088548364400416034343698193466570439655425", "21888242871839275222246405745257275088548364400416034343697851483792741498881", "21888242871839275222246405745257275088548364400416034343698095185674545135617"], ["251992757822816256", "21888242871839275222246405745257275088548364400416034343697974299963118583809", "131721587496845312", "241557361683070976", "21888242871839275222246405745257275088548364400416034343697804585429928771585", "114357730503819264", "148909316470996992", "21888242871839275222246405745257275088548364400416034343697517160927080742913", "466078203010613248", "21888242871839275222246405745257275088548364400416034343698083186721331085313"], ["21888242871839275222246405745257275088548364400416034343697787533585129930753", "356277810764972032", "21888242871839275222246405745257275088548364400416034343697403410951629176833", "50304091489828864", "221625225916186624", "21888242871839275222246405745257275088548364400416034343698146580704908017665", "21888242871839275222246405745257275088548364400416034343698058509290947215361", "21888242871839275222246405745257275088548364400416034343697995965822564040705", "21888242871839275222246405745257275088548364400416034343698093493886927241217", "636523980152373248"], ["339047742003216384", "108304549625724928", "348101704861876224", "9833066704928768", "21888242871839275222246405745257275088548364400416034343697774895935919226881", "77267552576733184", "386340657691623424", "21888242871839275222246405745257275088548364400416034343697720327517430087681", "50287336822407168", "21888242871839275222246405745257275088548364400416034343697774320375941824513"], ["156835042960605184", "161432668012019712", "73338945991081984", "158495150899724288", "9246052049747968", "112302494163402752", "291183836182609920", "21888242871839275222246405745257275088548364400416034343697861371425932181505", "21888242871839275222246405745257275088548364400416034343698132141033448800257", "21888242871839275222246405745257275088548364400416034343698026552483702112257"], ["21888242871839275222246405745257275088548364400416034343697810226508694814721", "21888242871839275222246405745257275088548364400416034343697987659922749259777", "21888242871839275222246405745257275088548364400416034343698065628353859158017", "21888242871839275222246405745257275088548364400416034343697786481318142410753", "535421308997992448", "21888242871839275222246405745257275088548364400416034343697785738804196278273", "142658635816763392", "293287682962882560", "216662528644612096", "253826382440693760"], ["253287020447662080", "21888242871839275222246405745257275088548364400416034343697786428507224539137", "66382310152339456", "1000920412978151424", "21888242871839275222246405745257275088548364400416034343698070872354308751361", "407523539474710528", "21888242871839275222246405745257275088548364400416034343698015011270922600449", "21888242871839275222246405745257275088548364400416034343698001316887958388737", "21888242871839275222246405745257275088548364400416034343697940326531289055233", "167042582495363072"], ["21888242871839275222246405745257275088548364400416034343697853909040514465793", "471194849089945600", "21888242871839275222246405745257275088548364400416034343698003841057418117121", "21888242871839275222246405745257275088548364400416034343697748834486683959297", "191283532532809728", "21888242871839275222246405745257275088548364400416034343697818064274254200833", "21888242871839275222246405745257275088548364400416034343697862707538718359553", "570633168877518848", "177245827062824960", "396683248178036736"], ["287052593039933440", "341218658992783360", "21888242871839275222246405745257275088548364400416034343697747456008340373505", "21888242871839275222246405745257275088548364400416034343698192044089082380289", "21888242871839275222246405745257275088548364400416034343698080584125768531969", "21888242871839275222246405745257275088548364400416034343697817741430152495105", "256398346296492032", "139925361579261952", "153852926907908096", "172409487729098752"], ["516564822020587520", "21888242871839275222246405745257275088548364400416034343697931103192100110337", "451638763479629824", "21888242871839275222246405745257275088548364400416034343698153778649189318657", "21888242871839275222246405745257275088548364400416034343697577729380522655745", "223242349822607360", "302556359826604032", "21888242871839275222246405745257275088548364400416034343697543644313903169537", "267335463335886848", "21888242871839275222246405745257275088548364400416034343698126673720469618689"], ["18841993610264576", "56521052355821568", "21888242871839275222246405745257275088548364400416034343697997917850840334337", "68788458205741056", "107883754499866624", "94233498029654016", "196800091607007232", "21888242871839275222246405745257275088548364400416034343698060546952281456641", "51508073902112768", "288424474313752576"], ["569919585831092224", "301900879097757696", "21888242871839275222246405745257275088548364400416034343698196520928379142145", "21888242871839275222246405745257275088548364400416034343697772394306447867905", "21888242871839275222246405745257275088548364400416034343698051843982740160513", "21888242871839275222246405745257275088548364400416034343698185214244973182977", "232704128415956992", "214353897823666176", "21888242871839275222246405745257275088548364400416034343697366617238114664449", "437280516010409984"], ["137004388680990720", "21888242871839275222246405745257275088548364400416034343697932761960009433089", "140136459221860352", "578833223518257152", "21888242871839275222246405745257275088548364400416034343697865347947172986881", "331032405315944448", "368756717984415744", "21888242871839275222246405745257275088548364400416034343697897721142907502593", "114207604216954880", "21888242871839275222246405745257275088548364400416034343697706800809989111809"], ["21888242871839275222246405745257275088548364400416034343697603249870037057537", "133521539571122176", "308282719463276544", "21888242871839275222246405745257275088548364400416034343698156805321232744449", "627156003644768256", "21888242871839275222246405745257275088548364400416034343697904765473388494849", "21888242871839275222246405745257275088548364400416034343697800534176257015809", "582648735025070080", "21888242871839275222246405745257275088548364400416034343697976535699754582017", "173897419019255808"], ["183810220718292992", "21888242871839275222246405745257275088548364400416034343698147991928082268161", "21888242871839275222246405745257275088548364400416034343698195896803059040257", "263035256179785728", "21888242871839275222246405745257275088548364400416034343697939640968609267713", "214451445120892928", "297032963164471296", "21888242871839275222246405745257275088548364400416034343697848600529656086529", "43451509823766528", "21888242871839275222246405745257275088548364400416034343697887383912540274689"], ["21888242871839275222246405745257275088548364400416034343698158735578319814657", "21888242871839275222246405745257275088548364400416034343697920848304845881345", "21888242871839275222246405745257275088548364400416034343697854606337044905985", "21888242871839275222246405745257275088548364400416034343698187723642966638593", "423255695442313216", "122300757121695744", "21888242871839275222246405745257275088548364400416034343698109811043210362881", "481118628725391360", "21888242871839275222246405745257275088548364400416034343698017273395837665281", "315047602192121856"], ["21888242871839275222246405745257275088548364400416034343697769047908448993281", "96991227810938880", "21888242871839275222246405745257275088548364400416034343697915289036616892417", "67623083254480896", "183953724165586944", "21888242871839275222246405745257275088548364400416034343698026549374145789953", "21888242871839275222246405745257275088548364400416034343697989652547056435201", "336260480026804224", "21888242871839275222246405745257275088548364400416034343697929606997292875777", "499133611350425600"], ["67434413931102208", "21888242871839275222246405745257275088548364400416034343698110311484209758209", "803502756613586944", "141029477411979264", "21888242871839275222246405745257275088548364400416034343698113635256320917505", "46975551964971008", "323988555871289344", "21888242871839275222246405745257275088548364400416034343697624849569806286849", "21888242871839275222246405745257275088548364400416034343697987153288407023617", "21888242871839275222246405745257275088548364400416034343697616774687692423169"], ["233980764495020032", "505286340980506624", "315015166599102464", "30042422209675264", "21888242871839275222246405745257275088548364400416034343698161830411494227969", "21888242871839275222246405745257275088548364400416034343697979648949748760577", "108774522127122432", "21888242871839275222246405745257275088548364400416034343697870839217479745537", "199905249882800128", "21888242871839275222246405745257275088548364400416034343698185351967394496513"], ["132580752754737152", "21888242871839275222246405745257275088548364400416034343698178373294078558209", "2620169763422208", "21888242871839275222246405745257275088548364400416034343697887054230850633729", "142643569071489024", "21888242871839275222246405745257275088548364400416034343697887975071838896129", "172292475640086528", "300861050335526912", "21888242871839275222246405745257275088548364400416034343697952116955250950145", "21888242871839275222246405745257275088548364400416034343697777701271118020609"], ["222696545378631680", "57941763112828928", "21888242871839275222246405745257275088548364400416034343698163957485457637377", "114394890560864256", "21888242871839275222246405745257275088548364400416034343698185148055232184321", "73247995763621888", "21888242871839275222246405745257275088548364400416034343698121931157451833345", "21888242871839275222246405745257275088548364400416034343698184624990492557313", "21888242871839275222246405745257275088548364400416034343698089811038370267137", "21888242871839275222246405745257275088548364400416034343698008084742804602881"], ["21888242871839275222246405745257275088548364400416034343697822916693945483265", "283007111804223488", "596468290516156416", "21888242871839275222246405745257275088548364400416034343697997846726181912577", "327323718235717632", "21888242871839275222246405745257275088548364400416034343698202249791713312769", "21888242871839275222246405745257275088548364400416034343698012392715261575169", "21888242871839275222246405745257275088548364400416034343697852032483403497473", "21888242871839275222246405745257275088548364400416034343697937568354831171585", "319162593178550272"], ["159975007651364864", "229188594604965888", "262750345229238272", "21888242871839275222246405745257275088548364400416034343697982892113913708545", "21888242871839275222246405745257275088548364400416034343698052765957599789057", "21888242871839275222246405745257275088548364400416034343698038040679405322241", "135520408760745984", "21888242871839275222246405745257275088548364400416034343697918125793796423681", "21888242871839275222246405745257275088548364400416034343698162610944490864641", "21888242871839275222246405745257275088548364400416034343698136678370044280833"], ["21888242871839275222246405745257275088548364400416034343698051543077331402753", "21888242871839275222246405745257275088548364400416034343698167517205892169729", "21888242871839275222246405745257275088548364400416034343697859428176569040897", "289185233280958464", "21888242871839275222246405745257275088548364400416034343698186302558547476481", "21888242871839275222246405745257275088548364400416034343698035985451654840321", "21888242871839275222246405745257275088548364400416034343698191601838447394817", "534538023203766272", "21888242871839275222246405745257275088548364400416034343698043298303491178497", "17930220371705856"], ["21888242871839275222246405745257275088548364400416034343698142565198249066497", "3270501631787008", "21888242871839275222246405745257275088548364400416034343698186896538565869569", "21888242871839275222246405745257275088548364400416034343698154531763114737665", "183825802859642880", "21888242871839275222246405745257275088548364400416034343698101049687883644929", "59613991449657344", "21888242871839275222246405745257275088548364400416034343698019152014532935681", "21888242871839275222246405745257275088548364400416034343698017578802372149249", "371904447976046592"], ["21888242871839275222246405745257275088548364400416034343697875464897257537537", "519136888955600896", "548397058034237440", "21888242871839275222246405745257275088548364400416034343697756311406271004673", "216331403845959680", "21888242871839275222246405745257275088548364400416034343697826065970125340673", "21888242871839275222246405745257275088548364400416034343698144596760729747457", "21888242871839275222246405745257275088548364400416034343697956730162443714561", "21888242871839275222246405745257275088548364400416034343698068516392948203521", "21888242871839275222246405745257275088548364400416034343697966697286889111553"], ["104183287987044352", "423159350735929344", "841717245309616128", "21888242871839275222246405745257275088548364400416034343697741692196588879873", "129676143681863680", "21888242871839275222246405745257275088548364400416034343697839702319491448833", "21888242871839275222246405745257275088548364400416034343698014551606342713345", "21888242871839275222246405745257275088548364400416034343698199047515368587265", "21888242871839275222246405745257275088548364400416034343698174283514550157313", "21888242871839275222246405745257275088548364400416034343698095362292190281729"]], "dense_bias": ["16475843018052268909054436227153920", "141925774964260306752925122347139072", "21888242871839275222246405745257275088548275784676903609522060900989078077441", "122524105229198455837836502385033216", "21888242871839275222246405745257275088548346649456399686269765197519757770753", "21888242871839275222246405745257275088548337705011561738986653278498971451393", "21888242871839275222246405745257275088548296260581487161654563336073076801537", "8656703625945966105032705397751808", "67080761988292929391111003168571392", "21888242871839275222246405745257275088548208930358907302674429674533712560129"], "dense_out": ["21888242871839275222246405745257275088548364400416034343696001558406187208579", "21888242871839275222246405745257275088548364400416034343694494011253998843463", "2502586410316628302", "7723360444146681933", "21888242871839275222246405745257275088548364400416034343688179933383346961393", "21888242871839275222246405745257275088548364400416034343697101907583287035462", "21888242871839275222246405745257275088548364400416034343680804147065276585857", "21047995401855287971", "21888242871839275222246405745257275088548364400416034343695951614145619839501", "4230622081176419220"], "dense_remainder": ["810600544727465984", "447961300319338496", "305935300122116096", "418296000603226112", "171650430479106048", "534434394401406976", "281495939674275840", "438486732280954880", "701072060353347584", "853999306362847232"], "argmax_out": "7"} \ No newline at end of file diff --git a/models/mnist_latest.ipynb b/models/mnist_latest.ipynb deleted file mode 100644 index 888a94d..0000000 --- a/models/mnist_latest.ipynb +++ /dev/null @@ -1,481 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from tensorflow.keras.layers import Input, Conv2D, AveragePooling2D, Flatten, Softmax, Dense, Lambda, BatchNormalization\n", - "from tensorflow.keras import Model\n", - "from tensorflow.keras.datasets import mnist\n", - "from tensorflow.keras.utils import to_categorical\n", - "from tensorflow.keras.optimizers import Adam, SGD\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import tensorflow as tf" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "(X_train, y_train), (X_test, y_test) = mnist.load_data()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# Convert y_train into one-hot format\n", - "temp = []\n", - "for i in range(len(y_train)):\n", - " temp.append(to_categorical(y_train[i], num_classes=10))\n", - "y_train = np.array(temp)\n", - "# Convert y_test into one-hot format\n", - "temp = []\n", - "for i in range(len(y_test)): \n", - " temp.append(to_categorical(y_test[i], num_classes=10))\n", - "y_test = np.array(temp)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "#reshaping\n", - "X_train = X_train.reshape(X_train.shape[0], 28, 28, 1)\n", - "X_test = X_test.reshape(X_test.shape[0], 28, 28, 1)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "inputs = Input(shape=(28,28,1))\n", - "out = Lambda(lambda x: x/100)(inputs)\n", - "out = Conv2D(4, 3, use_bias=False)(out)\n", - "out = BatchNormalization()(out)\n", - "out = Lambda(lambda x: x**2+x)(out)\n", - "out = AveragePooling2D()(out)\n", - "# out = Lambda(lambda x: x*4)(out)\n", - "out = Conv2D(8, 3, use_bias=False)(out)\n", - "out = BatchNormalization()(out)\n", - "out = Lambda(lambda x: x**2+x)(out)\n", - "out = AveragePooling2D()(out)\n", - "# out = Lambda(lambda x: x*4)(out)\n", - "out = Flatten()(out)\n", - "out = Dense(10, activation=None)(out)\n", - "out = Softmax()(out)\n", - "model = Model(inputs, out)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: \"model\"\n", - "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", - "=================================================================\n", - "input_1 (InputLayer) [(None, 28, 28, 1)] 0 \n", - "_________________________________________________________________\n", - "lambda (Lambda) (None, 28, 28, 1) 0 \n", - "_________________________________________________________________\n", - "conv2d (Conv2D) (None, 26, 26, 4) 36 \n", - "_________________________________________________________________\n", - "batch_normalization (BatchNo (None, 26, 26, 4) 16 \n", - "_________________________________________________________________\n", - "lambda_1 (Lambda) (None, 26, 26, 4) 0 \n", - "_________________________________________________________________\n", - "average_pooling2d (AveragePo (None, 13, 13, 4) 0 \n", - "_________________________________________________________________\n", - "conv2d_1 (Conv2D) (None, 11, 11, 8) 288 \n", - "_________________________________________________________________\n", - "batch_normalization_1 (Batch (None, 11, 11, 8) 32 \n", - "_________________________________________________________________\n", - "lambda_2 (Lambda) (None, 11, 11, 8) 0 \n", - "_________________________________________________________________\n", - "average_pooling2d_1 (Average (None, 5, 5, 8) 0 \n", - "_________________________________________________________________\n", - "flatten (Flatten) (None, 200) 0 \n", - "_________________________________________________________________\n", - "dense (Dense) (None, 10) 2010 \n", - "_________________________________________________________________\n", - "softmax (Softmax) (None, 10) 0 \n", - "=================================================================\n", - "Total params: 2,382\n", - "Trainable params: 2,358\n", - "Non-trainable params: 24\n", - "_________________________________________________________________\n" - ] - } - ], - "source": [ - "model.summary()" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "model.compile(\n", - " loss='categorical_crossentropy',\n", - " optimizer=SGD(learning_rate=0.01, momentum=0.9),\n", - " metrics=['acc']\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/15\n", - "1875/1875 [==============================] - 10s 5ms/step - loss: 0.3031 - acc: 0.9112 - val_loss: 0.0945 - val_acc: 0.9705\n", - "Epoch 2/15\n", - "1875/1875 [==============================] - 10s 6ms/step - loss: 0.0758 - acc: 0.9761 - val_loss: 0.0792 - val_acc: 0.9745\n", - "Epoch 3/15\n", - "1875/1875 [==============================] - 9s 5ms/step - loss: 0.0610 - acc: 0.9807 - val_loss: 0.0588 - val_acc: 0.9808\n", - "Epoch 4/15\n", - "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0535 - acc: 0.9837 - val_loss: 0.0513 - val_acc: 0.9837\n", - "Epoch 5/15\n", - "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0502 - acc: 0.9838 - val_loss: 0.0493 - val_acc: 0.9846\n", - "Epoch 6/15\n", - "1875/1875 [==============================] - 9s 5ms/step - loss: 0.0445 - acc: 0.9854 - val_loss: 0.0502 - val_acc: 0.9837\n", - "Epoch 7/15\n", - "1875/1875 [==============================] - 9s 5ms/step - loss: 0.0428 - acc: 0.9858 - val_loss: 0.0470 - val_acc: 0.9856\n", - "Epoch 8/15\n", - "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0417 - acc: 0.9866 - val_loss: 0.0653 - val_acc: 0.9800\n", - "Epoch 9/15\n", - "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0401 - acc: 0.9870 - val_loss: 0.0500 - val_acc: 0.9851\n", - "Epoch 10/15\n", - "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0412 - acc: 0.9883 - val_loss: 0.0537 - val_acc: 0.9843\n", - "Epoch 11/15\n", - "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0348 - acc: 0.9886 - val_loss: 0.0399 - val_acc: 0.9869\n", - "Epoch 12/15\n", - "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0340 - acc: 0.9893 - val_loss: 0.0430 - val_acc: 0.9860\n", - "Epoch 13/15\n", - "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0339 - acc: 0.9891 - val_loss: 0.0425 - val_acc: 0.9866\n", - "Epoch 14/15\n", - "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0348 - acc: 0.9879 - val_loss: 0.0485 - val_acc: 0.9846\n", - "Epoch 15/15\n", - "1875/1875 [==============================] - 8s 4ms/step - loss: 0.0336 - acc: 0.9885 - val_loss: 0.0476 - val_acc: 0.9831\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model.fit(X_train, y_train, epochs=15, batch_size=32, validation_data=(X_test, y_test))" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "((28, 28, 1), 0, 255)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X = X_test[0]\n", - "X.shape, X.min(), X.max()" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "model2 = Model(model.input, model.layers[-2].output)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[ -2.9271724, -5.1743965, 4.3266096, 8.861395 , -10.59499 ,\n", - " -6.1087027, -14.946421 , 20.252651 , 1.7481048, 6.408617 ]],\n", - " dtype=float32)" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y = model2.predict(X_test[[0]]) - model.layers[-2].weights[1].numpy()\n", - "y" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "12\n", - "(3, 3, 1, 4)\n", - "(4,)\n", - "(4,)\n", - "(4,)\n", - "(4,)\n", - "(3, 3, 4, 8)\n", - "(8,)\n", - "(8,)\n", - "(8,)\n", - "(8,)\n", - "(200, 10)\n", - "(10,)\n" - ] - } - ], - "source": [ - "print(len(model.weights))\n", - "for weights in model.weights:\n", - " print(weights.shape)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "gamma = model.layers[3].weights[0].numpy()\n", - "beta = model.layers[3].weights[1].numpy()\n", - "moving_mean = model.layers[3].weights[2].numpy()\n", - "moving_var = model.layers[3].weights[3].numpy()\n", - "epsilon = model.layers[3].epsilon" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([0.7930184 , 0.86564696, 0.80535203, 0.7487028 ], dtype=float32),\n", - " array([-0.6174586, 2.336494 , -0.046653 , -1.3925927], dtype=float32))" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a1 = gamma/(moving_var+epsilon)**.5\n", - "b1 = beta-gamma*moving_mean/(moving_var+epsilon)**.5\n", - "a1, b1" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "gamma = model.layers[7].weights[0].numpy()\n", - "beta = model.layers[7].weights[1].numpy()\n", - "moving_mean = model.layers[7].weights[2].numpy()\n", - "moving_var = model.layers[7].weights[3].numpy()\n", - "epsilon = model.layers[7].epsilon" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([0.10420316, 0.1040957 , 0.09440491, 0.12571144, 0.12500723,\n", - " 0.11510107, 0.10298571, 0.11865856], dtype=float32),\n", - " array([-0.14729536, 0.84251314, -0.10289041, 0.4494599 , -0.4984228 ,\n", - " -0.4116003 , 0.7156993 , 0.08575855], dtype=float32))" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a2 = gamma/(moving_var+epsilon)**.5\n", - "b2 = beta-gamma*moving_mean/(moving_var+epsilon)**.5\n", - "a2, b2" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "in_json = {\n", - " \"in\": X.astype(int).flatten().tolist(), # X is already 100 times to begin with\n", - " \"conv2d_1_weights\": (model.layers[2].weights[0].numpy()*(10**2)).round().astype(int).flatten().tolist(),\n", - " \"conv2d_1_bias\": (np.array([0]*4)*(10**2)**2).round().astype(int).flatten().tolist(),\n", - " \"bn_1_a\": (a1*(10**2)).round().astype(int).flatten().tolist(),\n", - " \"bn_1_b\": (b1*(10**2)**3).round().astype(int).flatten().tolist(),\n", - " # poly layer would be (10**2)**3=10**6 times as well\n", - " # average pooling will scale another 10**2 times\n", - " \"conv2d_2_weights\": (model.layers[6].weights[0].numpy()*(10**2)).round().astype(int).flatten().tolist(),\n", - " \"conv2d_2_bias\": (np.array([0]*8)*((10**2)**8)).round().astype(int).flatten().tolist(),\n", - " \"bn_2_a\": (a2*(10**2)).round().astype(int).flatten().tolist(),\n", - " \"bn_2_b\": (b2*(10**2)**9).round().astype(int).flatten().tolist(),\n", - " # poly layer would be (10**2)**9=10**18 times as well\n", - " # average pooling will scale another 10**2 times\n", - " \"dense_weights\":(model.layers[11].weights[0].numpy()*(10**2)).round().astype(int).flatten().tolist(),\n", - " \"dense_bias\": np.zeros(model.layers[11].weights[1].numpy().shape).tolist() # zero because we are not doing softmax in circom, just argmax\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'scale': 1e-40,\n", - " 'out': [-2.9271724224090576,\n", - " -5.174396514892578,\n", - " 4.3266096115112305,\n", - " 8.861394882202148,\n", - " -10.594989776611328,\n", - " -6.108702659606934,\n", - " -14.946420669555664,\n", - " 20.25265121459961,\n", - " 1.7481048107147217,\n", - " 6.40861701965332],\n", - " 'label': 7}" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "out_json = {\n", - " \"scale\": 10**-40,\n", - " \"out\": y.flatten().tolist(),\n", - " \"label\": int(y.argmax())\n", - "}\n", - "out_json" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "with open(\"mnist_latest_input.json\", \"w\") as f:\n", - " json.dump(in_json, f)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "with open(\"mnist_latest_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "interpreter": { - "hash": "11280bdb37aa6bc5d4cf1e4de756386eb1f9eecd8dcdefa77636dfac7be2370d" - }, - "kernelspec": { - "display_name": "Python 3.8.6 ('tf24')", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.6" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/models/mnist_latest_input.json b/models/mnist_latest_input.json deleted file mode 100644 index 1fdaeee..0000000 --- a/models/mnist_latest_input.json +++ /dev/null @@ -1 +0,0 @@ -{"in": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 185, 159, 151, 60, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 254, 254, 254, 254, 241, 198, 198, 198, 198, 198, 198, 198, 198, 170, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 114, 72, 114, 163, 227, 254, 225, 254, 254, 254, 250, 229, 254, 254, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 66, 14, 67, 67, 67, 59, 21, 236, 254, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 253, 209, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 233, 255, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 254, 238, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 249, 254, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 254, 187, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 205, 248, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 254, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 251, 240, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 221, 254, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 203, 254, 219, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 254, 254, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 224, 254, 115, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 254, 254, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 242, 254, 254, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 254, 254, 219, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 254, 207, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "conv2d_1_weights": [7, 12, -17, -61, 18, 36, -57, -9, -90, 3, -10, 50, 16, -52, 60, -60, 147, -58, 117, 182, -107, 4, 135, 25, -72, -17, 2, 80, 116, -100, -103, 88, 100, -89, -15, -81], "conv2d_1_bias": [0, 0, 0, 0], "bn_1_a": [79, 87, 81, 75], "bn_1_b": [-617459, 2336494, -46653, -1392593], "conv2d_2_weights": [30, 4, 25, -30, -38, 54, -32, -25, -23, -18, 30, 0, 18, 19, -43, -32, -19, 5, -11, 36, 11, 5, -54, 58, 6, 65, -90, -3, 3, 28, 3, 11, 5, -57, 4, 72, -94, 14, 37, -3, -61, -28, -2, -27, 44, 19, -30, -43, -7, -19, -6, 5, -13, -7, 5, 9, 30, 62, -64, 0, 16, 13, 16, 59, 25, -33, 6, 98, -32, -6, 21, -11, -11, -23, -19, -37, 10, 24, -30, -9, 7, -37, -2, -24, -70, -42, 33, -29, 12, 48, -11, -62, -11, -50, 12, 71, 67, 32, 9, -9, -29, 21, -46, -2, 16, -44, 32, -39, 15, 10, -9, 48, -30, -21, 20, -9, 18, -13, -14, 37, -49, -26, -44, -21, 12, -1, 21, -66, 36, 52, -54, -25, 9, -5, 19, 8, -19, -7, -20, -41, -40, 5, -57, 19, 48, 13, 6, 17, -50, -3, 45, -15, 19, -83, 55, -5, 6, 9, 11, -21, -9, 5, -38, -2, 44, -15, 42, -46, -9, -48, -13, -31, 4, 19, -4, 31, 69, 15, 42, -26, 56, -15, 5, -73, 9, 27, 70, 2, -5, -13, 4, 0, -16, 40, -45, 25, 8, -79, -38, 44, 23, -23, 23, -17, -22, 22, 12, 22, 15, 43, 21, 15, 77, -73, -13, 45, -30, -32, 20, 2, 21, 4, -92, -95, -53, 21, -6, -57, 14, -38, 59, -12, 38, -14, -11, 13, -12, 23, -29, 15, 53, 15, -6, 8, 59, -14, 57, -14, -51, -73, 61, 45, -21, 17, 6, -35, -50, 46, -9, -41, 59, -49, 28, -12, 30, -21, -40, 6, 36, 0, -23, 17, 25, 9, 13, 39, 0, -47, 1, -73, -30, 2, 49, 86, -69, 17, 23, -1], "conv2d_2_bias": [0, 0, 0, 0, 0, 0, 0, 0], "bn_2_a": [10, 10, 9, 13, 13, 12, 10, 12], "bn_2_b": [-147295355796813952, 842513144016265856, -102890409529209136, 449459910392761216, -498422801494598400, -411600291728973376, 715699315071105920, 85758551955223088], "dense_weights": [-12, 12, -8, 17, -4, -28, 0, 17, -16, 6, -1, 3, -17, -2, -3, 11, 2, 5, -3, -5, -19, -5, 7, 27, -3, -9, 8, -31, 8, -8, 5, -1, 17, 3, 18, -5, 7, 7, -11, -4, 10, 7, -6, 1, 22, 14, -11, 5, -3, -14, -6, 11, -1, -10, 2, 16, -22, 9, -11, -4, -4, -12, -20, 21, 16, -6, 21, -15, 1, 2, 9, 6, 9, -16, 28, -2, -37, -12, -8, -7, -23, -5, 34, 49, -29, -12, -10, 40, -11, 8, -12, 33, 6, 24, 4, 10, -6, 0, -7, -18, 3, -25, 3, -3, -13, -23, 50, -35, 5, -3, -9, 2, -7, 2, -3, -19, 0, 0, -11, -18, -6, -20, 30, 33, -17, -17, -44, 20, 18, -26, 12, 19, 0, -26, -19, 34, -17, -17, 15, 3, -8, -1, 17, 1, 7, 27, 36, -30, 4, -10, 23, -26, 7, 16, -46, -8, -15, -16, 10, 57, -1, -6, 25, 18, -38, 16, -24, 42, -13, 5, 15, -8, 20, -17, -13, 0, -7, 20, -12, -16, -11, 12, -2, -13, 16, 24, 35, -28, 12, -27, -5, 6, 44, 24, -23, -52, 20, 18, -21, 29, -1, -33, 8, 35, -47, 11, -78, 29, 11, 27, 16, 27, -25, -48, 8, 18, -3, -11, 21, -31, -40, 36, -11, 14, 53, 3, 35, -8, -14, -97, 17, 2, 30, -3, -104, -8, -22, 23, 5, 18, -13, -20, 6, -6, -32, 46, 4, -1, -15, 17, 5, -18, 8, -27, -9, 19, -17, 22, 17, -1, -31, 31, -1, -18, 15, 16, 37, -34, 24, -11, 1, -6, 27, 12, -15, -29, -3, -13, -19, -9, -1, -27, -3, 18, -42, -12, 9, 1, 10, 22, 21, 23, -14, 20, 16, 16, 25, 39, -21, -46, -19, 43, 50, 36, 26, -1, 0, -17, -15, -51, 34, 7, 7, -25, -81, 26, 3, 5, 15, 42, 9, -18, -23, -28, -1, 50, 1, 1, 29, 9, 19, 0, 18, 13, -5, -12, 24, -36, -2, 23, 0, 21, -19, -16, 29, 21, -1, -22, 7, -29, 15, -21, 12, 7, 18, -13, 7, 8, -8, -7, 34, -33, -8, 25, 5, -3, -21, -15, 23, -1, 1, -6, 49, 16, -7, -15, 27, 17, -32, -16, -10, 12, 21, 39, 12, -26, 14, 3, -17, -13, 50, 13, -18, -52, 9, 11, 30, -32, -32, 11, -7, 7, 23, 29, -14, -34, -9, 44, 1, 0, -14, -13, 2, -9, -5, 14, 17, 46, 23, -5, -3, -14, -16, 8, -34, 6, 14, -25, -2, 47, -4, 4, -16, 6, 13, -10, 8, 14, -20, -14, -6, -3, 4, 15, -16, -42, -24, 57, 0, -5, -5, 1, 12, -32, 3, 27, -15, 21, -23, 17, 3, 4, -34, -15, 21, 25, 21, 13, -5, -4, -7, 13, 54, 11, 0, -35, -34, 10, -21, 9, 12, 9, 0, 42, -25, -9, -56, 41, -12, 36, -29, -5, -44, -53, 18, 31, -2, 36, 32, 21, 12, -22, -19, 23, 11, -1, 1, -14, 3, 45, -41, 35, -13, 8, 24, -3, -23, 63, -28, -51, 10, 15, 35, 45, -27, -26, -43, 48, -8, -14, -11, 29, 20, -21, -5, 7, -13, -26, 7, 16, 9, 32, -31, -4, 40, 20, 8, -1, -12, -9, 15, 11, 26, -4, -49, -17, -38, 20, 1, 10, -2, -27, 17, 24, -23, 23, -31, 34, -8, 34, 6, 10, 0, -47, 33, 11, -15, -7, 25, 42, 13, 7, -31, -10, -11, 6, 9, 18, -29, 29, 9, 15, 44, 6, 9, -48, -9, -15, 1, 16, 4, -5, -11, 23, -28, -6, -1, 15, -10, 29, -12, 11, -18, 0, 23, -16, 29, -34, 1, 8, 11, 37, -21, 21, 14, 6, -47, -40, 12, 20, 2, 33, 38, -6, -43, -10, -44, 14, -1, 16, 10, -30, -23, -38, -2, 61, -25, 22, 29, 16, 23, -12, 3, 25, 21, 21, -28, 12, -23, -18, -20, 36, -51, -3, 19, -15, 33, 23, -23, -10, 28, -29, 26, 8, -1, -57, -15, 5, 26, 23, -15, -45, -5, 15, -94, 27, 39, 36, 10, 11, -20, 6, -43, 39, -22, 26, 9, -30, 4, -11, -3, 37, 19, 29, 44, -32, -102, 27, 10, 11, -2, 5, -34, -2, -18, 62, 6, -7, -11, -13, 1, -17, -59, -44, -7, 112, 10, 9, -10, -9, 28, 5, -9, 4, 1, 20, -26, -9, -7, 9, -16, 13, 0, 25, 67, -8, -41, 35, -2, -64, 18, -18, 39, 6, -35, -58, 5, -4, 15, 6, 25, -33, -42, -19, -4, 25, 35, 6, 44, -8, -16, 25, -5, 10, -7, -5, 10, 16, -13, -35, 57, 9, 9, 3, 37, -36, -32, -9, -4, -17, -48, -4, -56, -27, -23, 81, 65, -35, -4, 15, -9, -4, 5, -10, 30, 17, -21, 4, 25, -6, -1, -7, -12, -23, 8, -1, 15, -17, 39, 35, 39, -22, -30, -31, 30, -35, 19, -8, 1, 17, -24, 7, -17, -38, 20, 15, 5, 8, -7, 9, -27, -7, 20, 54, -11, 7, -15, 16, 5, -21, 9, 32, -14, -6, 26, -6, -13, -20, 22, 3, 43, -7, -29, -47, 46, -5, 41, 18, -14, 2, -25, 24, 34, 43, -13, -15, -28, 13, -17, 11, -58, 7, -5, -25, 71, 14, -72, -2, -9, 39, 12, -24, -44, -60, 20, 22, 23, -51, 78, 63, 42, 15, -28, -33, 43, -22, 32, -22, -6, -4, -16, 21, 31, -74, -13, 11, -19, -7, 59, -30, -19, 2, 23, 17, 10, 36, -54, 28, 0, -28, -23, 17, 33, -28, 26, -39, 7, -48, 20, 27, 24, -26, -57, -4, 17, 35, 32, -4, 6, 5, -32, 24, 51, 3, -38, -3, -18, 23, -22, -50, -54, -47, -41, 37, 49, 19, -11, 1, -23, 60, 4, -47, -17, -17, 32, 17, -4, -54, 37, 9, -9, 52, -8, 36, -19, -24, 23, -6, -10, -9, -14, -21, 25, -14, -15, 1, -20, 7, 34, 16, -18, -84, 27, -8, 11, 17, 17, -12, -12, -11, -9, -14, 11, -11, 20, -20, 0, 34, 9, 1, -54, 46, -51, 0, 24, 26, -16, -25, 11, 26, -17, 11, 13, -1, 31, 14, -27, -11, 1, -30, -28, -49, -40, 3, 45, -9, -13, 26, 54, 19, -15, -52, -29, 52, 13, 2, 13, 6, 13, -4, -47, 10, 0, 15, 2, -50, 0, 18, 34, 7, 22, -35, -16, -7, -12, 2, 37, -16, 1, -12, -26, -52, 11, 16, -56, 25, 61, 12, 9, -25, -40, -14, 45, 43, -4, 14, -16, -3, 1, -23, 7, 6, -28, -13, 40, -7, -34, 75, -48, 29, -5, -27, -28, 49, -21, 13, 25, -13, 2, 7, 1, -1, 47, -23, 28, 31, -10, -9, 14, -18, -21, -17, -8, 30, 31, 10, -10, 3, -17, -44, -5, 9, 30, 4, 27, -45, -36, -5, 58, 4, 42, -13, -5, -28, -21, -16, 34, -12, -8, 32, -14, -22, 27, -4, 22, 13, 45, 11, -4, -25, -37, 33, -3, 2, -42, 27, 16, -4, -16, 21, 10, -12, -4, 6, 9, -17, 7, 20, -25, 30, -70, 22, -20, 35, -26, 1, 20, 7, 40, 4, 8, -9, 4, -19, 15, -4, -3, -29, 3, 5, 17, -23, -3, 11, 13, -16, 12, -29, -20, 26, 13, -33, 27, -62, 15, -7, 8, -8, 35, -4, -12, -4, -25, -3, 10, 10, 10, -18, 14, 17, -24, -18, 15, 24, -1, 42, -33, -15, 9, 9, 25, -8, -6, -1, 14, -47, -16, 7, 4, 26, 8, -34, 44, -18, -18, -6, 32, -5, -5, -30, -35, 16, 4, -14, 11, 11, -32, 43, -14, -30, 4, -3, -1, 11, 20, 8, -29, 0, -63, 25, 25, -21, -19, -30, 30, -4, 23, -32, 24, 43, 8, -13, 57, -81, 42, -72, 18, 18, 52, -44, -31, -26, -18, -3, 7, 36, 18, 14, 25, -15, -43, 18, -8, 1, 52, 16, -64, 37, -6, 48, -32, 11, 23, -1, 15, -10, 2, -23, 9, 14, 16, -21, 47, -18, -7, -30, 34, 19, 5, 4, -39, 45, 28, 9, 9, -8, -47, 36, 5, -38, -18, 13, 6, 43, 25, 9, -3, -26, -3, 19, 21, -58, 1, 12, 24, 5, 16, -9, 0, -2, -28, -22, 41, -42, 20, -61, -10, 8, 47, 13, 25, -24, 15, 26, -16, 43, -3, -35, 16, -24, 10, -49, 1, -22, 40, -4, -11, -6, 1, 25, -25, 9, -9, 22, 0, 7, -9, 65, -24, -31, -17, 4, -5, -17, -17, -37, 47, 28, 15, -3, -11, -16, 9, 42, -11, 15, -3, -33, -1, 4, 14, -2, 3, -9, -8, -54, 31, 31, -18, -47, -47, 9, 34, 52, -11, 7, 2, -5, 17, -70, 18, -17, 52, -21, 16, -36, -21, 31, -5, 4, -2, -7, -8, 21, -52, 37, 20, -35, 31, -19, -14, -51, 32, -8, 13, -4, 13, 23, 4, -34, 5, 31, -13, 0, 16, 5, -4, 25, -43, -20, 0, -1, -32, -30, 27, -3, 10, 6, -5, 50, -33, 30, 10, 26, 1, -37, -20, -18, 10, 15, 14, 11, 77, -60, 38, -37, 16, 27, -32, -35, -28, 24, 43, -12, 16, -6, -11, -9, 3, 20, 29, -14, 48, -12, -15, -4, 0, 49, -15, -14, 21, -2, -43, 42, -45, 26, 16, -19, 32, -12, -23, 34, 22, -31, 16, 18, -15, 3, -1, -55, -18, 9, -76, 32, 23, 18, 7, 25, -13, 3, -7, -6, -14, -16, 31, -6, -3, 2, 10, 3, 18, 12, 4, -38, -4, -18, 17, 4, 23, -7, 31, 1, 6, 21, 0, -10, -4, -16, 8, -15, 15, 0, 16, 9, -22, -7, 1, -20, 28, -4, -16, 18, 0, -3, -3, -7, -21, 31, -29, 4, 0, -21, -8, 12, -12, 17, 24, 4, -31, 3, -9, 42, -14, 11, -29, -7, -5, -10, -12, -7, 4, -9, 26, -38, 28, -39, 0, 26, -2, -16, 33, -19, 44, 3, -36, -18, -23, 7, 11, -12, -4, -11, 11, -26, 25, 15, 3, 4, -17, -22, -9, -12, -17, 35, -1, 27, 10, -34, 5, 13, 50, -18, 26, -17, -23, -11, 38, -28, 48, -2, -58, 32, -32, -5, 36, 15, -20, 59, -16, 47, 17, -24, -7, 30, 11, 13, -5, -11, -36, -18, -4, 51, -44, 0, 8, 27, -33, 3, -12, 23, -38, 16, 14, 13, 18, -21, -25, 27, -4, 33, 13, 12, 54, 3, -13, -4, 1, -27, 24, -63, -28, 31, 31, 5, 19, 12, -37, -10, -20, -4, 13, 13, 10, 15, -32, 9, 28, -46, 18, -23, 51, -17, 19, -23, -25, -9, 26, -26, 11, -8, -45, 40, -30, 49, 27, 27, -55, 29, -74, 45, 19, -13, -7, 44, -23, 60, 20, -80, 38, -21, -18, -15, 0, 13, 22, 10, -13, -28, 3, 32, 26, 12, 29, -2, -35, 32, -1, -24, -31, -8, -2, 24, -3, -24, 4, -16, -6, 26, 33, -23, 36, -13, 20, 6, -27, -23, 6, -36, -21, -8, 25, 26, 23, -26, -19, -25, 8, -61, -5, -18, -16, 19, 62, -14, -12, -27, 25, -22, -15, -8, 19, -81, -21, 35, -29, 37, -11, 23, -18, 9, -19, 6, -43, 31, -38, 38, 32, -50, 30, -26, 24, 36, 44, -10, -1, 0, -2, -34, -10, -30, 69, -1, -6, 11, -40, 18, 6, -3, -10, -4, -81, 40, 4, -14, 29, 3, -42, 58, 16, 1, 22, 3, 13, 12, -33, 13, 47, -20, 0, -27, -7, 26, 37, -40, 13, -23, 7, -21, -13, -31, -37, 7, 31, -27, 10, -37, -12, 7, -55, 15, 0, -33, -58, 22, -11, 32, 4, 11, 11, 3, -36, 12, -36, 28, -14, 23, 16, -30, 30, -21, -5, 15, 67, -28, 12, -6, 2, -10, -33, -18, 31, -26, -29, -5, -17, 4, 6, 14, 17, -25, -20, -13, -7, 0, 25, 6, -29, -6, 13, 42, 25, 4, -17, -17, 11, -30, 11, 16, -26, -17], "dense_bias": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]} \ No newline at end of file diff --git a/models/mnist_latest_output.json b/models/mnist_latest_output.json deleted file mode 100644 index 91b7624..0000000 --- a/models/mnist_latest_output.json +++ /dev/null @@ -1 +0,0 @@ -{"scale": 1e-40, "out": [-2.9271724224090576, -5.174396514892578, 4.3266096115112305, 8.861394882202148, -10.594989776611328, -6.108702659606934, -14.946420669555664, 20.25265121459961, 1.7481048107147217, 6.40861701965332], "label": 7} \ No newline at end of file diff --git a/models/mnist_latest_precision.ipynb b/models/mnist_latest_precision.ipynb deleted file mode 100644 index 6daf81f..0000000 --- a/models/mnist_latest_precision.ipynb +++ /dev/null @@ -1,467 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from tensorflow.keras.layers import Input, Conv2D, AveragePooling2D, Flatten, Softmax, Dense, Lambda, BatchNormalization, ReLU\n", - "from tensorflow.keras import Model\n", - "from tensorflow.keras.datasets import mnist\n", - "from tensorflow.keras.utils import to_categorical\n", - "from tensorflow.keras.optimizers import SGD\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import tensorflow as tf" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "(X_train, y_train), (X_test, y_test) = mnist.load_data()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# Convert y_train into one-hot format\n", - "temp = []\n", - "for i in range(len(y_train)):\n", - " temp.append(to_categorical(y_train[i], num_classes=10))\n", - "y_train = np.array(temp)\n", - "# Convert y_test into one-hot format\n", - "temp = []\n", - "for i in range(len(y_test)): \n", - " temp.append(to_categorical(y_test[i], num_classes=10))\n", - "y_test = np.array(temp)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "#reshaping\n", - "X_train = X_train.reshape(X_train.shape[0], 28, 28, 1)\n", - "X_test = X_test.reshape(X_test.shape[0], 28, 28, 1)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "inputs = Input(shape=(28,28,1))\n", - "out = Lambda(lambda x: x/1000)(inputs)\n", - "out = Conv2D(4, 3, use_bias=False)(out)\n", - "out = BatchNormalization()(out)\n", - "out = ReLU()(out)\n", - "# out = Lambda(lambda x: x**2+x)(out)\n", - "out = AveragePooling2D()(out)\n", - "# out = Lambda(lambda x: x*4)(out)\n", - "out = Conv2D(8, 3, use_bias=False)(out)\n", - "out = BatchNormalization()(out)\n", - "out = ReLU()(out)\n", - "# out = Lambda(lambda x: x**2+x)(out)\n", - "out = AveragePooling2D()(out)\n", - "# out = Lambda(lambda x: x*4)(out)\n", - "out = Flatten()(out)\n", - "out = Dense(10, activation=None)(out)\n", - "out = Softmax()(out)\n", - "model = Model(inputs, out)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: \"model\"\n", - "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", - "=================================================================\n", - "input_1 (InputLayer) [(None, 28, 28, 1)] 0 \n", - "_________________________________________________________________\n", - "lambda (Lambda) (None, 28, 28, 1) 0 \n", - "_________________________________________________________________\n", - "conv2d (Conv2D) (None, 26, 26, 4) 36 \n", - "_________________________________________________________________\n", - "batch_normalization (BatchNo (None, 26, 26, 4) 16 \n", - "_________________________________________________________________\n", - "re_lu (ReLU) (None, 26, 26, 4) 0 \n", - "_________________________________________________________________\n", - "average_pooling2d (AveragePo (None, 13, 13, 4) 0 \n", - "_________________________________________________________________\n", - "conv2d_1 (Conv2D) (None, 11, 11, 8) 288 \n", - "_________________________________________________________________\n", - "batch_normalization_1 (Batch (None, 11, 11, 8) 32 \n", - "_________________________________________________________________\n", - "re_lu_1 (ReLU) (None, 11, 11, 8) 0 \n", - "_________________________________________________________________\n", - "average_pooling2d_1 (Average (None, 5, 5, 8) 0 \n", - "_________________________________________________________________\n", - "flatten (Flatten) (None, 200) 0 \n", - "_________________________________________________________________\n", - "dense (Dense) (None, 10) 2010 \n", - "_________________________________________________________________\n", - "softmax (Softmax) (None, 10) 0 \n", - "=================================================================\n", - "Total params: 2,382\n", - "Trainable params: 2,358\n", - "Non-trainable params: 24\n", - "_________________________________________________________________\n" - ] - } - ], - "source": [ - "model.summary()" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "model.compile(\n", - " loss='categorical_crossentropy',\n", - " optimizer=SGD(learning_rate=0.01, momentum=0.9),\n", - " metrics=['acc']\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/15\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.3734 - acc: 0.8874 - val_loss: 0.1168 - val_acc: 0.9623\n", - "Epoch 2/15\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.0823 - acc: 0.9748 - val_loss: 0.0758 - val_acc: 0.9772\n", - "Epoch 3/15\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.0648 - acc: 0.9811 - val_loss: 0.0640 - val_acc: 0.9791\n", - "Epoch 4/15\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.0591 - acc: 0.9815 - val_loss: 0.0520 - val_acc: 0.9835\n", - "Epoch 5/15\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 0.0511 - acc: 0.9853 - val_loss: 0.0530 - val_acc: 0.9814\n", - "Epoch 6/15\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 0.0472 - acc: 0.9857 - val_loss: 0.0537 - val_acc: 0.9835\n", - "Epoch 7/15\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.0456 - acc: 0.9855 - val_loss: 0.0429 - val_acc: 0.9853\n", - "Epoch 8/15\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 0.0425 - acc: 0.9870 - val_loss: 0.0453 - val_acc: 0.9862\n", - "Epoch 9/15\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 0.0436 - acc: 0.9868 - val_loss: 0.0420 - val_acc: 0.9861\n", - "Epoch 10/15\n", - "1875/1875 [==============================] - 4s 2ms/step - loss: 0.0386 - acc: 0.9884 - val_loss: 0.0430 - val_acc: 0.9857\n", - "Epoch 11/15\n", - "1875/1875 [==============================] - 4s 2ms/step - loss: 0.0396 - acc: 0.9876 - val_loss: 0.0436 - val_acc: 0.9851\n", - "Epoch 12/15\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 0.0369 - acc: 0.9884 - val_loss: 0.0514 - val_acc: 0.9839\n", - "Epoch 13/15\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 0.0343 - acc: 0.9891 - val_loss: 0.0428 - val_acc: 0.9852\n", - "Epoch 14/15\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.0352 - acc: 0.9893 - val_loss: 0.0383 - val_acc: 0.9871\n", - "Epoch 15/15\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.0337 - acc: 0.9898 - val_loss: 0.0386 - val_acc: 0.9875\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model.fit(X_train, y_train, epochs=15, batch_size=32, validation_data=(X_test, y_test))" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "((28, 28, 1), 0, 255)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X = X_test[0]\n", - "X.shape, X.min(), X.max()" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "model2 = Model(model.input, model.layers[-2].output)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "y = model2.predict(X_test[[0]]) - model.layers[-2].weights[1].numpy()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "12\n", - "(3, 3, 1, 4)\n", - "(4,)\n", - "(4,)\n", - "(4,)\n", - "(4,)\n", - "(3, 3, 4, 8)\n", - "(8,)\n", - "(8,)\n", - "(8,)\n", - "(8,)\n", - "(200, 10)\n", - "(10,)\n" - ] - } - ], - "source": [ - "print(len(model.weights))\n", - "for weights in model.weights:\n", - " print(weights.shape)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "gamma = model.layers[3].weights[0].numpy()\n", - "beta = model.layers[3].weights[1].numpy()\n", - "moving_mean = model.layers[3].weights[2].numpy()\n", - "moving_var = model.layers[3].weights[3].numpy()\n", - "epsilon = model.layers[3].epsilon" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([ 7.476623, 12.203958, 11.305573, 7.275524], dtype=float32),\n", - " array([ 1.0641948 , -0.2928645 , 0.96127605, -1.3354607 ], dtype=float32))" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a1 = gamma/(moving_var+epsilon)**.5\n", - "b1 = beta-gamma*moving_mean/(moving_var+epsilon)**.5\n", - "a1, b1" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "gamma = model.layers[7].weights[0].numpy()\n", - "beta = model.layers[7].weights[1].numpy()\n", - "moving_mean = model.layers[7].weights[2].numpy()\n", - "moving_var = model.layers[7].weights[3].numpy()\n", - "epsilon = model.layers[7].epsilon" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([1.8293172, 2.1094613, 2.1327975, 1.8025072, 2.0401976, 2.2244277,\n", - " 2.00088 , 1.0940925], dtype=float32),\n", - " array([-0.56788176, 3.609695 , 1.9935554 , 0.6033936 , 0.6063134 ,\n", - " -1.7730187 , 6.8325047 , -0.12943316], dtype=float32))" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a2 = gamma/(moving_var+epsilon)**.5\n", - "b2 = beta-gamma*moving_mean/(moving_var+epsilon)**.5\n", - "a2, b2" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "in_json = {\n", - " \"in\": X.astype(int).flatten().tolist(), # X is already 1000 times to begin with\n", - " \"conv2d_1_weights\": (model.layers[2].weights[0].numpy()*(10**3)).round().astype(int).flatten().tolist(),\n", - " \"conv2d_1_bias\": (np.array([0]*4)*(10**3)**2).round().astype(int).flatten().tolist(),\n", - " \"bn_1_a\": (a1*(10**3)).round().astype(int).flatten().tolist(),\n", - " \"bn_1_b\": (b1*(10**3)**3).round().astype(int).flatten().tolist(),\n", - " # average pooling will scale another 10**2 times\n", - " \"conv2d_2_weights\": (model.layers[6].weights[0].numpy()*(10**3)).round().astype(int).flatten().tolist(),\n", - " \"conv2d_2_bias\": (np.array([0]*8)*(10**(3*4+2))).round().astype(int).flatten().tolist(),\n", - " \"bn_2_a\": (a2*(10**3)).round().astype(int).flatten().tolist(),\n", - " \"bn_2_b\": (b2*(10**(3*5+2))).round().astype(int).flatten().tolist(),\n", - " # average pooling will scale another 10**2 times\n", - " \"dense_weights\":(model.layers[11].weights[0].numpy()*(10**3)).round().astype(int).flatten().tolist(),\n", - " \"dense_bias\": np.zeros(model.layers[11].weights[1].numpy().shape).tolist() # zero because we are not doing softmax in circom, just argmax\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'scale': 1e-22,\n", - " 'out': [-0.9809412956237793,\n", - " -2.2749931812286377,\n", - " 6.040533065795898,\n", - " 9.122146606445312,\n", - " -11.2403564453125,\n", - " -0.5773029327392578,\n", - " -17.33807945251465,\n", - " 16.305007934570312,\n", - " -1.445622205734253,\n", - " 2.890042781829834],\n", - " 'label': 7}" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "out_json = {\n", - " \"scale\": 10**-22,\n", - " \"out\": y.flatten().tolist(),\n", - " \"label\": int(y.argmax())\n", - "}\n", - "out_json" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "with open(\"mnist_latest_precision_input.json\", \"w\") as f:\n", - " json.dump(in_json, f)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "with open(\"mnist_latest_precision_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "interpreter": { - "hash": "11280bdb37aa6bc5d4cf1e4de756386eb1f9eecd8dcdefa77636dfac7be2370d" - }, - "kernelspec": { - "display_name": "Python 3.8.6 ('tf24')", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.6" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/models/mnist_latest_precision_input.json b/models/mnist_latest_precision_input.json deleted file mode 100644 index 97ee184..0000000 --- a/models/mnist_latest_precision_input.json +++ /dev/null @@ -1 +0,0 @@ -{"in": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 185, 159, 151, 60, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 254, 254, 254, 254, 241, 198, 198, 198, 198, 198, 198, 198, 198, 170, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 114, 72, 114, 163, 227, 254, 225, 254, 254, 254, 250, 229, 254, 254, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 66, 14, 67, 67, 67, 59, 21, 236, 254, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 253, 209, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 233, 255, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 254, 238, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 249, 254, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 254, 187, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 205, 248, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 254, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 251, 240, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 221, 254, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 203, 254, 219, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 254, 254, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 224, 254, 115, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 254, 254, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 242, 254, 254, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 254, 254, 219, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 254, 207, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "conv2d_1_weights": [-44, 887, 414, 401, 379, -179, 262, -428, 771, -788, -614, -539, -587, -1276, 389, 418, 350, -1222, -890, 564, 590, 948, -586, -152, -1151, 342, -1037, 103, -1226, 1375, -522, 592, -1875, -111, 449, 806], "conv2d_1_bias": [0, 0, 0, 0], "bn_1_a": [7477, 12204, 11306, 7276], "bn_1_b": [1064194798, -292864501, 961276054, -1335460663], "conv2d_2_weights": [-94, 203, -531, -352, -183, 843, 259, -437, -198, -257, 76, -112, -160, 194, -59, 194, -295, 448, 235, 553, 311, 9, -113, -153, 591, 104, 67, -207, -296, -266, 276, -59, 179, -39, 41, -583, 417, 239, -648, 29, 323, -344, -658, -6, -317, -48, -145, -43, -440, 172, -180, 86, -641, 375, -314, -51, -137, -394, 291, 240, 149, -431, 281, -180, 677, 26, 12, -651, 379, -186, -293, 3, 466, -104, 209, 231, -526, -289, 201, 342, -365, -307, 493, 319, -73, 176, 31, -61, -225, -191, -597, -213, 24, -870, -877, 165, 540, 18, -671, -417, 486, 557, 282, 53, 232, -365, -322, -313, -183, 148, 87, 110, -278, -122, 287, 52, -618, -373, 346, -147, 268, 190, -74, 459, -259, 661, -282, 452, 935, 106, -144, -139, 535, 675, -402, -152, -119, -589, -447, -41, 357, 179, -415, 301, -599, -287, -206, -139, -381, 100, -858, -327, 567, -346, 488, 393, -213, 202, 99, 247, 227, 62, 85, -52, -530, 511, -463, -447, -99, -521, 242, 456, 202, -178, 142, 669, -343, -290, -6, -311, -88, 332, -370, 116, 412, -141, -204, 94, 360, -628, -743, 153, -137, -483, -642, -78, 180, -405, 495, 252, 153, -169, -714, -789, 525, -167, -193, 371, 111, -281, 60, 1, -105, -159, 645, -211, -727, 165, -40, 408, 192, -316, -889, 567, -54, 165, -171, 161, -418, -250, -263, -1, 252, -142, -519, -368, 281, -269, -495, 647, 260, -170, 528, -38, 437, -874, -549, -392, -496, 85, 42, 119, -332, 187, -73, 69, -503, 261, 397, 449, -541, 362, -626, 39, -78, -503, 417, -34, 232, -246, -426, 320, -113, -334, 162, 407, 235, -588, -845, -189, -59, 1, -247, -336, -283, 593, 243, -211], "conv2d_2_bias": [0, 0, 0, 0, 0, 0, 0, 0], "bn_2_a": [1829, 2109, 2133, 1803, 2040, 2224, 2001, 1094], "bn_2_b": [-56788176298141480, 360969495773315456, 199355542659759520, 60339361429214480, 60631340742111208, -177301871776580800, 683250474929809536, -12943315505981446], "dense_weights": [110, -22, 39, 19, 71, -82, 126, 45, 44, -113, 212, 3, 181, -320, 158, 135, 81, 181, -236, -156, 111, -49, 109, -199, 128, 61, -20, 22, 19, 276, -193, -87, -16, 247, 109, -217, -75, 46, -67, -2, 107, -160, 63, -10, 85, -40, -55, -88, 27, 98, -79, 192, -130, -306, 306, -70, -73, 244, -186, -79, -267, -4, -302, 58, 191, 294, 438, -51, 164, -154, -20, -120, 160, -4, 175, -211, -84, 71, -36, 59, -240, 48, 279, 288, -28, -259, -150, 300, -30, 19, 219, 346, -32, -144, 105, -33, 58, 38, -69, -345, -211, 106, -19, -40, -86, -103, 171, -83, -9, -81, -92, -176, 190, 5, -85, 41, -194, 114, -187, 295, -35, -150, 69, -62, 176, -128, -284, -71, 150, -94, 65, 274, -83, -46, 95, 155, -111, 293, -281, -398, -207, 304, -159, -236, 587, 153, 296, -48, 61, -508, 75, -50, -189, 154, -525, -189, -68, -222, 363, 584, -213, -362, 170, 602, -63, -346, -206, 490, 312, 461, 74, 272, 218, 116, 31, -128, 6, 255, -79, -346, -303, 487, 76, -334, -11, -158, 559, -259, -158, -302, 56, 189, 46, 127, -570, 469, -311, 154, -3, 173, -293, -435, 168, 127, 188, -234, -226, -42, -19, 100, 112, -371, 137, 99, -13, 23, -569, 398, -13, -227, -332, 244, 171, 39, 736, 116, -17, -217, -69, -409, 143, 41, 140, 315, -698, 68, -571, 35, 539, 240, 42, -465, 359, 172, -300, -81, -177, 399, 91, 466, 236, 69, 774, 87, -285, -620, -294, 16, 42, 297, -174, 533, -94, 214, 21, -427, 233, 311, -49, -297, -62, 20, -196, 249, -431, 753, -34, -154, 5, -21, -8, -50, 23, 27, 160, -93, -149, 7, -21, 314, 246, -172, 207, 324, -161, -238, -328, 54, -19, 208, -107, -52, 323, 242, 35, -502, -214, -229, 96, -113, 13, -41, 72, 241, -863, -181, -121, 158, 69, 225, 236, -106, 450, 112, 14, -137, -122, -57, 90, 148, 123, -99, 215, 223, -94, -269, 45, 252, 155, 299, -116, 92, 126, 256, -18, 134, 192, -123, -265, -265, -351, -30, -621, -141, -40, 721, 258, 59, -232, -132, -82, 20, -293, -352, 423, 123, -110, 297, 12, -242, 341, -140, 363, 94, -459, -395, -168, 260, 117, 504, 301, -65, 132, 383, 150, -933, -194, -144, 48, 17, 359, -110, 247, 249, -39, -288, -174, -33, -62, 50, -109, 34, 243, 383, 147, -246, -185, 330, -198, -225, -74, 153, -107, -36, 252, 157, -84, -9, 42, -153, -39, -32, 161, -80, -81, -115, 109, -131, -276, -101, 12, -75, 193, 53, -141, -226, -81, -22, -254, -6, 160, -246, 31, -109, 6, -357, 157, -222, 143, 223, 58, 55, 84, -77, 136, -9, -316, 164, -171, -75, 6, -192, -440, -562, 175, 265, 399, 3, 225, 119, 213, -22, -268, -280, -15, 15, -164, 149, 246, 134, -220, 223, 211, 275, -241, -55, -559, 589, -5, -352, -87, 202, -89, 36, -57, 176, 132, -173, -29, 90, -68, 202, 146, -130, 293, -111, 402, -72, -207, -403, 254, 138, 70, 391, -268, -33, -267, 330, -577, 195, 185, -164, 23, 289, 477, -146, -155, 68, -258, 37, -27, 281, 285, 37, -306, -276, -230, 807, -71, -635, 48, -299, -331, -952, 537, 191, -64, 327, 286, 69, -113, 61, -494, -67, 318, -106, -350, 22, 313, 97, -98, -158, 276, 317, -583, -101, -465, 317, 173, 208, 28, -4, 446, -234, 206, 224, -247, -68, 13, -370, -151, 524, 66, 56, 519, 96, 168, 26, -647, -814, -200, 18, 350, 214, -160, -101, -181, 735, -172, -437, 123, -66, -77, 342, -186, -225, -242, 406, 47, 44, -133, 154, 504, -163, -235, -18, -96, 694, 135, -521, 219, -352, -197, -399, 145, -13, -461, -100, 720, 313, 336, -323, -347, 49, 13, -187, -48, -248, 434, 443, 134, -318, 153, -1, -652, 420, -45, 214, -105, 402, 289, 454, 453, 84, -47, -175, -265, -297, -253, 238, -146, 541, 552, 223, 230, -611, -164, 281, -285, -406, 167, 211, -378, 10, -196, 557, -366, 270, -62, 24, -194, -378, 240, 388, -541, -14, -62, 494, 399, -64, 309, 228, 235, -44, -631, 316, 163, 56, -507, -40, 328, 104, 137, -362, 501, -169, -835, 240, 152, -116, -180, 120, -251, 636, -43, -175, -410, 158, 120, 87, 245, -596, -396, -324, -276, 684, 218, -400, 325, 87, 355, -201, 227, 100, -111, -233, -41, -25, -333, 52, -38, 267, 248, 471, 62, -767, -336, 38, -16, -290, -262, 346, -536, 214, -66, 534, -256, 195, -83, -213, 148, -201, 278, -208, -194, -111, 106, 79, 570, -86, 164, -245, 58, -86, -390, 121, 739, -104, -209, 225, 578, 66, 414, -137, 179, -823, -61, -73, 228, 272, 33, -329, 51, -63, -213, -181, -148, 187, 125, -8, -360, 219, 312, 171, -27, 0, -410, 269, 144, -55, -278, 110, -171, -140, 76, 211, -187, -182, 5, 242, -259, 125, 52, 19, 131, -142, -35, 55, -171, -232, -331, -58, 243, -76, 167, 71, -36, 221, 9, -111, 107, -80, 112, -193, -101, 62, -176, 330, 45, -416, -362, -6, 359, 422, -341, 108, 47, 51, -60, -176, 328, -287, -684, -496, -121, -152, 275, -155, 240, 235, 83, -200, 115, -233, 293, -177, 33, -116, -12, 42, -483, -6, -117, 16, 134, 251, -607, 316, 192, 293, -244, 43, -58, 66, -183, 178, -289, -528, 44, 571, -109, 33, -309, 19, 199, -420, 370, 514, -186, -248, -154, 13, 170, -342, 361, 211, -417, 755, -340, -64, 54, 68, 712, 163, -330, -41, 69, 578, 309, -1065, -623, 171, 134, 439, -380, 483, -263, 300, -435, -147, 335, -577, -693, -277, 164, 378, 288, -543, 493, 259, 444, -110, 512, -815, 601, -39, 50, -870, 218, -99, -56, -384, 244, -255, 569, 287, -453, -286, 28, 433, 599, 91, 219, -319, -62, -189, -239, 664, -343, -35, 186, 93, -226, -418, 48, -274, -26, 858, -86, -130, -185, -182, -158, 26, 379, 284, 448, -95, -192, 70, -101, -212, -48, 302, -103, -183, -186, -3, 246, 2, -206, -89, 507, -130, 183, 77, -12, 314, -3, -332, 14, -182, -609, -15, 52, 3, 72, -396, 544, -175, -245, -273, -11, 150, -190, -137, 305, -709, 289, 384, -75, -198, -382, 353, -560, 403, 244, 37, 101, -45, 160, 38, 170, -509, -215, 670, 68, 20, -568, -155, 32, 433, 381, -545, 117, -85, -526, 97, -380, 514, -700, 398, -313, 497, 429, -255, -307, 79, -19, 142, -247, -135, 31, -134, -161, -180, 24, -127, 161, 401, -140, 26, 83, 316, -567, 588, 617, -421, -147, -215, 186, 3, -443, 43, 299, -159, 44, -107, 3, 66, -251, -430, -85, 291, 406, -463, 274, 54, 315, -219, 108, -245, -217, -131, -39, 789, 140, -290, -46, -411, -293, 18, -279, -74, -240, 342, 119, 236, 65, 28, 241, 337, 132, -167, -281, 247, -55, -93, -120, 106, 91, -205, 169, -216, 233, -362, -32, 176, -438, 401, 436, -139, -69, -468, -378, 49, 468, 109, -112, 335, -479, -84, -463, 362, -481, 809, 786, -163, -152, 8, 220, 104, -448, 188, 289, -190, 34, 191, -184, 48, 150, -245, 180, -362, -5, 1, 362, 189, 84, -101, -327, -26, -400, -236, 254, 49, -103, -179, -22, 178, -110, -23, 93, -41, -113, -92, -2, 82, -67, 215, -85, 315, -149, 40, 282, -35, -193, 296, -377, -11, -291, 146, -91, 69, 190, 300, -38, -26, -145, 64, -314, -100, 362, -355, 12, 105, -139, -147, 297, -206, -122, 137, -106, 210, -100, 298, -62, 516, -245, -159, 353, -606, 303, 63, 10, 23, 499, -473, 366, 159, 438, 10, 485, -321, 153, -230, 8, -105, -2, -148, -165, -215, -779, 221, 386, 275, -453, 140, 28, 490, 277, 186, -237, 288, -81, 178, -154, -285, -561, 447, -91, 141, -101, 228, 239, -62, 98, 77, -424, -140, -4, -94, -187, -161, 307, 166, -406, 27, -268, 441, -442, -51, 212, 98, 325, 47, -316, 131, 205, -406, -398, 412, -126, 574, -78, 566, -301, -44, -1045, -145, 360, -289, 222, -156, 34, -146, 648, -579, 189, -96, 300, -276, 402, -193, 184, -148, 179, -202, 165, 103, -252, -203, -245, 162, 629, 274, -224, -272, -126, 416, 220, 169, -700, 302, 84, 33, -63, 144, -343, 294, 433, 378, 11, -394, -277, -115, 81, 438, -180, -636, -6, -90, 197, 217, 238, 116, 170, -453, 187, -214, -291, -196, 247, 507, 349, -17, -380, -53, 18, 208, 6, -18, -65, 119, 165, -95, -511, 124, -533, 256, 348, -117, -67, -161, -55, -473, 707, -266, 681, -548, 108, -577, 239, -217, 253, -247, 232, 103, 157, 54, -165, -221, 73, 120, -145, -19, 177, 360, 152, -301, -173, 412, -444, 115, -224, 431, 192, -105, 50, 142, -116, 55, -42, -380, -71, 256, 12, -20, -217, 541, 129, 205, -70, -42, 111, -261, 397, 186, -7, -635, -155, -549, -397, 167, 69, 120, 31, -207, 300, 202, -81, -107, 232, 439, -356, 407, 387, -445, 479, -733, -514, 59, 142, -78, 101, -159, 90, -189, 235, -104, -176, -135, 171, -82, 209, -349, 277, 48, -193, -241, -265, 78, 720, -126, 76, 218, -30, -157, 156, -656, -74, 157, 75, 0, -111, 148, 108, -563, 447, 135, 54, -292, -266, 215, -53, 298, 2, -398, 73, 297, 82, 9, 375, -227, 325, -62, -161, 179, -658, -5, 68, -8, -234, -72, -152, 107, -50, 100, 376, -292, -386, 292, -125, 109, -209, 77, 88, -142, 565, -147, -257, -60, -245, 259, 206, 187, -182, -371, 336, 369, -130, 165, -336, 124, 220, 10, 10, -30, 16, 165, 86, 268, -14, 55, 214, -13, 143, -227, -271, -335, 23, -431, 0, 37, -103, 173, 104, -163, 279, -177, -27, 234, 75, -438, 31, -71, -98, 138, -144, 185, 19, 291, 211, 43, 162, -162, -141, -132, 245, -74, 69, 229, -26, -42, -47, -87, -81, 220, -96, 155, -79, -90, -29, -23, 84, 137, 111, 34, -272, -212, 264, -167, 223, -104, -94, -161, -19, -210, 73, -175, -61, 40, -23, -126, -87, -265, -167, 349, 3, 24, -77, 54, -713, 14, 22, 153, 137, -139, -105, 632, 427, -342, 132, 39, -214, -397, 58, -135, 235, -461, 64, 36, 106, -274, 67, -344, 19, 303, -220, -65, 634, 252, 70, 12, -248, 124, 253, -512, 125, -161, -267, 115, -92, 475, 220, 301, -285, 307, -467, 100, 4, 294, 46, 79, -96, 230, -198, -95, -70, -32, 319, -69, 138, -350, 210, -312, 211, -225, 379, -350, 239, -94, -245, 91, -28, -32, -73, -391, 233, -72, 43, -152, -189, 106, -264, 216, 253, -396, 93, -203, 0, 374, 117, -235, 194, -181, 31, 94, 207, -88, -572, 599, -608, -566, 365, 193, -246, 605, -304, 367, 218, 284, 340, -50, -388, 20, 441, -520, -51, -451, -291, -279, -314, 704, -37, 363, -295, -212, -320, 123, 216, 163, 421, -96, -207, 143, 56, -275, -425, 55, -169, 12, 141, -687, 195, -446, 139, 263, -2, 102, 125, -203, 149, 13, -474, 250, 242, -653, 360, 26, -120, 356, 389, -107, 26, -131, 270, -47, -76, -452, -142, 371, -108, -419, 270, -115, -173, 49, -228, 291, -320, 8, -677, 151, 353, 362, 16, 353, 79, 335, 273, 599, 180, -221, -197, -83, 59, -418, -104, -318, 80, -48, -388, 497, -203, 471, 396, -369, 269, -81, 264, 223, 345, -120, -396, -1, 69, -436, -32, -95, -1163, 18, 523, 6, 511, -355, -377, 544, -141, 459, 226, -69, 379, -38, -440, 23, 384, -660, 126, -127, -81, 296, 590, -604, 322, -123, -277, 170, -366, -298, 30, 91, -86, -57, -214, -49, 192, -7, 183, 74, 37, -116, -653, 221, -208, 221, -10, 138, 243, -253, -26, 260, 361, -107, 61, -29, 62, -190, 0, -131, 4, -54, 306, 20, 78, 49, 206, -386, 5, -139, 451, 149, 254, -270, -169, -220, 86, -277, -41, -45, -405, 46, 198, 4, 251, -302, -194, -79, -125, 305, -3, 181, 67, -5, 193, -116, 87, -371, 242, 55], "dense_bias": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]} \ No newline at end of file diff --git a/models/mnist_latest_precision_output.json b/models/mnist_latest_precision_output.json deleted file mode 100644 index 1933c69..0000000 --- a/models/mnist_latest_precision_output.json +++ /dev/null @@ -1 +0,0 @@ -{"scale": 1e-22, "out": [-0.9809412956237793, -2.2749931812286377, 6.040533065795898, 9.122146606445312, -11.2403564453125, -0.5773029327392578, -17.33807945251465, 16.305007934570312, -1.445622205734253, 2.890042781829834], "label": 7} \ No newline at end of file diff --git a/models/mnist_output.json b/models/mnist_output.json deleted file mode 100644 index 0eb4e8a..0000000 --- a/models/mnist_output.json +++ /dev/null @@ -1 +0,0 @@ -{"scale": 1e-18, "out": [-12.546713829040527, -11.377293586730957, -9.379934310913086, -11.585654258728027, -11.749795913696289, -17.50542449951172, -18.2791748046875, -0.427229106426239, -14.400675773620605, -10.78593635559082], "label": 7} \ No newline at end of file diff --git a/models/model1.ipynb b/models/model1.ipynb index d589d43..c280cca 100644 --- a/models/model1.ipynb +++ b/models/model1.ipynb @@ -5,6 +5,15 @@ "execution_count": 1, "metadata": {}, "outputs": [], + "source": [ + "p = 21888242871839275222246405745257275088548364400416034343698204186575808495617" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], "source": [ "from tensorflow.keras.layers import Input, Dense\n", "from tensorflow.keras import Model\n", @@ -13,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -25,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -34,13 +43,14 @@ "text": [ "Model: \"model\"\n", "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", + " Layer (type) Output Shape Param # \n", "=================================================================\n", - "input_1 (InputLayer) [(None, 3)] 0 \n", - "_________________________________________________________________\n", - "dense (Dense) (None, 2) 8 \n", - "_________________________________________________________________\n", - "dense_1 (Dense) (None, 1) 3 \n", + " input_1 (InputLayer) [(None, 3)] 0 \n", + " \n", + " dense (Dense) (None, 2) 8 \n", + " \n", + " dense_1 (Dense) (None, 1) 3 \n", + " \n", "=================================================================\n", "Total params: 11\n", "Trainable params: 11\n", @@ -55,24 +65,24 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[,\n", + " array([[-0.72784126, 0.33670223],\n", + " [-0.7780691 , 0.62421453],\n", + " [-1.0269804 , 0.49905217]], dtype=float32)>,\n", " ,\n", " ,\n", + " array([[-0.00755942],\n", + " [ 0.58352613]], dtype=float32)>,\n", " ]" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -83,16 +93,16 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[0.39493793, 0.16756107, 0.28846495]])" + "array([[0.5545958 , 0.48267873, 0.46073158]])" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -104,16 +114,30 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 36ms/step\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-10-24 01:16:53.952999: W tensorflow/tsl/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n" + ] + }, { "data": { "text/plain": [ - "array([[0.20923984]], dtype=float32)" + "array([[0.41894716]], dtype=float32)" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -123,28 +147,17 @@ "y" ] }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "in_json = {\n", - " \"in\": (X*1000).round().astype(int).flatten().tolist(),\n", - " \"Dense32weights\": (model.weights[0].numpy()*1000).round().astype(int).flatten().tolist(),\n", - " \"Dense21weights\": (model.weights[2].numpy()*1000).round().astype(int).flatten().tolist()\n", - "}" - ] - }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "out_json = {\n", - " \"out\": (y*(1000**3)).round().astype(int).flatten().tolist()\n", - "}" + "X_in = [int(x*1e36) for x in X[0]]\n", + "Dense32weights = [[int(model.weights[0].numpy()[i][j]*1e36) for j in range(2)] for i in range(3)]\n", + "Dense32bias = [int(model.weights[1].numpy()[i]*1e72) for i in range(2)]\n", + "Dense21weights = [[int(model.weights[2].numpy()[i][j]*1e36) for j in range(1)] for i in range(2)]\n", + "Dense21bias = [int(model.weights[3].numpy()[i]*1e72) for i in range(1)]\n" ] }, { @@ -153,17 +166,43 @@ "metadata": {}, "outputs": [], "source": [ - "import json" + "def DenseInt(nInputs, nOutputs, n, input, weights, bias):\n", + " Input = [str(input[i] % p) for i in range(nInputs)]\n", + " Weights = [[str(weights[i][j] % p) for j in range(nOutputs)] for i in range(nInputs)]\n", + " Bias = [str(bias[i] % p) for i in range(nOutputs)]\n", + " out = [0 for _ in range(nOutputs)]\n", + " remainder = [None for _ in range(nOutputs)]\n", + " for j in range(nOutputs):\n", + " for i in range(nInputs):\n", + " out[j] += input[i] * weights[i][j]\n", + " out[j] += bias[j]\n", + " remainder[j] = str(out[j] % n)\n", + " out[j] = str(out[j] // n % p)\n", + " return Input, Weights, Bias, out, remainder" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(['21888242871839275222246405745257275088547112023011337864689255117657466434208',\n", + " '717957812208694328223024234032338630'],\n", + " ['749712352190261448543726154832412672',\n", + " '264894409627262887048751218981601280'])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "with open(\"model1_input.json\", \"w\") as f:\n", - " json.dump(in_json, f)" + "X_in, Dense32weights, Dense32bias, Dense32out, Dense32remainder = DenseInt(3, 2, 10**36, X_in, Dense32weights, Dense32bias)\n", + "Dense32out, Dense32remainder" ] }, { @@ -172,19 +211,77 @@ "metadata": {}, "outputs": [], "source": [ - "with open(\"model1_output.json\", \"w\") as f:\n", - " json.dump(out_json, f)" + "ReLUout = [Dense32out[i] if int(Dense32out[i]) < p//2 else 0 for i in range(2)]\n", + "Dense21in = [int(ReLUout[i]) for i in range(2)]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(['418947146885730875576316926961913803'],\n", + " ['695849152206718637828300508516843520'])" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "_, Dense21weights, Dense21bias, Dense21out, Dense21remainder = DenseInt(2, 1, 10**36, Dense21in, Dense21weights, Dense21bias)\n", + "Dense21out, Dense21remainder" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "in_json = {\n", + " \"in\": X_in,\n", + " \"Dense32weights\": Dense32weights,\n", + " \"Dense32bias\": Dense32bias,\n", + " \"Dense32out\": Dense32out,\n", + " \"Dense32remainder\": Dense32remainder,\n", + " \"ReLUout\": ReLUout,\n", + " \"Dense21weights\": Dense21weights,\n", + " \"Dense21bias\": Dense21bias,\n", + " \"Dense21out\": Dense21out,\n", + " \"Dense21remainder\": Dense21remainder\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "import json" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"model1_input.json\", \"w\") as f:\n", + " json.dump(in_json, f)" ] } ], "metadata": { - "interpreter": { - "hash": "162f620fe013aee906adf9554a7a8983a9419e1bfccc54b8640a1714ad18eb50" - }, "kernelspec": { - "display_name": "tf24", + "display_name": "sklearn", "language": "python", - "name": "tf24" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -196,7 +293,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.9.16" }, "orig_nbformat": 4 }, diff --git a/models/model1_input.json b/models/model1_input.json index b1bff09..dca87c5 100644 --- a/models/model1_input.json +++ b/models/model1_input.json @@ -1 +1 @@ -{"in": [395, 168, 288], "Dense32weights": [617, -807, -537, -646, 1057, -614], "Dense21weights": [456, 540]} \ No newline at end of file +{"in": ["554595800659293642973812010554228736", "482678728699857554809564422752698368", "460731583136036120669366356413513728"], "Dense32weights": [["21888242871839275222246405745257275088547636559157985332446118590872136187905", "336702227592468294339176184051400704"], ["21888242871839275222246405745257275088547586331337112071983534404169887645697", "624214529991149914351415438071562240"], ["21888242871839275222246405745257275088547337420015948894411611384479800623105", "499052166938781782988527255391567872"]], "Dense32bias": ["0", "0"], "Dense32out": ["21888242871839275222246405745257275088547112023011337864689255117657466434208", "717957812208694328223024234032338630"], "Dense32remainder": ["749712352190261448543726154832412672", "264894409627262887048751218981601280"], "ReLUout": [0, "717957812208694328223024234032338630"], "Dense21weights": [["21888242871839275222246405745257275088548356840997356060006790243799214850049"], ["583526134490966832655825343352930304"]], "Dense21bias": ["0"], "Dense21out": ["418947146885730875576316926961913803"], "Dense21remainder": ["695849152206718637828300508516843520"]} \ No newline at end of file diff --git a/models/model1_output.json b/models/model1_output.json deleted file mode 100644 index 294a66c..0000000 --- a/models/model1_output.json +++ /dev/null @@ -1 +0,0 @@ -{"out": [209239841]} \ No newline at end of file diff --git a/package.json b/package.json index c4242f3..5d774b4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "circomlib-ml", - "version": "1.4.4", + "version": "2.0.0", "description": "Circuits library for machine learning in circom", "main": "index.js", "directories": { diff --git a/test/AveragePooling2D.js b/test/AveragePooling2D.js index 316c55c..4e0bdab 100644 --- a/test/AveragePooling2D.js +++ b/test/AveragePooling2D.js @@ -17,62 +17,23 @@ describe("AveragePooling2D layer test", function () { // AveragePooling with strides==poolSize it("(5,5,3) -> (2,2,3)", async () => { - const json = require("../models/averagePooling2D_input.json"); - const OUTPUT = require("../models/averagePooling2D_output.json"); + const INPUT = require("../models/averagePooling2D_input.json"); const circuit = await wasm_tester(path.join(__dirname, "circuits", "AveragePooling2D_test.circom")); - //await circuit.loadConstraints(); - //assert.equal(circuit.nVars, 76); - //assert.equal(circuit.constraints.length, 0); - - const INPUT = { - "in": json.in - } const witness = await circuit.calculateWitness(INPUT, true); assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - - let ape = 0; - - for (var i=0; i (4,4,3)", async () => { - const json = require("../models/averagePooling2D_stride_input.json"); - const OUTPUT = require("../models/averagePooling2D_stride_output.json"); + const INPUT = require("../models/averagePooling2D_stride_input.json"); const circuit = await wasm_tester(path.join(__dirname, "circuits", "AveragePooling2D_stride_test.circom")); - const INPUT = { - "in": json.in - } - const witness = await circuit.calculateWitness(INPUT, true); assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - - let ape = 0; - - for (var i=0; i (5,5,3)", async () => { - let json = require("../models/batchNormalization_input.json"); - let OUTPUT = require("../models/batchNormalization_output.json"); + const INPUT = require("../models/batchNormalization_input.json"); const circuit = await wasm_tester(path.join(__dirname, "circuits", "batchNormalization_test.circom")); - let INPUT = {}; - - for (const [key, value] of Object.entries(json)) { - if (Array.isArray(value)) { - let tmpArray = []; - for (let i = 0; i < value.flat().length; i++) { - tmpArray.push(Fr.e(value.flat()[i])); - } - INPUT[key] = tmpArray; - } else { - INPUT[key] = Fr.e(value); - } - } - const witness = await circuit.calculateWitness(INPUT, true); assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - - let ape = 0; - - for (var i=0; i (6,2)", async () => { const circuit = await wasm_tester(path.join(__dirname, "circuits", "Conv1D_test.circom")); - //await circuit.loadConstraints(); - //assert.equal(circuit.nVars, 618); - //assert.equal(circuit.constraints.length, 486); - - let INPUT = {}; - - for (const [key, value] of Object.entries(json)) { - if (Array.isArray(value)) { - let tmpArray = []; - for (let i = 0; i < value.flat().length; i++) { - tmpArray.push(Fr.e(value.flat()[i])); - } - INPUT[key] = tmpArray; - } else { - INPUT[key] = Fr.e(value); - } - } const witness = await circuit.calculateWitness(INPUT, true); assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - - let ape = 0; - - for (var i=0; i (3,3,2)", async () => { - let json = require("../models/conv2D_input.json"); - let OUTPUT = require("../models/conv2D_output.json"); + const INPUT = require("../models/conv2D_input.json"); const circuit = await wasm_tester(path.join(__dirname, "circuits", "Conv2D_test.circom")); - - let INPUT = {}; - - for (const [key, value] of Object.entries(json)) { - if (Array.isArray(value)) { - let tmpArray = []; - for (let i = 0; i < value.flat().length; i++) { - tmpArray.push(Fr.e(value.flat()[i])); - } - INPUT[key] = tmpArray; - } else { - INPUT[key] = Fr.e(value); - } - } const witness = await circuit.calculateWitness(INPUT, true); assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - - let ape = 0; - - for (var i=0; i (3,3,2)", async () => { - let json = require("../models/conv2D_stride_input.json"); - let OUTPUT = require("../models/conv2D_stride_output.json"); + const INPUT = require("../models/conv2D_stride_input.json"); const circuit = await wasm_tester(path.join(__dirname, "circuits", "Conv2D_stride_test.circom")); - - let INPUT = {}; - - for (const [key, value] of Object.entries(json)) { - if (Array.isArray(value)) { - let tmpArray = []; - for (let i = 0; i < value.flat().length; i++) { - tmpArray.push(Fr.e(value.flat()[i])); - } - INPUT[key] = tmpArray; - } else { - INPUT[key] = Fr.e(value); - } - } const witness = await circuit.calculateWitness(INPUT, true); assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - - let ape = 0; - - for (var i=0; i 2 nodes", async () => { - const circuit = await wasm_tester(path.join(__dirname, "circuits", "Dense_test.circom")); - //await circuit.loadConstraints(); - //assert.equal(circuit.nVars, 18); - //assert.equal(circuit.constraints.length, 6); + it("20 nodes -> 10 nodes", async () => { + const INPUT = require("../models/dense_input.json"); - const INPUT = { - "in": ["1","2","3"], - "weights": [["4","7"],["5","8"],["6","9"]], - "bias": ["10","11"] - } + const circuit = await wasm_tester(path.join(__dirname, "circuits", "Dense_test.circom")); const witness = await circuit.calculateWitness(INPUT, true); - //console.log(witness); - assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - assert(Fr.eq(Fr.e(witness[1]),Fr.e(1*4+2*5+3*6+10))); - assert(Fr.eq(Fr.e(witness[2]),Fr.e(1*7+2*8+3*9+11))); }); }); \ No newline at end of file diff --git a/test/Flatten2D.js b/test/Flatten2D.js index 98baa62..c569963 100644 --- a/test/Flatten2D.js +++ b/test/Flatten2D.js @@ -10,27 +10,16 @@ const Fr = new F1Field(exports.p); const assert = chai.assert; - - describe("Flatten2D layer test", function () { this.timeout(100000000); it("(5,5,3) -> 75", async () => { - let json = require("../models/flatten2D_input.json"); - let OUTPUT = require("../models/flatten2D_output.json"); + const INPUT = require("../models/flatten2D_input.json"); const circuit = await wasm_tester(path.join(__dirname, "circuits", "flatten2D_test.circom")); - const INPUT = { - "in": json.in - } - const witness = await circuit.calculateWitness(INPUT, true); assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - - for (var i=0; i (3,)", async () => { - const json = require("../models/globalAveragePooling2D_input.json"); - const OUTPUT = require("../models/globalAveragePooling2D_output.json"); + const INPUT = require("../models/globalAveragePooling2D_input.json"); const circuit = await wasm_tester(path.join(__dirname, "circuits", "GlobalAveragePooling2D_test.circom")); - const INPUT = { - "in": json.in - } - const witness = await circuit.calculateWitness(INPUT, true); assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - - let ape = 0; - - for (var i=0; i (3,)", async () => { - const json = require("../models/globalMaxPooling2D_input.json"); - const OUTPUT = require("../models/globalMaxPooling2D_output.json"); + const INPUT = require("../models/globalMaxPooling2D_input.json"); const circuit = await wasm_tester(path.join(__dirname, "circuits", "GlobalMaxPooling2D_test.circom")); - const INPUT = { - "in": json.in - } - const witness = await circuit.calculateWitness(INPUT, true); assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - - for (var i=0; i (2,2,3)", async () => { - const json = require("../models/maxPooling2D_input.json"); - const OUTPUT = require("../models/maxPooling2D_output.json"); + const INPUT = require("../models/maxPooling2D_input.json"); const circuit = await wasm_tester(path.join(__dirname, "circuits", "MaxPooling2D_test.circom")); - //await circuit.loadConstraints(); - //assert.equal(circuit.nVars, 76); - //assert.equal(circuit.constraints.length, 0); - - const INPUT = { - "in": json.in - } const witness = await circuit.calculateWitness(INPUT, true); assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - - for (var i=0; i (3,3,3)", async () => { - const json = require("../models/maxPooling2D_stride_input.json"); - const OUTPUT = require("../models/maxPooling2D_stride_output.json"); + const INPUT = require("../models/maxPooling2D_stride_input.json"); const circuit = await wasm_tester(path.join(__dirname, "circuits", "MaxPooling2D_stride_test.circom")); - const INPUT = { - "in": json.in - } - const witness = await circuit.calculateWitness(INPUT, true); assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - - for (var i=0; i { const circuit = await wasm_tester(path.join(__dirname, "circuits", "ReLU_test.circom")); - //await circuit.loadConstraints(); - //assert.equal(circuit.nVars, 1549); - //assert.equal(circuit.constraints.length, 1551); const INPUT = { - "in": [Fr.e(-3),"0","3"] + "in": [Fr.e(-3),"0","3"], + "out": ["0","0","3"] } const witness = await circuit.calculateWitness(INPUT, true); - //console.log(witness); - assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - assert(Fr.eq(Fr.e(witness[1]),Fr.e(0))); - assert(Fr.eq(Fr.e(witness[2]),Fr.e(0))); - assert(Fr.eq(Fr.e(witness[3]),Fr.e(3))); }); }); \ No newline at end of file diff --git a/test/circuits/AveragePooling2D_stride_test.circom b/test/circuits/AveragePooling2D_stride_test.circom index d31b087..140f473 100644 --- a/test/circuits/AveragePooling2D_stride_test.circom +++ b/test/circuits/AveragePooling2D_stride_test.circom @@ -3,4 +3,4 @@ pragma circom 2.0.0; include "../../circuits/AveragePooling2D.circom"; // poolSize!=strides -component main = AveragePooling2D(10, 10, 3, 3, 2, 111); \ No newline at end of file +component main = AveragePooling2D(10, 10, 3, 3, 2); \ No newline at end of file diff --git a/test/circuits/AveragePooling2D_test.circom b/test/circuits/AveragePooling2D_test.circom index 68c3ce7..896ed5c 100644 --- a/test/circuits/AveragePooling2D_test.circom +++ b/test/circuits/AveragePooling2D_test.circom @@ -3,4 +3,4 @@ pragma circom 2.0.0; include "../../circuits/AveragePooling2D.circom"; // poolSize=strides - default Keras settings -component main = AveragePooling2D(5, 5, 3, 2, 2, 250); \ No newline at end of file +component main = AveragePooling2D(5, 5, 3, 2, 2); \ No newline at end of file diff --git a/test/circuits/BatchNormalization_test.circom b/test/circuits/BatchNormalization_test.circom index ccac950..e70215e 100644 --- a/test/circuits/BatchNormalization_test.circom +++ b/test/circuits/BatchNormalization_test.circom @@ -2,4 +2,4 @@ pragma circom 2.0.0; include "../../circuits/BatchNormalization2D.circom"; -component main = BatchNormalization2D(5,5,3); \ No newline at end of file +component main = BatchNormalization2D(5,5,3,10**36); \ No newline at end of file diff --git a/test/circuits/Conv1D_test.circom b/test/circuits/Conv1D_test.circom index 8e063d2..421d84b 100644 --- a/test/circuits/Conv1D_test.circom +++ b/test/circuits/Conv1D_test.circom @@ -2,4 +2,4 @@ pragma circom 2.0.0; include "../../circuits/Conv1D.circom"; -component main = Conv1D(20, 3, 2, 4, 3); \ No newline at end of file +component main = Conv1D(20, 3, 2, 4, 3, 10**36); \ No newline at end of file diff --git a/test/circuits/Conv2D_stride_test.circom b/test/circuits/Conv2D_stride_test.circom index c2714ff..155af1f 100644 --- a/test/circuits/Conv2D_stride_test.circom +++ b/test/circuits/Conv2D_stride_test.circom @@ -2,4 +2,4 @@ pragma circom 2.0.0; include "../../circuits/Conv2D.circom"; -component main = Conv2D(10, 10, 3, 2, 4, 3); \ No newline at end of file +component main = Conv2D(10, 10, 3, 2, 4, 3, 10**36); \ No newline at end of file diff --git a/test/circuits/Conv2D_test.circom b/test/circuits/Conv2D_test.circom index 08f9390..9d695b9 100644 --- a/test/circuits/Conv2D_test.circom +++ b/test/circuits/Conv2D_test.circom @@ -2,4 +2,4 @@ pragma circom 2.0.0; include "../../circuits/Conv2D.circom"; -component main = Conv2D(5, 5, 3, 2, 3,1); \ No newline at end of file +component main = Conv2D(5, 5, 3, 2, 3, 1, 10**36); \ No newline at end of file diff --git a/test/circuits/Dense_test.circom b/test/circuits/Dense_test.circom index 844248d..c0357d9 100644 --- a/test/circuits/Dense_test.circom +++ b/test/circuits/Dense_test.circom @@ -2,4 +2,4 @@ pragma circom 2.0.0; include "../../circuits/Dense.circom"; -component main = Dense(3,2); \ No newline at end of file +component main = Dense(20,10,10**36); \ No newline at end of file diff --git a/test/circuits/GlobalAveragePooling2D_test.circom b/test/circuits/GlobalAveragePooling2D_test.circom index c2c043b..d93837b 100644 --- a/test/circuits/GlobalAveragePooling2D_test.circom +++ b/test/circuits/GlobalAveragePooling2D_test.circom @@ -2,4 +2,4 @@ pragma circom 2.0.0; include "../../circuits/GlobalAveragePooling2D.circom"; -component main = GlobalAveragePooling2D(5, 5, 3, 4); \ No newline at end of file +component main = GlobalAveragePooling2D(5, 5, 3); \ No newline at end of file diff --git a/test/circuits/ReLU_test.circom b/test/circuits/ReLU_test.circom index d4ea238..ce9918a 100644 --- a/test/circuits/ReLU_test.circom +++ b/test/circuits/ReLU_test.circom @@ -4,7 +4,7 @@ include "../../circuits/ReLU.circom"; template relu_test() { signal input in[3]; - signal output out[3]; + signal input out[3]; component relu[3]; @@ -12,7 +12,7 @@ template relu_test() { relu[i] = ReLU(); relu[i].in <== in[i]; - out[i] <== relu[i].out; + relu[i].out <== out[i]; } } diff --git a/test/circuits/mnist_convnet_test.circom b/test/circuits/mnist_convnet_test.circom deleted file mode 100644 index e0832f4..0000000 --- a/test/circuits/mnist_convnet_test.circom +++ /dev/null @@ -1,112 +0,0 @@ -pragma circom 2.0.0; - -include "../../circuits/Conv2D.circom"; -include "../../circuits/Dense.circom"; -include "../../circuits/ArgMax.circom"; -include "../../circuits/Poly.circom"; -include "../../circuits/SumPooling2D.circom"; -include "../../circuits/Flatten2D.circom"; - -template mnist_convnet() { - signal input in[28][28][1]; - signal input conv2d_1_weights[3][3][1][4]; - signal input conv2d_1_bias[4]; - signal input conv2d_2_weights[3][3][4][8]; - signal input conv2d_2_bias[8]; - signal input dense_weights[200][10]; - signal input dense_bias[10]; - signal output out; - signal output dense_out[10]; - - component conv2d_1 = Conv2D(28,28,1,4,3,1); - component poly_1[26][26][4]; - component sum2d_1 = SumPooling2D(26,26,4,2,2); - component conv2d_2 = Conv2D(13,13,4,8,3,1); - component poly_2[11][11][8]; - component sum2d_2 = SumPooling2D(11,11,8,2,2); - component flatten = Flatten2D(5,5,8); - component dense = Dense(200,10); - component argmax = ArgMax(10); - - for (var i=0; i<28; i++) { - for (var j=0; j<28; j++) { - conv2d_1.in[i][j][0] <== in[i][j][0]; - } - } - - for (var m=0; m<4; m++) { - for (var i=0; i<3; i++) { - for (var j=0; j<3; j++) { - conv2d_1.weights[i][j][0][m] <== conv2d_1_weights[i][j][0][m]; - } - } - conv2d_1.bias[m] <== conv2d_1_bias[m]; - } - - for (var i=0; i<26; i++) { - for (var j=0; j<26; j++) { - for (var k=0; k<4; k++) { - poly_1[i][j][k] = Poly(10**6); - poly_1[i][j][k].in <== conv2d_1.out[i][j][k]; - sum2d_1.in[i][j][k] <== poly_1[i][j][k].out; - } - } - } - - for (var i=0; i<13; i++) { - for (var j=0; j<13; j++) { - for (var k=0; k<4; k++) { - conv2d_2.in[i][j][k] <== sum2d_1.out[i][j][k]; - } - } - } - - for (var m=0; m<8; m++) { - for (var i=0; i<3; i++) { - for (var j=0; j<3; j++) { - for (var k=0; k<4; k++) { - conv2d_2.weights[i][j][k][m] <== conv2d_2_weights[i][j][k][m]; - } - } - } - conv2d_2.bias[m] <== conv2d_2_bias[m]; - } - - for (var i=0; i<11; i++) { - for (var j=0; j<11; j++) { - for (var k=0; k<8; k++) { - poly_2[i][j][k] = Poly(10**15); - poly_2[i][j][k].in <== conv2d_2.out[i][j][k]; - sum2d_2.in[i][j][k] <== poly_2[i][j][k].out; - } - } - } - - for (var i=0; i<5; i++) { - for (var j=0; j<5; j++) { - for (var k=0; k<8; k++) { - flatten.in[i][j][k] <== sum2d_2.out[i][j][k]; - } - } - } - - for (var i=0; i<200; i++) { - dense.in[i] <== flatten.out[i]; - for (var j=0; j<10; j++) { - dense.weights[i][j] <== dense_weights[i][j]; - } - } - - for (var i=0; i<10; i++) { - dense.bias[i] <== dense_bias[i]; - } - - for (var i=0; i<10; i++) { - dense_out[i] <== dense.out[i]; - argmax.in[i] <== dense.out[i]; - } - - out <== argmax.out; -} - -component main = mnist_convnet(); \ No newline at end of file diff --git a/test/circuits/mnist_latest_precision_test.circom b/test/circuits/mnist_latest_precision_test.circom deleted file mode 100644 index e7a675d..0000000 --- a/test/circuits/mnist_latest_precision_test.circom +++ /dev/null @@ -1,140 +0,0 @@ -pragma circom 2.0.0; - -include "../../circuits/Conv2D.circom"; -include "../../circuits/Dense.circom"; -include "../../circuits/ArgMax.circom"; -include "../../circuits/ReLU.circom"; -include "../../circuits/AveragePooling2D.circom"; -include "../../circuits/BatchNormalization2D.circom"; -include "../../circuits/Flatten2D.circom"; - -template mnist_latest_precision() { - signal input in[28][28][1]; - signal input conv2d_1_weights[3][3][1][4]; - signal input conv2d_1_bias[4]; - signal input bn_1_a[4]; - signal input bn_1_b[4]; - signal input conv2d_2_weights[3][3][4][8]; - signal input conv2d_2_bias[8]; - signal input bn_2_a[8]; - signal input bn_2_b[8]; - signal input dense_weights[200][10]; - signal input dense_bias[10]; - signal output out; - signal output dense_out[10]; - - component conv2d_1 = Conv2D(28,28,1,4,3,1); - component bn_1 = BatchNormalization2D(26,26,4); - component relu_1[26][26][4]; - component avg2d_1 = AveragePooling2D(26,26,4,2,2,25); - component conv2d_2 = Conv2D(13,13,4,8,3,1); - component bn_2 = BatchNormalization2D(11,11,8); - component relu_2[11][11][8]; - component avg2d_2 = AveragePooling2D(11,11,8,2,2,25); - component flatten = Flatten2D(5,5,8); - component dense = Dense(200,10); - component argmax = ArgMax(10); - - for (var i=0; i<28; i++) { - for (var j=0; j<28; j++) { - conv2d_1.in[i][j][0] <== in[i][j][0]; - } - } - - for (var m=0; m<4; m++) { - for (var i=0; i<3; i++) { - for (var j=0; j<3; j++) { - conv2d_1.weights[i][j][0][m] <== conv2d_1_weights[i][j][0][m]; - } - } - conv2d_1.bias[m] <== conv2d_1_bias[m]; - } - - for (var k=0; k<4; k++) { - bn_1.a[k] <== bn_1_a[k]; - bn_1.b[k] <== bn_1_b[k]; - for (var i=0; i<26; i++) { - for (var j=0; j<26; j++) { - bn_1.in[i][j][k] <== conv2d_1.out[i][j][k]; - } - } - } - - - for (var i=0; i<26; i++) { - for (var j=0; j<26; j++) { - for (var k=0; k<4; k++) { - relu_1[i][j][k] = ReLU(); - relu_1[i][j][k].in <== bn_1.out[i][j][k]; - avg2d_1.in[i][j][k] <== relu_1[i][j][k].out; - } - } - } - - for (var i=0; i<13; i++) { - for (var j=0; j<13; j++) { - for (var k=0; k<4; k++) { - conv2d_2.in[i][j][k] <== avg2d_1.out[i][j][k]; - } - } - } - - for (var m=0; m<8; m++) { - for (var i=0; i<3; i++) { - for (var j=0; j<3; j++) { - for (var k=0; k<4; k++) { - conv2d_2.weights[i][j][k][m] <== conv2d_2_weights[i][j][k][m]; - } - } - } - conv2d_2.bias[m] <== conv2d_2_bias[m]; - } - - for (var k=0; k<8; k++) { - bn_2.a[k] <== bn_2_a[k]; - bn_2.b[k] <== bn_2_b[k]; - for (var i=0; i<11; i++) { - for (var j=0; j<11; j++) { - bn_2.in[i][j][k] <== conv2d_2.out[i][j][k]; - } - } - } - - for (var i=0; i<11; i++) { - for (var j=0; j<11; j++) { - for (var k=0; k<8; k++) { - relu_2[i][j][k] = ReLU(); - relu_2[i][j][k].in <== bn_2.out[i][j][k]; - avg2d_2.in[i][j][k] <== relu_2[i][j][k].out; - } - } - } - - for (var i=0; i<5; i++) { - for (var j=0; j<5; j++) { - for (var k=0; k<8; k++) { - flatten.in[i][j][k] <== avg2d_2.out[i][j][k]; - } - } - } - - for (var i=0; i<200; i++) { - dense.in[i] <== flatten.out[i]; - for (var j=0; j<10; j++) { - dense.weights[i][j] <== dense_weights[i][j]; - } - } - - for (var i=0; i<10; i++) { - dense.bias[i] <== dense_bias[i]; - } - - for (var i=0; i<10; i++) { - dense_out[i] <== dense.out[i]; - argmax.in[i] <== dense.out[i]; - } - - out <== argmax.out; -} - -component main = mnist_latest_precision(); \ No newline at end of file diff --git a/test/circuits/mnist_latest_test.circom b/test/circuits/mnist_latest_test.circom deleted file mode 100644 index 7303793..0000000 --- a/test/circuits/mnist_latest_test.circom +++ /dev/null @@ -1,140 +0,0 @@ -pragma circom 2.0.0; - -include "../../circuits/Conv2D.circom"; -include "../../circuits/Dense.circom"; -include "../../circuits/ArgMax.circom"; -include "../../circuits/Poly.circom"; -include "../../circuits/AveragePooling2D.circom"; -include "../../circuits/BatchNormalization2D.circom"; -include "../../circuits/Flatten2D.circom"; - -template mnist_latest() { - signal input in[28][28][1]; - signal input conv2d_1_weights[3][3][1][4]; - signal input conv2d_1_bias[4]; - signal input bn_1_a[4]; - signal input bn_1_b[4]; - signal input conv2d_2_weights[3][3][4][8]; - signal input conv2d_2_bias[8]; - signal input bn_2_a[8]; - signal input bn_2_b[8]; - signal input dense_weights[200][10]; - signal input dense_bias[10]; - signal output out; - signal output dense_out[10]; - - component conv2d_1 = Conv2D(28,28,1,4,3,1); - component bn_1 = BatchNormalization2D(26,26,4); - component poly_1[26][26][4]; - component avg2d_1 = AveragePooling2D(26,26,4,2,2,25); - component conv2d_2 = Conv2D(13,13,4,8,3,1); - component bn_2 = BatchNormalization2D(11,11,8); - component poly_2[11][11][8]; - component avg2d_2 = AveragePooling2D(11,11,8,2,2,25); - component flatten = Flatten2D(5,5,8); - component dense = Dense(200,10); - component argmax = ArgMax(10); - - for (var i=0; i<28; i++) { - for (var j=0; j<28; j++) { - conv2d_1.in[i][j][0] <== in[i][j][0]; - } - } - - for (var m=0; m<4; m++) { - for (var i=0; i<3; i++) { - for (var j=0; j<3; j++) { - conv2d_1.weights[i][j][0][m] <== conv2d_1_weights[i][j][0][m]; - } - } - conv2d_1.bias[m] <== conv2d_1_bias[m]; - } - - for (var k=0; k<4; k++) { - bn_1.a[k] <== bn_1_a[k]; - bn_1.b[k] <== bn_1_b[k]; - for (var i=0; i<26; i++) { - for (var j=0; j<26; j++) { - bn_1.in[i][j][k] <== conv2d_1.out[i][j][k]; - } - } - } - - - for (var i=0; i<26; i++) { - for (var j=0; j<26; j++) { - for (var k=0; k<4; k++) { - poly_1[i][j][k] = Poly(10**6); - poly_1[i][j][k].in <== bn_1.out[i][j][k]; - avg2d_1.in[i][j][k] <== poly_1[i][j][k].out; - } - } - } - - for (var i=0; i<13; i++) { - for (var j=0; j<13; j++) { - for (var k=0; k<4; k++) { - conv2d_2.in[i][j][k] <== avg2d_1.out[i][j][k]; - } - } - } - - for (var m=0; m<8; m++) { - for (var i=0; i<3; i++) { - for (var j=0; j<3; j++) { - for (var k=0; k<4; k++) { - conv2d_2.weights[i][j][k][m] <== conv2d_2_weights[i][j][k][m]; - } - } - } - conv2d_2.bias[m] <== conv2d_2_bias[m]; - } - - for (var k=0; k<8; k++) { - bn_2.a[k] <== bn_2_a[k]; - bn_2.b[k] <== bn_2_b[k]; - for (var i=0; i<11; i++) { - for (var j=0; j<11; j++) { - bn_2.in[i][j][k] <== conv2d_2.out[i][j][k]; - } - } - } - - for (var i=0; i<11; i++) { - for (var j=0; j<11; j++) { - for (var k=0; k<8; k++) { - poly_2[i][j][k] = Poly(10**18); - poly_2[i][j][k].in <== bn_2.out[i][j][k]; - avg2d_2.in[i][j][k] <== poly_2[i][j][k].out; - } - } - } - - for (var i=0; i<5; i++) { - for (var j=0; j<5; j++) { - for (var k=0; k<8; k++) { - flatten.in[i][j][k] <== avg2d_2.out[i][j][k]; - } - } - } - - for (var i=0; i<200; i++) { - dense.in[i] <== flatten.out[i]; - for (var j=0; j<10; j++) { - dense.weights[i][j] <== dense_weights[i][j]; - } - } - - for (var i=0; i<10; i++) { - dense.bias[i] <== dense_bias[i]; - } - - for (var i=0; i<10; i++) { - dense_out[i] <== dense.out[i]; - argmax.in[i] <== dense.out[i]; - } - - out <== argmax.out; -} - -component main = mnist_latest(); \ No newline at end of file diff --git a/test/circuits/mnist_test.circom b/test/circuits/mnist_test.circom index ce58e4e..ce849d8 100644 --- a/test/circuits/mnist_test.circom +++ b/test/circuits/mnist_test.circom @@ -4,47 +4,166 @@ include "../../circuits/Conv2D.circom"; include "../../circuits/Dense.circom"; include "../../circuits/ArgMax.circom"; include "../../circuits/ReLU.circom"; +include "../../circuits/AveragePooling2D.circom"; +include "../../circuits/BatchNormalization2D.circom"; include "../../circuits/Flatten2D.circom"; template mnist() { signal input in[28][28][1]; - signal input conv2d_weights[3][3][1][1]; - signal input conv2d_bias[1]; - signal input dense_weights[676][10]; - signal input dense_bias[10]; - signal output out; - signal output dense_out[10]; - component conv2d = Conv2D(28,28,1,1,3,1); - component flatten = Flatten2D(26,26,1); - component relu[26*26]; - component dense = Dense(676,10); + signal input conv2d_1_weights[3][3][1][4]; + signal input conv2d_1_bias[4]; + signal input conv2d_1_out[26][26][4]; + signal input conv2d_1_remainder[26][26][4]; + + signal input bn_1_a[4]; + signal input bn_1_b[4]; + signal input bn_1_out[26][26][4]; + signal input bn_1_remainder[26][26][4]; + + signal input relu_1_out[26][26][4]; + + signal input avg2d_1_out[13][13][4]; + signal input avg2d_1_remainder[13][13][4]; + + signal input conv2d_2_weights[3][3][4][8]; + signal input conv2d_2_bias[8]; + signal input conv2d_2_out[11][11][8]; + signal input conv2d_2_remainder[11][11][8]; + + signal input bn_2_a[8]; + signal input bn_2_b[8]; + signal input bn_2_out[11][11][8]; + signal input bn_2_remainder[11][11][8]; + + signal input relu_2_out[11][11][8]; + + signal input avg2d_2_out[5][5][8]; + signal input avg2d_2_remainder[5][5][8]; + + signal input flatten_out[200]; + + signal input dense_weights[200][10]; + signal input dense_bias[10]; + signal input dense_out[10]; + signal input dense_remainder[10]; + + signal input argmax_out; + + signal output out; + + component conv2d_1 = Conv2D(28,28,1,4,3,1,10**18); + component bn_1 = BatchNormalization2D(26,26,4,10**18); + component relu_1[26][26][4]; + component avg2d_1 = AveragePooling2D(26,26,4,2,2); + component conv2d_2 = Conv2D(13,13,4,8,3,1,10**18); + component bn_2 = BatchNormalization2D(11,11,8,10**18); + component relu_2[11][11][8]; + component avg2d_2 = AveragePooling2D(11,11,8,2,2); + component flatten = Flatten2D(5,5,8); + component dense = Dense(200,10,10**18); component argmax = ArgMax(10); for (var i=0; i<28; i++) { for (var j=0; j<28; j++) { - conv2d.in[i][j][0] <== in[i][j][0]; + conv2d_1.in[i][j][0] <== in[i][j][0]; } } - for (var i=0; i<3; i++) { - for (var j=0; j<3; j++) { - conv2d.weights[i][j][0][0] <== conv2d_weights[i][j][0][0]; + for (var m=0; m<4; m++) { + for (var i=0; i<3; i++) { + for (var j=0; j<3; j++) { + conv2d_1.weights[i][j][0][m] <== conv2d_1_weights[i][j][0][m]; + } + } + conv2d_1.bias[m] <== conv2d_1_bias[m]; + } + + for (var k=0; k<4; k++) { + bn_1.a[k] <== bn_1_a[k]; + bn_1.b[k] <== bn_1_b[k]; + for (var i=0; i<26; i++) { + for (var j=0; j<26; j++) { + conv2d_1.out[i][j][k] <== conv2d_1_out[i][j][k]; + conv2d_1.remainder[i][j][k] <== conv2d_1_remainder[i][j][k]; + bn_1.in[i][j][k] <== conv2d_1.out[i][j][k]; + } } } - conv2d.bias[0] <== conv2d_bias[0]; for (var i=0; i<26; i++) { for (var j=0; j<26; j++) { - flatten.in[i][j][0] <== conv2d.out[i][j][0]; + for (var k=0; k<4; k++) { + bn_1.out[i][j][k] <== bn_1_out[i][j][k]; + bn_1.remainder[i][j][k] <== bn_1_remainder[i][j][k]; + relu_1[i][j][k] = ReLU(); + relu_1[i][j][k].in <== bn_1.out[i][j][k]; + relu_1[i][j][k].out <== relu_1_out[i][j][k]; + avg2d_1.in[i][j][k] <== relu_1[i][j][k].out; + } } } - for (var i=0; i<26*26; i++) { - relu[i] = ReLU(); - relu[i].in <== flatten.out[i]; - dense.in[i] <== relu[i].out; + for (var i=0; i<13; i++) { + for (var j=0; j<13; j++) { + for (var k=0; k<4; k++) { + avg2d_1.out[i][j][k] <== avg2d_1_out[i][j][k]; + avg2d_1.remainder[i][j][k] <== avg2d_1_remainder[i][j][k]; + conv2d_2.in[i][j][k] <== avg2d_1.out[i][j][k]; + } + } + } + + for (var m=0; m<8; m++) { + for (var i=0; i<3; i++) { + for (var j=0; j<3; j++) { + for (var k=0; k<4; k++) { + conv2d_2.weights[i][j][k][m] <== conv2d_2_weights[i][j][k][m]; + } + } + } + conv2d_2.bias[m] <== conv2d_2_bias[m]; + } + + for (var k=0; k<8; k++) { + bn_2.a[k] <== bn_2_a[k]; + bn_2.b[k] <== bn_2_b[k]; + for (var i=0; i<11; i++) { + for (var j=0; j<11; j++) { + conv2d_2.out[i][j][k] <== conv2d_2_out[i][j][k]; + conv2d_2.remainder[i][j][k] <== conv2d_2_remainder[i][j][k]; + bn_2.in[i][j][k] <== conv2d_2.out[i][j][k]; + } + } + } + + for (var i=0; i<11; i++) { + for (var j=0; j<11; j++) { + for (var k=0; k<8; k++) { + bn_2.out[i][j][k] <== bn_2_out[i][j][k]; + bn_2.remainder[i][j][k] <== bn_2_remainder[i][j][k]; + relu_2[i][j][k] = ReLU(); + relu_2[i][j][k].in <== bn_2.out[i][j][k]; + relu_2[i][j][k].out <== relu_2_out[i][j][k]; + avg2d_2.in[i][j][k] <== relu_2[i][j][k].out; + } + } + } + + for (var i=0; i<5; i++) { + for (var j=0; j<5; j++) { + for (var k=0; k<8; k++) { + avg2d_2.out[i][j][k] <== avg2d_2_out[i][j][k]; + avg2d_2.remainder[i][j][k] <== avg2d_2_remainder[i][j][k]; + flatten.in[i][j][k] <== avg2d_2.out[i][j][k]; + } + } + } + + for (var i=0; i<200; i++) { + flatten.out[i] <== flatten_out[i]; + dense.in[i] <== flatten.out[i]; for (var j=0; j<10; j++) { dense.weights[i][j] <== dense_weights[i][j]; } @@ -55,10 +174,12 @@ template mnist() { } for (var i=0; i<10; i++) { - dense_out[i] <== dense.out[i]; + dense.out[i] <== dense_out[i]; + dense.remainder[i] <== dense_remainder[i]; argmax.in[i] <== dense.out[i]; } + argmax.out <== argmax_out; out <== argmax.out; } diff --git a/test/circuits/model1_test.circom b/test/circuits/model1_test.circom index 3553d33..1d19ab0 100644 --- a/test/circuits/model1_test.circom +++ b/test/circuits/model1_test.circom @@ -5,13 +5,24 @@ include "../../circuits/ReLU.circom"; template model1() { signal input in[3]; + signal input Dense32weights[3][2]; + signal input Dense32bias[2]; + signal input Dense32out[2]; + signal input Dense32remainder[2]; + + signal input ReLUout[2]; + signal input Dense21weights[2][1]; + signal input Dense21bias[1]; + signal input Dense21out[1]; + signal input Dense21remainder[1]; + signal output out; - component Dense32 = Dense(3,2); + component Dense32 = Dense(3,2, 10**36); component relu[2]; - component Dense21 = Dense(2,1); + component Dense21 = Dense(2,1, 10**36); for (var i=0; i<3; i++) { Dense32.in[i] <== in[i]; @@ -22,11 +33,14 @@ template model1() { for (var i=0; i<2; i++) { Dense32.bias[i] <== 0; + Dense32.out[i] <== Dense32out[i]; + Dense32.remainder[i] <== Dense32remainder[i]; } for (var i=0; i<2; i++) { relu[i] = ReLU(); relu[i].in <== Dense32.out[i]; + relu[i].out <== ReLUout[i]; } for (var i=0; i<2; i++) { @@ -35,6 +49,8 @@ template model1() { } Dense21.bias[0] <== 0; + Dense21.out[0] <== Dense21out[0]; + Dense21.remainder[0] <== Dense21remainder[0]; out <== Dense21.out[0]; } diff --git a/test/mnist.js b/test/mnist.js index c95ff18..f39eaa2 100644 --- a/test/mnist.js +++ b/test/mnist.js @@ -10,63 +10,17 @@ const Fr = new F1Field(exports.p); const assert = chai.assert; -const json = require("../models/mnist_input.json"); -const OUTPUT = require("../models/mnist_output.json"); +const INPUT = require("../models/mnist_input.json"); describe("mnist test", function () { this.timeout(100000000); it("should return correct output", async () => { const circuit = await wasm_tester(path.join(__dirname, "circuits", "mnist_test.circom")); - //await circuit.loadConstraints(); - //assert.equal(circuit.nVars, 371086); - //assert.equal(circuit.constraints.length, 364883); - - const conv2d_weights = []; - const conv2d_bias = []; - const dense_weights = []; - const dense_bias = []; - - for (var i=0; i { - const circuit = await wasm_tester(path.join(__dirname, "circuits", "mnist_convnet_test.circom")); - - let INPUT = {}; - - for (const [key, value] of Object.entries(json)) { - if (Array.isArray(value)) { - let tmpArray = []; - for (let i = 0; i < value.flat().length; i++) { - tmpArray.push(Fr.e(value.flat()[i])); - } - INPUT[key] = tmpArray; - } else { - INPUT[key] = Fr.e(value); - } - } - - const witness = await circuit.calculateWitness(INPUT, true); - - //console.log(witness[1]); - - assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - assert(Fr.eq(Fr.e(witness[1]),Fr.e(7))); - - let ape = 0; - - for (var i=0; i { - const circuit = await wasm_tester(path.join(__dirname, "circuits", "mnist_latest_test.circom")); - await circuit.loadConstraints(); - console.log(circuit.nVars, circuit.constraints.length); - - let INPUT = {}; - - for (const [key, value] of Object.entries(json)) { - if (Array.isArray(value)) { - let tmpArray = []; - for (let i = 0; i < value.flat().length; i++) { - tmpArray.push(Fr.e(value.flat()[i])); - } - INPUT[key] = tmpArray; - } else { - INPUT[key] = Fr.e(value); - } - } - - const witness = await circuit.calculateWitness(INPUT, true); - - //console.log(witness[1]); - - assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - assert(Fr.eq(Fr.e(witness[1]),Fr.e(7))); - - let ape = 0; - - for (var i=0; i { - const circuit = await wasm_tester(path.join(__dirname, "circuits", "mnist_latest_precision_test.circom")); - await circuit.loadConstraints(); - console.log(circuit.nVars, circuit.constraints.length); - - let INPUT = {}; - - for (const [key, value] of Object.entries(json)) { - if (Array.isArray(value)) { - let tmpArray = []; - for (let i = 0; i < value.flat().length; i++) { - tmpArray.push(Fr.e(value.flat()[i])); - } - INPUT[key] = tmpArray; - } else { - INPUT[key] = Fr.e(value); - } - } - - const witness = await circuit.calculateWitness(INPUT, true); - - //console.log(witness[1]); - - assert(Fr.eq(Fr.e(witness[0]),Fr.e(1))); - assert(Fr.eq(Fr.e(witness[1]),Fr.e(7))); - - let ape = 0; - - for (var i=0; i { const circuit = await wasm_tester(path.join(__dirname, "circuits", "model1_test.circom")); - //await circuit.loadConstraints(); - //assert.equal(circuit.nVars, 1050); - //assert.equal(circuit.constraints.length, 1042); - const Dense32weights = []; - const Dense21weights = [] - - for (var i=0; i