-
Notifications
You must be signed in to change notification settings - Fork 6
/
detection_howimetyourmark.py
211 lines (163 loc) · 109 KB
/
detection_howimetyourmark.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
import time
import random
import cv2
import os
import numpy as np
import pywt
from matplotlib import pyplot as plt
from scipy.signal import convolve2d
from math import sqrt
from scipy.ndimage.filters import gaussian_filter
from scipy.signal import medfilt
# Detection, with these parameters, passes the 6 checks of the tester2.py script
def wpsnr(img1, img2):
img1 = np.float32(img1) / 255.0
img2 = np.float32(img2) / 255.0
difference = img1 - img2
same = not np.any(difference)
if same is True:
return 9999999
csf = np.genfromtxt('utilities/csf.csv', delimiter=',')
ew = convolve2d(difference, np.rot90(csf, 2), mode='valid')
decibels = 20.0 * np.log10(1.0 / sqrt(np.mean(np.mean(ew ** 2))))
return decibels
def similarity(X, X_star):
# Computes the similarity measure between the original and the new watermarks.
s = np.sum(np.multiply(X, X_star)) / np.sqrt(np.sum(np.multiply(X_star, X_star)))
return s
def extraction(input1, input2, input3):
original_image = input1.copy()
watermarked_image = input2.copy()
attacked_image = input3.copy()
alpha = 5.11 # 8 is the lower limit that can be used
n_blocks_to_embed = 32
block_size = 4
watermark_size = 1024
Uwm = np.asarray([-2.312674581369473792e-01,5.734286964393464636e-02,-2.261564331488026824e-01,1.305792896825790084e-01,-5.812100933872396680e-03,1.384947532863283204e-01,1.742468410014228197e-01,-5.555749206790829703e-02,7.710688240399049542e-02,1.136206219809455242e-01,2.030356098275214738e-01,9.106351456092709462e-02,2.085957745697965271e-01,-2.424700208044083261e-01,-1.113850996399732562e-01,-2.072189180146601639e-01,2.896370099957514821e-01,3.662998689707642752e-01,-7.331063871559635736e-02,1.484942243228606351e-01,-2.564923731873633983e-01,2.169437047321725043e-01,1.676665106811171813e-03,8.700965853476992640e-02,-2.011499699771962801e-01,-1.895133867623456925e-01,-2.403383039403018673e-01,-1.154148493338273684e-01,2.595391212300455774e-01,1.205456515103637688e-01,-8.003919946013743000e-03,3.182392866362943051e-02,-2.051478660895180717e-01,-1.967866091099609860e-02,-1.763359046288379972e-01,3.307359505226786789e-03,-1.161404338767198785e-01,1.265466865016821874e-02,-3.575389024947153160e-01,2.667024990595749656e-02,2.923628156482018792e-01,-1.557689603062203942e-01,-1.419605571415316625e-01,-2.650371929829307138e-01,-1.549056592018247525e-01,-4.991828555669636409e-03,-1.614539621021212623e-01,-1.393088529825380339e-01,-1.358240246787772443e-01,2.777145513998735549e-01,1.741663027078321768e-01,1.976584757579410989e-02,8.398519946633939415e-02,2.046214917381041290e-02,-4.801319687216510507e-02,-6.121433219855505065e-02,2.858992708523436233e-02,-4.808349542735054771e-01,3.228327723572384234e-02,-5.186196602942633876e-02,-3.488849695162906106e-01,-1.268296129846498976e-01,3.168630129594619121e-02,-1.450440058485674699e-02,-1.805477386591820277e-01,1.812900376984538098e-01,2.914803588787474031e-01,-4.087813123390245107e-02,1.770286416084284331e-01,2.610172319507291644e-02,1.310974126225562635e-02,-1.179795410007625778e-01,3.555846947135302694e-01,-1.123954073420395522e-01,2.247070345571509087e-01,7.963354659780158551e-02,-5.107528522329425613e-02,-1.943557433766380793e-01,-3.089791102696144015e-02,-1.444323104956420634e-01,-4.283689679599265304e-02,2.487198066960395401e-02,-2.391196615216826804e-01,1.479998589259833366e-02,1.126689121233365454e-01,6.533792122745954445e-02,-3.085752716347547331e-01,-2.950944355255530338e-01,6.193510340251599799e-02,3.612269212836249355e-01,-1.182093736829816916e-01,-1.481050971435980690e-01,-2.272097950980542513e-01,-8.202033530004998463e-02,2.347302414550245242e-01,2.990009511016244667e-02,-1.535711238816945268e-01,-7.787373339617266466e-02,4.986712696240393899e-02,-5.598463691278189602e-02,2.991820405873375499e-01,-8.637352499410749784e-02,-4.592425224190606614e-01,-9.179476614159386150e-02,-2.452603169041815967e-01,4.305439733544035030e-02,1.865933955780224862e-01,-1.358304656527241534e-02,1.045181737564016833e-01,-2.662532460257912570e-01,-3.708455993698326486e-02,-1.570225783954271037e-01,-1.910125942535830131e-03,-1.568551489774093199e-01,8.007970483254320260e-02,-2.452959560342811429e-01,1.979314782091574632e-01,1.115904203322855837e-01,-1.122468028117899665e-03,-1.032266381457583176e-01,1.855091131478703304e-01,-1.587066593876754750e-01,-7.804909927147810067e-02,3.080687784572328503e-01,3.271728683627215806e-01,1.395626040004595454e-02,6.347402414808372972e-02,1.350355878868284842e-01,-1.476199391370064673e-01,1.250883289380611552e-01,1.979853063775842067e-02,-2.143092623501116345e-01,-7.747755796928472438e-02,-4.120352004850750816e-01,-6.037797092557285750e-02,1.307592617404063351e-01,-2.357178740844867448e-01,1.049234657408741195e-01,-6.730943579327085084e-03,-3.465662437329853351e-01,1.025485567212078564e-01,-1.719479911401737907e-02,1.550527750971004894e-03,-1.213580830723632875e-01,2.090862119130119934e-01,1.498900065589081620e-01,5.424136092346961563e-02,-8.055825929252929951e-02,-2.779746048230506417e-01,4.499556409398199758e-02,-7.053160531186558613e-02,-5.220716737899964988e-02,3.387353518883144399e-01,2.015947990877625107e-01,2.421534239836145297e-01,-3.382096227305393943e-01,-2.754755208279696665e-02,9.717768157316801492e-02,-6.707664262413037815e-02,-4.166312670279521263e-02,-1.968234679216139815e-01,-2.600250843616532803e-01,4.587834047846331420e-02,-2.674474027224720274e-01,-8.041020854506371329e-02,2.008213178282848288e-01,1.289947327930243415e-01,2.649889525328689294e-02,-4.460057473242410447e-03,2.194387610345449602e-01,5.088484498849268900e-02,2.025870010017688516e-01,-1.696551235916849212e-02,-1.916665374020514179e-01,2.201973879403067991e-01,-1.720473032411543313e-01,-3.982365899165991596e-01,6.841777439425472673e-02,1.765061012975841226e-01,4.408553318585904657e-02,2.437315168794831066e-01,4.072856373143580837e-03,5.452248565975711253e-02,5.403002893513503962e-02,8.175823626082039108e-02,2.580876178538704657e-02,1.092812890142179222e-01,-3.071786332922544771e-01,-1.423717547278703817e-02,1.488010260296773191e-01,-3.250523752902119701e-01,2.135945438505207628e-01,-1.537229313800749786e-01,7.788155421704953674e-02,-3.345029708909899591e-01,-2.172430238399104818e-02,-8.725094664692593927e-02,-1.303978487122770535e-01,2.844498922537698204e-01,2.816040629633119186e-01,-7.204578698495175959e-02,-5.681694695371924259e-02,2.630025879231647767e-01,-3.401674570050895047e-02,-7.327327398432090244e-02,-1.098429307326906357e-01,1.745908520513989870e-01,-6.509529608190144090e-02,1.218263710984234943e-01,-8.286709613916617978e-02,-4.984306269079434278e-04,-7.171415098786844411e-02,4.692960921612043812e-01,1.603755860733981631e-01,-1.098181768596525124e-02,5.638380526912654261e-02,-1.422962431349450441e-01,-8.509513278529185626e-03,2.868027352426932297e-01,7.436176491061750882e-02,-5.681736560251078767e-03,-2.288292166734426369e-01,1.702606237793383159e-01,-2.767851143812214976e-01,-1.857421545421104048e-01,9.179481227581752500e-02,-1.214596955273049145e-01,-1.205223688606731590e-02,-4.046427441673125514e-01,1.179209028325882425e-01,-1.943914929426421856e-01,-2.728017564711994469e-02,-1.074092722673773703e-01,9.155645237233106873e-03,-2.948127530934139054e-02,3.160260756735100984e-01,1.401404405319671975e-01,-2.252553588517958727e-01,3.371309042872024792e-03,6.561557089104248786e-02,1.087102685507836258e-01,-2.590281048007928577e-01,-9.860790978165202836e-03,5.940095201750504594e-02,-2.420993361328979965e-01,1.105503695143443266e-01,2.869599452018226637e-01,-6.445300067952494660e-02,2.300748813123014436e-02,1.052611810419052246e-01,1.789730235552756121e-01,1.128938359094167621e-01,-3.386469054133581236e-01,-9.539315591331803956e-02,2.094951559417483622e-01,2.738903477073243442e-01,-2.015381578210834190e-01,-1.109256582967146215e-01,-2.666508641216727704e-01,-4.647028761040890993e-02,3.725642446466949642e-01,-3.068758923625434787e-01,7.690925020344585757e-03,-1.555020505669367226e-01,4.445781509976649837e-02,-1.510807746885218794e-01,1.523690547681785801e-01,2.494428720576720437e-01,7.207030565801374189e-02,6.539360455217112233e-02,2.369395414552128709e-01,1.261057857828651874e-01,9.654894746319894749e-02,1.675052112476187460e-01,-1.345420668436204253e-02,2.583332614913148029e-01,-9.209735548807024275e-02,-3.670947939594557674e-01,6.503931082840862243e-02,1.834425919767244950e-02,1.427606222526429658e-01,1.743451631863879303e-02,1.314378227667066870e-02,1.722270884814444125e-01,-1.815092644815280709e-01,-1.815931257682351085e-01,-2.327417466084081843e-01,4.616802622286359653e-02,-1.745967991712214507e-01,-2.594724923090265256e-01,5.590157263953961925e-02,1.141569405629907358e-01,-8.041103259182230678e-02,6.637202226408706052e-02,-3.883467578060514902e-01,1.157954481589099777e-01,2.462454633770025658e-01,-2.406633973097585619e-03,2.153202090910190381e-01,-7.036259024808710905e-02,9.871755204965251829e-02,1.818025453076950460e-01,-5.045112245500642939e-02,1.593001300643836216e-01,2.238526857320819741e-01,2.252683000357030146e-02,-2.671257988350040358e-01,-2.459354212670394058e-01,1.643158115930744012e-01,-1.020122845495535779e-01,3.352408657977508644e-01,7.532426314418058655e-02,-1.943481661740152910e-01,2.208351882884767303e-01,3.570934569285961341e-02,-2.168634164789385310e-01,4.821523508277111847e-02,6.180345309753919325e-02,-2.046991752199202874e-01,-8.631366016661588814e-02,-1.544120571745492276e-01,8.497717029148608991e-02,6.140311802362923010e-02,1.035182641398566250e-01,-1.243790829266177705e-01,-3.733358523981709642e-01,1.928447939401760070e-01,1.881878320022517259e-01,2.562234369403828538e-01,1.029325743562098938e-01,-2.005018698555424694e-01,3.250731156273520828e-01,-1.242599713793901411e-01,1.580655271445715326e-01,-6.233864679039234635e-02,-1.818897010106016177e-01,-1.717854879508569077e-01,1.250567288944365030e-01,-7.220726539318360337e-02,-4.027291424376436835e-01,-1.145061073850820593e-01,-3.876710870623292088e-02,1.837442865199159503e-01,-2.065238513692637945e-01,2.601379372609702312e-02,-5.441021318160249587e-02,-1.157288214611116445e-03,1.339993428904727446e-01,2.488113506094404015e-01,-1.412621011653311942e-01,-7.939985116415939487e-03,1.427562973352667353e-01,-1.233297323869589346e-01,-8.529305987064209060e-02,2.597861252758597583e-01,1.543260024498306071e-01,-3.072051175430020806e-02,4.757343688690060524e-02,2.475181514512133640e-01,-2.783606186564931972e-01,1.695654186947071485e-01,-2.961737087311850369e-01,-2.081937034713350065e-01,-9.330224782426501870e-03,9.266873310144914389e-02,-1.767691704767234140e-01,-3.424991880707523723e-02,-6.259168671047403258e-03,1.929719697351116037e-01,-1.846880274830328683e-01,6.434445971553515164e-02,8.491961688138313646e-02,1.059070809187402373e-01,7.786310747523665643e-02,3.163477122696107258e-01,2.130673038076103497e-03,4.234059401152792113e-01,-1.623072779566472890e-01,9.289320121696333088e-02,-1.280600466915775559e-01,1.511221447205684798e-01,-7.888930623355489002e-02,-7.190608003656652480e-02,-2.799413793044073784e-01,-1.469138915111231347e-01,-2.150335753591417209e-01,-1.873691656699484065e-01,5.402624485946441041e-02,-2.150951047130818528e-01,1.899969017318813569e-01,5.905693411678545907e-04,-1.373279459972571726e-01,-3.590008412007470451e-01,-6.896644218429066886e-02,-2.007281386306874749e-01,1.291147443090582929e-02,-1.542944370322079373e-01,6.832344015929234238e-02,-2.040287004853726938e-01,-2.098679267962885453e-01,-3.907978412399627788e-02,1.731283757097731857e-01,-3.662284086345660161e-01,6.534377684709434531e-02,7.487843626787661633e-02,1.161658648266038728e-02,-1.315760852401135772e-01,-2.699072088547054826e-01,1.124923531419746991e-01,2.359241102386487321e-01,-1.868336489902456751e-02,2.482583968132323904e-01,2.337104761982357858e-03,-6.173962361677592242e-03,-2.376950938305164851e-01,-2.281381936211826778e-01,-2.366944465565419542e-01,6.497254494542420433e-02,1.290922014151944519e-01,1.117344911199094279e-02,-8.447410196023719120e-02,8.789055762680096640e-02,-1.733206697284223052e-01,1.994828143781124385e-01,-3.315068376257311600e-02,-2.586052483802619983e-01,-2.158756332805346900e-01,1.632472247453365943e-01,-2.630119239274614773e-01,1.670603691659479639e-01,5.260920551953133240e-01,1.346332549138160861e-01,2.768903880864039269e-01,8.506998766345379159e-02,3.889993275012845059e-02,1.158842171041618296e-01,4.311027569152275918e-02,1.278829726210344853e-01,-1.987405531060523478e-01,-8.297921531549379282e-02,2.061275718731301818e-02,-6.163400461195268909e-02,-5.568050613737408894e-02,7.033907279277485519e-03,1.848459506858773360e-01,2.970165040858234740e-01,7.450546550709068183e-02,7.940291823329950760e-02,-1.591157303809467849e-01,-3.801042642251420411e-02,1.743001430809867358e-01,3.675277014013900723e-01,-4.555330113283620995e-03,1.129642709892219044e-01,-2.171706853275614385e-02,2.422699901543125256e-03,-3.123696862624185666e-01,-1.302293235642291713e-01,-2.370760529561151755e-02,1.661716451627766322e-01,3.090645098031877813e-01,6.556722796562904076e-02,-6.345801409025293716e-02,-3.957575709618095516e-02,-3.546054363112138841e-02,7.775048701908478244e-02,2.892936184691898283e-01,-1.022005871451429765e-01,5.645185389392989687e-03,-3.641323923393250395e-01,-2.675818731917334881e-01,-1.432099856017720607e-01,-2.247982822318935203e-01,-3.774069104336056496e-02,2.069551112170754936e-01,-2.585973172907241047e-01,5.812345861564582189e-02,-1.987438944355495174e-01,1.178048274682123586e-01,-4.253899894497036732e-02,-1.514194171233276542e-01,2.267122697303122214e-01,1.092884492022044296e-01,-2.849048966075841682e-01,2.278182634706008292e-01,-3.076589526608072139e-02,-3.278871756419599309e-03,5.414118232045159879e-02,-3.045452668013792427e-02,-4.878419770774513470e-02,-1.600845762421867213e-01,1.574175086260860001e-01,-1.218451637237630975e-01,-2.175754987471383850e-01,-3.346118944762734304e-01,2.944916783241597336e-01,4.441747046051806869e-02,-1.355650322162030019e-01,-1.787691051477789117e-01,1.964773141105842849e-02,-5.494092811780745128e-02,4.063085873421807409e-02,-1.081765040921889298e-01,-8.320365652695260739e-02,-3.265915712056056686e-01,-2.126172520392120846e-01,3.322006134168621339e-01,-4.214706007136734267e-02,3.675297615095982767e-02,8.290727168773853739e-02,-3.293446957542191522e-01,-7.412827361376676805e-02,-1.906142038168740505e-01,4.801658648627642190e-02,-1.464554392437349972e-01,-2.002126052689062741e-02,1.084179492668270878e-01,3.846434260801897542e-01,1.499135692286266142e-01,9.531178374989025814e-02,1.358454527196167883e-01,2.529409025215428874e-01,3.019403892365517539e-01,-9.099251586621552590e-02,-2.850937082983829793e-02,3.074957146198888380e-01,-4.811031153381105374e-02,1.063839502233056983e-01,-9.176995196348054426e-03,-2.030864641584407271e-01,7.525583401932678385e-02,-2.928771424897022232e-02,-1.922392268979526975e-01,-1.554647104107192146e-01,8.438467983837445383e-03,-3.851300564709512209e-01,2.655201363716838681e-01,-1.704931093821242249e-01,1.661208374145929090e-01,8.596665107291168173e-02,3.438878798382502544e-02,2.097803515006519126e-01,8.638014419414014045e-02,-1.130912285551794599e-01,-1.896654424317452126e-01,2.641716165147616202e-01,1.604264824782860310e-01,1.569943275183406095e-01,-1.311357647306690966e-01,-1.781761703705158628e-01,1.172668075437571268e-02,-1.222946380851827330e-01,2.605521612632449163e-02,2.775762030255904955e-01,-7.215045294474554949e-02,-8.891970618807898408e-02,-5.596733920591911993e-02,-1.774376158900477507e-01,-2.399460448725507580e-02,-1.109214687343154232e-01,5.230714431448642981e-02,2.351163098793562778e-02,1.620944779539103264e-01,1.234905442710996365e-01,2.210773375301755828e-01,-3.944065190220196193e-01,1.382215105499734475e-01,5.915525110523441737e-02,-1.527196329358126436e-01,8.553777875880333448e-02,-5.244048559656615260e-02,2.688126961518111924e-01,-1.367609882979944347e-01,4.632109914125893679e-01,2.455711363501025118e-02,-1.735315050422357730e-01,-1.743237577154191087e-01,3.062481873318340098e-01,-5.755284567291363285e-02,6.769203529487001492e-02,1.399829358027349924e-01,9.348188834920659329e-02,-6.485555452187603820e-02,-2.098330828431769213e-01,-2.264447582122641467e-01,9.141259579931966528e-02,-2.798548648356324539e-02,-1.351380482708573472e-01,-2.778996294465808647e-01,1.768309376117084336e-03,3.478091857458880387e-01,-1.205785586303106810e-01,-1.371182101982701962e-01,-2.086432330264025026e-01,-6.202079508890954301e-02,-1.568017507833915636e-01,-1.956225822028844763e-01,-3.694709170211740116e-03,2.457139339818329160e-01,-4.895530504538909283e-02,-1.940642133852197304e-01,-4.878871248393895632e-02,-2.767170951511226384e-01,-2.594064053556351390e-01,-5.577445354030659969e-02,-2.524541236165877556e-01,-1.259460657717565435e-01,-2.037292564408069440e-01,-1.792031886382905448e-01,2.038060172352907928e-01,-7.732880778104689323e-02,2.509987694244949497e-01,5.368990556097501948e-02,-6.347256116309293872e-02,-1.576513738363957418e-01,-2.721892674144264501e-01,1.419457055576377191e-01,2.639612602196708124e-01,-7.498482866290007154e-02,1.104373259604857910e-02,-7.562135955574876382e-03,3.847266821768430822e-01,-9.152386046903114580e-02,-9.008285490739224854e-02,-5.091798916726798102e-02,-1.601838507208543094e-01,8.164825475090463358e-02,3.055875999531741383e-01,1.242156627464040264e-01,3.079249611540773035e-01,-1.538977377275283220e-01,2.201742367478448370e-01,9.319271249818229103e-03,1.634038770662684104e-01,2.694630920356947401e-01,-1.239293048124404280e-02,1.712754208187887983e-01,-1.347841940676713923e-01,-1.131108780016774895e-01,1.443146741008211054e-01,-1.751160807329587843e-01,-2.185593306392001889e-01,1.102820112306698019e-01,1.365351140938540209e-01,6.200326541756447790e-02,3.376998691439395822e-02,9.981788444493681564e-03,4.661605998704187459e-01,2.765524051133101333e-02,-3.751467257740268707e-02,5.428433867207471068e-04,-1.961067079845656425e-01,-3.025136600641823992e-01,-1.855474286820699981e-01,-1.382008400748435395e-01,-2.141992480493610518e-01,7.783882320729425437e-03,-2.896240713727540328e-01,-5.393481286424429283e-02,3.410383813353128901e-01,-2.054928682991947475e-01,-2.510763744252085816e-01,-1.605881783031074678e-02,1.906030866651403088e-01,5.258358778396876772e-03,7.993514843772239753e-02,-4.314187859113764734e-02,3.146420415992501329e-02,1.510709908593354522e-01,-1.894163203704012088e-01,1.780164219200644146e-02,1.533600570481058467e-01,-1.940075436532577580e-01,-2.051802481989115912e-01,1.930187191897760057e-01,1.508690835764617821e-01,-1.948104728692976254e-02,-2.000795269040532287e-01,1.325084327549756191e-01,4.479747094483461922e-02,-2.593038281779843079e-01,3.353377917151180165e-01,7.626272533858369229e-02,2.912567939000250405e-02,-1.831260559008586475e-01,5.430200558769913977e-02,-1.980774323081109789e-01,4.621357468732749108e-01,8.280524145707648942e-02,7.496902358368628949e-02,5.570148034343946897e-02,1.140091563531462487e-01,1.790761546997751696e-01,2.007002716115604268e-01,2.988129178827898455e-02,-1.250887036741537561e-01,8.526517585033929758e-02,-1.234418238426912839e-01,-3.256745227126666697e-01,-1.173533668249999995e-01,-1.830809714616422335e-01,-1.403914310406993993e-01,7.161130001336003803e-02,8.036507422739241902e-02,-1.660819606101950618e-01,8.767239300384184475e-02,-2.725390951989558053e-01,-1.968292969076248788e-01,-3.069789736054844287e-01,-2.288279239746478927e-02,-4.811308966864326353e-02,-5.529127271532825044e-02,1.393383513267212326e-01,4.690739642032763085e-03,-4.588836653978570213e-02,1.458068981672515640e-01,4.147636847289685319e-02,-4.351302604193309220e-02,-1.373759799973038875e-01,1.880392792480392872e-01,3.535324154735502988e-02,-2.799816305785655102e-01,1.023068148706372527e-01,-1.948862772044460401e-01,3.160878266529786040e-02,-2.329341074446339699e-01,-3.983532625268349503e-01,2.550733789458305423e-01,1.893265676385442742e-01,4.146016184528224929e-02,-3.822415148652621442e-01,-1.082691410573963647e-01,1.375754773511224105e-01,-6.456022103727475370e-02,-7.272883836269219970e-02,-1.416377469417319790e-01,-2.110082639234969193e-01,3.640753237395364522e-02,2.336413214057406901e-02,-2.594712232173878030e-01,-2.092433920314945850e-01,-1.252348460793367702e-01,8.972582259414388361e-02,-7.741148930531582817e-02,7.220356527152495957e-03,-1.103548888122939942e-01,-6.917395464042479236e-02,-3.698334691088873694e-01,3.943437575767545500e-01,1.058579465844817907e-01,1.103331034582403780e-01,1.514868883953321976e-01,-2.552272829462953752e-01,-7.292897493785784058e-02,-2.288985907688304566e-01,2.775927368099928572e-01,1.036151805229516554e-01,-9.615847347146881663e-02,8.090466668058750310e-02,-2.272766133295204272e-01,-1.968870470987103549e-01,-8.278757869123028190e-02,-1.164455333730038122e-01,3.536296193983283487e-02,2.557482947342794577e-01,-7.774448279740496515e-02,1.208522899337125533e-01,1.804508215785651792e-01,-1.334716731908949516e-01,1.820272269639781892e-01,-1.127601460480144729e-01,-2.234162449542812512e-01,2.957831109783881085e-01,1.884207802599064674e-01,-1.094430807335074196e-01,2.372732672669791987e-01,-7.227605572035401826e-02,-4.306353905636749191e-02,-2.523317612315043590e-01,1.441434694322605292e-01,6.892264189541968955e-02,7.822723996289569770e-02,-2.231364283716259500e-01,9.248667718109868097e-02,-1.781036478274289625e-01,2.469691124914222269e-01,1.639616745141263543e-01,1.263047012388156809e-01,8.100147613981779904e-02,2.143857285134546931e-02,3.250975731503162325e-01,1.163221986052595663e-01,9.787239017949911357e-02,2.888438322170475692e-01,-1.119637361428894723e-01,-6.677580890851912698e-02,1.166970349091734083e-01,-2.899299748630880177e-02,3.186749618558072927e-01,-2.158856012770266897e-01,-1.762186492069259258e-01,1.550232809761744324e-01,-6.712052802017810793e-02,8.623613327935074346e-02,-2.390202008513604356e-02,1.083843894815506304e-01,2.302767673076484001e-01,-1.463430983891836901e-01,-7.568726690219439168e-02,-4.260938634722005180e-01,1.909993027857466441e-01,-2.641989654884454031e-01,-2.241453204621655093e-01,-5.187522691526062074e-03,-1.746802109692522642e-01,1.970813307005060411e-01,-5.833405823199897672e-02,1.185683851318439647e-01,2.866716455367396832e-01,-2.405753347548401089e-01,-1.154696864379938306e-02,4.015820817581448876e-02,9.353597175359149030e-02,7.850724589392554797e-02,-2.902366643177283281e-02,2.484764637250860553e-01,1.845782462844596222e-03,1.235354027774959451e-01,4.450231715318025277e-02,7.728847949378432614e-02,-1.499024716704605298e-01,3.880376969309453639e-01,-1.445650710500458735e-01,1.650221695194632743e-01,2.473046260155099541e-01,-1.919171274199950872e-01,2.279608522808647397e-02,1.958457138807182807e-01,1.309907611078603151e-01,-7.284125094608925877e-02,-1.971851198632670610e-01,3.831103752929387873e-02,3.232161343719713170e-02,1.802811041545502452e-02,-4.028538307269602034e-03,2.507350729267822653e-01,-4.589463176043022397e-02,-1.521504053684855917e-01,1.450465979555551066e-01,1.175434267663775234e-01,-3.817915967528840993e-01,-1.580438726687357076e-01,1.256824012926181788e-01,-1.947391878262940690e-01,8.331872286365248504e-04,4.560645729857021879e-01,1.628163483559448843e-01,-2.610485703688625869e-01,6.497860054691464993e-02,3.986575768146131959e-02,-1.379739532891748610e-01,-7.555626768217611755e-02,1.579867560184665398e-01,2.125850251766779053e-01,-1.393726971381090696e-01,-3.196933703674631477e-01,-1.497365101765026629e-01,-1.945699147150670161e-01,2.467320480723572129e-01,-9.424945318731807464e-02,1.870384392878036428e-01,-9.302168025490033243e-02,-1.770365489345299614e-03,-7.642267448421312392e-02,-2.730938715602917455e-01,-8.494246162911013240e-03,6.150028466603443128e-02,2.407652966247356696e-01,-1.252226262530891088e-01,-3.061890124860009998e-01,2.742428544182583527e-01,-3.203676505202294189e-01,1.536400285384200703e-01,-1.209946890232259514e-01,5.751434718479775388e-02,7.873370134565856049e-02,1.650625648473119308e-02,-8.313168927026634569e-02,-2.592309072251345325e-01,4.340723751624631782e-02,-1.428333095045957180e-01,-9.419046825442713156e-02,-2.197606098028784538e-01,2.013603864218071748e-01,1.239627169737901186e-01,1.329395852179952875e-01,-1.598937858320813310e-01,9.913063473015255866e-02,-7.404154220542764897e-02,3.924955648265940344e-01,1.690061261515152513e-01,-6.136508090861800963e-02,6.912301576124427194e-02,3.212438759316443293e-01,-6.081888892578127259e-02,-1.495312280923139781e-01,-8.029229885639842246e-02,-2.365492196358409682e-02,3.615470660910780620e-01,-5.856011425795803506e-03,4.525436751483288139e-02,4.880388426843389887e-02,-3.244965953540222547e-01,-1.617168583901651413e-01,-2.252497911856626567e-01,-9.760317650427875746e-02,-1.771426238954868643e-02,2.040352559598311022e-01,-8.307859275788852249e-02,1.614175154115043143e-01,1.489256568447029916e-01,-6.140233436478029216e-02,-1.239053568661056676e-01,2.962963571518510350e-02,-2.774230490336506705e-01,2.912015622664098080e-01,-1.589304035194022691e-01,-2.657306373152617390e-02,-1.776071540578698926e-01,-3.923602749181497734e-02,4.003286341812811178e-01,-2.342816612748228611e-01,-7.831543696173902391e-02,1.085958045060243932e-01,3.149257539986519139e-02,1.419875151454219053e-01,6.272904613784696659e-02,2.946760556166022268e-02,8.658615114451238826e-02,-4.136673384228328060e-02,2.265000574575257719e-01,1.454821451138715027e-01,7.401696379282517169e-02,-7.636925070093644741e-02,5.200748680854840739e-02,4.445435455900683536e-02,2.922006690426878217e-01,-3.175289902458856839e-02,-1.848591109940672106e-01,2.255087257239777598e-01,-6.905156973067258508e-02,8.830719378371026940e-02,-1.300479345266808140e-01,7.386336465384066297e-02,-1.151121503158849119e-01,4.110649923627063274e-01,-1.458059292311068289e-01,-2.474284006307394812e-01,-2.665633019702116080e-01,-2.609664864820069874e-01,-2.161117227137707986e-01,-3.350216400520900084e-01,7.983058702704273757e-02,-4.881886625186666190e-02,-6.398425668924290211e-02,-2.073653103925197083e-01,-1.996386521058478650e-02,-2.607191984647692640e-01,-3.365960533732946514e-02,-1.246044374931498111e-01,2.027769730482444910e-01,8.326592958170661585e-02,-1.834614837188522085e-01,5.005875354115196102e-02,-5.127439017499194063e-03,7.225714779797154375e-02,-3.457403849903976645e-01,-4.674331982593466113e-03,-5.932909304452503585e-02,-2.538696857457626785e-02,-3.103054677426014818e-01,1.091688594256083195e-01,-4.436705426404094488e-02,2.691866724957969748e-01,-1.129946538460925853e-01,-3.211572584346507331e-02,1.601009026717908068e-01,1.139737092717899372e-02,5.906989184200969745e-02,2.184865958845111089e-01,3.558846102260672106e-01,-2.948040662461271499e-01,-1.592163612775623904e-01,-2.137926016747576374e-01,-8.915222312373495550e-02,8.705148094382123003e-02,1.813464394926348477e-01,1.756773122422716216e-01,9.424976477098694072e-02,-1.020163267361386961e-01,1.659595597331191552e-01,3.148914702778828345e-01,-4.100063264395099605e-01,-2.617685957361633453e-01,5.344493731805591979e-02,-2.822876937201300729e-01,2.341266137327744079e-01,2.695120027066577051e-01,5.306091347316821416e-02,1.362558105268840136e-01,-7.023521167821866751e-02,-2.680759676011070236e-01,-8.544930059430233538e-02,-1.924816267834998651e-02,-1.533759785102544182e-01,9.912782429582496502e-02,-2.054472526683909922e-02,1.384191151756697102e-01,1.761427883827468011e-01,1.541350560006582160e-01,2.998120923401904371e-03,-1.367919784011264739e-01,1.472713493192445711e-01,5.548312614147449251e-02]).reshape(32,32)
Vwm = np.asarray([-1.078013508994215414e-01,-1.629890785331065406e-01,-2.475047148385986218e-01,-1.913900403043530540e-01,-2.261499185979679583e-01,-1.568609722059089995e-01,-2.089304849688838617e-01,-1.352480178576726533e-01,-1.937006283672944307e-01,-1.071701004801581536e-01,-1.415822874847583179e-01,-2.043319974680197770e-01,-1.652373703091177259e-01,-1.728138890363069280e-01,-1.485897440765782673e-01,-1.659201718609811249e-01,-2.294992931063253583e-01,-1.941014630990842427e-01,-2.183714342403628716e-01,-1.591496456192370845e-01,-1.765589787100661223e-01,-1.739825930374857277e-01,-1.989320462959656699e-01,-1.399999082402370032e-01,-1.957651028738580934e-01,-1.434453987219783400e-01,-1.889657548842600399e-01,-1.341215989715199564e-01,-1.325447887852041762e-01,-1.936963079815192112e-01,-1.849461753359420979e-01,-1.509537155258001973e-01,-2.058985222086734124e-01,6.351479729077767755e-02,8.913271137693672130e-02,1.446515222120643707e-01,3.332393216060509644e-01,-1.669499073242090570e-01,-1.277308481000276608e-01,-2.983062284031042788e-01,-7.792018615929678649e-02,1.219204511143500130e-03,1.088504405952967213e-01,-1.115641995956677957e-01,-2.076113957940563942e-02,8.368546828942838300e-02,-1.699464230937353937e-01,3.201955552240751679e-01,2.456737724198204409e-01,-1.796032614335061894e-01,4.556127680981435224e-02,-1.296938951772522164e-01,-2.687869999784944786e-01,-2.830372833498503993e-01,9.916116101140833028e-02,5.536359103088159955e-02,1.553460998221391776e-01,1.109107910174135792e-01,8.433702084758225304e-02,-2.799257479090984657e-01,8.959219053499370422e-02,1.778272796898627828e-01,-4.953210401100490573e-02,-2.655179619648547762e-01,1.794964354263806905e-01,-1.356744877517945536e-01,1.693105361735038061e-01,-1.953287206721735503e-01,-1.343214146377283771e-02,1.485085256364655493e-01,1.033509116706338854e-01,-1.673192900491133062e-01,8.218477213338548637e-02,-6.117770489312027160e-02,-2.373728014709485246e-01,-7.421105157845098166e-02,-2.543246313741043263e-01,-2.012292868107769528e-01,-1.535413712142591758e-01,-3.241299564931617305e-01,7.919787001165937146e-02,-1.545277143225772809e-01,1.449330908988776256e-01,-3.781395284524159683e-02,1.065068702715376014e-01,-1.959710115648284068e-01,2.827245063207310949e-01,-9.513009719421533852e-03,3.575468027460906167e-02,8.234874758047346088e-02,2.253106583056161960e-01,2.358484652605194465e-01,3.585509058007969041e-01,1.583930511268550057e-01,-2.515546514047656834e-01,-4.180394106045999536e-02,-1.668135859897229845e-01,2.362666483195103306e-01,-1.374406851964646015e-01,2.042071161744382635e-01,-8.566007459698531112e-02,1.057276986041822270e-01,-5.721738868217338819e-02,-9.654875445721191121e-03,-3.060574886422293139e-01,-4.029432477782057126e-02,-1.200909765328317808e-01,2.079917108097584788e-01,-2.933859970047011378e-01,3.390450827481630153e-02,-2.215741443649462961e-01,4.171435654495217471e-02,-1.251244068009922938e-01,-2.511197754878036204e-02,-1.657927762892184853e-01,5.916551601284623235e-02,-1.820412566625448925e-01,1.237085312603781462e-01,-3.157881365002071505e-02,-4.064874655364674738e-01,2.796288932537977501e-01,5.465024776798597245e-02,1.517397446078528334e-01,1.680062620885484914e-01,2.060109461537333042e-01,8.575724370475756864e-02,2.018867869427165840e-01,2.406465547986024744e-01,7.398929705266146795e-02,1.180144807986405753e-01,-1.211544969449267206e-01,-2.451527680295620959e-01,-1.190660708597324723e-02,6.035014388440791688e-02,-1.413823561658299477e-01,2.063755921272561467e-01,1.030797366453548858e-01,2.332152254195884178e-01,1.503009812256584365e-01,1.153060973364110897e-01,-2.391855208455660742e-03,8.311447834793463108e-03,-1.041319303785085207e-02,-8.262948618664700540e-02,1.671569004688977511e-02,-3.307385525886124555e-01,-3.732505282568611138e-01,-1.099787869851544947e-01,8.423756371747243357e-03,-3.212155701599643531e-02,5.995822341317679459e-03,2.881325559840668959e-01,3.972187256098297925e-01,2.365614020886080138e-01,-1.818920932059238382e-01,-3.220754514399295360e-02,-8.088810656810262179e-02,1.770117677018951119e-01,-2.183424674279076105e-01,2.299810067379615408e-01,-5.646646090046322786e-02,-4.710681847695939728e-02,1.483293309635690671e-01,-9.275185986212011735e-02,1.114353578093174729e-01,-3.698417948333250216e-01,4.207856691572485312e-03,3.457808936682501676e-03,1.090675312214998832e-01,-3.203493842217458587e-01,2.599556664417635443e-01,7.754256288379224316e-02,-1.128022968239799110e-03,1.272200080272249956e-01,-9.432845927833537203e-02,-1.553075711738987896e-01,-1.441893322226088792e-01,-2.300321147956679024e-01,-1.016575015559514350e-01,4.023709981335219510e-01,1.046632695562306758e-01,-5.867829300814873805e-02,-1.093165540452768203e-01,1.405439339520560445e-02,1.190989053856857521e-01,-4.315190997861791389e-01,1.948906550338662946e-01,9.775588971163474972e-02,-8.787143729787670610e-02,2.172545067793367202e-01,2.506720392358263716e-02,3.841169019434661352e-02,1.308757549027284028e-01,-7.527711466252108401e-03,-2.829000409904934288e-01,1.262540921876355859e-01,-2.058665179798063738e-01,-2.668485912335517019e-01,7.369064240401047849e-02,-1.921701884193233456e-01,1.011990141931562448e-01,1.346218583223358356e-01,-1.587061052209310080e-03,4.222059072428462345e-01,-1.256417183555608164e-01,-2.453485349943876348e-01,3.463505376510487843e-01,5.453540498664314479e-02,-2.054720223917284316e-01,-2.882865701576482406e-02,2.058539523174231778e-01,-1.244033941267913557e-01,-1.423759298815948093e-01,5.152363785448447336e-02,-7.923900941403312637e-02,1.416620118389594896e-01,-5.179782564571009523e-02,-3.868904503426356251e-02,2.035587620304358802e-01,-1.360996508982663111e-01,4.460628955504636339e-02,3.210812250861480588e-01,-5.576093257842535539e-02,-5.337172642173270559e-02,-4.141291196920589973e-02,1.325117832000950457e-01,-1.391083848360403531e-02,-1.186643427248481458e-01,2.285660432564357580e-01,8.922778525851679521e-02,-8.417260911495658138e-02,-1.994893013182616193e-01,-7.626273842094240252e-02,4.660060239923800585e-01,-1.654270035141470196e-01,-2.073580471982894580e-01,-1.193036259871512739e-01,-1.291852865753113921e-01,-6.256627937477962642e-02,4.432919726096324481e-02,-5.286379727635837772e-02,1.353557655407354177e-01,5.810952453266989698e-02,3.430807259500012196e-01,5.633330929616240518e-02,1.851442696124154796e-01,-2.577530691838119115e-01,8.442213999726876084e-02,-2.903399694064403777e-02,-1.865582199320942602e-01,-2.787582783267281150e-01,1.552915785794235504e-01,2.026370701923178863e-02,3.428005453200036468e-01,-2.790082468165627771e-02,-1.408566686916301880e-01,1.749272920430368916e-01,3.166682858350374774e-01,-2.229817860128812668e-01,-6.142402065644660819e-02,4.582083696638738352e-02,-6.935486282750258358e-03,4.907087141282183707e-01,-2.253032588812033284e-03,4.200834783562234498e-01,-1.287144051933803435e-01,-9.510402844653244314e-02,-2.375657391138299990e-01,-2.291179702452467715e-01,2.756018689922358766e-01,-1.471652766818777429e-02,7.953537239044730645e-02,-4.598094932021202369e-02,5.236797128657535300e-02,1.697716002553894534e-03,1.932456126183965117e-02,-1.936996447459298221e-01,-1.558068944564277858e-01,-2.260084173686916498e-01,-5.188181030208288691e-02,3.555613869228279461e-02,-2.773680220903352450e-02,-1.129383335982678399e-01,-1.131333312684281583e-01,1.185690879057435532e-01,-6.978496631394788541e-02,-6.739612930142424574e-02,8.548671189001312565e-02,-2.808895673971323892e-01,-1.988185582504050919e-01,4.633830276979460788e-02,-1.363689926158962173e-01,-5.268211662158495123e-02,6.748742119086183211e-02,2.935361757083762013e-01,2.043371508283592097e-01,-2.578969782297197422e-01,-8.523100495704344359e-02,1.352257558548784766e-01,8.556022259840176392e-02,-3.526423758946691245e-01,2.611356385865352681e-01,1.315171618683693422e-01,3.930907466799991173e-02,4.321392950685731815e-03,1.579805607819780855e-01,-1.409041219195728833e-01,-5.177610485408563196e-03,1.820504005920965951e-01,8.675219039022656620e-02,-1.890050102230717011e-01,6.204787640661860171e-02,-3.562051640877975101e-02,2.561403829214646821e-01,9.699618904410413356e-02,-1.459733092675268885e-02,-3.704416137444151418e-03,1.568936646477196162e-01,-2.002873489982774369e-01,-3.853159069442740337e-01,-1.572429643346006517e-02,3.286588413791016183e-01,8.040593764228491647e-02,-4.618700297186634773e-01,1.713244846637013430e-01,-2.872804400784709569e-02,-1.049350265609749200e-01,-8.624883296371380070e-02,-1.684359418700922539e-01,-2.260282423422445008e-01,-3.246686699382843044e-01,1.097135309285107545e-02,-1.200248391187374031e-01,1.880028537447409054e-01,2.345376891004288533e-01,3.564148691349406511e-02,-8.495516592023044655e-02,-7.406394727427595415e-02,-6.374610752166724043e-03,-1.833726310436759599e-01,-6.239263619071536149e-02,2.592159848789412635e-01,2.457701881217047579e-01,2.400725979779692598e-01,-1.074199750913390761e-01,-8.408789200950821108e-02,1.024833368709606174e-01,-4.820416560401757922e-02,-1.004645138603185439e-01,-4.104745298485619823e-03,2.347485620240387094e-01,1.244503773149760982e-02,5.275995154528900083e-02,-2.645414769670956234e-02,-1.215867835430688854e-01,-1.984342151723652026e-01,-2.803955664525598079e-01,-1.057048429291984224e-03,1.338639031069203261e-02,7.044235040803771553e-02,6.455536854358959187e-02,1.584437510588265208e-01,2.801786138676956583e-01,-2.133265745148098802e-01,1.325665122880560765e-01,1.030867809407894631e-01,-2.123376805603733319e-01,-1.157473978041810847e-01,2.995229767550807165e-01,-4.847472031884990547e-03,3.037141270044586231e-03,-7.686624310935667725e-02,-4.447364001479663931e-01,4.082564135883881007e-01,4.868711859024156888e-03,1.291479453323917531e-02,-8.874869177037392198e-02,-1.049584212811468242e-01,2.993090944487151184e-01,1.186750907918211750e-01,6.510496709759663880e-02,8.284929987253120132e-02,5.171314912415907183e-02,-1.482521956605008517e-01,1.070702098708171263e-02,-3.383206252413151760e-01,-1.934689833788420521e-01,1.531888921332778264e-01,6.504062972598076420e-02,-1.068336841386591796e-01,3.106317710813174052e-02,-1.159419090729384323e-02,-2.228792523275426041e-02,-1.430111536443470777e-01,-7.516771490478421636e-02,1.478008307482081216e-02,-2.090550203586819256e-01,-7.488490380343153230e-02,1.606658505816255522e-01,1.578597801203363016e-01,2.738610596220785731e-01,-1.426550624624884356e-01,-2.517222286705945722e-01,3.352530615255380209e-01,-1.877916933517668474e-01,1.179976411893962074e-01,1.370141105285749561e-01,3.360461447882179820e-01,-1.424013373598324583e-01,2.966650848134100640e-02,-2.127980999519032690e-01,1.558650337812708953e-01,2.827904722641332858e-01,-1.776042118456138963e-01,1.259915516727674045e-01,1.039276929117881332e-01,9.490670063551599409e-03,2.051749044581162584e-01,1.200557181403115042e-01,-3.563481139033129047e-02,-2.611996694905528021e-02,3.112363064157423476e-01,-1.131521956157234970e-01,4.909081414169214064e-02,2.291829442054708899e-01,8.226836390466717164e-02,1.998566924544473433e-01,7.870447317560351486e-02,-1.035881833917879080e-01,-2.274601214017211714e-01,2.787800595975008580e-02,9.743240241607120655e-02,-4.103599347651288448e-02,-2.272854242686734028e-01,-2.860004232401420765e-01,-6.593914464078239578e-03,2.259733832226839823e-01,-2.839715794781457608e-02,-1.569079454813182839e-01,-1.639671300172334048e-02,-2.290361135111786128e-01,-1.230745223750008416e-01,1.590648180333608386e-01,-2.417382977293245083e-01,3.464054412793449167e-01,-1.385083653346572408e-01,2.937829157734203611e-01,-2.498443882925661941e-01,3.418331472554504424e-01,1.871401714499608127e-01,-2.806948740374011209e-01,1.038831599283525087e-01,-1.335484769436046659e-01,-4.850874832277536630e-02,-3.734371464703577503e-01,-2.116175807640426620e-01,-1.305441469040487593e-02,-3.982908236238128646e-02,1.108828626116544619e-02,4.316462198691783936e-02,8.879575984298249125e-02,4.307754915851794153e-01,1.032106686297354081e-01,-4.679367922949014685e-02,9.726893590435228831e-02,1.700259601992551439e-01,-2.263494183011429961e-01,8.738383085596808375e-02,2.051597471284536123e-01,-2.051733170191100686e-01,7.796875782740742000e-02,-5.686357341668712984e-02,-1.150442999204376732e-01,7.885303725959502685e-02,3.185986382844699372e-02,2.362879004317321729e-01,6.346151521672563356e-02,6.858198126437130282e-02,-6.111693973669681673e-02,-2.541241951982236014e-01,-1.862982552568780703e-01,-1.362892028111939990e-01,7.537229497151240465e-02,-2.326188043713660059e-01,-6.869921930553717082e-02,-2.066283555563463159e-01,5.152138211240263332e-02,-4.280016972793904140e-02,2.625792501693565706e-01,1.155980612402928848e-01,8.187474889243530340e-02,-1.115268163090988862e-01,6.513306658060577514e-02,-6.728724410112985055e-02,2.675436899086151565e-01,-2.588840389258643612e-02,-2.308468784937116602e-01,8.872624177450262606e-02,-1.008022962509617371e-01,-1.300403607233797248e-02,-1.342086538453578226e-01,-1.389546813731556973e-01,2.257870682800523221e-01,-2.702005691263345555e-01,2.150007529068619916e-01,2.134902770882428080e-01,-2.026891794752326836e-01,2.341652658839431800e-01,6.624264365315551961e-02,5.184086429303983584e-02,4.114254246143376204e-01,-2.359763983411346799e-01,-6.133612934412222689e-02,-1.124926184957464464e-01,-1.948027700676319696e-01,1.758020532265235358e-01,1.615637198838758282e-01,2.312678665994787608e-01,3.207474950805405418e-03,-5.616799721373057913e-02,-8.701371076873143373e-02,1.902586108111873342e-01,3.939803085561482954e-01,-1.462225295104999379e-01,-2.562615004829048027e-01,2.088638293557129877e-01,6.404667269163394350e-02,-1.765266302168463641e-01,-3.325305014359837830e-01,9.182022872827022564e-02,7.441080949490119778e-02,-1.575307864951425163e-01,1.066858912593054900e-03,-3.687472401633334201e-02,3.888440522754962325e-01,1.504520418345597910e-01,5.295337627332221547e-02,-3.429934999922302219e-01,-3.825432221135158239e-02,-4.667988404101907490e-02,6.287871672581883675e-02,-9.952983261388465008e-02,-8.071626709881648404e-03,6.688956990220019938e-02,-2.218869123032534696e-01,3.536537473557152533e-02,-1.220860748070035778e-01,-9.076851461902946117e-02,-2.454108037582880264e-01,5.374659855606235548e-02,-3.434669921975380125e-01,4.105242311043026393e-01,1.075735451764083528e-01,-6.476668126127604896e-02,-1.261831228215090084e-01,-1.679610298967182391e-01,-1.765734865524154484e-01,-8.216504899606018320e-02,7.479085351106790069e-02,2.167440346168892154e-02,1.544476491155619968e-01,3.136306281709289601e-01,1.565934246235717031e-01,2.358083392406643830e-01,-4.889693467825018819e-02,-3.142316402509396367e-01,1.153614859054465924e-01,9.865105308771876524e-02,4.563450494412699815e-02,-9.138885214600665774e-02,1.286018902850497858e-01,-2.518938625797371156e-01,7.475084617747125050e-03,1.971515979571763222e-01,6.402306057075844714e-02,1.135738600500786899e-01,6.375656848098514018e-02,-1.995740977203021849e-01,9.060028121263261069e-02,1.455832405697327914e-01,-1.018573329359279828e-01,4.462622962217070999e-01,4.145045055848372434e-02,1.755016405447912611e-02,8.294106022189036073e-03,-3.784283429008627325e-02,-2.630845479223045125e-01,-9.247439551586886242e-02,1.253026324113495626e-01,7.568255974667406627e-02,3.658121774353239042e-01,2.021258896748405753e-01,3.478216511179064302e-02,-2.198225798480065163e-01,-1.251283815551435530e-01,-4.120023611870995972e-02,-1.894710490781774670e-01,-1.015466323547108835e-01,-9.264846014392343065e-02,-5.844673657154737800e-02,2.709118938062306525e-01,-3.486229874900135806e-01,1.260702359480725399e-01,1.516704623645666050e-01,-2.096116898825777231e-01,8.938167018796454311e-02,-6.821816486135143243e-02,-1.558126084277452750e-01,4.827599606568623858e-01,-3.330656860145371490e-02,5.853750239503455882e-02,-2.697860617283024953e-01,-2.255810514956951124e-04,1.171246683157754417e-02,1.177453576693875126e-01,8.876113418073514061e-02,-3.809293517616857971e-01,1.015452950675617277e-01,8.607722098665143706e-02,2.479027911703920728e-01,-3.490124510367523941e-02,-6.152362871342194339e-02,-1.111647019288167920e-01,2.257068516772038971e-02,9.130425248938953825e-03,1.400919942434583065e-01,1.122266269402559802e-01,2.130722362074772835e-01,-1.936107481195488977e-01,-2.545097862087051244e-01,-3.524486324801319459e-02,7.635897651688940135e-02,2.681617647578923291e-01,-8.209031904517685718e-02,-3.563974635689744208e-02,-1.293947689812872670e-01,-9.978560977590175511e-04,-2.573812681953110970e-01,1.797141334572065763e-01,-2.081960813753457873e-01,6.921903833131709538e-02,-2.185180405003828152e-01,6.442293073878971321e-02,6.551179229157691464e-02,6.555473805424825995e-02,-5.943273433299466751e-02,-1.199298037573341691e-01,2.535534800053737547e-01,5.879239003801091379e-02,3.689573701932490069e-02,-3.186133949276358512e-01,1.884922150255213813e-01,2.632910449029863265e-01,3.443968747415415699e-01,-1.788631918614179972e-01,-1.565799064880709079e-01,-2.042107665819279383e-01,1.660575543184488606e-02,7.481991694698353346e-02,-2.106412157864386570e-01,-9.768100248273622888e-02,-3.811314393253414749e-03,-2.012327637731970709e-01,1.825463205727906324e-01,2.359609229103181230e-02,-1.151895955748546557e-01,-1.490030783917980495e-01,-5.824740426348902489e-02,4.761869443748360520e-01,8.908302913666503453e-02,8.624541854335247837e-02,-9.666624438111036388e-02,-1.720214878532380642e-02,2.231472687345225636e-01,-2.354336859097529988e-01,1.684061197843423896e-01,1.785212833897082685e-01,-1.939949342853549419e-01,1.120677180813309526e-01,3.968396106910601073e-01,-2.638672880902747653e-01,1.481425604257556594e-01,-3.836466756759333158e-02,-2.900839011325861416e-01,9.134708563482281385e-02,-9.997122408602883425e-02,1.400646468336613493e-01,-1.079318999725567552e-01,-5.434394442446463525e-02,-3.304870220852099694e-01,1.657253024410501596e-01,-3.043668776004724782e-02,7.501343811224969738e-02,-2.027906992606371417e-01,-1.007678660669388132e-01,1.042824621667169382e-01,-8.022924127971432784e-02,1.101877445389037452e-01,2.313901177788034447e-01,2.904053546445816703e-01,1.271205613884104045e-02,-7.641972940636453104e-02,1.282221187902752857e-01,-1.119504269727211176e-01,-7.595495027038218216e-02,5.114648767173063382e-02,-1.590672715153136907e-01,-1.119581810945672745e-01,3.673322869688814413e-02,-7.394254750294246281e-02,1.119985589765543077e-01,2.169959814215992322e-01,1.112517535184552875e-01,9.740996103393773087e-02,-1.423004435834665238e-01,1.399872260674510371e-01,1.665936320936535209e-01,-1.007471841840975324e-01,-2.908011791499217624e-01,4.877632930348931861e-01,-2.707026658885000048e-01,7.648334069537984781e-02,-1.598761404009195197e-01,9.202431340009527283e-02,2.877784027649593623e-02,2.120661361074836077e-02,3.862667423919037279e-01,-1.131961528383333172e-02,-8.417324725206058733e-02,-1.318514595200099837e-01,1.365972117715266998e-01,1.391591292551875303e-01,3.118217042096632120e-03,-9.833103864830326779e-02,-3.192508884781553591e-01,-1.654583060146120055e-01,-4.975041957210932925e-02,5.818828212092813645e-02,-5.980784459636295097e-02,-1.668003249881558625e-01,3.327279994965597898e-01,4.796319712348517950e-02,-9.892237585197323491e-02,2.242472164812747693e-01,6.635232553963772706e-02,-6.801290495135302316e-02,1.769778723091286476e-01,3.545019371648064355e-01,-1.332869960021299816e-01,-8.792428178850912601e-02,1.005397663693900767e-01,5.004659075996982856e-03,3.147087973126820870e-01,5.632648505651202675e-02,9.704149050600680004e-02,-2.733920178943343715e-01,-1.559217751340677138e-01,-1.610759231439418127e-01,-6.922231416668864212e-02,-2.664293015058800118e-01,-2.230085988134810349e-01,-2.372512207255691730e-01,-2.316672282626320301e-01,3.180533924190154238e-01,-1.329025526370612720e-02,5.795389685855103362e-02,-1.040907444398057463e-01,1.953383138439230074e-02,3.136592812060280677e-02,-1.414675767788224348e-01,9.138062709022502783e-02,-8.601338345418751974e-02,-2.547320649007978055e-02,-1.990472960245950607e-01,-3.388836580267749476e-01,-3.833963863823833945e-02,1.980763500738989547e-01,1.177818479008096442e-01,1.899474944443500443e-02,-8.249830235180792559e-02,-3.251986487214807986e-01,8.852699171254783950e-02,9.598297620455345514e-03,3.035606294779245595e-01,-1.892967727489325291e-02,2.820083079782937513e-02,2.294363226944907130e-01,-1.575899305205847867e-01,1.530453086875676050e-01,1.123731991773359862e-01,-2.732387438128484614e-01,6.921824766576341326e-02,2.796757973329738745e-01,-4.578109802327237111e-03,1.949930599385208130e-01,2.495938644710478937e-01,3.387251819573854072e-02,-3.990447954319139012e-01,-6.490790680065502971e-02,5.728191738872905059e-02,2.552143576561385352e-01,-1.591485202670009369e-02,4.485745652669674288e-01,7.336639945954276376e-02,1.302162685052990765e-01,-6.105009035882930091e-02,-1.644543602097789936e-01,1.451325325813411227e-01,-5.677853852758648484e-02,1.060357015974680156e-01,8.744903387481815782e-02,-1.357501802646093603e-01,-7.707771153399090025e-02,3.972164813691929364e-02,1.782823527681489384e-01,5.367096964063727133e-02,-3.079732666787327044e-01,1.155159275575434463e-01,-2.040418741402503511e-01,8.203622879562491588e-02,-3.884693440922795116e-01,-6.434669115145115470e-02,-5.483489394494715785e-02,-6.942462306570648667e-02,-3.148069752639372498e-01,1.877434081970164315e-01,1.534297523228157489e-01,6.577920863223087750e-03,5.835305860751086038e-02,7.041034141914562228e-02,-2.094271610299474062e-01,2.165739103619118422e-01,-2.853567484701887147e-01,1.404565444262724505e-01,1.396455185673994015e-01,1.018147603705166354e-01,-1.370142873436787367e-01,1.925065268618672554e-01,2.057442234082735438e-02,-1.604019992161691277e-01,1.863467718693189723e-01,9.240115559081944763e-02,-3.624379311392719044e-02,2.741866638746736640e-01,-8.981026056564568594e-02,8.487081536569281159e-02,-2.206904536207451861e-01,-1.511617468685031440e-01,-8.286745312948599895e-02,-1.602238765041369634e-03,4.278685425731978270e-02,1.059433357832767486e-01,-2.451477665178071474e-01,-2.628113431519528143e-01,-6.567493495950046944e-02,3.853966753384525101e-01,-1.784399636582520432e-01,1.329077884199943438e-01,6.156040495174799898e-02,2.886443359426869582e-01,-3.152424714611555268e-01,-1.585459963241166170e-01,1.168209876445345380e-01,-6.088367956744483028e-02,-1.331989428194198938e-02,-1.993143122311044346e-01,-3.609350215551736518e-01,-2.644783351085141510e-01,2.499993844835393941e-01,3.774867843796391731e-01,-1.434333139699061066e-01,-1.303930585696318201e-01,1.651234010403556177e-02,-3.113020038016631186e-01,1.805655519145186461e-01,-2.606093992816101157e-02,2.421349069010062804e-01,-5.336524578675236330e-02,-1.862944419419611600e-02,1.252243324029578830e-01,-2.639189489385473930e-01,-7.716364734678152378e-03,2.097249611421469206e-01,1.469587859352117221e-01,-7.775982819937320156e-02,-1.423381658771025703e-02,-1.985212220736646827e-01,2.208653018454760988e-02,-2.852869197340586818e-02,2.906307116440954852e-01,1.428103600145748386e-01,5.580029336268780421e-02,6.582628551705178854e-02,6.655835937309258210e-02,2.952593638811780441e-02,9.729692871855806502e-02,3.177898901996559222e-02,2.507996237079522239e-01,2.824853391180858972e-02,2.535705871803690115e-01,1.574713298633284297e-01,1.247585385256935915e-02,-1.377964260849879607e-01,9.492779494070595347e-02,1.080690332656770725e-01,-3.737475429325735621e-01,3.037362934021780453e-02,-5.249401940832831848e-02,4.928518152409869018e-04,-3.400713341248907673e-01,3.860517076224088268e-02,-2.471183085298718218e-01,-8.618230536234587624e-02,2.713576650346101182e-01,-8.211216869789524087e-02,-2.629623438987412770e-02,-1.601958839723745254e-01,2.525364552779391092e-01,-2.196742171009728392e-02,1.681908539334294184e-01,3.046839031786340857e-01,2.984465350530866867e-02,-6.071152666545012039e-02,5.582595105007609471e-02,2.356325770180739756e-02,-1.101473347975316791e-01,-1.897178919956916954e-01,-3.589991406418892028e-01,3.527359120965637557e-02,-2.512711554272717973e-01,-2.059860179096638377e-01,2.199319753090519039e-02,4.562353316501250311e-01,-3.060201291036562105e-02,-3.545163949027662492e-02,3.866218467110899004e-02,2.294993860366385807e-01,2.435016682129661214e-01,-2.661805445175338125e-01,1.205889788656377554e-01,-9.362783788719125644e-02,4.879345616673450015e-02,-1.604198547676368575e-02,-3.013558404759296705e-01,1.067383886930771270e-01,7.429656475662697879e-02,-2.018705918575649239e-01,8.901675502734265888e-02,-1.812253903291841800e-02,8.053268040265512684e-02,8.963360955282426157e-03,-1.960095244032180606e-01,2.057257289332710751e-02,8.187709345921800885e-02,3.375403166946017164e-01,-2.295563606734080664e-01,-2.616462953328139163e-01,-1.281126905398179971e-01,8.673538103630742957e-02,-6.507898593179292646e-02,1.626456395829898316e-01,-1.551635995675434143e-01,-3.449291937813193237e-02,3.697734819095231662e-02,7.285602718130768096e-02,-5.603721216965637519e-02,1.285912400125307775e-01,-4.515503866314810738e-02,-4.621911188450255475e-02,-9.930660693989078192e-02,-6.690570960774578670e-03,-1.494276704432435654e-01,-2.384968015076810791e-02,-2.063082055238529833e-01,-2.369200604683511235e-01,1.319090296736313284e-01,1.143559104391564558e-02,3.513424669615424767e-01,-3.454193947001128473e-01,-3.951855909419063617e-01,1.260090898370004042e-01,-1.608009260967463716e-01,-1.306516037170125932e-01,2.456680283265592346e-01,-7.177378076270273834e-03,-8.634974563952430016e-02,1.386777123151028412e-01,1.586333097055291630e-01,-1.090480789155934410e-01,2.578748258499744539e-01,3.135154512172095842e-01,1.485034845289148475e-01,3.380240533785979773e-01,-1.204386362908275582e-01,1.395153783204367871e-02,1.837926502043386312e-01,-2.698434551498642489e-02,6.485509720043243498e-02,-1.305015606194367128e-01,2.552647096664072413e-01,1.470485845117606993e-01,-1.403241408879857266e-01,-8.665219707533689669e-03,-3.326861248761080886e-02,-3.023443542806834583e-01,6.602291574474269953e-02,-2.758550578338035408e-01,1.322967102155746533e-01,-1.307099497938216115e-01,-2.684079371200087105e-01,2.159431845816748019e-01,-1.912313086161994066e-02,2.052054985134705439e-02,1.667976822536356707e-01,1.388546251515667684e-01,-7.213145936599099639e-02,-1.055900513571611660e-01,1.441857027656953394e-01,-2.289308875850737113e-01,-1.947909267724047544e-02,-2.928071432216174386e-01,2.572446143387475126e-01,2.175715334995793337e-01,-2.131719749886725468e-01]).reshape(32,32)
# start time
#start = time.time()
blocks_with_watermark = []
divisions = original_image.shape[0] / block_size
watermark_extracted = np.float64(np.zeros(watermark_size))
blank_image = np.float64(np.zeros((512, 512)))
# compute difference between original and watermarked image
difference = (watermarked_image - original_image)
# fill blocks in differece where the difference is bigger o less than 0
for i in range(0, original_image.shape[1], block_size):
for j in range(0, original_image.shape[0], block_size):
block_tmp = {'locations': (i, j)}
if np.average(difference[i:i + block_size, j:j + block_size]) > 0:
blank_image[i:i + block_size, j:j + block_size] = 1
blocks_with_watermark.append(block_tmp)
else:
blank_image[i:i + block_size, j:j + block_size] = 0
attacked_image-=np.uint8(blank_image)
####################################################################################################################
shape_LL_tmp = np.floor(original_image.shape[0] / (2*divisions))
shape_LL_tmp = np.uint8(shape_LL_tmp)
watermark_extracted = np.zeros(1024).reshape(32, 32)
Swm = np.zeros(32)
#print(watermark_extracted)
for i in range(len(blocks_with_watermark)):
x = np.uint16(blocks_with_watermark[i]['locations'][0])
y = np.uint16(blocks_with_watermark[i]['locations'][1])
#get the block from the attacked image
block = attacked_image[x:x + block_size, y:y + block_size]
#compute the LL of the block
Coefficients = pywt.wavedec2(block, wavelet='haar', level=1)
LL_tmp = Coefficients[0]
# SVD
Uc, Sc, Vc = np.linalg.svd(LL_tmp)
#get the block from the original image
block_ori = original_image[x:x + block_size, y:y + block_size]
#compute the LL of the block
Coefficients_ori = pywt.wavedec2(block_ori, wavelet='haar', level=1)
LL_ori = Coefficients_ori[0]
# SVD
Uc_ori, Sc_ori, Vc_ori = np.linalg.svd(LL_ori)
Sdiff = Sc - Sc_ori
Swm[(i*shape_LL_tmp)%watermark_extracted.shape[0]: (shape_LL_tmp+(i*shape_LL_tmp)%watermark_extracted.shape[0])] += abs(Sdiff/alpha)
Swm /= watermark_extracted.shape[0]
watermark_extracted = (Uwm).dot(np.diag(Swm)).dot(Vwm)
watermark_extracted = watermark_extracted.reshape(1024)
watermark_extracted /= np.max(watermark_extracted)
####################################################################################################################
#end time
#end = time.time()
#print('[EXTRACTION] Time: %.2fs' % (end - start))
#print(watermark_extracted)
return watermark_extracted
def detection(input1, input2, input3):
original_image = cv2.imread(input1, 0).copy()
watermarked_image = cv2.imread(input2, 0).copy()
attacked_image = cv2.imread(input3, 0).copy()
# start time
#start = time.time()
alpha = 5.11
n_blocks_to_embed = 32
block_size = 4
watermark_size = 1024
T = 14.4
Uwm = np.asarray([-2.312674581369473792e-01,5.734286964393464636e-02,-2.261564331488026824e-01,1.305792896825790084e-01,-5.812100933872396680e-03,1.384947532863283204e-01,1.742468410014228197e-01,-5.555749206790829703e-02,7.710688240399049542e-02,1.136206219809455242e-01,2.030356098275214738e-01,9.106351456092709462e-02,2.085957745697965271e-01,-2.424700208044083261e-01,-1.113850996399732562e-01,-2.072189180146601639e-01,2.896370099957514821e-01,3.662998689707642752e-01,-7.331063871559635736e-02,1.484942243228606351e-01,-2.564923731873633983e-01,2.169437047321725043e-01,1.676665106811171813e-03,8.700965853476992640e-02,-2.011499699771962801e-01,-1.895133867623456925e-01,-2.403383039403018673e-01,-1.154148493338273684e-01,2.595391212300455774e-01,1.205456515103637688e-01,-8.003919946013743000e-03,3.182392866362943051e-02,-2.051478660895180717e-01,-1.967866091099609860e-02,-1.763359046288379972e-01,3.307359505226786789e-03,-1.161404338767198785e-01,1.265466865016821874e-02,-3.575389024947153160e-01,2.667024990595749656e-02,2.923628156482018792e-01,-1.557689603062203942e-01,-1.419605571415316625e-01,-2.650371929829307138e-01,-1.549056592018247525e-01,-4.991828555669636409e-03,-1.614539621021212623e-01,-1.393088529825380339e-01,-1.358240246787772443e-01,2.777145513998735549e-01,1.741663027078321768e-01,1.976584757579410989e-02,8.398519946633939415e-02,2.046214917381041290e-02,-4.801319687216510507e-02,-6.121433219855505065e-02,2.858992708523436233e-02,-4.808349542735054771e-01,3.228327723572384234e-02,-5.186196602942633876e-02,-3.488849695162906106e-01,-1.268296129846498976e-01,3.168630129594619121e-02,-1.450440058485674699e-02,-1.805477386591820277e-01,1.812900376984538098e-01,2.914803588787474031e-01,-4.087813123390245107e-02,1.770286416084284331e-01,2.610172319507291644e-02,1.310974126225562635e-02,-1.179795410007625778e-01,3.555846947135302694e-01,-1.123954073420395522e-01,2.247070345571509087e-01,7.963354659780158551e-02,-5.107528522329425613e-02,-1.943557433766380793e-01,-3.089791102696144015e-02,-1.444323104956420634e-01,-4.283689679599265304e-02,2.487198066960395401e-02,-2.391196615216826804e-01,1.479998589259833366e-02,1.126689121233365454e-01,6.533792122745954445e-02,-3.085752716347547331e-01,-2.950944355255530338e-01,6.193510340251599799e-02,3.612269212836249355e-01,-1.182093736829816916e-01,-1.481050971435980690e-01,-2.272097950980542513e-01,-8.202033530004998463e-02,2.347302414550245242e-01,2.990009511016244667e-02,-1.535711238816945268e-01,-7.787373339617266466e-02,4.986712696240393899e-02,-5.598463691278189602e-02,2.991820405873375499e-01,-8.637352499410749784e-02,-4.592425224190606614e-01,-9.179476614159386150e-02,-2.452603169041815967e-01,4.305439733544035030e-02,1.865933955780224862e-01,-1.358304656527241534e-02,1.045181737564016833e-01,-2.662532460257912570e-01,-3.708455993698326486e-02,-1.570225783954271037e-01,-1.910125942535830131e-03,-1.568551489774093199e-01,8.007970483254320260e-02,-2.452959560342811429e-01,1.979314782091574632e-01,1.115904203322855837e-01,-1.122468028117899665e-03,-1.032266381457583176e-01,1.855091131478703304e-01,-1.587066593876754750e-01,-7.804909927147810067e-02,3.080687784572328503e-01,3.271728683627215806e-01,1.395626040004595454e-02,6.347402414808372972e-02,1.350355878868284842e-01,-1.476199391370064673e-01,1.250883289380611552e-01,1.979853063775842067e-02,-2.143092623501116345e-01,-7.747755796928472438e-02,-4.120352004850750816e-01,-6.037797092557285750e-02,1.307592617404063351e-01,-2.357178740844867448e-01,1.049234657408741195e-01,-6.730943579327085084e-03,-3.465662437329853351e-01,1.025485567212078564e-01,-1.719479911401737907e-02,1.550527750971004894e-03,-1.213580830723632875e-01,2.090862119130119934e-01,1.498900065589081620e-01,5.424136092346961563e-02,-8.055825929252929951e-02,-2.779746048230506417e-01,4.499556409398199758e-02,-7.053160531186558613e-02,-5.220716737899964988e-02,3.387353518883144399e-01,2.015947990877625107e-01,2.421534239836145297e-01,-3.382096227305393943e-01,-2.754755208279696665e-02,9.717768157316801492e-02,-6.707664262413037815e-02,-4.166312670279521263e-02,-1.968234679216139815e-01,-2.600250843616532803e-01,4.587834047846331420e-02,-2.674474027224720274e-01,-8.041020854506371329e-02,2.008213178282848288e-01,1.289947327930243415e-01,2.649889525328689294e-02,-4.460057473242410447e-03,2.194387610345449602e-01,5.088484498849268900e-02,2.025870010017688516e-01,-1.696551235916849212e-02,-1.916665374020514179e-01,2.201973879403067991e-01,-1.720473032411543313e-01,-3.982365899165991596e-01,6.841777439425472673e-02,1.765061012975841226e-01,4.408553318585904657e-02,2.437315168794831066e-01,4.072856373143580837e-03,5.452248565975711253e-02,5.403002893513503962e-02,8.175823626082039108e-02,2.580876178538704657e-02,1.092812890142179222e-01,-3.071786332922544771e-01,-1.423717547278703817e-02,1.488010260296773191e-01,-3.250523752902119701e-01,2.135945438505207628e-01,-1.537229313800749786e-01,7.788155421704953674e-02,-3.345029708909899591e-01,-2.172430238399104818e-02,-8.725094664692593927e-02,-1.303978487122770535e-01,2.844498922537698204e-01,2.816040629633119186e-01,-7.204578698495175959e-02,-5.681694695371924259e-02,2.630025879231647767e-01,-3.401674570050895047e-02,-7.327327398432090244e-02,-1.098429307326906357e-01,1.745908520513989870e-01,-6.509529608190144090e-02,1.218263710984234943e-01,-8.286709613916617978e-02,-4.984306269079434278e-04,-7.171415098786844411e-02,4.692960921612043812e-01,1.603755860733981631e-01,-1.098181768596525124e-02,5.638380526912654261e-02,-1.422962431349450441e-01,-8.509513278529185626e-03,2.868027352426932297e-01,7.436176491061750882e-02,-5.681736560251078767e-03,-2.288292166734426369e-01,1.702606237793383159e-01,-2.767851143812214976e-01,-1.857421545421104048e-01,9.179481227581752500e-02,-1.214596955273049145e-01,-1.205223688606731590e-02,-4.046427441673125514e-01,1.179209028325882425e-01,-1.943914929426421856e-01,-2.728017564711994469e-02,-1.074092722673773703e-01,9.155645237233106873e-03,-2.948127530934139054e-02,3.160260756735100984e-01,1.401404405319671975e-01,-2.252553588517958727e-01,3.371309042872024792e-03,6.561557089104248786e-02,1.087102685507836258e-01,-2.590281048007928577e-01,-9.860790978165202836e-03,5.940095201750504594e-02,-2.420993361328979965e-01,1.105503695143443266e-01,2.869599452018226637e-01,-6.445300067952494660e-02,2.300748813123014436e-02,1.052611810419052246e-01,1.789730235552756121e-01,1.128938359094167621e-01,-3.386469054133581236e-01,-9.539315591331803956e-02,2.094951559417483622e-01,2.738903477073243442e-01,-2.015381578210834190e-01,-1.109256582967146215e-01,-2.666508641216727704e-01,-4.647028761040890993e-02,3.725642446466949642e-01,-3.068758923625434787e-01,7.690925020344585757e-03,-1.555020505669367226e-01,4.445781509976649837e-02,-1.510807746885218794e-01,1.523690547681785801e-01,2.494428720576720437e-01,7.207030565801374189e-02,6.539360455217112233e-02,2.369395414552128709e-01,1.261057857828651874e-01,9.654894746319894749e-02,1.675052112476187460e-01,-1.345420668436204253e-02,2.583332614913148029e-01,-9.209735548807024275e-02,-3.670947939594557674e-01,6.503931082840862243e-02,1.834425919767244950e-02,1.427606222526429658e-01,1.743451631863879303e-02,1.314378227667066870e-02,1.722270884814444125e-01,-1.815092644815280709e-01,-1.815931257682351085e-01,-2.327417466084081843e-01,4.616802622286359653e-02,-1.745967991712214507e-01,-2.594724923090265256e-01,5.590157263953961925e-02,1.141569405629907358e-01,-8.041103259182230678e-02,6.637202226408706052e-02,-3.883467578060514902e-01,1.157954481589099777e-01,2.462454633770025658e-01,-2.406633973097585619e-03,2.153202090910190381e-01,-7.036259024808710905e-02,9.871755204965251829e-02,1.818025453076950460e-01,-5.045112245500642939e-02,1.593001300643836216e-01,2.238526857320819741e-01,2.252683000357030146e-02,-2.671257988350040358e-01,-2.459354212670394058e-01,1.643158115930744012e-01,-1.020122845495535779e-01,3.352408657977508644e-01,7.532426314418058655e-02,-1.943481661740152910e-01,2.208351882884767303e-01,3.570934569285961341e-02,-2.168634164789385310e-01,4.821523508277111847e-02,6.180345309753919325e-02,-2.046991752199202874e-01,-8.631366016661588814e-02,-1.544120571745492276e-01,8.497717029148608991e-02,6.140311802362923010e-02,1.035182641398566250e-01,-1.243790829266177705e-01,-3.733358523981709642e-01,1.928447939401760070e-01,1.881878320022517259e-01,2.562234369403828538e-01,1.029325743562098938e-01,-2.005018698555424694e-01,3.250731156273520828e-01,-1.242599713793901411e-01,1.580655271445715326e-01,-6.233864679039234635e-02,-1.818897010106016177e-01,-1.717854879508569077e-01,1.250567288944365030e-01,-7.220726539318360337e-02,-4.027291424376436835e-01,-1.145061073850820593e-01,-3.876710870623292088e-02,1.837442865199159503e-01,-2.065238513692637945e-01,2.601379372609702312e-02,-5.441021318160249587e-02,-1.157288214611116445e-03,1.339993428904727446e-01,2.488113506094404015e-01,-1.412621011653311942e-01,-7.939985116415939487e-03,1.427562973352667353e-01,-1.233297323869589346e-01,-8.529305987064209060e-02,2.597861252758597583e-01,1.543260024498306071e-01,-3.072051175430020806e-02,4.757343688690060524e-02,2.475181514512133640e-01,-2.783606186564931972e-01,1.695654186947071485e-01,-2.961737087311850369e-01,-2.081937034713350065e-01,-9.330224782426501870e-03,9.266873310144914389e-02,-1.767691704767234140e-01,-3.424991880707523723e-02,-6.259168671047403258e-03,1.929719697351116037e-01,-1.846880274830328683e-01,6.434445971553515164e-02,8.491961688138313646e-02,1.059070809187402373e-01,7.786310747523665643e-02,3.163477122696107258e-01,2.130673038076103497e-03,4.234059401152792113e-01,-1.623072779566472890e-01,9.289320121696333088e-02,-1.280600466915775559e-01,1.511221447205684798e-01,-7.888930623355489002e-02,-7.190608003656652480e-02,-2.799413793044073784e-01,-1.469138915111231347e-01,-2.150335753591417209e-01,-1.873691656699484065e-01,5.402624485946441041e-02,-2.150951047130818528e-01,1.899969017318813569e-01,5.905693411678545907e-04,-1.373279459972571726e-01,-3.590008412007470451e-01,-6.896644218429066886e-02,-2.007281386306874749e-01,1.291147443090582929e-02,-1.542944370322079373e-01,6.832344015929234238e-02,-2.040287004853726938e-01,-2.098679267962885453e-01,-3.907978412399627788e-02,1.731283757097731857e-01,-3.662284086345660161e-01,6.534377684709434531e-02,7.487843626787661633e-02,1.161658648266038728e-02,-1.315760852401135772e-01,-2.699072088547054826e-01,1.124923531419746991e-01,2.359241102386487321e-01,-1.868336489902456751e-02,2.482583968132323904e-01,2.337104761982357858e-03,-6.173962361677592242e-03,-2.376950938305164851e-01,-2.281381936211826778e-01,-2.366944465565419542e-01,6.497254494542420433e-02,1.290922014151944519e-01,1.117344911199094279e-02,-8.447410196023719120e-02,8.789055762680096640e-02,-1.733206697284223052e-01,1.994828143781124385e-01,-3.315068376257311600e-02,-2.586052483802619983e-01,-2.158756332805346900e-01,1.632472247453365943e-01,-2.630119239274614773e-01,1.670603691659479639e-01,5.260920551953133240e-01,1.346332549138160861e-01,2.768903880864039269e-01,8.506998766345379159e-02,3.889993275012845059e-02,1.158842171041618296e-01,4.311027569152275918e-02,1.278829726210344853e-01,-1.987405531060523478e-01,-8.297921531549379282e-02,2.061275718731301818e-02,-6.163400461195268909e-02,-5.568050613737408894e-02,7.033907279277485519e-03,1.848459506858773360e-01,2.970165040858234740e-01,7.450546550709068183e-02,7.940291823329950760e-02,-1.591157303809467849e-01,-3.801042642251420411e-02,1.743001430809867358e-01,3.675277014013900723e-01,-4.555330113283620995e-03,1.129642709892219044e-01,-2.171706853275614385e-02,2.422699901543125256e-03,-3.123696862624185666e-01,-1.302293235642291713e-01,-2.370760529561151755e-02,1.661716451627766322e-01,3.090645098031877813e-01,6.556722796562904076e-02,-6.345801409025293716e-02,-3.957575709618095516e-02,-3.546054363112138841e-02,7.775048701908478244e-02,2.892936184691898283e-01,-1.022005871451429765e-01,5.645185389392989687e-03,-3.641323923393250395e-01,-2.675818731917334881e-01,-1.432099856017720607e-01,-2.247982822318935203e-01,-3.774069104336056496e-02,2.069551112170754936e-01,-2.585973172907241047e-01,5.812345861564582189e-02,-1.987438944355495174e-01,1.178048274682123586e-01,-4.253899894497036732e-02,-1.514194171233276542e-01,2.267122697303122214e-01,1.092884492022044296e-01,-2.849048966075841682e-01,2.278182634706008292e-01,-3.076589526608072139e-02,-3.278871756419599309e-03,5.414118232045159879e-02,-3.045452668013792427e-02,-4.878419770774513470e-02,-1.600845762421867213e-01,1.574175086260860001e-01,-1.218451637237630975e-01,-2.175754987471383850e-01,-3.346118944762734304e-01,2.944916783241597336e-01,4.441747046051806869e-02,-1.355650322162030019e-01,-1.787691051477789117e-01,1.964773141105842849e-02,-5.494092811780745128e-02,4.063085873421807409e-02,-1.081765040921889298e-01,-8.320365652695260739e-02,-3.265915712056056686e-01,-2.126172520392120846e-01,3.322006134168621339e-01,-4.214706007136734267e-02,3.675297615095982767e-02,8.290727168773853739e-02,-3.293446957542191522e-01,-7.412827361376676805e-02,-1.906142038168740505e-01,4.801658648627642190e-02,-1.464554392437349972e-01,-2.002126052689062741e-02,1.084179492668270878e-01,3.846434260801897542e-01,1.499135692286266142e-01,9.531178374989025814e-02,1.358454527196167883e-01,2.529409025215428874e-01,3.019403892365517539e-01,-9.099251586621552590e-02,-2.850937082983829793e-02,3.074957146198888380e-01,-4.811031153381105374e-02,1.063839502233056983e-01,-9.176995196348054426e-03,-2.030864641584407271e-01,7.525583401932678385e-02,-2.928771424897022232e-02,-1.922392268979526975e-01,-1.554647104107192146e-01,8.438467983837445383e-03,-3.851300564709512209e-01,2.655201363716838681e-01,-1.704931093821242249e-01,1.661208374145929090e-01,8.596665107291168173e-02,3.438878798382502544e-02,2.097803515006519126e-01,8.638014419414014045e-02,-1.130912285551794599e-01,-1.896654424317452126e-01,2.641716165147616202e-01,1.604264824782860310e-01,1.569943275183406095e-01,-1.311357647306690966e-01,-1.781761703705158628e-01,1.172668075437571268e-02,-1.222946380851827330e-01,2.605521612632449163e-02,2.775762030255904955e-01,-7.215045294474554949e-02,-8.891970618807898408e-02,-5.596733920591911993e-02,-1.774376158900477507e-01,-2.399460448725507580e-02,-1.109214687343154232e-01,5.230714431448642981e-02,2.351163098793562778e-02,1.620944779539103264e-01,1.234905442710996365e-01,2.210773375301755828e-01,-3.944065190220196193e-01,1.382215105499734475e-01,5.915525110523441737e-02,-1.527196329358126436e-01,8.553777875880333448e-02,-5.244048559656615260e-02,2.688126961518111924e-01,-1.367609882979944347e-01,4.632109914125893679e-01,2.455711363501025118e-02,-1.735315050422357730e-01,-1.743237577154191087e-01,3.062481873318340098e-01,-5.755284567291363285e-02,6.769203529487001492e-02,1.399829358027349924e-01,9.348188834920659329e-02,-6.485555452187603820e-02,-2.098330828431769213e-01,-2.264447582122641467e-01,9.141259579931966528e-02,-2.798548648356324539e-02,-1.351380482708573472e-01,-2.778996294465808647e-01,1.768309376117084336e-03,3.478091857458880387e-01,-1.205785586303106810e-01,-1.371182101982701962e-01,-2.086432330264025026e-01,-6.202079508890954301e-02,-1.568017507833915636e-01,-1.956225822028844763e-01,-3.694709170211740116e-03,2.457139339818329160e-01,-4.895530504538909283e-02,-1.940642133852197304e-01,-4.878871248393895632e-02,-2.767170951511226384e-01,-2.594064053556351390e-01,-5.577445354030659969e-02,-2.524541236165877556e-01,-1.259460657717565435e-01,-2.037292564408069440e-01,-1.792031886382905448e-01,2.038060172352907928e-01,-7.732880778104689323e-02,2.509987694244949497e-01,5.368990556097501948e-02,-6.347256116309293872e-02,-1.576513738363957418e-01,-2.721892674144264501e-01,1.419457055576377191e-01,2.639612602196708124e-01,-7.498482866290007154e-02,1.104373259604857910e-02,-7.562135955574876382e-03,3.847266821768430822e-01,-9.152386046903114580e-02,-9.008285490739224854e-02,-5.091798916726798102e-02,-1.601838507208543094e-01,8.164825475090463358e-02,3.055875999531741383e-01,1.242156627464040264e-01,3.079249611540773035e-01,-1.538977377275283220e-01,2.201742367478448370e-01,9.319271249818229103e-03,1.634038770662684104e-01,2.694630920356947401e-01,-1.239293048124404280e-02,1.712754208187887983e-01,-1.347841940676713923e-01,-1.131108780016774895e-01,1.443146741008211054e-01,-1.751160807329587843e-01,-2.185593306392001889e-01,1.102820112306698019e-01,1.365351140938540209e-01,6.200326541756447790e-02,3.376998691439395822e-02,9.981788444493681564e-03,4.661605998704187459e-01,2.765524051133101333e-02,-3.751467257740268707e-02,5.428433867207471068e-04,-1.961067079845656425e-01,-3.025136600641823992e-01,-1.855474286820699981e-01,-1.382008400748435395e-01,-2.141992480493610518e-01,7.783882320729425437e-03,-2.896240713727540328e-01,-5.393481286424429283e-02,3.410383813353128901e-01,-2.054928682991947475e-01,-2.510763744252085816e-01,-1.605881783031074678e-02,1.906030866651403088e-01,5.258358778396876772e-03,7.993514843772239753e-02,-4.314187859113764734e-02,3.146420415992501329e-02,1.510709908593354522e-01,-1.894163203704012088e-01,1.780164219200644146e-02,1.533600570481058467e-01,-1.940075436532577580e-01,-2.051802481989115912e-01,1.930187191897760057e-01,1.508690835764617821e-01,-1.948104728692976254e-02,-2.000795269040532287e-01,1.325084327549756191e-01,4.479747094483461922e-02,-2.593038281779843079e-01,3.353377917151180165e-01,7.626272533858369229e-02,2.912567939000250405e-02,-1.831260559008586475e-01,5.430200558769913977e-02,-1.980774323081109789e-01,4.621357468732749108e-01,8.280524145707648942e-02,7.496902358368628949e-02,5.570148034343946897e-02,1.140091563531462487e-01,1.790761546997751696e-01,2.007002716115604268e-01,2.988129178827898455e-02,-1.250887036741537561e-01,8.526517585033929758e-02,-1.234418238426912839e-01,-3.256745227126666697e-01,-1.173533668249999995e-01,-1.830809714616422335e-01,-1.403914310406993993e-01,7.161130001336003803e-02,8.036507422739241902e-02,-1.660819606101950618e-01,8.767239300384184475e-02,-2.725390951989558053e-01,-1.968292969076248788e-01,-3.069789736054844287e-01,-2.288279239746478927e-02,-4.811308966864326353e-02,-5.529127271532825044e-02,1.393383513267212326e-01,4.690739642032763085e-03,-4.588836653978570213e-02,1.458068981672515640e-01,4.147636847289685319e-02,-4.351302604193309220e-02,-1.373759799973038875e-01,1.880392792480392872e-01,3.535324154735502988e-02,-2.799816305785655102e-01,1.023068148706372527e-01,-1.948862772044460401e-01,3.160878266529786040e-02,-2.329341074446339699e-01,-3.983532625268349503e-01,2.550733789458305423e-01,1.893265676385442742e-01,4.146016184528224929e-02,-3.822415148652621442e-01,-1.082691410573963647e-01,1.375754773511224105e-01,-6.456022103727475370e-02,-7.272883836269219970e-02,-1.416377469417319790e-01,-2.110082639234969193e-01,3.640753237395364522e-02,2.336413214057406901e-02,-2.594712232173878030e-01,-2.092433920314945850e-01,-1.252348460793367702e-01,8.972582259414388361e-02,-7.741148930531582817e-02,7.220356527152495957e-03,-1.103548888122939942e-01,-6.917395464042479236e-02,-3.698334691088873694e-01,3.943437575767545500e-01,1.058579465844817907e-01,1.103331034582403780e-01,1.514868883953321976e-01,-2.552272829462953752e-01,-7.292897493785784058e-02,-2.288985907688304566e-01,2.775927368099928572e-01,1.036151805229516554e-01,-9.615847347146881663e-02,8.090466668058750310e-02,-2.272766133295204272e-01,-1.968870470987103549e-01,-8.278757869123028190e-02,-1.164455333730038122e-01,3.536296193983283487e-02,2.557482947342794577e-01,-7.774448279740496515e-02,1.208522899337125533e-01,1.804508215785651792e-01,-1.334716731908949516e-01,1.820272269639781892e-01,-1.127601460480144729e-01,-2.234162449542812512e-01,2.957831109783881085e-01,1.884207802599064674e-01,-1.094430807335074196e-01,2.372732672669791987e-01,-7.227605572035401826e-02,-4.306353905636749191e-02,-2.523317612315043590e-01,1.441434694322605292e-01,6.892264189541968955e-02,7.822723996289569770e-02,-2.231364283716259500e-01,9.248667718109868097e-02,-1.781036478274289625e-01,2.469691124914222269e-01,1.639616745141263543e-01,1.263047012388156809e-01,8.100147613981779904e-02,2.143857285134546931e-02,3.250975731503162325e-01,1.163221986052595663e-01,9.787239017949911357e-02,2.888438322170475692e-01,-1.119637361428894723e-01,-6.677580890851912698e-02,1.166970349091734083e-01,-2.899299748630880177e-02,3.186749618558072927e-01,-2.158856012770266897e-01,-1.762186492069259258e-01,1.550232809761744324e-01,-6.712052802017810793e-02,8.623613327935074346e-02,-2.390202008513604356e-02,1.083843894815506304e-01,2.302767673076484001e-01,-1.463430983891836901e-01,-7.568726690219439168e-02,-4.260938634722005180e-01,1.909993027857466441e-01,-2.641989654884454031e-01,-2.241453204621655093e-01,-5.187522691526062074e-03,-1.746802109692522642e-01,1.970813307005060411e-01,-5.833405823199897672e-02,1.185683851318439647e-01,2.866716455367396832e-01,-2.405753347548401089e-01,-1.154696864379938306e-02,4.015820817581448876e-02,9.353597175359149030e-02,7.850724589392554797e-02,-2.902366643177283281e-02,2.484764637250860553e-01,1.845782462844596222e-03,1.235354027774959451e-01,4.450231715318025277e-02,7.728847949378432614e-02,-1.499024716704605298e-01,3.880376969309453639e-01,-1.445650710500458735e-01,1.650221695194632743e-01,2.473046260155099541e-01,-1.919171274199950872e-01,2.279608522808647397e-02,1.958457138807182807e-01,1.309907611078603151e-01,-7.284125094608925877e-02,-1.971851198632670610e-01,3.831103752929387873e-02,3.232161343719713170e-02,1.802811041545502452e-02,-4.028538307269602034e-03,2.507350729267822653e-01,-4.589463176043022397e-02,-1.521504053684855917e-01,1.450465979555551066e-01,1.175434267663775234e-01,-3.817915967528840993e-01,-1.580438726687357076e-01,1.256824012926181788e-01,-1.947391878262940690e-01,8.331872286365248504e-04,4.560645729857021879e-01,1.628163483559448843e-01,-2.610485703688625869e-01,6.497860054691464993e-02,3.986575768146131959e-02,-1.379739532891748610e-01,-7.555626768217611755e-02,1.579867560184665398e-01,2.125850251766779053e-01,-1.393726971381090696e-01,-3.196933703674631477e-01,-1.497365101765026629e-01,-1.945699147150670161e-01,2.467320480723572129e-01,-9.424945318731807464e-02,1.870384392878036428e-01,-9.302168025490033243e-02,-1.770365489345299614e-03,-7.642267448421312392e-02,-2.730938715602917455e-01,-8.494246162911013240e-03,6.150028466603443128e-02,2.407652966247356696e-01,-1.252226262530891088e-01,-3.061890124860009998e-01,2.742428544182583527e-01,-3.203676505202294189e-01,1.536400285384200703e-01,-1.209946890232259514e-01,5.751434718479775388e-02,7.873370134565856049e-02,1.650625648473119308e-02,-8.313168927026634569e-02,-2.592309072251345325e-01,4.340723751624631782e-02,-1.428333095045957180e-01,-9.419046825442713156e-02,-2.197606098028784538e-01,2.013603864218071748e-01,1.239627169737901186e-01,1.329395852179952875e-01,-1.598937858320813310e-01,9.913063473015255866e-02,-7.404154220542764897e-02,3.924955648265940344e-01,1.690061261515152513e-01,-6.136508090861800963e-02,6.912301576124427194e-02,3.212438759316443293e-01,-6.081888892578127259e-02,-1.495312280923139781e-01,-8.029229885639842246e-02,-2.365492196358409682e-02,3.615470660910780620e-01,-5.856011425795803506e-03,4.525436751483288139e-02,4.880388426843389887e-02,-3.244965953540222547e-01,-1.617168583901651413e-01,-2.252497911856626567e-01,-9.760317650427875746e-02,-1.771426238954868643e-02,2.040352559598311022e-01,-8.307859275788852249e-02,1.614175154115043143e-01,1.489256568447029916e-01,-6.140233436478029216e-02,-1.239053568661056676e-01,2.962963571518510350e-02,-2.774230490336506705e-01,2.912015622664098080e-01,-1.589304035194022691e-01,-2.657306373152617390e-02,-1.776071540578698926e-01,-3.923602749181497734e-02,4.003286341812811178e-01,-2.342816612748228611e-01,-7.831543696173902391e-02,1.085958045060243932e-01,3.149257539986519139e-02,1.419875151454219053e-01,6.272904613784696659e-02,2.946760556166022268e-02,8.658615114451238826e-02,-4.136673384228328060e-02,2.265000574575257719e-01,1.454821451138715027e-01,7.401696379282517169e-02,-7.636925070093644741e-02,5.200748680854840739e-02,4.445435455900683536e-02,2.922006690426878217e-01,-3.175289902458856839e-02,-1.848591109940672106e-01,2.255087257239777598e-01,-6.905156973067258508e-02,8.830719378371026940e-02,-1.300479345266808140e-01,7.386336465384066297e-02,-1.151121503158849119e-01,4.110649923627063274e-01,-1.458059292311068289e-01,-2.474284006307394812e-01,-2.665633019702116080e-01,-2.609664864820069874e-01,-2.161117227137707986e-01,-3.350216400520900084e-01,7.983058702704273757e-02,-4.881886625186666190e-02,-6.398425668924290211e-02,-2.073653103925197083e-01,-1.996386521058478650e-02,-2.607191984647692640e-01,-3.365960533732946514e-02,-1.246044374931498111e-01,2.027769730482444910e-01,8.326592958170661585e-02,-1.834614837188522085e-01,5.005875354115196102e-02,-5.127439017499194063e-03,7.225714779797154375e-02,-3.457403849903976645e-01,-4.674331982593466113e-03,-5.932909304452503585e-02,-2.538696857457626785e-02,-3.103054677426014818e-01,1.091688594256083195e-01,-4.436705426404094488e-02,2.691866724957969748e-01,-1.129946538460925853e-01,-3.211572584346507331e-02,1.601009026717908068e-01,1.139737092717899372e-02,5.906989184200969745e-02,2.184865958845111089e-01,3.558846102260672106e-01,-2.948040662461271499e-01,-1.592163612775623904e-01,-2.137926016747576374e-01,-8.915222312373495550e-02,8.705148094382123003e-02,1.813464394926348477e-01,1.756773122422716216e-01,9.424976477098694072e-02,-1.020163267361386961e-01,1.659595597331191552e-01,3.148914702778828345e-01,-4.100063264395099605e-01,-2.617685957361633453e-01,5.344493731805591979e-02,-2.822876937201300729e-01,2.341266137327744079e-01,2.695120027066577051e-01,5.306091347316821416e-02,1.362558105268840136e-01,-7.023521167821866751e-02,-2.680759676011070236e-01,-8.544930059430233538e-02,-1.924816267834998651e-02,-1.533759785102544182e-01,9.912782429582496502e-02,-2.054472526683909922e-02,1.384191151756697102e-01,1.761427883827468011e-01,1.541350560006582160e-01,2.998120923401904371e-03,-1.367919784011264739e-01,1.472713493192445711e-01,5.548312614147449251e-02]).reshape(32,32)
Vwm = np.asarray([-1.078013508994215414e-01,-1.629890785331065406e-01,-2.475047148385986218e-01,-1.913900403043530540e-01,-2.261499185979679583e-01,-1.568609722059089995e-01,-2.089304849688838617e-01,-1.352480178576726533e-01,-1.937006283672944307e-01,-1.071701004801581536e-01,-1.415822874847583179e-01,-2.043319974680197770e-01,-1.652373703091177259e-01,-1.728138890363069280e-01,-1.485897440765782673e-01,-1.659201718609811249e-01,-2.294992931063253583e-01,-1.941014630990842427e-01,-2.183714342403628716e-01,-1.591496456192370845e-01,-1.765589787100661223e-01,-1.739825930374857277e-01,-1.989320462959656699e-01,-1.399999082402370032e-01,-1.957651028738580934e-01,-1.434453987219783400e-01,-1.889657548842600399e-01,-1.341215989715199564e-01,-1.325447887852041762e-01,-1.936963079815192112e-01,-1.849461753359420979e-01,-1.509537155258001973e-01,-2.058985222086734124e-01,6.351479729077767755e-02,8.913271137693672130e-02,1.446515222120643707e-01,3.332393216060509644e-01,-1.669499073242090570e-01,-1.277308481000276608e-01,-2.983062284031042788e-01,-7.792018615929678649e-02,1.219204511143500130e-03,1.088504405952967213e-01,-1.115641995956677957e-01,-2.076113957940563942e-02,8.368546828942838300e-02,-1.699464230937353937e-01,3.201955552240751679e-01,2.456737724198204409e-01,-1.796032614335061894e-01,4.556127680981435224e-02,-1.296938951772522164e-01,-2.687869999784944786e-01,-2.830372833498503993e-01,9.916116101140833028e-02,5.536359103088159955e-02,1.553460998221391776e-01,1.109107910174135792e-01,8.433702084758225304e-02,-2.799257479090984657e-01,8.959219053499370422e-02,1.778272796898627828e-01,-4.953210401100490573e-02,-2.655179619648547762e-01,1.794964354263806905e-01,-1.356744877517945536e-01,1.693105361735038061e-01,-1.953287206721735503e-01,-1.343214146377283771e-02,1.485085256364655493e-01,1.033509116706338854e-01,-1.673192900491133062e-01,8.218477213338548637e-02,-6.117770489312027160e-02,-2.373728014709485246e-01,-7.421105157845098166e-02,-2.543246313741043263e-01,-2.012292868107769528e-01,-1.535413712142591758e-01,-3.241299564931617305e-01,7.919787001165937146e-02,-1.545277143225772809e-01,1.449330908988776256e-01,-3.781395284524159683e-02,1.065068702715376014e-01,-1.959710115648284068e-01,2.827245063207310949e-01,-9.513009719421533852e-03,3.575468027460906167e-02,8.234874758047346088e-02,2.253106583056161960e-01,2.358484652605194465e-01,3.585509058007969041e-01,1.583930511268550057e-01,-2.515546514047656834e-01,-4.180394106045999536e-02,-1.668135859897229845e-01,2.362666483195103306e-01,-1.374406851964646015e-01,2.042071161744382635e-01,-8.566007459698531112e-02,1.057276986041822270e-01,-5.721738868217338819e-02,-9.654875445721191121e-03,-3.060574886422293139e-01,-4.029432477782057126e-02,-1.200909765328317808e-01,2.079917108097584788e-01,-2.933859970047011378e-01,3.390450827481630153e-02,-2.215741443649462961e-01,4.171435654495217471e-02,-1.251244068009922938e-01,-2.511197754878036204e-02,-1.657927762892184853e-01,5.916551601284623235e-02,-1.820412566625448925e-01,1.237085312603781462e-01,-3.157881365002071505e-02,-4.064874655364674738e-01,2.796288932537977501e-01,5.465024776798597245e-02,1.517397446078528334e-01,1.680062620885484914e-01,2.060109461537333042e-01,8.575724370475756864e-02,2.018867869427165840e-01,2.406465547986024744e-01,7.398929705266146795e-02,1.180144807986405753e-01,-1.211544969449267206e-01,-2.451527680295620959e-01,-1.190660708597324723e-02,6.035014388440791688e-02,-1.413823561658299477e-01,2.063755921272561467e-01,1.030797366453548858e-01,2.332152254195884178e-01,1.503009812256584365e-01,1.153060973364110897e-01,-2.391855208455660742e-03,8.311447834793463108e-03,-1.041319303785085207e-02,-8.262948618664700540e-02,1.671569004688977511e-02,-3.307385525886124555e-01,-3.732505282568611138e-01,-1.099787869851544947e-01,8.423756371747243357e-03,-3.212155701599643531e-02,5.995822341317679459e-03,2.881325559840668959e-01,3.972187256098297925e-01,2.365614020886080138e-01,-1.818920932059238382e-01,-3.220754514399295360e-02,-8.088810656810262179e-02,1.770117677018951119e-01,-2.183424674279076105e-01,2.299810067379615408e-01,-5.646646090046322786e-02,-4.710681847695939728e-02,1.483293309635690671e-01,-9.275185986212011735e-02,1.114353578093174729e-01,-3.698417948333250216e-01,4.207856691572485312e-03,3.457808936682501676e-03,1.090675312214998832e-01,-3.203493842217458587e-01,2.599556664417635443e-01,7.754256288379224316e-02,-1.128022968239799110e-03,1.272200080272249956e-01,-9.432845927833537203e-02,-1.553075711738987896e-01,-1.441893322226088792e-01,-2.300321147956679024e-01,-1.016575015559514350e-01,4.023709981335219510e-01,1.046632695562306758e-01,-5.867829300814873805e-02,-1.093165540452768203e-01,1.405439339520560445e-02,1.190989053856857521e-01,-4.315190997861791389e-01,1.948906550338662946e-01,9.775588971163474972e-02,-8.787143729787670610e-02,2.172545067793367202e-01,2.506720392358263716e-02,3.841169019434661352e-02,1.308757549027284028e-01,-7.527711466252108401e-03,-2.829000409904934288e-01,1.262540921876355859e-01,-2.058665179798063738e-01,-2.668485912335517019e-01,7.369064240401047849e-02,-1.921701884193233456e-01,1.011990141931562448e-01,1.346218583223358356e-01,-1.587061052209310080e-03,4.222059072428462345e-01,-1.256417183555608164e-01,-2.453485349943876348e-01,3.463505376510487843e-01,5.453540498664314479e-02,-2.054720223917284316e-01,-2.882865701576482406e-02,2.058539523174231778e-01,-1.244033941267913557e-01,-1.423759298815948093e-01,5.152363785448447336e-02,-7.923900941403312637e-02,1.416620118389594896e-01,-5.179782564571009523e-02,-3.868904503426356251e-02,2.035587620304358802e-01,-1.360996508982663111e-01,4.460628955504636339e-02,3.210812250861480588e-01,-5.576093257842535539e-02,-5.337172642173270559e-02,-4.141291196920589973e-02,1.325117832000950457e-01,-1.391083848360403531e-02,-1.186643427248481458e-01,2.285660432564357580e-01,8.922778525851679521e-02,-8.417260911495658138e-02,-1.994893013182616193e-01,-7.626273842094240252e-02,4.660060239923800585e-01,-1.654270035141470196e-01,-2.073580471982894580e-01,-1.193036259871512739e-01,-1.291852865753113921e-01,-6.256627937477962642e-02,4.432919726096324481e-02,-5.286379727635837772e-02,1.353557655407354177e-01,5.810952453266989698e-02,3.430807259500012196e-01,5.633330929616240518e-02,1.851442696124154796e-01,-2.577530691838119115e-01,8.442213999726876084e-02,-2.903399694064403777e-02,-1.865582199320942602e-01,-2.787582783267281150e-01,1.552915785794235504e-01,2.026370701923178863e-02,3.428005453200036468e-01,-2.790082468165627771e-02,-1.408566686916301880e-01,1.749272920430368916e-01,3.166682858350374774e-01,-2.229817860128812668e-01,-6.142402065644660819e-02,4.582083696638738352e-02,-6.935486282750258358e-03,4.907087141282183707e-01,-2.253032588812033284e-03,4.200834783562234498e-01,-1.287144051933803435e-01,-9.510402844653244314e-02,-2.375657391138299990e-01,-2.291179702452467715e-01,2.756018689922358766e-01,-1.471652766818777429e-02,7.953537239044730645e-02,-4.598094932021202369e-02,5.236797128657535300e-02,1.697716002553894534e-03,1.932456126183965117e-02,-1.936996447459298221e-01,-1.558068944564277858e-01,-2.260084173686916498e-01,-5.188181030208288691e-02,3.555613869228279461e-02,-2.773680220903352450e-02,-1.129383335982678399e-01,-1.131333312684281583e-01,1.185690879057435532e-01,-6.978496631394788541e-02,-6.739612930142424574e-02,8.548671189001312565e-02,-2.808895673971323892e-01,-1.988185582504050919e-01,4.633830276979460788e-02,-1.363689926158962173e-01,-5.268211662158495123e-02,6.748742119086183211e-02,2.935361757083762013e-01,2.043371508283592097e-01,-2.578969782297197422e-01,-8.523100495704344359e-02,1.352257558548784766e-01,8.556022259840176392e-02,-3.526423758946691245e-01,2.611356385865352681e-01,1.315171618683693422e-01,3.930907466799991173e-02,4.321392950685731815e-03,1.579805607819780855e-01,-1.409041219195728833e-01,-5.177610485408563196e-03,1.820504005920965951e-01,8.675219039022656620e-02,-1.890050102230717011e-01,6.204787640661860171e-02,-3.562051640877975101e-02,2.561403829214646821e-01,9.699618904410413356e-02,-1.459733092675268885e-02,-3.704416137444151418e-03,1.568936646477196162e-01,-2.002873489982774369e-01,-3.853159069442740337e-01,-1.572429643346006517e-02,3.286588413791016183e-01,8.040593764228491647e-02,-4.618700297186634773e-01,1.713244846637013430e-01,-2.872804400784709569e-02,-1.049350265609749200e-01,-8.624883296371380070e-02,-1.684359418700922539e-01,-2.260282423422445008e-01,-3.246686699382843044e-01,1.097135309285107545e-02,-1.200248391187374031e-01,1.880028537447409054e-01,2.345376891004288533e-01,3.564148691349406511e-02,-8.495516592023044655e-02,-7.406394727427595415e-02,-6.374610752166724043e-03,-1.833726310436759599e-01,-6.239263619071536149e-02,2.592159848789412635e-01,2.457701881217047579e-01,2.400725979779692598e-01,-1.074199750913390761e-01,-8.408789200950821108e-02,1.024833368709606174e-01,-4.820416560401757922e-02,-1.004645138603185439e-01,-4.104745298485619823e-03,2.347485620240387094e-01,1.244503773149760982e-02,5.275995154528900083e-02,-2.645414769670956234e-02,-1.215867835430688854e-01,-1.984342151723652026e-01,-2.803955664525598079e-01,-1.057048429291984224e-03,1.338639031069203261e-02,7.044235040803771553e-02,6.455536854358959187e-02,1.584437510588265208e-01,2.801786138676956583e-01,-2.133265745148098802e-01,1.325665122880560765e-01,1.030867809407894631e-01,-2.123376805603733319e-01,-1.157473978041810847e-01,2.995229767550807165e-01,-4.847472031884990547e-03,3.037141270044586231e-03,-7.686624310935667725e-02,-4.447364001479663931e-01,4.082564135883881007e-01,4.868711859024156888e-03,1.291479453323917531e-02,-8.874869177037392198e-02,-1.049584212811468242e-01,2.993090944487151184e-01,1.186750907918211750e-01,6.510496709759663880e-02,8.284929987253120132e-02,5.171314912415907183e-02,-1.482521956605008517e-01,1.070702098708171263e-02,-3.383206252413151760e-01,-1.934689833788420521e-01,1.531888921332778264e-01,6.504062972598076420e-02,-1.068336841386591796e-01,3.106317710813174052e-02,-1.159419090729384323e-02,-2.228792523275426041e-02,-1.430111536443470777e-01,-7.516771490478421636e-02,1.478008307482081216e-02,-2.090550203586819256e-01,-7.488490380343153230e-02,1.606658505816255522e-01,1.578597801203363016e-01,2.738610596220785731e-01,-1.426550624624884356e-01,-2.517222286705945722e-01,3.352530615255380209e-01,-1.877916933517668474e-01,1.179976411893962074e-01,1.370141105285749561e-01,3.360461447882179820e-01,-1.424013373598324583e-01,2.966650848134100640e-02,-2.127980999519032690e-01,1.558650337812708953e-01,2.827904722641332858e-01,-1.776042118456138963e-01,1.259915516727674045e-01,1.039276929117881332e-01,9.490670063551599409e-03,2.051749044581162584e-01,1.200557181403115042e-01,-3.563481139033129047e-02,-2.611996694905528021e-02,3.112363064157423476e-01,-1.131521956157234970e-01,4.909081414169214064e-02,2.291829442054708899e-01,8.226836390466717164e-02,1.998566924544473433e-01,7.870447317560351486e-02,-1.035881833917879080e-01,-2.274601214017211714e-01,2.787800595975008580e-02,9.743240241607120655e-02,-4.103599347651288448e-02,-2.272854242686734028e-01,-2.860004232401420765e-01,-6.593914464078239578e-03,2.259733832226839823e-01,-2.839715794781457608e-02,-1.569079454813182839e-01,-1.639671300172334048e-02,-2.290361135111786128e-01,-1.230745223750008416e-01,1.590648180333608386e-01,-2.417382977293245083e-01,3.464054412793449167e-01,-1.385083653346572408e-01,2.937829157734203611e-01,-2.498443882925661941e-01,3.418331472554504424e-01,1.871401714499608127e-01,-2.806948740374011209e-01,1.038831599283525087e-01,-1.335484769436046659e-01,-4.850874832277536630e-02,-3.734371464703577503e-01,-2.116175807640426620e-01,-1.305441469040487593e-02,-3.982908236238128646e-02,1.108828626116544619e-02,4.316462198691783936e-02,8.879575984298249125e-02,4.307754915851794153e-01,1.032106686297354081e-01,-4.679367922949014685e-02,9.726893590435228831e-02,1.700259601992551439e-01,-2.263494183011429961e-01,8.738383085596808375e-02,2.051597471284536123e-01,-2.051733170191100686e-01,7.796875782740742000e-02,-5.686357341668712984e-02,-1.150442999204376732e-01,7.885303725959502685e-02,3.185986382844699372e-02,2.362879004317321729e-01,6.346151521672563356e-02,6.858198126437130282e-02,-6.111693973669681673e-02,-2.541241951982236014e-01,-1.862982552568780703e-01,-1.362892028111939990e-01,7.537229497151240465e-02,-2.326188043713660059e-01,-6.869921930553717082e-02,-2.066283555563463159e-01,5.152138211240263332e-02,-4.280016972793904140e-02,2.625792501693565706e-01,1.155980612402928848e-01,8.187474889243530340e-02,-1.115268163090988862e-01,6.513306658060577514e-02,-6.728724410112985055e-02,2.675436899086151565e-01,-2.588840389258643612e-02,-2.308468784937116602e-01,8.872624177450262606e-02,-1.008022962509617371e-01,-1.300403607233797248e-02,-1.342086538453578226e-01,-1.389546813731556973e-01,2.257870682800523221e-01,-2.702005691263345555e-01,2.150007529068619916e-01,2.134902770882428080e-01,-2.026891794752326836e-01,2.341652658839431800e-01,6.624264365315551961e-02,5.184086429303983584e-02,4.114254246143376204e-01,-2.359763983411346799e-01,-6.133612934412222689e-02,-1.124926184957464464e-01,-1.948027700676319696e-01,1.758020532265235358e-01,1.615637198838758282e-01,2.312678665994787608e-01,3.207474950805405418e-03,-5.616799721373057913e-02,-8.701371076873143373e-02,1.902586108111873342e-01,3.939803085561482954e-01,-1.462225295104999379e-01,-2.562615004829048027e-01,2.088638293557129877e-01,6.404667269163394350e-02,-1.765266302168463641e-01,-3.325305014359837830e-01,9.182022872827022564e-02,7.441080949490119778e-02,-1.575307864951425163e-01,1.066858912593054900e-03,-3.687472401633334201e-02,3.888440522754962325e-01,1.504520418345597910e-01,5.295337627332221547e-02,-3.429934999922302219e-01,-3.825432221135158239e-02,-4.667988404101907490e-02,6.287871672581883675e-02,-9.952983261388465008e-02,-8.071626709881648404e-03,6.688956990220019938e-02,-2.218869123032534696e-01,3.536537473557152533e-02,-1.220860748070035778e-01,-9.076851461902946117e-02,-2.454108037582880264e-01,5.374659855606235548e-02,-3.434669921975380125e-01,4.105242311043026393e-01,1.075735451764083528e-01,-6.476668126127604896e-02,-1.261831228215090084e-01,-1.679610298967182391e-01,-1.765734865524154484e-01,-8.216504899606018320e-02,7.479085351106790069e-02,2.167440346168892154e-02,1.544476491155619968e-01,3.136306281709289601e-01,1.565934246235717031e-01,2.358083392406643830e-01,-4.889693467825018819e-02,-3.142316402509396367e-01,1.153614859054465924e-01,9.865105308771876524e-02,4.563450494412699815e-02,-9.138885214600665774e-02,1.286018902850497858e-01,-2.518938625797371156e-01,7.475084617747125050e-03,1.971515979571763222e-01,6.402306057075844714e-02,1.135738600500786899e-01,6.375656848098514018e-02,-1.995740977203021849e-01,9.060028121263261069e-02,1.455832405697327914e-01,-1.018573329359279828e-01,4.462622962217070999e-01,4.145045055848372434e-02,1.755016405447912611e-02,8.294106022189036073e-03,-3.784283429008627325e-02,-2.630845479223045125e-01,-9.247439551586886242e-02,1.253026324113495626e-01,7.568255974667406627e-02,3.658121774353239042e-01,2.021258896748405753e-01,3.478216511179064302e-02,-2.198225798480065163e-01,-1.251283815551435530e-01,-4.120023611870995972e-02,-1.894710490781774670e-01,-1.015466323547108835e-01,-9.264846014392343065e-02,-5.844673657154737800e-02,2.709118938062306525e-01,-3.486229874900135806e-01,1.260702359480725399e-01,1.516704623645666050e-01,-2.096116898825777231e-01,8.938167018796454311e-02,-6.821816486135143243e-02,-1.558126084277452750e-01,4.827599606568623858e-01,-3.330656860145371490e-02,5.853750239503455882e-02,-2.697860617283024953e-01,-2.255810514956951124e-04,1.171246683157754417e-02,1.177453576693875126e-01,8.876113418073514061e-02,-3.809293517616857971e-01,1.015452950675617277e-01,8.607722098665143706e-02,2.479027911703920728e-01,-3.490124510367523941e-02,-6.152362871342194339e-02,-1.111647019288167920e-01,2.257068516772038971e-02,9.130425248938953825e-03,1.400919942434583065e-01,1.122266269402559802e-01,2.130722362074772835e-01,-1.936107481195488977e-01,-2.545097862087051244e-01,-3.524486324801319459e-02,7.635897651688940135e-02,2.681617647578923291e-01,-8.209031904517685718e-02,-3.563974635689744208e-02,-1.293947689812872670e-01,-9.978560977590175511e-04,-2.573812681953110970e-01,1.797141334572065763e-01,-2.081960813753457873e-01,6.921903833131709538e-02,-2.185180405003828152e-01,6.442293073878971321e-02,6.551179229157691464e-02,6.555473805424825995e-02,-5.943273433299466751e-02,-1.199298037573341691e-01,2.535534800053737547e-01,5.879239003801091379e-02,3.689573701932490069e-02,-3.186133949276358512e-01,1.884922150255213813e-01,2.632910449029863265e-01,3.443968747415415699e-01,-1.788631918614179972e-01,-1.565799064880709079e-01,-2.042107665819279383e-01,1.660575543184488606e-02,7.481991694698353346e-02,-2.106412157864386570e-01,-9.768100248273622888e-02,-3.811314393253414749e-03,-2.012327637731970709e-01,1.825463205727906324e-01,2.359609229103181230e-02,-1.151895955748546557e-01,-1.490030783917980495e-01,-5.824740426348902489e-02,4.761869443748360520e-01,8.908302913666503453e-02,8.624541854335247837e-02,-9.666624438111036388e-02,-1.720214878532380642e-02,2.231472687345225636e-01,-2.354336859097529988e-01,1.684061197843423896e-01,1.785212833897082685e-01,-1.939949342853549419e-01,1.120677180813309526e-01,3.968396106910601073e-01,-2.638672880902747653e-01,1.481425604257556594e-01,-3.836466756759333158e-02,-2.900839011325861416e-01,9.134708563482281385e-02,-9.997122408602883425e-02,1.400646468336613493e-01,-1.079318999725567552e-01,-5.434394442446463525e-02,-3.304870220852099694e-01,1.657253024410501596e-01,-3.043668776004724782e-02,7.501343811224969738e-02,-2.027906992606371417e-01,-1.007678660669388132e-01,1.042824621667169382e-01,-8.022924127971432784e-02,1.101877445389037452e-01,2.313901177788034447e-01,2.904053546445816703e-01,1.271205613884104045e-02,-7.641972940636453104e-02,1.282221187902752857e-01,-1.119504269727211176e-01,-7.595495027038218216e-02,5.114648767173063382e-02,-1.590672715153136907e-01,-1.119581810945672745e-01,3.673322869688814413e-02,-7.394254750294246281e-02,1.119985589765543077e-01,2.169959814215992322e-01,1.112517535184552875e-01,9.740996103393773087e-02,-1.423004435834665238e-01,1.399872260674510371e-01,1.665936320936535209e-01,-1.007471841840975324e-01,-2.908011791499217624e-01,4.877632930348931861e-01,-2.707026658885000048e-01,7.648334069537984781e-02,-1.598761404009195197e-01,9.202431340009527283e-02,2.877784027649593623e-02,2.120661361074836077e-02,3.862667423919037279e-01,-1.131961528383333172e-02,-8.417324725206058733e-02,-1.318514595200099837e-01,1.365972117715266998e-01,1.391591292551875303e-01,3.118217042096632120e-03,-9.833103864830326779e-02,-3.192508884781553591e-01,-1.654583060146120055e-01,-4.975041957210932925e-02,5.818828212092813645e-02,-5.980784459636295097e-02,-1.668003249881558625e-01,3.327279994965597898e-01,4.796319712348517950e-02,-9.892237585197323491e-02,2.242472164812747693e-01,6.635232553963772706e-02,-6.801290495135302316e-02,1.769778723091286476e-01,3.545019371648064355e-01,-1.332869960021299816e-01,-8.792428178850912601e-02,1.005397663693900767e-01,5.004659075996982856e-03,3.147087973126820870e-01,5.632648505651202675e-02,9.704149050600680004e-02,-2.733920178943343715e-01,-1.559217751340677138e-01,-1.610759231439418127e-01,-6.922231416668864212e-02,-2.664293015058800118e-01,-2.230085988134810349e-01,-2.372512207255691730e-01,-2.316672282626320301e-01,3.180533924190154238e-01,-1.329025526370612720e-02,5.795389685855103362e-02,-1.040907444398057463e-01,1.953383138439230074e-02,3.136592812060280677e-02,-1.414675767788224348e-01,9.138062709022502783e-02,-8.601338345418751974e-02,-2.547320649007978055e-02,-1.990472960245950607e-01,-3.388836580267749476e-01,-3.833963863823833945e-02,1.980763500738989547e-01,1.177818479008096442e-01,1.899474944443500443e-02,-8.249830235180792559e-02,-3.251986487214807986e-01,8.852699171254783950e-02,9.598297620455345514e-03,3.035606294779245595e-01,-1.892967727489325291e-02,2.820083079782937513e-02,2.294363226944907130e-01,-1.575899305205847867e-01,1.530453086875676050e-01,1.123731991773359862e-01,-2.732387438128484614e-01,6.921824766576341326e-02,2.796757973329738745e-01,-4.578109802327237111e-03,1.949930599385208130e-01,2.495938644710478937e-01,3.387251819573854072e-02,-3.990447954319139012e-01,-6.490790680065502971e-02,5.728191738872905059e-02,2.552143576561385352e-01,-1.591485202670009369e-02,4.485745652669674288e-01,7.336639945954276376e-02,1.302162685052990765e-01,-6.105009035882930091e-02,-1.644543602097789936e-01,1.451325325813411227e-01,-5.677853852758648484e-02,1.060357015974680156e-01,8.744903387481815782e-02,-1.357501802646093603e-01,-7.707771153399090025e-02,3.972164813691929364e-02,1.782823527681489384e-01,5.367096964063727133e-02,-3.079732666787327044e-01,1.155159275575434463e-01,-2.040418741402503511e-01,8.203622879562491588e-02,-3.884693440922795116e-01,-6.434669115145115470e-02,-5.483489394494715785e-02,-6.942462306570648667e-02,-3.148069752639372498e-01,1.877434081970164315e-01,1.534297523228157489e-01,6.577920863223087750e-03,5.835305860751086038e-02,7.041034141914562228e-02,-2.094271610299474062e-01,2.165739103619118422e-01,-2.853567484701887147e-01,1.404565444262724505e-01,1.396455185673994015e-01,1.018147603705166354e-01,-1.370142873436787367e-01,1.925065268618672554e-01,2.057442234082735438e-02,-1.604019992161691277e-01,1.863467718693189723e-01,9.240115559081944763e-02,-3.624379311392719044e-02,2.741866638746736640e-01,-8.981026056564568594e-02,8.487081536569281159e-02,-2.206904536207451861e-01,-1.511617468685031440e-01,-8.286745312948599895e-02,-1.602238765041369634e-03,4.278685425731978270e-02,1.059433357832767486e-01,-2.451477665178071474e-01,-2.628113431519528143e-01,-6.567493495950046944e-02,3.853966753384525101e-01,-1.784399636582520432e-01,1.329077884199943438e-01,6.156040495174799898e-02,2.886443359426869582e-01,-3.152424714611555268e-01,-1.585459963241166170e-01,1.168209876445345380e-01,-6.088367956744483028e-02,-1.331989428194198938e-02,-1.993143122311044346e-01,-3.609350215551736518e-01,-2.644783351085141510e-01,2.499993844835393941e-01,3.774867843796391731e-01,-1.434333139699061066e-01,-1.303930585696318201e-01,1.651234010403556177e-02,-3.113020038016631186e-01,1.805655519145186461e-01,-2.606093992816101157e-02,2.421349069010062804e-01,-5.336524578675236330e-02,-1.862944419419611600e-02,1.252243324029578830e-01,-2.639189489385473930e-01,-7.716364734678152378e-03,2.097249611421469206e-01,1.469587859352117221e-01,-7.775982819937320156e-02,-1.423381658771025703e-02,-1.985212220736646827e-01,2.208653018454760988e-02,-2.852869197340586818e-02,2.906307116440954852e-01,1.428103600145748386e-01,5.580029336268780421e-02,6.582628551705178854e-02,6.655835937309258210e-02,2.952593638811780441e-02,9.729692871855806502e-02,3.177898901996559222e-02,2.507996237079522239e-01,2.824853391180858972e-02,2.535705871803690115e-01,1.574713298633284297e-01,1.247585385256935915e-02,-1.377964260849879607e-01,9.492779494070595347e-02,1.080690332656770725e-01,-3.737475429325735621e-01,3.037362934021780453e-02,-5.249401940832831848e-02,4.928518152409869018e-04,-3.400713341248907673e-01,3.860517076224088268e-02,-2.471183085298718218e-01,-8.618230536234587624e-02,2.713576650346101182e-01,-8.211216869789524087e-02,-2.629623438987412770e-02,-1.601958839723745254e-01,2.525364552779391092e-01,-2.196742171009728392e-02,1.681908539334294184e-01,3.046839031786340857e-01,2.984465350530866867e-02,-6.071152666545012039e-02,5.582595105007609471e-02,2.356325770180739756e-02,-1.101473347975316791e-01,-1.897178919956916954e-01,-3.589991406418892028e-01,3.527359120965637557e-02,-2.512711554272717973e-01,-2.059860179096638377e-01,2.199319753090519039e-02,4.562353316501250311e-01,-3.060201291036562105e-02,-3.545163949027662492e-02,3.866218467110899004e-02,2.294993860366385807e-01,2.435016682129661214e-01,-2.661805445175338125e-01,1.205889788656377554e-01,-9.362783788719125644e-02,4.879345616673450015e-02,-1.604198547676368575e-02,-3.013558404759296705e-01,1.067383886930771270e-01,7.429656475662697879e-02,-2.018705918575649239e-01,8.901675502734265888e-02,-1.812253903291841800e-02,8.053268040265512684e-02,8.963360955282426157e-03,-1.960095244032180606e-01,2.057257289332710751e-02,8.187709345921800885e-02,3.375403166946017164e-01,-2.295563606734080664e-01,-2.616462953328139163e-01,-1.281126905398179971e-01,8.673538103630742957e-02,-6.507898593179292646e-02,1.626456395829898316e-01,-1.551635995675434143e-01,-3.449291937813193237e-02,3.697734819095231662e-02,7.285602718130768096e-02,-5.603721216965637519e-02,1.285912400125307775e-01,-4.515503866314810738e-02,-4.621911188450255475e-02,-9.930660693989078192e-02,-6.690570960774578670e-03,-1.494276704432435654e-01,-2.384968015076810791e-02,-2.063082055238529833e-01,-2.369200604683511235e-01,1.319090296736313284e-01,1.143559104391564558e-02,3.513424669615424767e-01,-3.454193947001128473e-01,-3.951855909419063617e-01,1.260090898370004042e-01,-1.608009260967463716e-01,-1.306516037170125932e-01,2.456680283265592346e-01,-7.177378076270273834e-03,-8.634974563952430016e-02,1.386777123151028412e-01,1.586333097055291630e-01,-1.090480789155934410e-01,2.578748258499744539e-01,3.135154512172095842e-01,1.485034845289148475e-01,3.380240533785979773e-01,-1.204386362908275582e-01,1.395153783204367871e-02,1.837926502043386312e-01,-2.698434551498642489e-02,6.485509720043243498e-02,-1.305015606194367128e-01,2.552647096664072413e-01,1.470485845117606993e-01,-1.403241408879857266e-01,-8.665219707533689669e-03,-3.326861248761080886e-02,-3.023443542806834583e-01,6.602291574474269953e-02,-2.758550578338035408e-01,1.322967102155746533e-01,-1.307099497938216115e-01,-2.684079371200087105e-01,2.159431845816748019e-01,-1.912313086161994066e-02,2.052054985134705439e-02,1.667976822536356707e-01,1.388546251515667684e-01,-7.213145936599099639e-02,-1.055900513571611660e-01,1.441857027656953394e-01,-2.289308875850737113e-01,-1.947909267724047544e-02,-2.928071432216174386e-01,2.572446143387475126e-01,2.175715334995793337e-01,-2.131719749886725468e-01]).reshape(32,32)
#extract watermark from watermarked image
watermarked_image_dummy = watermarked_image.copy()
watermark_extracted_wm = extraction(original_image, watermarked_image, watermarked_image_dummy)
#starting extraction
blocks_with_watermark = []
divisions = original_image.shape[0] / block_size
watermark_extracted = np.float64(np.zeros(watermark_size))
blank_image = np.float64(np.zeros((512, 512)))
# compute difference between original and watermarked image
difference = (watermarked_image - original_image)
# fill blocks in differece where the difference is bigger o less than 0
for i in range(0, original_image.shape[1], block_size):
for j in range(0, original_image.shape[0], block_size):
block_tmp = {'locations': (i, j)}
if np.average(difference[i:i + block_size, j:j + block_size]) > 0:
blank_image[i:i + block_size, j:j + block_size] = 1
blocks_with_watermark.append(block_tmp)
else:
blank_image[i:i + block_size, j:j + block_size] = 0
attacked_image -= np.uint8(blank_image)
shape_LL_tmp = np.floor(original_image.shape[0] / (2*divisions))
shape_LL_tmp = np.uint8(shape_LL_tmp)
watermark_extracted = np.zeros(1024).reshape(32, 32)
Swm = np.zeros(32)
# print(watermark_extracted)
for i in range(len(blocks_with_watermark)):
x = np.uint16(blocks_with_watermark[i]['locations'][0])
y = np.uint16(blocks_with_watermark[i]['locations'][1])
# get the block from the attacked image
block = attacked_image[x:x + block_size, y:y + block_size]
# compute the LL of the block
Coefficients = pywt.wavedec2(block, wavelet='haar', level=1)
LL_tmp = Coefficients[0]
# SVD
Uc, Sc, Vc = np.linalg.svd(LL_tmp)
# get the block from the original image
block_ori = original_image[x:x + block_size, y:y + block_size]
# compute the LL of the block
Coefficients_ori = pywt.wavedec2(block_ori, wavelet='haar', level=1)
LL_ori = Coefficients_ori[0]
# SVD
Uc_ori, Sc_ori, Vc_ori = np.linalg.svd(LL_ori)
Sdiff = Sc - Sc_ori
Swm[(i * shape_LL_tmp) % watermark_extracted.shape[0]: (shape_LL_tmp + (i * shape_LL_tmp) % watermark_extracted.shape[0])] += abs(Sdiff / alpha)
Swm /= watermark_extracted.shape[0]
watermark_extracted = (Uwm).dot(np.diag(Swm)).dot(Vwm)
watermark_extracted = watermark_extracted.reshape(1024)
watermark_extracted /= np.max(watermark_extracted)
#end of extraction
sim = similarity(watermark_extracted_wm, watermark_extracted)
if sim > T:
watermark_status = 1
else:
watermark_status = 0
output1 = watermark_status
output2 = wpsnr(watermarked_image, attacked_image)
# end time
#end = time.time()
#print('[DETECTION] Time: %.2fs' % (end - start))
return output1, output2