@aztec/accounts 3.0.0-nightly.20251212 → 3.0.0-nightly.20251213
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/EcdsaKAccount.json +32 -32
- package/artifacts/EcdsaRAccount.json +32 -32
- package/artifacts/SchnorrAccount.json +32 -32
- package/artifacts/SchnorrSingleKeyAccount.json +24 -24
- package/artifacts/SimulatedAccount.json +21 -21
- package/dest/schnorr/lazy.d.ts +1 -1
- package/dest/schnorr/lazy.d.ts.map +1 -1
- package/dest/schnorr/lazy.js +6 -3
- package/dest/single_key/lazy.d.ts +1 -1
- package/dest/single_key/lazy.d.ts.map +1 -1
- package/dest/single_key/lazy.js +6 -3
- package/package.json +6 -6
- package/src/schnorr/lazy.ts +4 -3
- package/src/single_key/lazy.ts +4 -3
|
@@ -1894,7 +1894,7 @@
|
|
|
1894
1894
|
}
|
|
1895
1895
|
},
|
|
1896
1896
|
"bytecode": "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0zOmvaZnTftMz5meN71g2m960fSS6WXTK6ZXTa+ZXje9YXrT9JbpbdM7pndN75neN31gOmD60PSR6WPTJ6ZPTZ+ZDpo+N31h+tL0lelr0zemb014T3xn+t70g+lH02HTT6afTUdMv5h+Nf1m+t30h+lP018mHNRNMGUxJZqymrKZsptymHKacplym04y5THlNeUznWzKbzrFVMB0qqmg6TRTIVNhUxFTUVMxU3FTCVNJUynT6aYk0xmmM01nmUqbzjaVMZ1jKmsqZzrXdJ6pvOl80wWmC00VTBVNF5kqmS42XWK61HSZ6XLTFaYrTVeZKpuuNlUxVTVVM11jqm6qYappqmWqbbrWVMdU11TPVN/UwHSdqaHpelMj0w2mxqYmpqamZqbmphamlqZWptamG01tTG1N7UztTR1MHU2dTJ1NXUzJpq6mbqbuph6mnqZept6mPqa+pn6m/qYBphTTQNMg02DTENNQ0zDTcNMI00jTKNNo0xjTWNM403jTTaYJpommSaabTZNNt5immKaappluNU03zTDNNM0yzTbNMc01zTPNNy0wLTQtMi023WZaYrrdtNR0h2mZablphelO00rTXaZVprtNq033mNaY7jWtNd1nWme637Te9IBpg+lB00OmjaaHTZtMj5g2m7aYtpoeNW0zPWbabnrctMP0hGmn6UnTLtNTpt2mp017TM+Y9pqeNe0zPWd63vSCab/pRdNLppdNr5heNb1met30hulN01umt03vmN41vWd63/SB6YDpQ9NHpo9Nn5g+NX1mOmj63PSF6UvTV6avTd+YvjUdMn1n+t70g+lH02HTT6afTUdMv5h+Nf1m+t30h+lP018mfOglmLKYEk1ZTdlM2U05TDlNuUy5TSeZ8pjymvKZTjblN51iKmA61VTQdJqpkKmwqYipqKmYqbiphKmkqZTpdFyLwHSG6UzTWabSprNNZUznmMqaypnONZ1nKm8633SB6UJTBVNF00WmSqaLTZeYLjVdZrrcdIXpStNVpsqmq01VTFVN1UzXmKqbaphqmmqZapuuNdUx1TXVM9U3NTBdZ2pout7UyHSDqbGpiampqZmpuamFqaWplam16UZTG1NbUztTe1MHU0dTJ1NnUxdTsqmrqZupu6mHqaepl6m3qY+pr6mfqb9pgCnFNNA0yDTYNMQ01DTMNNw0wjTSNMo02jTG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",
|
|
1897
|
-
"debug_symbols": "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yTZLtlmyzZJtlmyzZJsl2yzZZsk2S7ZZss2SbZZss2SbJdss2WbJNku2WbLNkm2WbLNkmyXbLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLAmzJMySMEvCLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLEmzJM2SNEvSLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLCmzpMySMkvKLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmzpM2SNkvaLGmz5HPR8P2DwZ+bhp/TYtpM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gHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeBsTDgHgYEA8D4mFAPAyIhwHxMCAeJsTDhHiYEA8T4mFCPEyIhwnxMCEeJsTDhHiYEA8T4mFCPEyIhwnxMCEeJsTDhHiYEA8T4mFCPEyIhwnxMCEeJsTDhHiYEA8T4mFCPEyIhwnxMCEeJsTDhHiYEA8T4mFCPEyIhwnxMCEeJsTDhHiYEA8T4mFCPEyIhwnxMCEeJsTDhHiYEA8T4mFCPEyIhwnxMCEeJsTDhHiYEA8T4mFCPEyIhwnxMCEeJsTDhHiYEA8T4mFCPEyIhwnxMCEeJsTDhHiYEA8T4mFCPEyIhwnxMCEeJsTDhHiYEA8T4mFCPEyIhwnxMCEeJsTDhHiYEA8T4mFCPEyIhwnxMCEeJsTDhHiYEA8T4mEufA7x8G3aTMGUTMXUTIfpYUIDn0M8TIiHCfEwIR4mxMOEeJgQDxPiYUI8TIiHCfEwIR4mxMOEeJgQDxPiYUI8TIiHCfEwIR4mxMOEeJgQDxPiYUI8TIiHCfEwIR4mxMOEeJgQDxPiYUI8TIiHCfEwIR4mxMOEeJgQDxPiYUI8TIiHCfEwIR4mxMOEeJgQDxPiYUI8TIiHCfEwIR4m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66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0Ljqti07rotO66LQuOq2LTuui07rotC46rYtO66LTuui0LoiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOCeFgQDwviYUE8LIiHBfGwIB4WxMOC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",
|
|
1897
|
+
"debug_symbols": "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XXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF53WRad10WlddFoXndZFp3XRaV10Whed1kWnddFpXXRaF8TDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyIhwXxsCAeFsTDgnhYEA8L4mFBPCyI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WRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZaEWRJmSZglYZakWZJmSZolaZakWZJmSZolaZakWZJmSZolaZakWZJmSZolaZakWZJmSZolaZakWZJmSZolaZakWZJmSZolaZakWZJmSZolMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZMiRbhmTLkGwZki1DsmVItgzJliHZn7ue+TE102F6mO5MQ1ToHqJC9xAV+nPXsz+m5GvF1EyH6WG6Mx00DhoHjY/dkM8JjYPGQeOgcdA4aDxoPGg8aDxoPGg8aDxoPGg8aDxoXDQuGheNi8ZF46Jx0bhoXDSGnNJnyCn9uev5OW2mYEqmYmqmw/QwobHQWGgsNBYaC42FxkJjobHQWGhsNDYaG42NxkZjo7HR2Gjseex+7np+TIHGh//X+hi347tH1uf/8O6RdT7GcmzH4/g4XsYP/3+NH2rPx7gdw/FD7fnP3//u//nDX//0h3/68x//9+/+23+8/fF//vtf/vnf/vQvf/n647/9v/86f/NPf/3Tn//8p//1j//613/55z/+j3//6x//8c//8s/vf/e71/t/3r9l/3317/f6h7f/ef2fX9rvX3q7Bv+91+/P+offf/71ub9/8v2vw39xfr/3+5eSL+31+93vXyq+lOv3+fGl/nup//zPf/jP/w8=",
|
|
1898
1898
|
"verification_key": "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"
|
|
1899
1899
|
},
|
|
1900
1900
|
{
|
|
@@ -2053,7 +2053,7 @@
|
|
|
2053
2053
|
}
|
|
2054
2054
|
},
|
|
2055
2055
|
"bytecode": "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",
|
|
2056
|
-
"debug_symbols": "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"
|
|
2056
|
+
"debug_symbols": "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"
|
|
2057
2057
|
},
|
|
2058
2058
|
{
|
|
2059
2059
|
"name": "verify_private_authwit",
|
|
@@ -3854,7 +3854,7 @@
|
|
|
3854
3854
|
}
|
|
3855
3855
|
},
|
|
3856
3856
|
"bytecode": "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",
|
|
3857
|
-
"debug_symbols": "rZfdbqswDMffhWsuYjvOR1/lqJpYx6ZKiFasnXQ09d2PAwnQSYl66G76b/j44diOE39Xb+3r9ePl2L+fPqvdn+/qdTh23fHjpTsdmsvx1MvV70qFH9DVjm51BePAVDuUAYYB2WoHdUVO5CYX07svl6FtwwMrmHzi3Axtf6l2/bXr6uqr6a7jQ5/nph/10gxyV9VV27+
|
|
3857
|
+
"debug_symbols": "rZfdbqswDMffhWsuYjvOR1/lqJpYx6ZKiFasnXQ09d2PAwnQSYl66G76b/j44diOE39Xb+3r9ePl2L+fPqvdn+/qdTh23fHjpTsdmsvx1MvV70qFH9DVjm51BePAVDuUAYYB2WoHdUVO5CYX07svl6FtwwMrmHzi3Axtf6l2/bXr6uqr6a7jQ5/nph/10gxyV9VV27+JCvD92LXh361e3lb5V9lifNmAnV8Hi48C0BuKBFKAK8TDNoACiAhQxiwI5x5FOLY6Ipyh1URA3yF0AeGTJzzpLTagBhcJqA1lbTAlhFoQlmeE9XcEW5iFopQNTpnFEUT3CJdHWGuSEdYBZxE+jyBOvtSwxBP5PiWg5Ex0PnmCFOYZUMgrMMkMAMfb7LBgkh2WVJ5BBTusTUsErC/MpZCdXnPKTnabCKAQl1VW8EYhP7XkQwqs49Vi9487w6sUWPCYd0ZxoflkBfK6XvxYaOBL3uA5wcQdfoms8f8BsVbNEFlvOUipABOmysXE+cmE4GWX28oOUo44Z0cZ4lxKEJKSbDZBAAhmCHi7wSNaUiElGfp8LS/tKMYvK46Xak5M91MpVFI2lBKEzSrX6VEjLEMCiA35eaAvlR9l51y3ANk0JfX0rkLw/LZC+Py+QvTsxkL6+Y2F+PmNpRxZMGqOLCJkI1vIUZrTXGuz5fTGzHOSs4dsjpL/hepThji3nCM94TaIZ1qVsM2WPFQHi5BfqIPM83lSYkNb6qBDNx+LSf1A7GXYHI7Dff8CLJ+rx6YFJPPARnVR/aQofQ7KlxGiSneDMmOkqDqsL1GOGpog4aKN6qL66XlS05ggauDJSYSER+IGEp6W7xBHNaEE1GM/pWNDNaqfVKuwe4hCVIxKUQNP7NI81U5totqobrJLB574kFVUiIpR43xZR+WokcfBvpCHX81wbF67Njg5xOHaH5LPZXj5e053Uld5Hk6H9u06tCE+q9ZSfv/IGQ1hPzeY4yVfo97PbaZckXMF6X093Rafad7fQtT/AQ==",
|
|
3858
3858
|
"verification_key": "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"
|
|
3859
3859
|
},
|
|
3860
3860
|
{
|
|
@@ -4106,7 +4106,7 @@
|
|
|
4106
4106
|
}
|
|
4107
4107
|
},
|
|
4108
4108
|
"bytecode": "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",
|
|
4109
|
-
"debug_symbols": "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"
|
|
4109
|
+
"debug_symbols": "tb3druy6daZ9Lz7OgcjxR+ZWGo3ASbsbBgw7cJwP+BDk3rs4JPKptXYXp2bV2ifej+09x6M/vpKoIdV//eF//elf//P//Muf//q///Yff/jn//Fff/jXv//5L3/58//5l7/87d/++I8//+2vj//1v/5wjP8opf/hn+Wf/lDq47/a+Ge5/lmvf8r1T73+adc//fpnXP9s1z/7+U+56slVT656ctWTq55c9eSqJ1c9uerJVU+venrV06ueXvX0qqdXPb3q6VVPr3p61bOrnl317KpnVz276tlVz656dtWzq55d9fyq51c9v+r5Vc+ven7V86ueX/X8qudXvbjqxVUvrnpx1YurXlz14qoXV7246sVVr1312qNejH/W659y/VOvfz7qlWOAT4gJj5JlHCvtUbOMf7kfE8qEOkEm6IRRuQ3wCTGhTegn1OOYUCbUCTJBJ9iEUbkPiAltwqj82AC1HBPKhEflmiATdIJN8AkxoU3oF4whdEKZMCvXWbnOymMc1RjgE2JCm9AvGIPphDKhTpAJOmFWlllZZmWZlWVW1llZZ2WdlXVW1llZZ2WdlXVW1llZZ2WblccIq2MXjCF2gkzQCTbBJ8SENqFfMIbaCbOyz8o+K/us7LOyz8o+K/us7LNyzMoxK8esHLNyzMoxK8esHLNyzMoxK7dZuc3KbVZus3Kbldus3GblNiu3WbnNyn1W7rNyn5X7rNxn5T4r91m5z8p9Vu5XZTmOCWVCnSATdIJN8AkxoU2YlccYlDqgTKgTZIJOsAk+ISa0Cf2COivXWbnOymMMig3QCTbhGt1SY0KbcI1ukWNCmVAnyASdYBNmZZmVZVYeY1D8AWMMnlAm1AkyQSfYBJ8QE9qEWdlmZZuVxxiUsQvGGDxBL/ArD2WMJj0GPFw6Nt0YOyfEhDahXzDGzgllQp0gE3TCrByzcszKMSvHrNxm5TYrt1m5zcptVm6zcpuV26zcZuU2K/dZuc/KfVbus3Kflfus3GflPiv3WblflfU4JpQJdYJM0Ak2wSfEhDZhVi6zcpmVy6xcZuUyK5dZuczKZVYeY0dtQL9gjJ0TyoQ6QSaMyj7AJviEmNAm9AvG2DmhTKgTZMKsPMaOxgCfMCq3AW1Cv2CMnRPKhDpBJoxLpTLAJviEcbUkA9qEfkFeII7lySvEhDpBJugEmzAqj2XO68SENqFfkJeKCWVCnSATdIJNmJXzinGsV14yJvQL8iJRB4w6fcDjr3ys6Rhfnv9Xm9AvGOPrhDKhTnjU8bHfx/g6wSb4hJjQJvQLxvg6oUyoE2blMb58bLoxvk4YlcfCj/F1QpvQT7Axvk4oE8YF7TFAJugEm+ATYkKb0C8Y4+uEMmFWHuMrygCdMCrXAT4hJrQJo/JjvWyMrxPKhDpBJuiEUTkG+ISY0Cb0C8b4OqFMqBNkgk6Ylcf4ijYgJrQJo/LjALAxvk4oE3zC+Kux5cdIaWNNx0hpMqBOkAk6wSb4hJjQJvQLxkg5YVb2Wdln5TFA2lieMUBOiAltQr9gnKTaWMFxkjqhTpAJOsEmjMpjTccgOqFN6BeMQXRCmVAnyASdYBNm5TGI+jjGxiA6oV8wBlEfB9sYRCfUCY/KfWyEMYj6WMExiPo4fsYgOiEmtAn9BB+D6IRRpw/QCTbBJ8SEdsE4wstRB/VJ4xgvhwwat2mHDdJFtsgXxaI2SfJ/G0smbVGfpMeisqgukkW6yBb5ouXQ5dDlsOWw5bDlsKwXg/Jv26Dxt+M+2cdRe1FZNP62lEGySBfZIl8UkyLrja0b+bdj60b+7ViWsEW+KP92bMlxoF7UJ7VjUVlUF6VjrFvTRekYa5mzAifFpJwFGDfZnjf9daxv3vWflH+rg8bf1rFGeeN/UlvUL4q89691UFlUF6VDBukiW+SrSixqi5YjZwFOKtd2jlIXySJdZIt8Ub/2TNR67ZnI437shai6yBb5tZ2jxqK2aO6jkGNRWVSv/REii/TaCyG2yBf1a89Ejo+xP0JlkV57JnJ85NbQtf10bT9d2y/HR+4FW/vI1j7K8ZF7wdY+srWPbDlsOWw5bDls7aM8isetUuRRfFKflEfxmGCIPIpPqotkkS6yRb4oFrVFwyFjCfLIPqksqotkkS4ajnFPGXm0nxSL2qJ0PI6Ilkf7SWVROmKQLNJF6WiDfFEsaovS8dj7LY/scUvX8sg+SRfZolFv3B20cRnzmFsdNOqpDuqTMuVPKovSYYNkkS6yRekY65HHvY7ly+PexhLkcW9jCfK4t/EXedyfJIt0kS3yRbFoOMaVecuxkJTnj3Ep3fL8cVJdJIt0kS3yRbGoLeqTbDlsOWw5bDlsOWw5bDlsOWw5bDl8OXw58jwz7gVanmdO0kW2yBfFojYpst7YM1EXySJdZIt8USxqi/qkHLUnLUdbjrYcbTnacrTlaMvRlqMtR1+Ovhx9Ofpy9OXoy9GXoy9HX44+Hf04FpVFdZEs0kW2yBfForZoOcpylOUoy1GWoyxHWY6yHGU5ynKU5ajLUZejLkddjrocdTnqctTlqMtRl0OWQ5ZDlkOWQ5ZDlkOWQ5ZDlkOWQ5dDl0OXQ5dDl0OXQ5dDl0OXQ5fDlsOWw5bDlsOWw5bDlsOWw5bDlsOXw5fDl8OXw5fDl8OXw5fDl8OXI5ZjjfO+xnlf47yvcd7XOO9rnPc1zvsa532N877GeV/jvK9x3tc472uc9xznY6qi5zg/KRb1K5v6ObqTyqK6SBbpIlvki2JRWzQd5TgOsIAVFFBBAx0MsIHYCraCrWAr2Aq2gq1gK9gKtoKtYqvYKraKrWKr2Cq2iq1iq9gEm2ATbIJNsAk2wSbYBJtgU2yKTbEpNsWm2BSbYlNsis2wGTbDZtgMm2EzbIbNsBk2x+bYHJtjc2yOzbE5Nsfm2AJbYAtsgS2wBbbAFtgCW2Br2Bq2hq1ha9gatoatYWvYGraOrWPr2Dq2ji1zZEyLPtDBAIdtTGE+sE8smSUXDtuY9XxgBQVU0EAH09YTG9gXZpZcWMAKCqiggQ5iK9gKtoqtYqvYKraKrWKr2Cq2iq1iE2yCLbPEW6KAChroYIDDNuZzS7abXJhZcmG2N9TECgqo4Kgbo00ie0yuCpkPF1YwK+SOzXy40MCxvJHHTubDhQ3sCzMfxsRuySaUiRUUMOvmyueYj9ySOeYvLGBu3/yzHPMXKmiggwE2MBs8RjdJdqRMLGAFBVTQQAcDbCC2jq1j69g6to7tbFrJnXU2qeQ+PttUBl6NKicWsIICKmiggwE2EFvBVrAVbAVbwVawFWwFW8FWsFVsFVvFVrFVbBVbxVaxVWwVm2ATbIJNsAk2wSbYBJtgE2yKTbEpNsWm2BSbYlNsik2xGTbDZtgMm2EzbIbNsBk2w+bYHJtjc2yOzbE5Nsfm2BxbYAtsgS2wBbbAFtgCW2ALbA1bw9awNWwNW8PWsDVsDVvD1rF1bB1bx9axdWwdW8dGllSyRMgSIUuELBGyRMgSIUvkzBJJDLCBfeGZJScWsIICKmhg2jwxwAambVwbyZklJxawggIqaKCDATYQm2A7s6QlVlBAB7PCOFHJmQ8njgo9t2/mw4UCKmigg9mOmJsk8+HCvjDz4cK0pTjz4UIB05bLm/lwoYNp64kN7AszHy4czUzHkTjamY5c3myaO3IfZ9vchQE2cDRIjad2JVuA6pFrkQ10Ry5OttAdacsmugsVNHDYstk0G4ImNrAvzJa6ksubvXTZmpodQbXkns9+upKLkx11JRXZU3dhgA3sC7O37sICDlvNZcgOuwttHUadI+oc8yc2sE/Uc8yfWMAKCqiggQ4G2EBsY8zX8bCmZPvQxArmCkmiggY6GGAD+8JsiL2wgBXEVrFla2zNZu1szLswwAb2hdmgd2EBKyiggtgEm2ATbIJNsWXrbNXE3EMl0UAHA2xgX3heKZxYwAoKiM2wGTbDZtgMm2NzbI7NsTk2x+bYHJtjc2yBLbAFtsAW2AJbYAtsgS2wNWwNW8PWsDVsDVvD1rA1bA1bx9axdWwdW8fG/YV2bB1bx9aXzY4DLGAFBVTQQAcDbCC2gq1gK9gKtoKtYCvYCraCrWCr2Cq2iq1iq9gqtoqtYqvYKjbBJtgEm2ATbIJNsAk2wSbYFJtiU2yKjSwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLjCwxssTIEiNLnCxxssTJEidLnCxxssTJEidLnCxxssTJEidLnCxxssTJEidLnCxxssTJEidLnCxxssTJEidLnCxxssTJEidLnCxxssTJEidLnCxxssTJEidLnCxxssTJEidLnCxxssTJEidLnCxxssTJEidLsh3uMXGT2Bfm6zwXFrCCAipooIMBYjNsjs2xOTbH5tgcm2NzbJklOe/p57xnYt63jNafBxawggIqaKCDaeuJDewL875FjsQCVjBtuWR5C3OhgTl7exYLsIFrTvdszruwgBUUUEEDs64k9onZpFdHy1PJLr2JFRRQQQMdHNtMzroN7AvzvkU0sYAVTFtNVNDA3GZpy9S4sIFr5j/qARawggIqaGCuxfneZl+YdygX5lp4YgUFzLWIRANzm7XEABuYtrHfIu9QLixgBQVU0MBhG41hJbsBJzawL8x8uLCAs+2wnP1/ebt+NQCeGGAD+0I/wAJWcPYaPlBBAx3MnssTG9gXnq22JxawggIqaCB7PtjzjT3f2PONPd/Y840939jzjT3f2PONPd/Y850939nznT3f2fOdPd/Z850939nznT3f157PBsaJBVx7/uxXzD1/NizWEwNs4NrzrRxgASu49vzZzHihgQ6uPX82NF649vzZ0nhhASsooIIG5tYpiX1hjvkLCzj2heZa5Ji/UEEDs2W9JQbYwL7wbI0/sYAVFFDB3Me5FufoPrEvPEf3iQWsoIAKGuggNsNm2BybY3NsefbXfF09z/4XGuhggA1MW658nv0vLGAFBVTQQAcDbCC2TILR9FqyA3JiBYfN8ijJJBjvc5XsgpzoYIAN7AszCS4sYAXTlh8GyCS4MG2e6GCADUzbWPRsipxYwAoKqKCBDg6bH4kNHLbREVayPXJiASso4FB4TXQwwAb2hTmBmY0X2R45sYICKmhg2jwxwAb2hRkVFxawggIqaCC2vDzw80sMDewL8/Ig+x+yZXJiBYctcqufXwDILXl+AyC3zvkVgBMDbGBfeH4N4MSsm6SLbJEvikVtUo7gvADNfsYLcwRfmMddUl0ki3SRLfJFWXEMi2xVrNmCkb2KcpIuskWPv5bzT2JRW9QnjYF4UVmUktxbOQwvzI2Sa5vD8EIHczFbfiQjK/REAcdyStIoMBoZavYjTgywgX1hjixLKovqIlmki2xRuzZize7C3Ig1uwvruL2s2V04cfz9eHBZs7twYi5pLv8YMuOiqGZz4UV90hgvF5VFdVFWzAXJAdByQfKl+9xK+db9SWXR+Ovcsvni/Um6yBb5oliUklTncX9iHvfjMWLNFsGJFczFzAp5mLdckDwZnjhOhpL/ap4Lzw2T58ILBVRwlO25N88PX5wYYFsbPEfSiTmSLsQW2AJbYAtsgS2wBbbA1rA1bA1bw9aw5bnwQp+HeuOgbhzUjYM6T4UXlonl/LRFTayggMPbk2yRL4pFbVGflOPopLKoLpJFy1GWoyxHWY6yHHmOGi981mzBm1jA1HiigCmSRAMdDLCBfWGeoy5MWy5OnqMuFDBtkWigg2PwHLkfxhCd2BfmGM3dkGP0pLpIFukiW5QVR85k850c+b/m9y+OXP78AsaFCho4Dq7xZLtm893EBvaFOUovTFtSynLLu4AKGuhggA3sC+MAC4gtsAW2wBbYxiiVkss7RunEvnCM0okFrOCwlTzs8hR5oYEOpi23U54mL+wL80RZcsnyTHlhBdOWx09X0EAH09YSh23cj9bs05PxhmHNPr2JAiqYx5MkjrrjMW/NPj0ZM4o1+/Tk/FrTGPgXnh+4ObGAaWuJAipoYCZbLm9+5UZycfI7N3l8Z3OeSC5OfusmzxHZnDdRQAUNdDDAtOUy5Kn2xDzD5kkyO/ImCqjgUGguujgYYAP7HJrZkTexgBUUUEEDHcwrr9xm+RGcCws46mr+uxkEFyqYa5F7PoPgwlyL3OoZBBf2hRkE40XHmr13EysooIIGOpi2PM4yCS7sCzMJLixgBWVeSJyfqcoLosqZ+fpU1Yl94fm5qhMLWEEB11Xc+eGqCx0McF2JnR+wOvE8NZ9YwAoKqKCBDs6r+Jr9dDLu92v2002soIAKGuhg7ouW2MC+MMf8hevKN/vpJgqooIEOBtjAvjAH+pgxqOeHrS5UMO9RjkQHAxxrMSYaanbOXZgX1eMF3JqdcxMrmPdDkqiggQ4G2MC+MMe85c7KMX9hBQVU0MDcZrnGyp439ryx5409b+x5Y88be97Y88aeN/a8seedPe/seWfPO3ve2fPOnnf2vLPnnT3v7PkxTCPHcbbATSxgBXNfeGKADcx9kYueZ94LC5g3VHnA5Jn3wrHNPI+HPPNe6GDeueUy5Jn3wj4x+94mFrCCAipooIMBNhBbwVawFWx55h1TNjV72WRMotTsZZMxXVKzl21iASuYy9sTFTTQwQCHbUyM1OxluzBH4YUFrKCAChroYIDYBJtiU2w5CsekT81PaU1U0EAHA0ybJPaFOTYvdDD/hdwX5x3vibk4R2IFBczFyZ2Vp9ALHczFaYkNTFvugDyFXjhsOTWRTWmS56xsSpO83cymtIk5GZB7Pi+mLwywgX1hXkxfWMAKpi0XMi+m89ydTWmSp9tsSpO8N832M8mbsWw/m1jACgqooIFZbGz17C6bWMAKCqiggVls7IDsApO838susIkBNjD/bKx8doFNLGAFBVTQQAcDbCA2wSbYBJtgE2yCTbAJNsEm2BSbYlNsik2xKTbFptgUm2IzbIbNsBk2w2bYDJthM2yGzbE5Nsfm2BybY3Nsjs2xObbAFtgCW2ALbIEtsAW2wBbYGraGrWFr2Bq2hq1ha9gatoatY+vYOraOrWPr2Dq2jq1j68vmxwEWsIICKmiggwE2EFvBVrAVbAVbwVawFWwFW8FGljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJn1HRExU00MEAG9gXnlFxYgEriK1ha9gatoatYWvYOraOrWPr2Dq2jq1j69g6tr5scRxgASsooIIGOhhgA7EVbAVbwVawFWwFW8FWsBVsBVvFVrFVbBVbxVaxVWwVW8VWsQk2wSbYBJtgE2yCTbAJNsGm2BSbYlNsik2xKTbFptgUm2EzbIbNsBk2w2bYDJthM2yOzbE5Nsfm2BybY3Nsjs2xBbbAFtjIkiBLgiwJsiTIkiBLgiwJsiTIkiBLgiwJsiTIkiBLgiwJsiTIkiBLgiwJsiTIkiBLgiwJsiTIkmzy0nzkkE1emvO02eSl40uaNdu5dPQj1ey1knxAl71WEw18KHS0XT0wwAb2hfnx6QsLWEEBFTQQm2ATbJr/riU6GAstbbnyJqCCWSFXfhz2mk8fslNqYgP7wnHYTyxgBQVU0EBsjs2xObbAFtgCW2ALbIEtsAW2wBbYGraGrWFr2M7Pv+cRdX4A/kQHA2xgX3h+Cv7EAlZQQGwdW1+2fn7iXRLzf9XEXAZPbGBfeH7a/cQCVlBABQ10EFvBVrBVbBVbxVaxVWwVW8VWsVVsFZtgE2yCTbAJNsEm2ASbYBNsik2xKTbFpthyHOezumxumhhgA/tCO8ACVlBABbEZNsN2jvmW2BeeY/7ErNsTR4V8Xphff9N8Xpj9UhP7whzHFxawggIqaKCD2AJbYMtxnM8s81twEysooIIGOhhgA/vCjq1j69g6thzH+Qg1W60mOhhgA/uFkg1Ymj8hkr1Wmr+xkb1Wmr+pkb1WExvYF+aYv7CAFRRQQQOxFWwFW4758RhX8ttvEwtYQQEVHHXHc1PJpivN37rIrquJFRwVxsNSye+5TTTQwQAb2BfmOL6wgBXEpthyHGvulhzHFwaYtkjsC3Mca65xjmPNzZfj+MJhs9wOOY4vNHDYLJchx/GFw2Z5wOQ4tlyGHMeWB0yeuy3Fee6+UEAFDXQwwAb2hTnmL8QW2AJbYAtsgS2HtOUmycE7HgpJtmip50GQg/dCB8dCem6SHLwX9oU5eC8sYNbNzZcD0nPz5YD03Hw5IBPzY2sTC1hBARU00MG0RWID+8IcvKNbVrLDa2IFBUxbTzTQwXlpKdnoNbEvzME73qOQ7PSaWEEBFTRw2MaDE8lOr4kN7AtzoF9YwAoKqKCB2ASbYBNsik2xKTbFptgUm2JTbIpNsRk2w2bYDJthM2yGzbAZNsPm2BybY3Nsjs2xOTbH5tgcW2ALbIEtsAW2wBbYAltgC2wNW8PWsDVsDVvD1rA1bA1bw9axdWwdW8fWsXVsHVvH1rH1ZctPu00sYAUFVNBABwNsILaCrWAr2Aq2gq1gK9gKtoIts2Q8mpXsHptYwAo6mH82AqSeoXBi9mBYooOx8BzSkljACgqooIEOBtjAvtCwGTbDZtgMm2EzbIbNsBk2x+bYHJtjc2yOzbE5Nsfm2AJbYAtsgS2wBbbAFtgCW2Br2Bq2hq1ha9gatoatYWvYGraOrWPr2Dq2jq1j69g6to6tL5scB1jACgqooIEOBthAbAVbwVawFWwFW8FWsBVsBVvBVrFVbBVbxVaxVWwVW8VWsVVsgk2wCTbBJtgEm2ATbILtvDwYV2JyZsmJBUxFS1TQwKEYM4aSn2Cb2MChGB0fki1jEwtYQQEVNNDBABuIzbE5Nsfm2BybY3Nsjs2xObbAFtgCW2ALbIEtsAW2wBbYGraGrWFr2Bq2hq1ha9gatoatY+vYOraOrWPr2Dq2jq1j68t2/q7jhQWsoIAKGuhggA3EVrAVbAVbwVawFWwFW8FWsBVsFVvFVrFVbBVbxVaxVWwVW8Um2ASbYBNsgk2wCTbBJtgEm2JTbIpNsSk2xabYFJtiI0uULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyxMgSI0uMLDGyxMgSI0uMLDGyxMgSI0uMLDGyxMgSI0uMLDGyxMgSI0uMLDGyxMgSI0uMLDGyxMgSI0uMLDGyxMgSI0uMLDGyxMgSI0uMLDGyxMgSO7OkJjawLzyzRBMLWMG0eaKCaeuJDgbYwL4ws2S0fkq2700ctp7Lm1nSc8kySy4cttHZKdm+NzHAYeuW2BdmllyYtkisoIAKGuhggA3sCzNLLsQW2AJbYAtsgS2jYrTySPbhac/NN0LBjtxmIxQmOhhgG5ibb4TChSMUJhawgjIwN2pPW26+bqCDAaYtl3eEgo2X6ST78Cxn67IPb+KwjTfoJPvwbDw0luzDmzhs4/mxZB+e1bNYLByj28bDUsmGOhtPJyUb6iY6OBanpm2MWMufK88muYkKGuhggA3sC8eInVhAbIJNsAk2wSbYBJtgU2yKTbEpNsWm2BSbYlNsis2wGTbDZtgMm2EzbIbNsBk2x+bYHJtjc2yOzbE5Nsfm2AJbYAtsgS2wRdrySA0HA2xgX9gOsIBp64kCKujr+M3RfWEDOcBzdF9YwAoKqKCB2Dq2jq0vW7bOTSxgBQVU0EAHA2wgtoKtYCvYCraCrWAr2Aq2go2oyNa5idgqtoqtYqvYKraKrWKr2ASbYBNsgk2wCTbBJtgEm2BTbIpNsSk2xabYFNv5o/MlsYF9YQZIPmDO1rmJFRy2fNacrXMThy0fRmfr3MQA0xaJfWEGyIUFrKCAChroYIDYHFtgC2yBLbAFtsAW2AJbYAtsDVvD1rA1bA1bw9awNWwNW8PWsXVsHVvH1rF1bB1bx9ax9WXL765NLGAFBVTQQAcDbCC2gq1gK9gKtoKtYCvYCraCrWCr2Cq2iq1iq9gqtoqtYqvYKjbBJtgEm2ATbIJNsAk2wSbYFJtiU2yKTbEpNsWm2BSbYjNshs2wGTbDZtgMm2EjSxpZ0siSRpY0sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyJJGljSypJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyZJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypK8s0WNliR4rS/RYWaLHyhI9VpbosbJEj5Uleqws0WNliR4HtoKtYCvYCraCrWAr2Aq2gq1gq9gqtoqtYqvYKraKrWKr2Co2wSbYBJtgE2yCTbAJNsEm2BSbYlNsik2xKTbFptjOLGmJfeGZJScO2/gckGav5UQBh220n2r2Wk50MMBhG52omr2WNhpCNXstbbR+avZaTqyggAoa6GCADewLA1tmyfgUj2av5UQBFTTQwQAb2BdmllyIrWFr2DJLxoeKNFs0JzoYYAP7wsySCwtYQQGxdWyZJZqHRmbJhQ3sE7Odc2IBKyigggY6mLaW2MC+MFPjwlFhfCdHs0XTRnuvZovmxAb2hZkP4zs5mi2aEysooIIGOhhgA/tCwSbYBJtgE2yCLfNhNClrtmhOTJsl9oWZDxemLTdq5sOFAipooIMBNrAvzHy4EJthM2yGzbAZthz+ljs2B/poXdbstTTPfZwD/UIHAxwL6bnNcqCfmAP9wgJWcNg8lyEH+oUGOhhgA9OWi54D/cICVlBABQ10MMAGYsuB7rmhcqBfWMFhizzsc6BfOGzj4y2avZYThy3y2MmBfuGwjVYezV7LiQWsoIAKGuhggA3EVrAVbAVbwVawFWwFW8FWsBVsFVvFVrFVbBVbxVaxVWwVW8Um2ASbYBNsgk2wCTbBJtgEm2LLUBifKNZs8pwooIJp64kOBtjAvjBD4cICVlBABbEZNsNm2AybY3Nsjs2xZWqMnjLNxk0bj5I1Gzcnjgrj+bFm4+ZEARU00MFYmEkwvkOk2Yx57YDG9s0xf6GDAY41Hk+rNZsxL8wxf2EBOXY6ts6x0zl2OsdO59jpHDvnmB/LIOeYP7GAFZS5DNmMOdHAZRPGvDDmhTEvjHlhzAtjXso6UqUoaKCDsZahNHBtSWHMC2NeGPPCmBfGvDDmhTEvjHk5x3wuQ2VLCltS2JLClswxP76PqNmMOTG3ZNbNMX9hgA3MdRvHejZjTixgBQVU0EAHh230NGj2ZV5o6wDPZkwbnQ6azZgTBVSQQyMH+oXsLGNnGTvLD7CA7CxnZzk7y9lZzs5ydpZzIDoHYnBo5PAf/RqabZcTDRx1e26HHP49lywvDy7sCzMULixgBQVU0MCsm4dGhsKJGQoXFjDr5lpkKFyooIF5JZa7O0Phwgb2idlgObGAFRQwr+1bYoANzLVIzOF/4aOuj44PzVbKiQLqwJJooIMxsCY2sC8cw39iASsooIIGOojtfOqZy3A+9TyxggIqaKCDATawL1Rsik2xKTbFptgUm2JTbIrNsBk2w2bYDJthM2yGzbAZNsfm2BybY3Nsjs2xOTbH5tgCW2ALbIEtsAW2wBbYAltga9gatoatYWvYGraGrWFr2Bq2jq1j69g6to6tY+vYOraOrS+bHQdYwAoKqOBsdFI7HAwwx7El9oXlAHMct8QKCpjjuCca6GCADewLz9Q4sYAVFBBbxVaxVWwVW8Um2ASbYBNsgk2wCTbBJtgEm2JTbIpNsSk2xabYFJtiU2yGzbAZNsNm2AybYTNshs2wOTbH5tgcm2NzbI7NsTk2xxbYAltgC2yBLbAFtsAW2AJbw9awNWwNW8PWsDVsDVvD1rB1bB1bx9axdWwdW8fWsXVsfdmy13JiASsooIIGOhhgA7EVbAVbwVawkSVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOljhZ4mSJkyVOlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBlgRZEmRJkCVBljSypJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyJJGljSypJEljSxpZEkjSxpZkp2dPl6s0ezsnFjBYRvv2Gh2dk4ctvHRHc3OzokBDtv4tKNmZ+eFmSXjLR3Nzs6JFUxbJCqYNk90MMC05QpllpyYWZJ3t9nZOXHY8pY2OzsnKjhsNZc3s+TCABvYF2aWXFjACgqoIDbH5tgcm2MLbIEtsAW2wBbYAltgC2yBrWHL1Ki51TMfau6hzIfxyT3Nbs2JfWHmw4VjeSUPrsyHCwVU0MBhkzxKMh8ubGCfmN2aEwuYNksUUEEDHQywgX1h5sOFBcSW+TBeQdDs1pxoYNpaYoDDlk072a15YeZD9u9kt+bEYctWnuzWnKiggQ4G2MC+MPPhwgJiE2yCTbAJNsEm2ASbYlNsik2xKTbFptgUm2JTbIbNsBk2w2bYDJthM2yGzbBlPmSDT3ZrTqyggGnLQyPz4UIHA2xgX5j5cGEBKyggtsAW2AJbYAtsDVvD1rA1bA1bw9awNWwNW8PWsXVsHVvH1rFlaoxGJ8sOTB9PQCw7MCdmhZ4ooIIGOhhgW5hJMPqjLLsq8yCw7KrMfWzZVTkxwAaONR5dU5ZdlRMLWEFZioptjXk71pi3Y415O9aYt2ONeTvWmLdDylocqaCACrJuOeZHA5VlV+XEYbOzbl+YY/7CAua6eaKAChroYIAN7AtzzFseBDnmL5S1s3KgWx4POdAvdDDAtnaAsbOcneXsLGdn5UC/UEF2lrOznJ3l7CxnZwU7KwpYQQ6NHNKWh2cO6QsbOOp6bocc0p5LlkP6wgoKqKCBDgbYFubg9Tw0cvBeKKCCWTfXIi8ELgywgXnZMXZstkdOLGAFBVTQQAdjYT4sHW+0W37XcmIFBVTQQAcDbGBfWLFVbBVbxVaxVWwVW8VWsVVsgk2wCTbBJtgEm2ATbIJNsCk2xabYFJtiU2yKTbEpNsVm2AybYTNshs2wGTbDZtgMm2NzbI7NsTk2x+bYHJtjy0eo4/mbnb2WFxYwR5YnCqhg2jTRwQBzZOVhf+ZD4pkPJ6atJVZQQAUNdDDABvaF5ycmTsTWsXVsHVvH1rF1bB1bX7az1/LCAlZQQAUNdDDABmIr2Aq2gq1gK9gKtoKtYCvYCraKrWKr2Cq2iq1iq9gqtoqtYhNsgk2wCTbBJtgEm2ATbIJNsSk2xabYFJtiU2yKTbEpNsNm2AybYTNshs2wGTbDZtgcm2NzbI7NsTk2x+bYHJtjC2yBLbAFtsAW2AJbYAtsga1hI0sqWVLJkkqWVLKkkiWVLKlkSSVLKllSyZJKllSypJIllSypZEklSypZUskSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSIUuELBGyRMgSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyRMkSJUuULFGyJNtE3U9U0MBhGw+b7GwTvTDvOnpiX5izHRcO23hqZGeb6IVj3cYjKDvbRC80MG0pziy5cNjG+1mWbaIX5j3OhWP2ILJCzoFcKKCCBjoYYAP7wpzWvBBbx9axdWwdW8fWsXVsfdmyTXRiASsooIIGOhjgsp0NoeP1NjtbP8c7bXa2fo7ufjtbPy8MsIG5vGMPna2fFxawggIO23jXyM7WzwsdHLbx2pGdrZ8X9oU5BXphASsooIIGOohNsAk2xabYFJtiU2yKTbEpNsWm2AybYTNshs2wGTbDZtgMm2FzbI7NsTk2x+bYHJtjc2yOLbAFtsAW2AJbYAtsgS2wBbaGrWFr2Bq2hq1ha9gatoatYevYOraOrWPr2Dq2jq1j69j6sp2tnxcWsIICKmiggwE2EFvBVrAVbAVbwVawFWwFW8FWsFVsFVvFVrFVbBVbxUaWOFniZImTJU6WOFniZMnZ+jleYbSz9fNCBwNsYF94ZsmJBUybJQqoYNok0cEA0xaJfeGZJScKyL9r/LvOv3smwYkVpMKZBD3RQAfHko1X4exs3LywL8wkuLCAFRRQQQMdxBbYMgl6bt9MggsLWEEBFTTQwQAbiK1j69g6to6tY8sk6Hmc5ZjvuWNzzCeeLZoXFjDraqKAChqYZ3RLDLCBfWGO+QsLWEEBFcytc2ID+8Ic3RfmWnhiBQVU0K5PIls2Y04MsIF9YX5Z+8ICVjC3TiQ6GGAD+8Icxxfm8rbErJB1x9iM8TqeZSvlxL5wjM0Yr+NZtlJOrANrooAK2sDc8+M8PzHABvaFfoAFTFseGi6gggY6GODY6pFLdo7j3A7nOD6RrRNZN/d8GOhggA3MtciDoB1gASuYa5G2pqCBw5a3MNk0ObGBw1ZyX4xxPLGAacs9P8ZxlFz5MY4jb2GyaTLydiebJifGxGyPjNFxZ9keObGCAmZdT4x5cJ2NkBf2hTliL6zgGDie4vPH+k4McOxCT1t+AP/E/AD+hQWsoIAKGuhgbtSxzbKjcWIBK5gr3xIVNNDBXIsjsYF9YX7q/sICVlBABQ0cdUdrl7XzlzYTc/CW3L45eC+soIBjLWoWy8F7oYMBNrAvzI/aj0YyO38l+8IKCqiggQ4G2MC+cAzeqLmaY/BOVNDAXIvzzwJsYF94/o5uHsrn7+ieWEEBFTTQwViYw3T0hlr2Lk6soIAKGjjqZudA9i5ObGCfmL2LEws41mL0T9r129knKmigg7Gw5FpoYi6vJSpoYG6HIzHABvaF5y/mnljACgqooIHYKraKrWITbIJNsAm2HMejVdWy83BiA/tCza2Tm1oLWEEBFTTQwQDTljsgT80n5ui+sIBp64kCKmigr511ju4TG9gX5qn5wgJWkOPBOR7yJHxuyTGOJ/aF4xI7xge5LXsMY/xmtGWP4UQBFRxrIZLoYIANTFvuoTw1S26oPDVfWEEBFTTQwQAb2Bd2bDnmM5Wzx3CigAoa6GCADewXevYjxmid8+xHjNGw6NmPOFFABQ10MMAG9oWZBBdiK2nriQIqaKCDATawL6wHOGyjF9Czd3GigAoa6GCADRy28eE1z97FiQWsoIAKGuhgpmcq8ux/YV+YZ/8LC1jBrJvbN5NgtBt69iNemD9eU3PP54/XXFhBARU00MEA28Ic86Nh0bMJMSz3RY75CxU00MEAGzjWYlzDeDYhTixgBYfN81jPJLjQQAcDbGBfmEnguX0zCUbXn2dr4kQBFTTQwVj7orGHGnsok+DCAlZQQAUNfNSVSNsY8ydma+LEXAtLrGCuRSQqaGCuRUsMsIFjLcYv23o2LE4sYAUFHLZzyXLMX+hggA3sC3PMX1jArKuJMVY+MUds5BrniL2wgrlknqhgLlluhxyxFwaYS5bbIc/zJ+Z5/sICVlBABdPWEx0MsIF9YZ7nLyxrjfOM3nJT5xn9QgcDHHXH3KBnY+GFeUa/sICPtRDPrTNG90QFDXQwwAb2hWNc9JL7YoyLC8e4mFjACgqoA7PYGBcTHQywgX1ituRNLGAFBVQwbZHoYIBpa4l9YTnAYRt3SZ4teX3clni25PWM+GzJ65m02ZI30cEAG9gXjtHSJRVjtEysoIAKGuhggA3sCwWbYBNsgk2wCTbBJtgEm2BTbIpNsWnWzS2pDsZCy7qS2Bd61s3N5wWsoIAKGuhggA3sCyNtlpi2PLiiggIqaKCDATawL2wHiK1ha9gatoatYWvYGraGrWPr2Dq2jq1j69g6to6tL1s2vvXxrWvPFrc+rqs9W9zOgyBb3CYGmKOlJ/aFOTYvLGAFBUzbiQYOm6Yix+aFbWGOwrwyz7a1PqYtPNvWJubozrU4x5slNrAvlAPMupJYQQHXkSpioIPYBJtgU2zneEu0tJ0ooC7MIZL3AdnlNdHB3FC5C3OIXNgX5hDR3CQ5RC5McW71HCIXKjhslls9h8iFATawL8whcmEBh81yv+UQuVBBAx0MsK193DloOzurs7NyMFxooIMBNnDFSvZzTSxgBWWOFmXg6DlwTnQwwAb2hTlwLizg499t49GAZzfWheOUNLGAFRRQQQMdDBBbxSbYBJtgE2yCTbAJNknbkdjAvlAPsIAVFFBBAx3EptgUm2EzbIbNsBk2w2bYDJthM2yOzbE5Nsfm2BybY3Nsjs2xBbbAFtgCW2ALbIEtsAW2wNawNWwNW8PWsDVsDVvD1rA1bB1bx9axdWwdW8fWsXVsHVtftuzGmljACgqooIEOBthAbAVbwVawFWwFW8FWsBVsBVvBVrFVbBVbxVaxVWwVW8VWsVVsgk2wCTbBJtgEm2AjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS/zMkpqYtnHx5GeWnFjACgqooIEOBthAbGeWeGIBK5g2TVTQwLS1xAAbOGzjub9n59bEAlZQQAUNdDDABmIzbIbNsBk2w2bYDJthM2yGzbE5Nsfm2BybY3Nsjs2xObbAFtgCW2ALbIEtsAW2wBbYGraGrWFr2Bq2hq1ha9gatoatY+vYOraOrWPr2Dq2jq1j68uWHWETC1hBARU00MEAG4itYCvYCraCrWAr2Aq2gq1gK9gqtoqtYqvY6hrHcebDuC+MMx9OLGAFBVTQQAcDbCA2xabYFJtiU2yKTbEpNsWm2AybYTNshs2wGTbDZtgMm2FzbI7NsTk2x+bYHJtjc2yOLbAFtsAW2AJbYAtsgS2wBbaGrWFr2Bq2hq1ha9gatoatYevYOraOrWPr2Dq2jq1j69j6srXjAAtYQQEVNNDBABuIrWAr2Aq2gq1gK9gKtoKtYCvYKraKrWI786EmKmiggwE2sC/MLMmnJdm2NrGCaZNEBQ3sM6PaGRUnFrCCAiqYxXLdzkuJEwPMRe+Jw5ZPQLJXbWIBKyigggY6GGADsWVU1NwkGRUXVlBABQ10MMAGrpNE41KicSmRHWyt5ibJqLhQQQMdDLCBfWFGxYUFxNawNWwNW8PWsDVsDVvH1rFlPkiuZubDhQY6GGADhyIf3mQz28QCVlBABQ10MMAGYst8yOdD+SG+iRVMmyUqmLaW6GDaemIDhy2fEmTj28QCVlBABQ10MMAGYhNsgk2wCTbBJtgEm2ATbIJNsSk2xabYFJtiU2yKTbEpNsNm2AybYTNshs2wGTbDZtgcm2NzbI7NsWWA5EOh/BDfxAAbmLY85DJALixgBQVU0EAHA2wgtoatYWvYGraGrWFr2Bq2jIpsUMvGt5ZPjbLxbWJW8EQHA2xgvzCy8W1iASuYxSJx7sLIDrbc1JEdbBMrKGAuZEs00MEAGwpsa6DHsQZ6HGugx7EGehxroMdRbS1DdTDABva1DOdAP7GA2ASbYFsDPY410ONYAz0OYd3OgZ5iZUsqW1LZkudAz2VQtqSyJRWbYlNsypY0tqSxJY11M/bbOdBPZEsaW9LYb+dAP5Et6dgcm2NztqSzJZ0t6aybs27OfnO2ZLAlgy0ZbMlzoPdEBYfNsm4O9AsDbOCwje8jRvbATSxgBQVU0EAH06aJbeE55nPo5eXB6ImMbHybKKCCHBqdQdbZWZ2d1dfOKscBFnDtrGyHm6iggQ4G2MB1IJZygLkWnqiggbmhIjE3VC5ZRsWFfWFGxYUFrKCACtrCcaz38SQzsiNsYoDj4e6Yn4zsCLsw+2EuLGAFBVTQQAcDxObY8gH+mOGM/FBcH+9RRX4d7vpf8/n8kZsvn88fufny+fyFAipooIMB5uLkhsoWlhOzheXCtPXEbA7LfXy2ouXmO1vRaqKtRc+n9heuFcpOs8e1c2IFBVTQQAcDbGBfmAfihWnricM2XjKN7DSbqKCBwzbe6ozsNJvYwL4wD88LC1hBAbPY2FDZMtbGy6CRfWJtvOsZ2SfWem6oPA9daKCDfWGeW8Yrl5GfY5uYFSIxxblJ8szQc5PkmeFCBXMX5nY4R8uJAbZV9xwt+b+eo+XEAlZQ1hrnmeFCAx1k3fIccK5QngMuZI2zB7nlv5s9yO38XwNsYF+YPcgXZr9nrlB2G5/HTnYbX+hggA3MumPz5cfJJhawggIqaOCw5YGYnVsTG9gXZg/yhQWsoIBDkQditmtNDLCBfWE2Hl9YwAoKqCC2ii1fNsgRkK1dE/vCbF2+sIAVlLnVs7VrooFrZ+WnxSKPqPyIWOQgy4+ITQywgbk449DIj4hNLGAFBVTQQAfTZokN7AuzB/nCAlZQQFvrlq8V5IDM7rEL8wWCc4XyBYILKyhgLnpus3yB4EIHc9Hz8MwXCC7sq0LD1rA1bA1bvkBwIbulsVsau6WxWxq2vhTZ5dXG2xORXV5tvBwR2eXVxvsMkV1eEw10MMAG9oV5QrmwgBXElieU8RpE5Fe7JjoYYAP7wjyhXFjACgqIrWKr2PKMM17xiLNP7MK+MM9DFxawggIqaKCD2ARb3gR57qy8sRmvYsTZ5XVhA/vCvLG5sIAVFFBBA1MRialoiX1h3s1cWMBU5BGV56wLFTTQwQAb2BfmmezCAmILbIEtsAW2wJZ3M5GHfd7NnJi3MJE7IG9WIg/PvFm50MFRLPKAyZuVC/vCvG+5sIAVFFBBAx1cirOPabzBEWcf03g7Jc4+pgsFVNDArOuJubxjd58dSxcWsIICZt2WaKCDATawL8wb/gvT1hMrKKCCBjoYYFuYg2G8vhJnm9KFFRRQQQMdDLCBfaFjc2w5LsZrMXG2KV2ooIEOBtjWVnd2VrCzgp2VB/j40k6cnUUtD5g8qi+soIC5OHlE5bF+oYMBNrAvzGP9wgLWdaSex/qJChroYIBt4tlOlOt2thPl1evZOHShzRU6G4cuDLCBuehjBJyNQxcWMDdUJAqoq0LBVrAVbAVbnqhOrAdYwAoKiK2eiv/+73/6w1/+9m9//Mef//bXf/nH3//0pz/883+t/+E//vDP/+O//vDvf/z7n/76jz/881//8y9/+ac//H9//Mt/5r/0H//+x7/mP//xx78//t/Hsfmnv/6vxz8fBf/3n//yp0H//U/89fH6T8vjKtWvPy+P601KPOZOfihSXhfRMVubJR5ng1Ug6g9/X1//vYxTY/699MoCRLm/FqLHWovHufvlWujrIuNK8qxQZP29yt0/l3yj/FyLx+N7lqDaDyV8U2JkxLUdWIRHrZt/nz+uln/vYuvvH/cWPxRom+2YXw85N4KV9rJE3+3LujaDh7wssduS+eLFtR2avtySZXNI1jpe4s4ajykFFqPoj4tRdoel2FoMNudj6un+ivS5Inoc8npFNjUsf6gsa4yPs60a/tPotN1eHfcq1161+rLE5sjK12OzQpOnHeL9doW2Bujjmvh1hburEa9XY7cx83NV58Z8zBO/KlE3UVO1zZx4TBmVlyXKp5uibo7Mx1zfOrofM9Sk1U+RK5uFGFf650L0eL0Qu7ysdW6JB3JUPOYG7q9IGe9CXSti5eWKbA6sSmgeLwvsR1j3dVA8Rf/Pe7R9Hnq7Go+bz1njcW/5+vwhxza/6xoiT1vjEYE/1tgcndbmHnlcgz1VqPcPDLV1YNjTKPv5wJDN4fl44N5Xjc4RLu2nNdksR+WMXB+X2+zY+0tx8xDf1ri7NeIXbI326dbYD5R1qTg+tvlqoGwqaH4E6DzGH9NUL49x3RyfjznadbX4mGp+qhH3a0isK4wfzu0/15CPz6qqn55VdxXunUpur8brs+rdralPZ6Pv7ZEjVo2ir2v0z69e7fgFl69leycwU/hxRf96XWxzYmy1zqP8gfby+nVfw23V6MfrGvrxUW726VG+q3DvKL+9Gq+P8u3WlGPtEZE394ivy53HfNDruxLfneNN55Vbieebip/vS3Y37KWsHC76OkO9fnxkuHx6ZOwq3Dsybq/Ge/n32IS6tqb311szPt+a7eOt2T7emvE7b82nYzPKW2eTxx/OxXg8THq9R0I+vvGOz8MzPg7P+Dg84/Pw3G/MTy8dx0+tzgrFXs+ltE10jtfu5r1Ni9fx2zaHVl9HZzmez6ntG5OVamVNVnorLycr91s02KLtvZ1ybzak2W425Fg3Fc+XbT+X8I8HSYtPB8muwr1Bcns1Xg+S7caU3tiY/lYJq2XNTsnLuYy+OSGOD8LOo6J7f6+E6I0S+wPr1jRb/zg6+8fR2ePj+a3ePpzf2i7DvcnCchyfzhZmRL9+OCFzRfz5mlOav1vE3iyi615zfIhoU0Q/nXbcr8uayHjgu+tS16yO16f0/GaRsFWkv7trZN2XjK9ubYrsbuEfj0nWPfyDy8vpsm2Zu/N2XxTpc/90Kf3NIrKeZXV5ejj6vSI3pxDLbvbu7hxi2T2DuTmJuF2OVtcWaU8Xcr9djrtF/Hi3yDrHPNDfK/IYEzxAP0psymx3sa1g68+XD9882BoH2/M4/l4R7xR5PQDvn71fP7TcPUXILylniYiXJ639FfKt5zpl93Dp7o3kvoiuVVHtZVNkP31va+TpZm365w+Cd4+Ybj4J3pW4+ShYPn8AWuTjJ6Bl94RJiq7Z4scWfX3Ou71XNs+190fHevBXo+lbNYRj/XG6i3drHB/XeGqDeU6x79VYO/dR7nWN3STSzRuhL2rcuhPar4tykKm3z2u8eYw9HoHwiKa93re6u0v29UiiRN2Muu2CxJo/eVxovo5Cbb9g57bfeefmz3Nd67IZuFZ2lyCxngg8rt7e3ajraveRXps+o02iygrlxx3W68XYPqjpttalx+bebLccygzy0+Hx282xO2fbeoan9kM3xndO/H7MldHni5jvFbFYTxdsd/Vgv6Cxr/gveDa6XZ3nedzH88nXq7N/aHN3deT3Xp3a5knT5Nitjn14qbtfDF+H6/j9xM1ixG7YrEO+UqL+Zpt+3mSyXYpV4Xnw/mYpYjfD/jjGdCXi8TTZ5N8ocuSLM9eNXXvO5u8U6e3pecFTq8l3tkis/dI3+yX0dy3x2Aa1sz3s9UbVX7FR9Rds1G2Ru8fIdtjFuiQavznxXsD/MB0p+m6RNUU0vtX6ZpFYFzTjK3hvFvF1mIwPlL0u0vQXBPxuFuKXBPz4wNlaHd+tzu6xuOWPRFzr07W/c7CFr3ur8N42S9I/n0box+fTCL18PI3QP26jLl0+n0bo+vE0wu450+1phNt7ZXOLtz867k0j7GrcnUb4osbxcY17d4n1uHv7bu9t07vTGfsat6Yz6u6B1c073i9q3Lvj3a6LHuv4eH769pvliN97Oe5Nq9yu8eaYuzmtUndvO92dVvniYL95gJTfecfcmxKp23eF7k6J7Bfk1pRILfHplEgt7fMpke1y3JwS+eIiJrgoezwxe3ERU3fvPpXxs78UeXrd8xtFtDI5U5+6KvxbK3NzOTZx6H21BI/vV2yuyDZzGevO7Omd0Z/eOv3qRqYGNzLS37wbUl5/Pfx4uTm2k8yH/D+T/X6Jm3v2i5v/m9vj+AXbY/eQ6u4t5rbIzS2yf0T9tDLH8fx0+XtPug/xpzKbR/f1+CUPzHdlPL9vdt6X9ePlFMC2BDdl46Ot75UIlqK/LLHvmzl4a/t4uw1ovb0+fvfwZZH9Cw4h657s+f7yOy846Dp3N5XXNerupaaSv19+Xc3o6wsR/fyd56ofv/S8LXHzVd/baxKbNdk+VVn3IKX31/dCuzejbl7afbEcazLlcRn5+lp3d4jdvKLaPR96pNeaBNF4bg+T+8tx74pquzke0w8H0w/trU36uC9YTcNlc7Vsn1+k2q+4SLWPL1L3L1itrdH8qfHvN5992L7mequzfv+RgFtt8dU/f7+0+scvmG5L3Eww//wV0+0Gvdcavy1xrzW+ev/8Fnlf416Ols9PTPtruXt9tvsvQNzrkN3WuNkgu33F/mZL6e0am47SfY17DaUiv+LyeLtVb7aT7pfk7jGy3SY320n3H4P4fG3uHqv7dbl5rMYvOFbjFxyr8QuO1fgVx+p+q97rWr7/VZ7XV1LbR1J3ujC2kxdljZfHlcxzu4/9tBS7rhTh4wGiL+fYtiXuzcPsnkjdm3XYboxjHRo/vcb788aIzx8D1/4LPs4jnz9ck/2bOqtV4KkF46fv6sj+vaXVJ+CvK2y/HbCOjGK1PtWQb2wK2kCsyqbG9kaQKH3w8+O5+0cYD8X0+QL5N0fYroY5bX7x+q1i2T2NuvlMXY728dW+7N7cuHdZuC1x72pftl/eu/dMXUr99Jm6FPn8mfr9vbIZ9vuj49Yz9W2Nm8/Uv6pxfFzj3jN1KXfvf+y9bXrzmfoXNW49U5f6+bvSX9S4dT+4X5d7z9Sl2u+9HLeeqd+v8eaYu/lMXbav5dx8pv7FwX7vACn9d94x956py/5+8N4z9S8W5NYz9fz06mfTlSL++XTldjnuTVdur+iemjblzWvC9QjL9XWF+BVPB7+ocvPhYG39l8x+7Mrcezi4L3Hr4eAXJe48HNxPjt28NdbfdwLmG8eI/JJjJH7NMRKfHyPx+TESHx8ju9uxWDMfj8c/T6ksPyWqfXy7vy1R3NYXCx/8/Oz35zDaPoq6Nf2xL3Fr+kOs/97bgw/Kjx+df709fHc31daJ+4GvupS2JW5/FHj3DOfeV4G3JW5OgGxL3JsB2W6Nu1Mg+016cw7E2+dzIF8cZn199L+MHxl+fZjt+p1qCW7a2/Pe+WkeJMp2HuTO95a3y1HXG5P1wZvl2D7pW4dJNdsU2W7YeLrcHb/yudmw9nGebUvcy7OI3zfPftweT80bv833bZnM7quMlk0s7r7k95jdYULEni98+7tF2i8o8sNF/LeKPM3NRN8U2XWCPB5JzcP+cUBxVdTLT0V2B1sT7s+eMva3RXaf5Ocmr7anvpbvFWmlryLP33D6ZhGWpNovKCLHpshu75jRfvB8Gf5zkd0jKvN122r+dJx8axcr8fiY827vHidt5Vo/9M1toutgq+q7bbJbHV9ti48pJ31vw2rnOz+92XtFvMZTE6b9itXZ7eK7edJeh5Luvvl3cyJfj/1n3Zmorb5ZkF2HvMUsMn5vjDNG+6nG9pkoE2A/tOr/9FHh3UMrOTgRH8/NZT/X2J3/yrFaIEdjub1em+1mXXfAIk/vDfx2s26L9KdJ9M2Z6zvnc395Ptfdc6e7x1rZ3Qn3vu4wHmyvr1B0+/xK1nVOff5tiMfp9aci9dNL4f0muffpUC2ffqRyv1Hv7999GTsoYyqbMrumleALBM+DuPl3FoWvspQIbZtF2U3c1NVO6PLDvMtPRXZtK49jaIV9efrK7beKWFmJ8kB5c0mePruhEm8uiawvmpp0f3PDyvrlNn8s1GZJdg+z3LlQau8WidWe/cDyZhF6tR74bpFYL5o90N4s0n19eac/db1/cyDHSurH1OPzlya+V6Y9/YpFs3dj5XF3weznc0r+pox8PLm1LXFvcmtf4tbk1hfbw5hSai6bvbN9mFNa4xW658v7n3L289+b+mI5+tMLdF1eTdKrbrZJr2uCrNeX0ydflFir0qu/moT9Ys8Eq9KivX3A9/WCw4M3s+y6e2nk3qzUvsStWSndvRx1b1bqO9tjezL/okxQxvTtMtYpE6/nDHX7G1T39s62xL29Y/X33jvP26P19/eOU6a/e87pB5ePvVR7t4zwEyCPEbi5Vto9pbp5ztmVuHnO2Zb4BeeczgcKS3fd7J3PH3RtSzyuTQ5eHI2i7xVh3vHB1d4ssn4SalzevHfK6MH7F31/yii//21xXbMFVY7Y3BbfLVLqm0V0ndCr6vFmEVu/WV7Ny3tFHtthBfXxwzTb/cf3fb39/Xj0FS8f32+f3bE9qrzuAND4BR9c0/gFH1zbTjoy137obmV2vwd0500O3X07/jHPv+ajmu8W41f8FPquiNV1RW/1h3vq8o0iRPRP94/fKRLK7fAPt1o/FWkfv96yL3Hv2qZ93O/yxdZYz7isSd9sje3pdz3PcW2yKbL7DDVPHcrxcjp5uxi2LqLdfrhp/M66mK2PR1qzt4s8fcayv11kzSD5Dw+qv3O0txUij8d1myK7bwP+kiJ3+3e0+8eXm7sSNy83u398ubndGjf7d77YpPf6d+zYXljd69/54kSzfnrpcW2kmxPNrkivFNmcrexXvJL1xZIED6ZK2yzJ9kcC1nlzdM5R5De/47xtNJd1lojnl4i+U0R1TWjr84eTf1ukf3rK25e4dcqz8vE30/Zbw/gdm+fGgd9sjfLxBcC+xM2tYb/v1nDlQ+XPL8v9ZmvE51sjPt8aH7e7bgf+Y0VW35A8/6Tpd3JMeLND9IeJhJ9/prv+zjkm/Pjv49L9eHN1niKoV3+zSF/XmY+n+fpukdWk9ijimw37C17GtvoLXsb+Yu/wXDtqfb06u/eYn14hfGp+iLhfwQsfbrPXm0N+wQ9ZmPyCH7Kwum1MWcdZqfr8NnX7aUns0226XYzKW3ci5fVi1H1TtPEU7HizSNdgZmZTRPrnYbQt0jnvjh9xZP9K/0YRP2a29uebou8WWR9i8ecPwnyvyLpR7P7cf/hzkd3jp74um/vzC0Bm90s8f+LzeO4+/LnIfmUaK9Pf3awhba3NU8P694o0dnB7yvjfbtbfu8gPn6ST3d7ZFanrmz+1Pm+TbxWR9Wsj9fkd798U2QXBY9J6zQU+poNfB4F92om1rXB3GsDs42mAbYl70wD7EremAfZb4+Y0wBeb9OY0gP+CaYD9MaYMGeubk83+HS2anvrTkPnNB1z984+vmn/+8VXzjz++ui1x72Mm99ckNmvy+cdXLT7/+OoXy3Hr46sWH3981bZTRL7eu60/NLj/9PHVfRGeRTywvFfk7mdg90tiwpfH/N0itawidbsku/cJy1Gevln+dK/483vRX5VpTpmnZ5LfLGP85NEjBdrbZdZOGiV9U2a3gaWzq5+va761l/Kh41Xk+VrvN0U+/mzwdiDf/Gzwvsa9zwZb+/izwdZ+wWeDt8txc5Pud+26xXrsZXl3ABZegS9F3h6AVRk51d8egHV11IySm5GzvVa79YmSLy737nyj5Is7pKf7vef3s36+L+mfT7b2zydbe/9dS9ycvd5v0NUM/ti2+nqD7qZa702A+SGfT4D59sWsXzKpqHzbzDcTrb57dFXt6eJm87PBvnuyEH3d+kb/4cOG3yjSZP2aa5NmbxaJ1TfSupX3ivSyXhXtpW+2ybbV6tbY/WI51ptMj+el/c2Vqcz31L4pUvT3XRkhEKUfm+Xw33c5dP0U6+OWc7cc7ePlKB//9pBvX4G6lar7reFPqbr5AVXfpeovKXJ3tsirfjpbtC1xb7ZoX+LWbNF+a9ycLfpik96bLfL6Cx4I7M8y7qtJMvrrXwx2KR9P9Pj+8dWtiR7fPb26N9GzLXFvouf+msRmTcrHEz0un/+y5RfLcWuix3fXh/fu7Xz31tTdiZ59kZsTPdsidyd69ktyc6JnX+TmRI+r/YqJnq/K3Jzo+aLM3Ymer8rcnOjZb+CbEz37IjcnerYj6N6sxHYg35zo2de4N9Hju+ckN8Ng+52ImxM92+W4uUn3u/beRM8Xx+rdiZ4vytyd6PmqzM2Jnv1l1q2Jni+u1G5N9Oxu5W9OKfgveJXF/Re8yrLvQfV1Ipbnjfq9HtSy2iVUnj+7/L1G1vUipv7wbc5vFYm6fnChHa87Hn33JOuXFLl9d7Obib95d7MrcfPuZlvi3t1N/IJf9fhik968u9m9eHX7Wfi+/ZtvOvQfGq9+PkL671ykOn31rdc3i/Tn1o93i7R1eyJH3axO+xVzre0XzLVuV0f4iWY5bLNNdp/lK8bnlx+sr37o+asit37U3LdPsW7+mPi2yM3ppy9W5t5y9O1Lre3pS2m7gK4fX0zsg/HOxcT+daNbS/HFG0u3lmL/qjH3wfbDt3W/876y8+a0d3mzSGvrk5r9sPeK/DB262Z1tn0kN9+c3ha59wX3fYlbX3D/osSdL7jv90vwHcx4+432H4rou0UqReT1fonj4+escXz8nDU+f2dqW+LuJ1C2G5QO1Ij27l5ZkfyY7303QZ6X5O0izbgisreLMD+5LbL9csm9bN9//ORWtu+/DLVq9OpvflxqvfHQa7x8W2n75bB722L/8bFb22L/kbrVxW7hb38ub30Xzpodbxbhm/gPfPdzeS1Ykv7uJwTb2rmPem9/uO/pmYC+v01oDn73U5NqvA9rvf6KIm9+alK5DdHn25DvFeF7QRrbg21bhNnRFq+L5On55UOwvi5l2nG8fu8itr9H5avRQr3by2nAr5Yk1pKU3ZLsnmL5uqwyf7q/+8ZyNH58uh0em+XY/yLm3KyPU+jrtrHYBTTfI31+oDDeSbl/jPQ1Q6u7z6CF1l9wjKj8gmPkiyW5d4yofXyM7Jbj9jGi8SuOkfa7HiN2rIlROzYfFI7dd/+stv/314LaTzV2n7GPuj6f8sPnkdt3Vma1BVk56mZl5BesjP7OK8PX9B/45lnPZD0+NlF/s0hlSWr8iiLteHd11tNak9LfXRK+oSTH+xu2s2Ht3SJKkbd/RKkqD/ft+UL8x7cNwz/uDdyXuHfnu3t16heUuPmbQ9sNKnykT+LYbNDth7pufB5rvxjK7ffj9P16MXY/jnU3zLZTTffC7Isfx6q0sVR7uTJfFHn6MRtvmyLbX8S5+TNduyL35gD3JW7NAX5R4s4c4P6n7e79FKx/fA//+S++RPv4p9uj/YKfbt/elK2Z7sdT5tc/V7p9qtr4PcvnEj+9O74r4Xy32KW/VaKtkVaevyP7nRI9+KTmUd4pUQ9C41B5ayn4KOf4rO57JTrf+i5vrcj4sv0sUfp7S8HP5hR9/uWrb5TQp8d0z7ccP5WI7Q9FNbqhno+M0u+vycqcIvHexlB+S+X5OuHd7flmiXbwffD63GfzY2C07c9d3fq9gv2HsPku+A9d2d8o0dcyHM8/FvKNEk34oPDz5fBvtsUvaKFqx+/8NeDKM63qbbMyu6YUD336JV57NcX+VZH1xPLBvb8ssu/iWFfVpbw+Qlr5+DWV/YQl58bnr73Wb5RYP5fwKLHZL+UXtKO08gvaUb7cufG0c19dRrbiv/cRwvdv6/NFx283bNtextE2vJnR+qJI5efHfFNkd1t9d6Kw1fLpROF2Oe5OFLYqn08Utl2L7L2Jwm0AlMKZ6sHPvwtw/FSm7j6wMhfk6fcD9fbV8WPsduaRX39rpu0+BnjzFaS2faHq3itIbfchv3uvIG1L3HsF6f6avH4Fab9F772C1HZPXm6+gvTFctx6BanJbg7q1lsHbfcc6u4rSPsiN19B2ha5+wrSfkluvoK0L3LzFaS2e/Jy/xWkr8rcfAXpizJ3X0H6qszNV5D2G/jmK0j7IjdfQdqOoHvvy2wH8s1XkPY17r2C1HYPpW6GgW0/DHzvFaTtctzcpPtde+8VpC+O1buvIH1R5u4rSF+VufkK0vZ3bGSNm/I8H2zf+Ckc7hfL8xzod0rQaFuffoHiN5dovp3s52nS8WaJvt5OebrW/M6KPH9A8+mDvt8p4euZxY9Nx98oEYVZle228N+5SHFuN58/O/u9IhHMYvb6ZpF+8Dt09b09U9fKPE7i740VWY/4HkdKeW8p6Cd/fn77jRLlWI+0fvg19O+UKPxMWtH2XgneJyvtvaWQNWAf+N5SWGVCROO9Es49ROvvrQhHp9T3VkT49Tuxt1Yk1v1DqL9ToCvfpdkM9t1Tvc9n2PvBF4feW4t1XPawDzfDewWkMsFWny+Je7lfYr3BKs8fXnq3xNOF17dKrKEh9WlbfKfE849cPDXifqeErifFYsd720Kc39h5fmzzbon3durTb3U85923tgVvEqm8t1P52Xp5/tn6b5VYv/cpam/uVOeVOX9rKcYvhnJhoW+VePrh0vb8cf6fSvRjdyVfie7nn7r+qcVk/8R6nUub2XtrsppUy/NvOn+rhPNI8L1BUlrnXeajvLki3HIe9eMS5d2lCEq8Ndof16lsC42Pl+K9nVp1Ped9zKy8nEjo+6dOt+aL++6h07354m2Je/PF99fk9Xzx9hZgNVT8MFP1jQpWaQQTeb01+8355t0e2dZYz953c9b3l+N1jX2jIPOzTzPFPy9F/fhzaNsSN4+t7e8R3OsE67sHTPc6wXrdfl3S+OWb56sl+3k5NtOP4zdzVpH+emqq7x7O3OsO2W/TIjxRtZc/AtJl/yvp80Lj9c+IbDfp40EEt8sPLpuNuv3+6Lqa7tLfLWJriqrbDw1I3ylSV2/aA/XdIqsTvT+3s39zm6yPnzw2j795tLZ1pu3tqVflt0fr3SJPP4D1zSIrzR7o7xV5PBuydSH2eBK4K7PdtI1N24+Xm/Z2OL98ktF3Pxl164fFv9gez786dUR9d7Me9AA8ymyOk+28/f29ox9/iGFf4lYT9hclXjZh/8/Hf/njv/357//yl7/92x//8ee//fU/Hn/336PU3//8x3/9y5+u//q///Ov//b0//7j///3+f/869///Je//Pn//Mu///1v//an//Wff//TqDT+vz8c13/8jyiPHRZF43/+0x/K+O/jx4PDSnv8d3n898eiWx3/3/iX6+PG/Z8e/5H/cv7bj5nLx1/b8T//eyzu/wU="
|
|
4110
4110
|
},
|
|
4111
4111
|
{
|
|
4112
4112
|
"name": "public_dispatch",
|
|
@@ -4503,31 +4503,31 @@
|
|
|
4503
4503
|
"path": "std/hash/mod.nr",
|
|
4504
4504
|
"source": "// Exposed only for usage in `std::meta`\npub(crate) mod poseidon2;\n\nuse crate::default::Default;\nuse crate::embedded_curve_ops::{\n EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_array_return,\n};\nuse crate::meta::derive_via;\n\n#[foreign(sha256_compression)]\n// docs:start:sha256_compression\npub fn sha256_compression(input: [u32; 16], state: [u32; 8]) -> [u32; 8] {}\n// docs:end:sha256_compression\n\n#[foreign(keccakf1600)]\n// docs:start:keccakf1600\npub fn keccakf1600(input: [u64; 25]) -> [u64; 25] {}\n// docs:end:keccakf1600\n\npub mod keccak {\n #[deprecated(\"This function has been moved to std::hash::keccakf1600\")]\n pub fn keccakf1600(input: [u64; 25]) -> [u64; 25] {\n super::keccakf1600(input)\n }\n}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{\n if crate::runtime::is_unconstrained() {\n // Temporary measure while Barretenberg is main proving system.\n // Please open an issue if you're working on another proving system and running into problems due to this.\n crate::static_assert(\n N <= 1024,\n \"Barretenberg cannot prove blake3 hashes with inputs larger than 1024 bytes\",\n );\n }\n __blake3(input)\n}\n\n#[foreign(blake3)]\nfn __blake3<let N: u32>(input: [u8; N]) -> [u8; 32] {}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\n#[inline_always]\npub fn pedersen_commitment_with_separator<let N: u32>(\n input: [Field; N],\n separator: u32,\n) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n pedersen_hash_with_separator(input, 0)\n}\n\n#[no_predicates]\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: [EmbeddedCurveScalar; N + 1] = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N + 1];\n let mut generators: [EmbeddedCurvePoint; N + 1] =\n [EmbeddedCurvePoint::point_at_infinity(); N + 1];\n let domain_generators: [EmbeddedCurvePoint; N] =\n derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n\n for i in 0..N {\n scalars[i] = from_field_unsafe(input[i]);\n generators[i] = domain_generators[i];\n }\n scalars[N] = EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field };\n\n let length_generator: [EmbeddedCurvePoint; 1] =\n derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n generators[N] = length_generator[0];\n multi_scalar_mul_array_return(generators, scalars, true)[0].x\n}\n\n#[field(bn254)]\n#[inline_always]\npub fn derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n // TODO(https://github.com/noir-lang/noir/issues/5672): Add back assert_constant on starting_index\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n// Decompose the input 'bn254 scalar' into two 128 bits limbs.\n// It is called 'unsafe' because it does not assert the limbs are 128 bits\n// Assuming the limbs are 128 bits:\n// Assert the decomposition does not overflow the field size.\nfn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n // Safety: xlo and xhi decomposition is checked below\n let (xlo, xhi) = unsafe { crate::field::bn254::decompose_hint(scalar) };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n // Check that the decomposition does not overflow the field size\n let (a, b) = if xhi == crate::field::bn254::PHI {\n (xlo, crate::field::bn254::PLO)\n } else {\n (xhi, crate::field::bn254::PHI)\n };\n crate::field::bn254::assert_lt(a, b);\n\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn poseidon2_permutation<let N: u32>(input: [Field; N], state_len: u32) -> [Field; N] {\n assert_eq(input.len(), state_len);\n poseidon2_permutation_internal(input)\n}\n\n#[foreign(poseidon2_permutation)]\nfn poseidon2_permutation_internal<let N: u32>(input: [Field; N]) -> [Field; N] {}\n\n// Generic hashing support.\n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\npub trait Hash {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher;\n}\n\n// docs:start:derive_hash\ncomptime fn derive_hash(s: TypeDefinition) -> Quoted {\n let name = quote { $crate::hash::Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: $crate::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(\n s,\n name,\n signature,\n for_each_field,\n quote {},\n |fields| fields,\n )\n}\n// docs:end:derive_hash\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\npub trait Hasher {\n fn finish(self) -> Field;\n\n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\npub trait BuildHasher {\n type H: Hasher;\n\n fn build_hasher(self) -> H;\n}\n\npub struct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n type H = H;\n\n fn build_hasher(_self: Self) -> H {\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n fn default() -> Self {\n BuildHasherDefault {}\n }\n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u128 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u8 as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u16 as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u32 as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as u64 as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H)\n where\n H: Hasher,\n {}\n}\n\nimpl<T, let N: u32> Hash for [T; N]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B)\nwhere\n A: Hash,\n B: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1),\n 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f,\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1),\n EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false,\n },\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2),\n 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2),\n EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3),\n 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3),\n EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4),\n 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4),\n EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5),\n 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5),\n EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6),\n 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6),\n EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false,\n },\n );\n}\n"
|
|
4505
4505
|
},
|
|
4506
|
-
"
|
|
4506
|
+
"229": {
|
|
4507
4507
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/append.nr",
|
|
4508
4508
|
"source": "/// Appends the elements of the second `BoundedVec` to the end of the first one. The resulting `BoundedVec` can have any arbitrary maximum length, but it must be\n/// large enough to fit all of the elements of both the first and second vectors.\npub fn append<T, let ALen: u32, let BLen: u32, let DstLen: u32>(\n a: BoundedVec<T, ALen>,\n b: BoundedVec<T, BLen>,\n) -> BoundedVec<T, DstLen> {\n let mut dst = BoundedVec::new();\n\n dst.extend_from_bounded_vec(a);\n dst.extend_from_bounded_vec(b);\n\n dst\n}\n\nmod test {\n use super::append;\n\n #[test]\n unconstrained fn append_empty_vecs() {\n let a: BoundedVec<_, 3> = BoundedVec::new();\n let b: BoundedVec<_, 14> = BoundedVec::new();\n\n let result: BoundedVec<Field, 5> = append(a, b);\n\n assert_eq(result.len(), 0);\n assert_eq(result.storage(), std::mem::zeroed());\n }\n\n #[test]\n unconstrained fn append_non_empty_vecs() {\n let a: BoundedVec<_, 3> = BoundedVec::from_array([1, 2, 3]);\n let b: BoundedVec<_, 14> = BoundedVec::from_array([4, 5, 6]);\n\n let result: BoundedVec<Field, 8> = append(a, b);\n\n assert_eq(result.len(), 6);\n assert_eq(result.storage(), [1, 2, 3, 4, 5, 6, std::mem::zeroed(), std::mem::zeroed()]);\n }\n\n #[test(should_fail_with = \"out of bounds\")]\n unconstrained fn append_non_empty_vecs_insufficient_max_len() {\n let a: BoundedVec<_, 3> = BoundedVec::from_array([1, 2, 3]);\n let b: BoundedVec<_, 14> = BoundedVec::from_array([4, 5, 6]);\n\n let _: BoundedVec<Field, 5> = append(a, b);\n }\n}\n"
|
|
4509
4509
|
},
|
|
4510
|
-
"
|
|
4510
|
+
"232": {
|
|
4511
4511
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subarray.nr",
|
|
4512
4512
|
"source": "/// Returns `DstLen` elements from a source array, starting at `offset`. `DstLen` must not be larger than the number\n/// of elements past `offset`.\n///\n/// Examples:\n/// ```\n/// let foo: [Field; 2] = subarray([1, 2, 3, 4, 5], 2);\n/// assert_eq(foo, [3, 4]);\n///\n/// let bar: [Field; 5] = subarray([1, 2, 3, 4, 5], 2); // fails - we can't return 5 elements since only 3 remain\n/// ```\npub fn subarray<T, let SrcLen: u32, let DstLen: u32>(src: [T; SrcLen], offset: u32) -> [T; DstLen] {\n assert(offset + DstLen <= SrcLen, \"DstLen too large for offset\");\n\n let mut dst: [T; DstLen] = std::mem::zeroed();\n for i in 0..DstLen {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\nmod test {\n use super::subarray;\n\n #[test]\n unconstrained fn subarray_into_empty() {\n // In all of these cases we're setting DstLen to be 0, so we always get back an empty array.\n assert_eq(subarray::<Field, _, _>([], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 2), []);\n }\n\n #[test]\n unconstrained fn subarray_complete() {\n assert_eq(subarray::<Field, _, _>([], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 0), [1, 2, 3, 4, 5]);\n }\n\n #[test]\n unconstrained fn subarray_different_end_sizes() {\n // We implicitly select how many values to read in the size of the return array\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3, 4, 5]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3, 4]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2]);\n }\n\n #[test(should_fail_with = \"DstLen too large for offset\")]\n unconstrained fn subarray_offset_too_large() {\n // With an offset of 1 we can only request up to 4 elements\n let _: [_; 5] = subarray([1, 2, 3, 4, 5], 1);\n }\n\n #[test(should_fail)]\n unconstrained fn subarray_bad_return_value() {\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [3, 3, 4, 5]);\n }\n}\n"
|
|
4513
4513
|
},
|
|
4514
|
-
"
|
|
4514
|
+
"233": {
|
|
4515
4515
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subbvec.nr",
|
|
4516
4516
|
"source": "use crate::utils::array;\n\n/// Returns `DstMaxLen` elements from a source BoundedVec, starting at `offset`. `offset` must not be larger than the\n/// original length, and `DstLen` must not be larger than the total number of elements past `offset` (including the\n/// zeroed elements past `len()`).\n///\n/// Only elements at the beginning of the vector can be removed: it is not possible to also remove elements at the end\n/// of the vector by passing a value for `DstLen` that is smaller than `len() - offset`.\n///\n/// Examples:\n/// ```\n/// let foo = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n/// assert_eq(subbvec(foo, 2), BoundedVec::<_, 8>::from_array([3, 4, 5]));\n///\n/// let bar: BoundedVec<_, 1> = subbvec(foo, 2); // fails - we can't return just 1 element since 3 remain\n/// let baz: BoundedVec<_, 10> = subbvec(foo, 3); // fails - we can't return 10 elements since only 7 remain\n/// ```\npub fn subbvec<T, let SrcMaxLen: u32, let DstMaxLen: u32>(\n bvec: BoundedVec<T, SrcMaxLen>,\n offset: u32,\n) -> BoundedVec<T, DstMaxLen> {\n // from_parts_unchecked does not verify that the elements past len are zeroed, but that is not an issue in our case\n // because we're constructing the new storage array as a subarray of the original one (which should have zeroed\n // storage past len), guaranteeing correctness. This is because `subarray` does not allow extending arrays past\n // their original length.\n BoundedVec::from_parts_unchecked(array::subarray(bvec.storage(), offset), bvec.len() - offset)\n}\n\nmod test {\n use super::subbvec;\n\n #[test]\n unconstrained fn subbvec_empty() {\n let bvec = BoundedVec::<Field, 0>::from_array([]);\n assert_eq(subbvec(bvec, 0), bvec);\n }\n\n #[test]\n unconstrained fn subbvec_complete() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 0), bvec);\n\n let smaller_capacity = BoundedVec::<_, 5>::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 0), smaller_capacity);\n }\n\n #[test]\n unconstrained fn subbvec_partial() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n assert_eq(subbvec(bvec, 2), BoundedVec::<_, 8>::from_array([3, 4, 5]));\n assert_eq(subbvec(bvec, 2), BoundedVec::<_, 3>::from_array([3, 4, 5]));\n }\n\n #[test]\n unconstrained fn subbvec_into_empty() {\n let bvec: BoundedVec<_, 10> = BoundedVec::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 5), BoundedVec::<_, 5>::from_array([]));\n }\n\n #[test(should_fail)]\n unconstrained fn subbvec_offset_past_len() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n let _: BoundedVec<_, 1> = subbvec(bvec, 6);\n }\n\n #[test(should_fail)]\n unconstrained fn subbvec_insufficient_dst_len() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // We're not providing enough space to hold all of the items inside the original BoundedVec. subbvec can cause\n // for the capacity to reduce, but not the length (other than by len - offset).\n let _: BoundedVec<_, 1> = subbvec(bvec, 2);\n }\n\n #[test(should_fail_with = \"DstLen too large for offset\")]\n unconstrained fn subbvec_dst_len_causes_enlarge() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // subbvec does not supprt capacity increases\n let _: BoundedVec<_, 11> = subbvec(bvec, 0);\n }\n\n #[test(should_fail_with = \"DstLen too large for offset\")]\n unconstrained fn subbvec_dst_len_too_large_for_offset() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // This effectively requests a capacity increase, since there'd be just one element plus the 5 empty slots,\n // which is less than 7.\n let _: BoundedVec<_, 7> = subbvec(bvec, 4);\n }\n}\n"
|
|
4517
4517
|
},
|
|
4518
|
-
"
|
|
4518
|
+
"235": {
|
|
4519
4519
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/conversion/bytes_to_fields.nr",
|
|
4520
4520
|
"source": "use std::static_assert;\n\n// These functions are used to facilitate the conversion of log ciphertext between byte and field representations.\n//\n// `bytes_to_fields` uses fixed-size arrays since encryption contexts have compile-time size information.\n// `bytes_from_fields` uses BoundedVec for flexibility in unconstrained contexts where sizes are dynamic.\n//\n// Together they provide bidirectional conversion between bytes and fields when processing encrypted logs.\n\n/// Converts the input bytes into an array of fields. A Field is ~254 bits meaning that each field can store 31 whole\n/// bytes. Use `bytes_from_fields` to obtain the original bytes array.\n///\n/// The input bytes are chunked into chunks of 31 bytes. Each 31-byte chunk is viewed as big-endian, and is converted\n/// into a Field.\n/// For example, [1, 10, 3, ..., 0] (31 bytes) is encoded as [1 * 256^30 + 10 * 256^29 + 3 * 256^28 + ... + 0]\n/// Note: N must be a multiple of 31 bytes\npub fn bytes_to_fields<let N: u32>(bytes: [u8; N]) -> [Field; N / 31] {\n // Assert that N is a multiple of 31\n static_assert(N % 31 == 0, \"N must be a multiple of 31\");\n\n let mut fields = [0; N / 31];\n\n // Since N is a multiple of 31, we can simply process all chunks fully\n for i in 0..N / 31 {\n let mut field = 0;\n for j in 0..31 {\n // Shift the existing value left by 8 bits and add the new byte\n field = field * 256 + bytes[i * 31 + j] as Field;\n }\n fields[i] = field;\n }\n\n fields\n}\n\n/// Converts an input BoundedVec of fields into a BoundedVec of bytes in big-endian order. Arbitrary Field arrays\n/// are not allowed: this is assumed to be an array obtained via `bytes_to_fields`, i.e. one that actually represents\n/// bytes. To convert a Field array into bytes, use `fields_to_bytes`.\n///\n/// Each input field must contain at most 31 bytes (this is constrained to be so).\n/// Each field is converted into 31 big-endian bytes, and the resulting 31-byte chunks are concatenated\n/// back together in the order of the original fields.\npub fn bytes_from_fields<let N: u32>(fields: BoundedVec<Field, N>) -> BoundedVec<u8, N * 31> {\n let mut bytes = BoundedVec::new();\n\n for i in 0..fields.len() {\n let field = fields.get(i);\n\n // We expect that the field contains at most 31 bytes of information.\n field.assert_max_bit_size::<248>();\n\n // Now we can safely convert the field to 31 bytes.\n let field_as_bytes: [u8; 31] = field.to_be_bytes();\n\n for j in 0..31 {\n bytes.push(field_as_bytes[j]);\n }\n }\n\n bytes\n}\n\nmod tests {\n use crate::utils::array::subarray;\n use super::{bytes_from_fields, bytes_to_fields};\n\n #[test]\n unconstrained fn random_bytes_to_fields_and_back(input: [u8; 93]) {\n let fields = bytes_to_fields(input);\n\n // At this point in production, the log flies through the system and we get a BoundedVec on the other end.\n // So we need to convert the field array to a BoundedVec to be able to feed it to the `bytes_from_fields`\n // function.\n let fields_as_bounded_vec = BoundedVec::<_, 6>::from_array(fields);\n\n let bytes_back = bytes_from_fields(fields_as_bounded_vec);\n\n // Compare the original input with the round-tripped result\n assert_eq(bytes_back.len(), input.len());\n assert_eq(subarray(bytes_back.storage(), 0), input);\n }\n\n #[test(should_fail_with = \"N must be a multiple of 31\")]\n unconstrained fn bytes_to_fields_input_length_not_multiple_of_31() {\n // Try to convert 32 bytes (not a multiple of 31) to fields\n let _fields = bytes_to_fields([0; 32]);\n }\n\n}\n"
|
|
4521
4521
|
},
|
|
4522
|
-
"
|
|
4522
|
+
"236": {
|
|
4523
4523
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/conversion/fields_to_bytes.nr",
|
|
4524
4524
|
"source": "// These functions are used to facilitate the conversion of log plaintext represented as fields into bytes and back.\n//\n// `fields_to_bytes` uses fixed-size arrays since encryption contexts have compile-time size information.\n// `fields_from_bytes` uses BoundedVec for flexibility in unconstrained contexts where sizes are dynamic.\n//\n// Together they provide bidirectional conversion between fields and bytes.\n\n/// Converts an input array of fields into a single array of bytes. Use `fields_from_bytes` to obtain the original\n/// field array.\n/// Each field is converted to a 32-byte big-endian array.\n///\n/// For example, if you have a field array [123, 456], it will be converted to a 64-byte array:\n/// [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,123, // First field (32 bytes)\n/// 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,200] // Second field (32 bytes)\n///\n/// Since a field is ~254 bits, you'll end up with a subtle 2-bit \"gap\" at the big end, every 32 bytes. Be careful\n/// that such a gap doesn't leak information! This could happen if you for example expected the output to be\n/// indistinguishable from random bytes.\npub fn fields_to_bytes<let N: u32>(fields: [Field; N]) -> [u8; 32 * N] {\n let mut bytes = [0; 32 * N];\n\n for i in 0..N {\n let field_as_bytes: [u8; 32] = fields[i].to_be_bytes();\n\n for j in 0..32 {\n bytes[i * 32 + j] = field_as_bytes[j];\n }\n }\n\n bytes\n}\n\n/// Converts an input BoundedVec of bytes into a BoundedVec of fields. Arbitrary byte arrays are not allowed: this\n/// is assumed to be an array obtained via `fields_to_bytes`, i.e. one that actually represents fields. To convert\n/// a byte array into Fields, use `bytes_to_fields`.\n///\n/// The input bytes are chunked into chunks of 32 bytes. Each 32-byte chunk is viewed as big-endian, and is converted\n/// into a Field.\n/// For example, [1, 10, 3, ..., 0] (32 bytes) is encoded as [1 * 256^31 + 10 * 256^30 + 3 * 256^29 + ... + 0]\n/// Note 1: N must be a multiple of 32 bytes\n/// Note 2: The max value check code was taken from std::field::to_be_bytes function.\npub fn fields_from_bytes<let N: u32>(bytes: BoundedVec<u8, N>) -> BoundedVec<Field, N / 32> {\n // Assert that input length is a multiple of 32\n assert(bytes.len() % 32 == 0, \"Input length must be a multiple of 32\");\n\n let mut fields = BoundedVec::new();\n\n let p = std::field::modulus_be_bytes();\n\n // Since input length is a multiple of 32, we can simply process all chunks fully\n for i in 0..bytes.len() / 32 {\n let mut field = 0;\n\n // Process each byte in the 32-byte chunk\n let mut ok = false;\n\n for j in 0..32 {\n let next_byte = bytes.get(i * 32 + j);\n field = field * 256 + next_byte as Field;\n\n if !ok {\n if next_byte != p[j] {\n assert(next_byte < p[j], \"Value does not fit in field\");\n ok = true;\n }\n }\n }\n assert(ok, \"Value does not fit in field\");\n\n fields.push(field);\n }\n\n fields\n}\n\nmod tests {\n use crate::utils::array::subarray;\n use super::{fields_from_bytes, fields_to_bytes};\n\n #[test]\n unconstrained fn random_fields_to_bytes_and_back(input: [Field; 3]) {\n // Convert to bytes\n let bytes = fields_to_bytes(input);\n\n // At this point in production, the log flies through the system and we get a BoundedVec on the other end.\n // So we need to convert the field array to a BoundedVec to be able to feed it to the `fields_from_bytes`\n // function.\n // 113 is an arbitrary max length that is larger than the input length of 96.\n let bytes_as_bounded_vec = BoundedVec::<_, 113>::from_array(bytes);\n\n // Convert back to fields\n let fields_back = fields_from_bytes(bytes_as_bounded_vec);\n\n // Compare the original input with the round-tripped result\n assert_eq(fields_back.len(), input.len());\n assert_eq(subarray(fields_back.storage(), 0), input);\n }\n\n #[test(should_fail_with = \"Input length must be a multiple of 32\")]\n unconstrained fn to_fields_assert() {\n // 143 is an arbitrary max length that is larger than 33\n let input = BoundedVec::<_, 143>::from_array([\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33,\n ]);\n\n // This should fail since 33 is not a multiple of 32\n let _fields = fields_from_bytes(input);\n }\n\n #[test]\n unconstrained fn fields_from_bytes_max_value() {\n let max_field_as_bytes: [u8; 32] = (-1).to_be_bytes();\n let input = BoundedVec::<_, 32>::from_array(max_field_as_bytes);\n\n let fields = fields_from_bytes(input);\n\n // The result should be a largest value storable in a field (-1 since we are modulo-ing)\n assert_eq(fields.get(0), -1);\n }\n\n // In this test we verify that overflow check works by taking the max allowed value, bumping a random byte\n // and then feeding it to `fields_from_bytes` as input.\n #[test(should_fail_with = \"Value does not fit in field\")]\n unconstrained fn fields_from_bytes_overflow(random_value: u8) {\n let index_of_byte_to_bump = random_value % 32;\n\n // Obtain the byte representation of the maximum field value\n let max_field_value_as_bytes: [u8; 32] = (-1).to_be_bytes();\n\n let byte_to_bump = max_field_value_as_bytes[index_of_byte_to_bump as u32];\n\n // Skip test execution if the selected byte is already at maximum value (255).\n // This is acceptable since we are using fuzz testing to generate many test cases.\n if byte_to_bump != 255 {\n let mut input = BoundedVec::<_, 32>::from_array(max_field_value_as_bytes);\n\n // Increment the selected byte to exceed the field's maximum value\n input.set(index_of_byte_to_bump as u32, byte_to_bump + 1);\n\n // Attempt the conversion, which should fail due to the value exceeding the field's capacity\n let _fields = fields_from_bytes(input);\n }\n }\n\n}\n"
|
|
4525
4525
|
},
|
|
4526
|
-
"
|
|
4526
|
+
"239": {
|
|
4527
4527
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/point.nr",
|
|
4528
4528
|
"source": "use protocol_types::{point::Point, utils::field::sqrt};\n\n// I am storing the modulus minus 1 divided by 2 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field =\n 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a point to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(p: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!p.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result: [u8; 32] = p.x.to_be_bytes();\n\n if get_sign_of_point(p) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result\n}\n\n/**\n * Returns: true if p.y <= MOD_DIV_2, else false.\n */\npub fn get_sign_of_point(p: Point) -> bool {\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n !BN254_FR_MODULUS_DIV_2.lt(p.y)\n}\n\n/// Returns a `Point` in the Grumpkin curve given its x coordinate.\n///\n/// Because not all values in the field are valid x coordinates of points in the curve (i.e. there\n/// is no corresponding y value in the field that satisfies the curve equation), it may not be\n/// possible to reconstruct a `Point`. `Option::none()` is returned in such cases.\npub fn point_from_x_coord(x: Field) -> Option<Point> {\n // y ^ 2 = x ^ 3 - 17\n let rhs = x * x * x - 17;\n sqrt(rhs).map(|y| Point { x, y, is_infinite: false })\n}\n\n/// Returns a `Point` in the Grumpkin curve given its x coordinate and sign for the y coordinate.\n///\n/// Because not all values in the field are valid x coordinates of points in the curve (i.e. there\n/// is no corresponding y value in the field that satisfies the curve equation), it may not be\n/// possible to reconstruct a `Point`. `Option::none()` is returned in such cases.\n///\n/// @param x - The x coordinate of the point\n/// @param sign - The \"sign\" of the y coordinate - determines whether y <= (Fr.MODULUS - 1) / 2\npub fn point_from_x_coord_and_sign(x: Field, sign: bool) -> Option<Point> {\n // y ^ 2 = x ^ 3 - 17\n let rhs = x * x * x - 17;\n\n sqrt(rhs).map(|y| {\n // If there is a square root, we need to ensure it has the correct \"sign\"\n let y_is_positive = !BN254_FR_MODULUS_DIV_2.lt(y);\n let final_y = if y_is_positive == sign { y } else { -y };\n Point { x, y: final_y, is_infinite: false }\n })\n}\n\nmod test {\n use crate::utils::point::{point_from_x_coord, point_from_x_coord_and_sign, point_to_bytes};\n use dep::protocol_types::point::Point;\n use dep::protocol_types::utils::field::pow;\n\n #[test]\n unconstrained fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false,\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122,\n 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115,\n ];\n assert_eq(expected_compressed_point_positive_sign, compressed_point);\n }\n\n #[test]\n unconstrained fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false,\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169,\n 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181,\n ];\n\n assert_eq(expected_compressed_point_negative_sign, compressed_point);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_and_sign() {\n // Test positive y coordinate\n let x = 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73;\n let sign = true;\n let p = point_from_x_coord_and_sign(x, sign).unwrap();\n\n assert_eq(p.x, x);\n assert_eq(p.y, 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a);\n assert_eq(p.is_infinite, false);\n\n // Test negative y coordinate\n let x2 = 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5;\n let sign2 = false;\n let p2 = point_from_x_coord_and_sign(x2, sign2).unwrap();\n\n assert_eq(p2.x, x2);\n assert_eq(p2.y, 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0);\n assert_eq(p2.is_infinite, false);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_valid() {\n // x = 8 is a known quadratic residue - should give a valid point\n let result = point_from_x_coord(Field::from(8));\n assert(result.is_some());\n\n let point = result.unwrap();\n assert_eq(point.x, Field::from(8));\n // Check curve equation y^2 = x^3 - 17\n assert_eq(pow(point.y, 2), pow(point.x, 3) - 17);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_invalid() {\n // x = 3 is a non-residue for this curve - should give None\n let x = Field::from(3);\n let maybe_point = point_from_x_coord(x);\n assert(maybe_point.is_none());\n }\n\n}\n"
|
|
4529
4529
|
},
|
|
4530
|
-
"
|
|
4530
|
+
"250": {
|
|
4531
4531
|
"path": "/home/aztec-dev/nargo/github.com/noir-lang/poseidon/v0.1.1/src/poseidon2.nr",
|
|
4532
4532
|
"source": "use std::default::Default;\nuse std::hash::Hasher;\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2 {\n cache: [Field; 3],\n state: [Field; 4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2::hash_internal(input, message_size, message_size != N)\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2 {\n let mut result =\n Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\npub struct Poseidon2Hasher {\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv: Field = (self._state.len() as Field) * 18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field) {\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher { _state: &[] }\n }\n}\n"
|
|
4533
4533
|
},
|
|
@@ -4535,43 +4535,43 @@
|
|
|
4535
4535
|
"path": "std/array/mod.nr",
|
|
4536
4536
|
"source": "use crate::cmp::{Eq, Ord};\nuse crate::convert::From;\nuse crate::runtime::is_unconstrained;\n\nmod check_shuffle;\nmod quicksort;\n\nimpl<T, let N: u32> [T; N] {\n /// Returns the length of this array.\n ///\n /// ```noir\n /// fn len(self) -> Field\n /// ```\n ///\n /// example\n ///\n /// ```noir\n /// fn main() {\n /// let array = [42, 42];\n /// assert(array.len() == 2);\n /// }\n /// ```\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n /// Returns this array as a slice.\n ///\n /// ```noir\n /// let array = [1, 2];\n /// let slice = array.as_slice();\n /// assert_eq(slice, &[1, 2]);\n /// ```\n #[builtin(as_slice)]\n pub fn as_slice(self) -> [T] {}\n\n /// Applies a function to each element of this array, returning a new array containing the mapped elements.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let b = a.map(|a| a * 2);\n /// assert_eq(b, [2, 4, 6]);\n /// ```\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> [U; N] {\n let uninitialized = crate::mem::zeroed();\n let mut ret = [uninitialized; N];\n\n for i in 0..self.len() {\n ret[i] = f(self[i]);\n }\n\n ret\n }\n\n /// Applies a function to each element of this array along with its index,\n /// returning a new array containing the mapped elements.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let b = a.mapi(|i, a| i + a * 2);\n /// assert_eq(b, [2, 5, 8]);\n /// ```\n pub fn mapi<U, Env>(self, f: fn[Env](u32, T) -> U) -> [U; N] {\n let uninitialized = crate::mem::zeroed();\n let mut ret = [uninitialized; N];\n\n for i in 0..self.len() {\n ret[i] = f(i, self[i]);\n }\n\n ret\n }\n\n /// Applies a function to each element of this array.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let mut b = [0; 3];\n /// let mut i = 0;\n /// a.for_each(|x| {\n /// b[i] = x;\n /// i += 1;\n /// });\n /// assert_eq(a, b);\n /// ```\n pub fn for_each<Env>(self, f: fn[Env](T) -> ()) {\n for i in 0..self.len() {\n f(self[i]);\n }\n }\n\n /// Applies a function to each element of this array along with its index.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let mut b = [0; 3];\n /// a.for_eachi(|i, x| {\n /// b[i] = x;\n /// });\n /// assert_eq(a, b);\n /// ```\n pub fn for_eachi<Env>(self, f: fn[Env](u32, T) -> ()) {\n for i in 0..self.len() {\n f(i, self[i]);\n }\n }\n\n /// Applies a function to each element of the array, returning the final accumulated value. The first\n /// parameter is the initial value.\n ///\n /// This is a left fold, so the given function will be applied to the accumulator and first element of\n /// the array, then the second, and so on. For a given call the expected result would be equivalent to:\n ///\n /// ```rust\n /// let a1 = [1];\n /// let a2 = [1, 2];\n /// let a3 = [1, 2, 3];\n ///\n /// let f = |a, b| a - b;\n /// a1.fold(10, f); //=> f(10, 1)\n /// a2.fold(10, f); //=> f(f(10, 1), 2)\n /// a3.fold(10, f); //=> f(f(f(10, 1), 2), 3)\n ///\n /// assert_eq(a3.fold(10, f), 10 - 1 - 2 - 3);\n /// ```\n pub fn fold<U, Env>(self, mut accumulator: U, f: fn[Env](U, T) -> U) -> U {\n for elem in self {\n accumulator = f(accumulator, elem);\n }\n accumulator\n }\n\n /// Same as fold, but uses the first element as the starting element.\n ///\n /// Requires the input array to be non-empty.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr = [1, 2, 3, 4];\n /// let reduced = arr.reduce(|a, b| a + b);\n /// assert(reduced == 10);\n /// }\n /// ```\n pub fn reduce<Env>(self, f: fn[Env](T, T) -> T) -> T {\n let mut accumulator = self[0];\n for i in 1..self.len() {\n accumulator = f(accumulator, self[i]);\n }\n accumulator\n }\n\n /// Returns true if all the elements in this array satisfy the given predicate.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 2];\n /// let all = arr.all(|a| a == 2);\n /// assert(all);\n /// }\n /// ```\n pub fn all<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = true;\n for elem in self {\n ret &= predicate(elem);\n }\n ret\n }\n\n /// Returns true if any of the elements in this array satisfy the given predicate.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 5];\n /// let any = arr.any(|a| a == 5);\n /// assert(any);\n /// }\n /// ```\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n for elem in self {\n ret |= predicate(elem);\n }\n ret\n }\n\n /// Concatenates this array with another array.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr1 = [1, 2, 3, 4];\n /// let arr2 = [6, 7, 8, 9, 10, 11];\n /// let concatenated_arr = arr1.concat(arr2);\n /// assert(concatenated_arr == [1, 2, 3, 4, 6, 7, 8, 9, 10, 11]);\n /// }\n /// ```\n pub fn concat<let M: u32>(self, array2: [T; M]) -> [T; N + M] {\n let mut result = [crate::mem::zeroed(); N + M];\n for i in 0..N {\n result[i] = self[i];\n }\n for i in 0..M {\n result[i + N] = array2[i];\n }\n result\n }\n}\n\nimpl<T, let N: u32> [T; N]\nwhere\n T: Ord + Eq,\n{\n /// Returns a new sorted array. The original array remains untouched. Notice that this function will\n /// only work for arrays of fields or integers, not for any arbitrary type. This is because the sorting\n /// logic it uses internally is optimized specifically for these values. If you need a sort function to\n /// sort any type, you should use the [`Self::sort_via`] function.\n ///\n /// Example:\n ///\n /// ```rust\n /// fn main() {\n /// let arr = [42, 32];\n /// let sorted = arr.sort();\n /// assert(sorted == [32, 42]);\n /// }\n /// ```\n pub fn sort(self) -> Self {\n self.sort_via(|a, b| a <= b)\n }\n}\n\nimpl<T, let N: u32> [T; N]\nwhere\n T: Eq,\n{\n /// Returns a new sorted array by sorting it with a custom comparison function.\n /// The original array remains untouched.\n /// The ordering function must return true if the first argument should be sorted to be before the second argument or is equal to the second argument.\n ///\n /// Using this method with an operator like `<` that does not return `true` for equal values will result in an assertion failure for arrays with equal elements.\n ///\n /// Example:\n ///\n /// ```rust\n /// fn main() {\n /// let arr = [42, 32]\n /// let sorted_ascending = arr.sort_via(|a, b| a <= b);\n /// assert(sorted_ascending == [32, 42]); // verifies\n ///\n /// let sorted_descending = arr.sort_via(|a, b| a >= b);\n /// assert(sorted_descending == [32, 42]); // does not verify\n /// }\n /// ```\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n // Safety: `sorted` array is checked to be:\n // a. a permutation of `input`'s elements\n // b. satisfying the predicate `ordering`\n let sorted = unsafe { quicksort::quicksort(self, ordering) };\n\n if !is_unconstrained() {\n for i in 0..N - 1 {\n assert(\n ordering(sorted[i], sorted[i + 1]),\n \"Array has not been sorted correctly according to `ordering`.\",\n );\n }\n check_shuffle::check_shuffle(self, sorted);\n }\n sorted\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Converts a byte array of type `[u8; N]` to a string. Note that this performs no UTF-8 validation -\n /// the given array is interpreted as-is as a string.\n ///\n /// Example:\n ///\n /// ```rust\n /// fn main() {\n /// let hi = [104, 105].as_str_unchecked();\n /// assert_eq(hi, \"hi\");\n /// }\n /// ```\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n /// Returns an array of the string bytes.\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n\nmod test {\n #[test]\n fn map_empty() {\n assert_eq([].map(|x| x + 1), []);\n }\n\n global arr_with_100_values: [u32; 100] = [\n 42, 123, 87, 93, 48, 80, 50, 5, 104, 84, 70, 47, 119, 66, 71, 121, 3, 29, 42, 118, 2, 54,\n 89, 44, 81, 0, 26, 106, 68, 96, 84, 48, 95, 54, 45, 32, 89, 100, 109, 19, 37, 41, 19, 98,\n 53, 114, 107, 66, 6, 74, 13, 19, 105, 64, 123, 28, 44, 50, 89, 58, 123, 126, 21, 43, 86, 35,\n 21, 62, 82, 0, 108, 120, 72, 72, 62, 80, 12, 71, 70, 86, 116, 73, 38, 15, 127, 81, 30, 8,\n 125, 28, 26, 69, 114, 63, 27, 28, 61, 42, 13, 32,\n ];\n global expected_with_100_values: [u32; 100] = [\n 0, 0, 2, 3, 5, 6, 8, 12, 13, 13, 15, 19, 19, 19, 21, 21, 26, 26, 27, 28, 28, 28, 29, 30, 32,\n 32, 35, 37, 38, 41, 42, 42, 42, 43, 44, 44, 45, 47, 48, 48, 50, 50, 53, 54, 54, 58, 61, 62,\n 62, 63, 64, 66, 66, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 80, 80, 81, 81, 82, 84, 84, 86,\n 86, 87, 89, 89, 89, 93, 95, 96, 98, 100, 104, 105, 106, 107, 108, 109, 114, 114, 116, 118,\n 119, 120, 121, 123, 123, 123, 125, 126, 127,\n ];\n fn sort_u32(a: u32, b: u32) -> bool {\n a <= b\n }\n\n #[test]\n fn test_sort() {\n let mut arr: [u32; 7] = [3, 6, 8, 10, 1, 2, 1];\n\n let sorted = arr.sort();\n\n let expected: [u32; 7] = [1, 1, 2, 3, 6, 8, 10];\n assert(sorted == expected);\n }\n\n #[test]\n fn test_sort_100_values() {\n let mut arr: [u32; 100] = [\n 42, 123, 87, 93, 48, 80, 50, 5, 104, 84, 70, 47, 119, 66, 71, 121, 3, 29, 42, 118, 2,\n 54, 89, 44, 81, 0, 26, 106, 68, 96, 84, 48, 95, 54, 45, 32, 89, 100, 109, 19, 37, 41,\n 19, 98, 53, 114, 107, 66, 6, 74, 13, 19, 105, 64, 123, 28, 44, 50, 89, 58, 123, 126, 21,\n 43, 86, 35, 21, 62, 82, 0, 108, 120, 72, 72, 62, 80, 12, 71, 70, 86, 116, 73, 38, 15,\n 127, 81, 30, 8, 125, 28, 26, 69, 114, 63, 27, 28, 61, 42, 13, 32,\n ];\n\n let sorted = arr.sort();\n\n let expected: [u32; 100] = [\n 0, 0, 2, 3, 5, 6, 8, 12, 13, 13, 15, 19, 19, 19, 21, 21, 26, 26, 27, 28, 28, 28, 29, 30,\n 32, 32, 35, 37, 38, 41, 42, 42, 42, 43, 44, 44, 45, 47, 48, 48, 50, 50, 53, 54, 54, 58,\n 61, 62, 62, 63, 64, 66, 66, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 80, 80, 81, 81, 82,\n 84, 84, 86, 86, 87, 89, 89, 89, 93, 95, 96, 98, 100, 104, 105, 106, 107, 108, 109, 114,\n 114, 116, 118, 119, 120, 121, 123, 123, 123, 125, 126, 127,\n ];\n assert(sorted == expected);\n }\n\n #[test]\n fn test_sort_100_values_comptime() {\n let sorted = arr_with_100_values.sort();\n assert(sorted == expected_with_100_values);\n }\n\n #[test]\n fn test_sort_via() {\n let mut arr: [u32; 7] = [3, 6, 8, 10, 1, 2, 1];\n\n let sorted = arr.sort_via(sort_u32);\n\n let expected: [u32; 7] = [1, 1, 2, 3, 6, 8, 10];\n assert(sorted == expected);\n }\n\n #[test]\n fn test_sort_via_100_values() {\n let mut arr: [u32; 100] = [\n 42, 123, 87, 93, 48, 80, 50, 5, 104, 84, 70, 47, 119, 66, 71, 121, 3, 29, 42, 118, 2,\n 54, 89, 44, 81, 0, 26, 106, 68, 96, 84, 48, 95, 54, 45, 32, 89, 100, 109, 19, 37, 41,\n 19, 98, 53, 114, 107, 66, 6, 74, 13, 19, 105, 64, 123, 28, 44, 50, 89, 58, 123, 126, 21,\n 43, 86, 35, 21, 62, 82, 0, 108, 120, 72, 72, 62, 80, 12, 71, 70, 86, 116, 73, 38, 15,\n 127, 81, 30, 8, 125, 28, 26, 69, 114, 63, 27, 28, 61, 42, 13, 32,\n ];\n\n let sorted = arr.sort_via(sort_u32);\n\n let expected: [u32; 100] = [\n 0, 0, 2, 3, 5, 6, 8, 12, 13, 13, 15, 19, 19, 19, 21, 21, 26, 26, 27, 28, 28, 28, 29, 30,\n 32, 32, 35, 37, 38, 41, 42, 42, 42, 43, 44, 44, 45, 47, 48, 48, 50, 50, 53, 54, 54, 58,\n 61, 62, 62, 63, 64, 66, 66, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 80, 80, 81, 81, 82,\n 84, 84, 86, 86, 87, 89, 89, 89, 93, 95, 96, 98, 100, 104, 105, 106, 107, 108, 109, 114,\n 114, 116, 118, 119, 120, 121, 123, 123, 123, 125, 126, 127,\n ];\n assert(sorted == expected);\n }\n\n #[test]\n fn mapi_empty() {\n assert_eq([].mapi(|i, x| i * x + 1), []);\n }\n\n #[test]\n fn for_each_empty() {\n let empty_array: [Field; 0] = [];\n empty_array.for_each(|_x| assert(false));\n }\n\n #[test]\n fn for_eachi_empty() {\n let empty_array: [Field; 0] = [];\n empty_array.for_eachi(|_i, _x| assert(false));\n }\n\n #[test]\n fn map_example() {\n let a = [1, 2, 3];\n let b = a.map(|a| a * 2);\n assert_eq(b, [2, 4, 6]);\n }\n\n #[test]\n fn mapi_example() {\n let a = [1, 2, 3];\n let b = a.mapi(|i, a| i + a * 2);\n assert_eq(b, [2, 5, 8]);\n }\n\n #[test]\n fn for_each_example() {\n let a = [1, 2, 3];\n let mut b = [0, 0, 0];\n let b_ref = &mut b;\n let mut i = 0;\n let i_ref = &mut i;\n a.for_each(|x| {\n b_ref[*i_ref] = x * 2;\n *i_ref += 1;\n });\n assert_eq(b, [2, 4, 6]);\n assert_eq(i, 3);\n }\n\n #[test]\n fn for_eachi_example() {\n let a = [1, 2, 3];\n let mut b = [0, 0, 0];\n let b_ref = &mut b;\n a.for_eachi(|i, a| { b_ref[i] = i + a * 2; });\n assert_eq(b, [2, 5, 8]);\n }\n\n #[test]\n fn concat() {\n let arr1 = [1, 2, 3, 4];\n let arr2 = [6, 7, 8, 9, 10, 11];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, [1, 2, 3, 4, 6, 7, 8, 9, 10, 11]);\n }\n\n #[test]\n fn concat_zero_length_with_something() {\n let arr1 = [];\n let arr2 = [1];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, [1]);\n }\n\n #[test]\n fn concat_something_with_zero_length() {\n let arr1 = [1];\n let arr2 = [];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, [1]);\n }\n\n #[test]\n fn concat_zero_lengths() {\n let arr1: [Field; 0] = [];\n let arr2: [Field; 0] = [];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, []);\n }\n}\n"
|
|
4537
4537
|
},
|
|
4538
|
-
"
|
|
4538
|
+
"308": {
|
|
4539
4539
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
|
|
4540
4540
|
"source": "use crate::{\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{\n AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1, MAX_FIELD_VALUE,\n MAX_PROTOCOL_CONTRACTS,\n },\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, ToPoint, TpkM},\n traits::{Deserialize, Empty, FromField, Packable, Serialize, ToField},\n utils::field::{pow, sqrt},\n};\n\n// We do below because `use crate::point::Point;` does not work\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\nuse crate::public_keys::AddressPoint;\nuse std::{\n embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key},\n ops::Add,\n};\nuse std::meta::derive;\n\n// Aztec address\n#[derive(Deserialize, Eq, Packable, Serialize)]\npub struct AztecAddress {\n pub inner: Field,\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n /// Returns an address's `AddressPoint`, which can be used to create shared secrets with the owner\n /// of the address. If the address is invalid (i.e. it is not a properly derived Aztec address), then this\n /// returns `Option::none()`, and no shared secrets can be created.\n pub fn to_address_point(self) -> Option<AddressPoint> {\n // We compute the address point by taking our address, setting it to x, and then solving for y in the\n // equation which defines our bn curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = pow(x, 3) - 17;\n\n // An invalid AztecAddress is one for which no y coordinate satisfies the curve equation, which we'll\n // identify by proving that the square root of y_squared does not exist.\n let mut y_opt = sqrt(y_squared);\n if y_opt.is_none() {\n Option::none()\n } else {\n let mut y = y_opt.unwrap();\n\n // If we get a negative y coordinate (any y where y > MAX_FIELD_VALUE / 2), we pin it to the\n // positive one (any value where y <= MAX_FIELD_VALUE / 2) by subtracting it from the Field modulus\n // note: The field modulus is MAX_FIELD_VALUE + 1\n if (!(y.lt(MAX_FIELD_VALUE / 2) | y.eq(MAX_FIELD_VALUE / 2))) {\n y = (MAX_FIELD_VALUE + 1) - y;\n }\n\n Option::some(\n AddressPoint { inner: Point { x: self.inner, y, is_infinite: false } },\n )\n }\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n let public_keys_hash = public_keys.hash();\n\n let pre_address = poseidon2_hash_with_separator(\n [public_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n );\n\n let address_point = derive_public_key(EmbeddedCurveScalar::from_field(pre_address)).add(\n public_keys.ivpk_m.to_point(),\n );\n\n // Note that our address is only the x-coordinate of the full address_point. This is okay because when people want to encrypt something and send it to us\n // they can recover our full point using the x-coordinate (our address itself). To do this, they recompute the y-coordinate according to the equation y^2 = x^3 - 17.\n // When they do this, they may get a positive y-coordinate (a value that is less than or equal to MAX_FIELD_VALUE / 2) or\n // a negative y-coordinate (a value that is more than MAX_FIELD_VALUE), and we cannot dictate which one they get and hence the recovered point may sometimes be different than the one\n // our secret can decrypt. Regardless though, they should and will always encrypt using point with the positive y-coordinate by convention.\n // This ensures that everyone encrypts to the same point given an arbitrary x-coordinate (address). This is allowed because even though our original point may not have a positive y-coordinate,\n // with our original secret, we will be able to derive the secret to the point with the flipped (and now positive) y-coordinate that everyone encrypts to.\n AztecAddress::from_field(address_point.x)\n }\n\n pub fn compute_from_class_id(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n salted_initialization_hash,\n );\n\n AztecAddress::compute(public_keys, partial_address)\n }\n\n pub fn is_protocol_contract(self) -> bool {\n self.inner.lt(MAX_PROTOCOL_CONTRACTS as Field)\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys() {\n let public_keys = PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: 0x22f7fcddfa3ce3e8f0cc8e82d7b94cdd740afa3e77f8e4a63ea78a239432dcab,\n y: 0x0471657de2b6216ade6c506d28fbc22ba8b8ed95c871ad9f3e3984e90d9723a7,\n is_infinite: false,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: 0x111223493147f6785514b1c195bb37a2589f22a6596d30bb2bb145fdc9ca8f1e,\n y: 0x273bbffd678edce8fe30e0deafc4f66d58357c06fd4a820285294b9746c3be95,\n is_infinite: false,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: 0x09115c96e962322ffed6522f57194627136b8d03ac7469109707f5e44190c484,\n y: 0x0c49773308a13d740a7f0d4f0e6163b02c5a408b6f965856b6a491002d073d5b,\n is_infinite: false,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: 0x00d3d81beb009873eb7116327cf47c612d5758ef083d4fda78e9b63980b2a762,\n y: 0x2f567d22d2b02fe1f4ad42db9d58a36afd1983e7e2909d1cab61cafedad6193a,\n is_infinite: false,\n },\n },\n };\n\n let partial_address = PartialAddress::from_field(\n 0x0a7c585381b10f4666044266a02405bf6e01fa564c8517d4ad5823493abd31de,\n );\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // The following value was generated by `derivation.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_computed_address_from_partial_and_pubkeys =\n 0x24e4646f58b9fbe7d38e317db8d5636c423fbbdfbe119fc190fe9c64747e0c62;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkeys);\n}\n\n#[test]\nfn compute_preaddress_from_partial_and_pub_keys() {\n let pre_address = poseidon2_hash_with_separator([1, 2], GENERATOR_INDEX__CONTRACT_ADDRESS_V1);\n let expected_computed_preaddress_from_partial_and_pubkey =\n 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(pre_address == expected_computed_preaddress_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n // We use the AZTEC_ADDRESS_LENGTH constant to ensure that there is a match between the derived trait\n // implementation and the constant.\n let serialized: [Field; AZTEC_ADDRESS_LENGTH] = address.serialize();\n let deserialized = AztecAddress::deserialize(serialized);\n assert_eq(address, deserialized);\n}\n\n#[test]\nfn to_address_point_valid() {\n // x = 8 where x^3 - 17 = 512 - 17 = 495, which is a residue in this field\n let address = AztecAddress { inner: 8 };\n let maybe_point = address.to_address_point();\n assert(maybe_point.is_some());\n\n let point = maybe_point.unwrap().inner;\n // check that x is preserved\n assert_eq(point.x, Field::from(8));\n\n // check that the curve equation holds: y^2 == x^3 - 17\n assert_eq(pow(point.y, 2), pow(point.x, 3) - 17);\n}\n\n#[test]\nunconstrained fn to_address_point_invalid() {\n // x = 3 where x^3 - 17 = 27 - 17 = 10, which is a non-residue in this field\n let address = AztecAddress { inner: 3 }; //\n let maybe_point = address.to_address_point();\n assert(maybe_point.is_none());\n}\n"
|
|
4541
4541
|
},
|
|
4542
|
-
"
|
|
4542
|
+
"329": {
|
|
4543
4543
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
|
|
4544
4544
|
"source": "// TODO: Expose other wrapped functions than debug (info, warn)\n// ['silent', 'fatal', 'error', 'warn', 'info', 'verbose', 'debug', 'trace']\n\npub global SILENT_LOG_LEVEL: u8 = 0;\npub global FATAL_LOG_LEVEL: u8 = 1;\npub global ERROR_LOG_LEVEL: u8 = 2;\npub global WARN_LOG_LEVEL: u8 = 3;\npub global INFO_LOG_LEVEL: u8 = 4;\npub global VERBOSE_LOG_LEVEL: u8 = 5;\npub global DEBUG_LOG_LEVEL: u8 = 6;\npub global TRACE_LOG_LEVEL: u8 = 7;\n\n/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Same as debug_log, but allows to customize the log level.\n/// Consider changing just to 'log'\npub fn debug_log_with_level<let N: u32>(log_level: u8, msg: str<N>) {\n debug_log_format_with_level(log_level, msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_array_oracle_wrapper(DEBUG_LOG_LEVEL, msg, args) };\n}\n\n/// Same as debug_log_format, but allows to customize the log level.\n/// Consider changing just to 'log_format'\npub fn debug_log_format_with_level<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field; N],\n) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_array_oracle_wrapper(log_level, msg, args) };\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` slice.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole slice: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format_slice<let M: u32>(log_level: u8, msg: str<M>, args: [Field]) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_slice_oracle_wrapper(log_level, msg, args) };\n}\n\n// We provide two versions of the debug log oracle: one that takes args as a slice and another one that takes args as an array.\n// We do this since conversion from array to slice generates overhead in public functions, since opcodes need to be emitted for the conversion.\n// By exposing the two flavors, we avoid conversions since the AVM is able to handle both arrays an slices in this oracle.\n\nunconstrained fn debug_log_slice_oracle_wrapper<let M: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field],\n) {\n debug_log_slice_oracle(log_level, msg, args);\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(utilityDebugLog)]\nunconstrained fn debug_log_slice_oracle<let M: u32>(log_level: u8, msg: str<M>, args: [Field]) {}\n\nunconstrained fn debug_log_array_oracle_wrapper<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_array_oracle(log_level, msg, N, args);\n}\n\n#[oracle(utilityDebugLog)]\nunconstrained fn debug_log_array_oracle<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n length: u32,\n args: [Field; N],\n) {}\n"
|
|
4545
4545
|
},
|
|
4546
|
-
"
|
|
4546
|
+
"339": {
|
|
4547
4547
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
|
|
4548
4548
|
"source": "mod poseidon2_chunks;\n\nuse crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_log::{PrivateLog, PrivateLogData},\n transaction::tx_request::TxRequest,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE,\n GENERATOR_INDEX__OUTER_NULLIFIER, GENERATOR_INDEX__SILOED_NOTE_HASH,\n GENERATOR_INDEX__UNIQUE_NOTE_HASH, NULL_MSG_SENDER_CONTRACT_ADDRESS, TWO_POW_64,\n },\n merkle_tree::root_from_sibling_path,\n messaging::l2_to_l1_message::L2ToL1Message,\n poseidon2::Poseidon2Sponge,\n side_effect::{Counted, Scoped},\n traits::{FromField, Hash, ToField},\n utils::field::{field_from_bytes, field_from_bytes_32_trunc},\n};\n\npub use poseidon2_chunks::poseidon2_absorb_in_chunks_existing_sponge;\nuse poseidon2_chunks::poseidon2_absorb_in_chunks;\nuse std::embedded_curve_ops::EmbeddedCurveScalar;\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256::digest(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(note_nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [note_nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_nonce_and_unique_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n let note_nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(note_nonce, siloed_note_hash)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n compute_nonce_and_unique_note_hash(siloed_note_hash, first_nullifier, note_index_in_tx)\n }\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: Scoped<Counted<NoteHash>>) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.innermost())\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: Scoped<Counted<Nullifier>>) -> Field {\n let value = nullifier.innermost().value;\n // Q: shouldn't we be checking whether the _whole_ nullifier is empty?\n // A: We don't have to. The init and inner circuits add contract address to non-empty nullifiers.\n // So we know we should silo it if the contract address is not empty.\n if nullifier.contract_address.is_zero() {\n value // Return `value` instead of 0 because an already-siloed nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, value)\n }\n}\n\npub fn create_protocol_nullifier(tx_request: TxRequest) -> Scoped<Counted<Nullifier>> {\n Nullifier { value: tx_request.hash(), note_hash: 0 }.count(1).scope(\n NULL_MSG_SENDER_CONTRACT_ADDRESS,\n )\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<Counted<PrivateLogData>>) -> PrivateLog {\n let log = private_log.innermost().log;\n if private_log.contract_address.is_zero() {\n log\n } else {\n let mut fields = log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog::new(fields, log.length)\n }\n}\n\npub fn compute_contract_class_log_hash(log: [Field; CONTRACT_CLASS_LOG_SIZE_IN_FIELDS]) -> Field {\n poseidon2_hash(log)\n}\n\npub fn compute_app_secret_key(\n master_secret_key: EmbeddedCurveScalar,\n app_address: AztecAddress,\n app_secret_generator: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [master_secret_key.hi, master_secret_key.lo, app_address.to_field()],\n app_secret_generator,\n )\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let contract_address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n let recipient_bytes: [u8; 20] = recipient.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let rollup_version_id_bytes: [u8; 32] = rollup_version_id.to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n\n let mut bytes: [u8; 148] = std::mem::zeroed();\n for i in 0..32 {\n bytes[i] = contract_address_bytes[i];\n bytes[i + 32] = rollup_version_id_bytes[i];\n // 64 - 84 are for recipient.\n bytes[i + 84] = chain_id_bytes[i];\n bytes[i + 116] = content_bytes[i];\n }\n\n for i in 0..20 {\n bytes[64 + i] = recipient_bytes[i];\n }\n\n sha256_to_field(bytes)\n}\n\npub fn silo_l2_to_l1_message(\n msg: Scoped<L2ToL1Message>,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.inner.recipient,\n msg.inner.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n/// Computes sha256 hash of 2 input fields.\n///\n/// @returns A truncated field (i.e., the first byte is always 0).\npub fn accumulate_sha256(v0: Field, v1: Field) -> Field {\n // Concatenate two fields into 32 x 2 = 64 bytes\n let v0_as_bytes: [u8; 32] = v0.to_be_bytes();\n let v1_as_bytes: [u8; 32] = v1.to_be_bytes();\n let hash_input_flattened = v0_as_bytes.concat(v1_as_bytes);\n\n sha256_to_field(hash_input_flattened)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n poseidon::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n let inputs_with_separator = [separator.to_field()].concat(inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n/// Computes a Poseidon2 hash over a dynamic-length subarray of the given input.\n/// Only the first `in_len` fields of `input` are absorbed; any remaining fields are ignored.\n/// The caller is responsible for ensuring that the input is padded with zeros if required.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_in_chunks(input, in_len);\n sponge.squeeze()\n}\n\n// NB the below is the same as poseidon::poseidon2::Poseidon2::hash(), but replacing a range check with a bit check,\n// and absorbing in chunks of 3 below.\n#[no_predicates]\npub fn poseidon2_cheaper_variable_hash<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_in_chunks(input, in_len);\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if in_len != N {\n sponge.absorb(1);\n }\n sponge.squeeze()\n}\n\n// This function is unconstrained because it is intended to be used in unconstrained context only as\n// in constrained contexts it would be too inefficient.\npub unconstrained fn poseidon2_hash_with_separator_bounded_vec<let N: u32, T>(\n inputs: BoundedVec<Field, N>,\n separator: T,\n) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs.get(i));\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n let sub_chunk_hash = poseidon2_hash_subarray(input, in_len);\n let fixed_len_hash = poseidon::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(sub_chunk_hash == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_matches_variable() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n for i in 0..in_len {\n input[i] = 3;\n }\n let variable_chunk_hash = poseidon2_cheaper_variable_hash(input, in_len);\n let variable_len_hash = poseidon::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = sha256::digest(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0x3b18c58c739716e76429634a61375c45b3b5cd470c22ab6d3e14cee23dd992);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0xaab2a5828156782b12a1dc6f336e2bc627eb1b9514b02d511f66296990c050);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n L2ToL1Message { recipient: EthAddress::from_field(1), content: 2 }.scope(\n AztecAddress::from_field(3),\n ),\n version,\n chainId,\n );\n\n // The following value was generated by `yarn-project/stdlib/src/hash/hash.test.ts`\n let hash_from_typescript = 0x0081edf209e087ad31b3fd24263698723d57190bd1d6e9fe056fc0c0a68ee661;\n\n assert_eq(hash, hash_from_typescript);\n}\n\n#[test]\nunconstrained fn poseidon2_hash_with_separator_bounded_vec_matches_non_bounded_vec_version() {\n let inputs = BoundedVec::<Field, 4>::from_array([1, 2, 3]);\n let separator = 42;\n\n // Hash using bounded vec version\n let bounded_result = poseidon2_hash_with_separator_bounded_vec(inputs, separator);\n\n // Hash using regular version\n let regular_result = poseidon2_hash_with_separator([1, 2, 3], separator);\n\n // Results should match\n assert_eq(bounded_result, regular_result);\n}\n"
|
|
4549
4549
|
},
|
|
4550
|
-
"
|
|
4550
|
+
"352": {
|
|
4551
4551
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr",
|
|
4552
4552
|
"source": "use utils::derive_serialization_quotes;\n\npub mod utils;\n\n/// Generates the generic parameter declarations for a struct's trait implementation.\n///\n/// This function takes a struct type definition and generates the generic parameter declarations\n/// that go after the `impl` keyword. For example, given a struct with generics `N: u32` and `T`,\n/// it generates `<let N: u32, T>`.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate generic declarations for\n///\n/// # Returns\n/// A quoted code block containing the generic parameter declarations, or an empty quote if the struct\n/// has no generic parameters\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Container<T, let N: u32> {\n/// items: [T; N],\n/// count: u32\n/// }\n/// ```\n///\n/// This function generates:\n/// ```\n/// <let N: u32, T>\n/// ```\ncomptime fn get_generics_declarations(s: TypeDefinition) -> Quoted {\n let generics = s.generics();\n\n if generics.len() > 0 {\n let generics_declarations_items = generics\n .map(|(name, maybe_integer_typ)| {\n // The second item in the generics tuple is an Option of an integer type that is Some only if\n // the generic is numeric.\n if maybe_integer_typ.is_some() {\n // The generic is numeric, so we return a quote defined as e.g. \"let N: u32\"\n let integer_type = maybe_integer_typ.unwrap();\n quote {let $name: $integer_type}\n } else {\n // The generic is not numeric, so we return a quote containing the name of the generic (e.g. \"T\")\n quote {$name}\n }\n })\n .join(quote {,});\n quote {<$generics_declarations_items>}\n } else {\n // The struct doesn't have any generics defined, so we just return an empty quote.\n quote {}\n }\n}\n\n/// Generates the `where` clause for a trait implementation that constrains non-numeric generic type parameters.\n///\n/// This function takes a struct type definition and a trait name, and generates a `where` clause that\n/// requires all non-numeric generic type parameters to implement the specified trait.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate the where clause for\n/// - `trait_name`: The name of the trait that non-numeric generic parameters must implement\n///\n/// # Returns\n/// A quoted code block containing the where clause, or an empty quote if the struct has no non-numeric\n/// generic parameters\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Container<T, let N: u32> {\n/// items: [T; N],\n/// count: u32\n/// }\n/// ```\n///\n/// And trait name \"Serialize\", this function generates:\n/// ```\n/// where T: Serialize\n/// ```\ncomptime fn get_where_trait_clause(s: TypeDefinition, trait_name: Quoted) -> Quoted {\n let generics = s.generics();\n\n // The second item in the generics tuple is an Option of an integer type that is Some only if the generic is\n // numeric.\n let non_numeric_generics =\n generics.filter(|(_, maybe_integer_typ)| maybe_integer_typ.is_none());\n\n if non_numeric_generics.len() > 0 {\n let non_numeric_generics_declarations =\n non_numeric_generics.map(|(name, _)| quote {$name: $trait_name}).join(quote {,});\n quote {where $non_numeric_generics_declarations}\n } else {\n // There are no non-numeric generics, so we return an empty quote.\n quote {}\n }\n}\n\n/// Generates a `Serialize` trait implementation for a struct type.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A quoted code block containing the trait implementation\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Log<N> {\n/// fields: [Field; N],\n/// length: u32\n/// }\n/// ```\n///\n/// This function generates code equivalent to:\n/// ```\n/// impl<let N: u32> Serialize for Log<N> {\n/// let N: u32 = <[Field; N] as Serialize>::N + <u32 as Serialize>::N;\n///\n/// #[inline_always]\n/// fn serialize(self) -> [Field; Self::N] {\n/// let mut serialized_params = [0; _];\n/// let mut offset = 0;\n///\n/// let serialized_member = Serialize::serialize(self.fields);\n/// let serialized_member_len = <[Field; N] as Serialize>::N;\n/// for i in 0..serialized_member_len {\n/// serialized_params[i + offset] = serialized_member[i];\n/// }\n/// offset += serialized_member_len;\n///\n/// let serialized_member = Serialize::serialize(self.length);\n/// let serialized_member_len = <u32 as Serialize>::N;\n/// for i in 0..serialized_member_len {\n/// serialized_params[i + offset] = serialized_member[i];\n/// }\n/// offset += serialized_member_len;\n///\n/// serialized_params\n/// }\n/// }\n/// ```\npub comptime fn derive_serialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n\n // We care only about the name and type so we drop the last item of the tuple\n let params = nested_struct.0.fields(nested_struct.1).map(|(name, typ, _)| (name, typ));\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Serialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_serialize_clause = get_where_trait_clause(s, quote {Serialize});\n\n let (function_body, params_len_quote, serialized_params_name) =\n derive_serialization_quotes(params, true);\n\n quote {\n impl$generics_declarations $crate::traits::Serialize for $typ\n $where_serialize_clause\n {\n let N: u32 = $params_len_quote;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n $function_body\n\n $serialized_params_name\n }\n }\n }\n}\n\n/// Generates a `Deserialize` trait implementation for a given struct `s`.\n///\n/// # Arguments\n/// * `s` - The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A `Quoted` block containing the generated trait implementation\n///\n/// # Requirements\n/// Each struct member type must implement the `Deserialize` trait (it gets used in the generated code).\n///\n/// # Example\n/// For a struct like:\n/// ```\n/// struct MyStruct {\n/// x: AztecAddress,\n/// y: Field,\n/// }\n/// ```\n///\n/// This generates:\n/// ```\n/// impl Deserialize for MyStruct {\n/// let N: u32 = <AztecAddress as Deserialize>::N + <Field as Deserialize>::N;\n///\n/// fn deserialize(serialized: [Field; Self::N]) -> Self {\n/// let mut offset = 0;\n/// let mut member_fields = [0; <AztecAddress as Deserialize>::N];\n/// for i in 0..<AztecAddress as Deserialize>::N {\n/// member_fields[i] = serialized[i + offset];\n/// }\n/// let x = <AztecAddress as Deserialize>::deserialize(member_fields);\n/// offset += <AztecAddress as Deserialize>::N;\n///\n/// let mut member_fields = [0; <Field as Deserialize>::N];\n/// for i in 0..<Field as Deserialize>::N {\n/// member_fields[i] = serialized[i + offset];\n/// }\n/// let y = <Field as Deserialize>::deserialize(member_fields);\n/// offset += <Field as Deserialize>::N;\n///\n/// Self { x, y }\n/// }\n/// }\n/// ```\npub(crate) comptime fn derive_deserialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Deserialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_deserialize_clause = get_where_trait_clause(s, quote {Deserialize});\n\n // The following will give us:\n // <type_of_struct_member_1 as Deserialize>::N + <type_of_struct_member_2 as Deserialize>::N + ...\n // (or 0 if the struct has no members)\n let right_hand_side_of_definition_of_n = if params.len() > 0 {\n params\n .map(|(_, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n <$param_type as $crate::traits::Deserialize>::N\n }\n })\n .join(quote {+})\n } else {\n quote {0}\n };\n\n // For structs containing a single member, we can enhance performance by directly deserializing the input array,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let function_body = if params.len() > 1 {\n // This generates deserialization code for each struct member and concatenates them together.\n let deserialization_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let mut member_fields = [0; <$param_type as Deserialize>::N];\n for i in 0..<$param_type as Deserialize>::N {\n member_fields[i] = serialized[i + offset];\n }\n let $param_name = <$param_type as Deserialize>::deserialize(member_fields);\n offset += <$param_type as Deserialize>::N;\n }\n })\n .join(quote {});\n\n // We join the struct member names with a comma to be used in the `Self { ... }` syntax\n // This will give us e.g. `a, b, c` for a struct with three fields named `a`, `b`, and `c`.\n let struct_members = params\n .map(|(param_name, _, _): (Quoted, Type, Quoted)| quote { $param_name })\n .join(quote {,});\n\n quote {\n let mut offset = 0;\n\n $deserialization_of_struct_members\n\n Self { $struct_members }\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n Self { $param_name: $crate::traits::Deserialize::deserialize(serialized) }\n }\n } else {\n quote {\n Self {}\n }\n };\n\n quote {\n impl$generics_declarations $crate::traits::Deserialize for $typ\n $where_deserialize_clause\n {\n let N: u32 = $right_hand_side_of_definition_of_n;\n\n #[inline_always]\n fn deserialize(serialized: [Field; Self::N]) -> Self {\n $function_body\n }\n }\n }\n}\n\n/// Generates a `Packable` trait implementation for a given struct `s`.\n///\n/// # Arguments\n/// * `s` - The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A `Quoted` block containing the generated trait implementation\n///\n/// # Requirements\n/// Each struct member type must implement the `Packable` trait (it gets used in the generated code).\n///\n/// # Example\n/// For a struct like:\n/// ```\n/// struct MyStruct {\n/// x: AztecAddress,\n/// y: Field,\n/// }\n/// ```\n///\n/// This generates:\n/// ```\n/// impl Packable for MyStruct {\n/// let N: u32 = 2;\n///\n/// fn pack(self) -> [Field; 2] {\n/// let mut result: [Field; 2] = [0_Field; 2];\n/// let mut offset: u32 = 0_u32;\n/// let packed_member: [Field; 1] = self.x.pack();\n/// let packed_member_len: u32 = <Field as Packable>::N;\n/// for i in 0_u32..packed_member_len {\n/// {\n/// result[i + offset] = packed_member[i];\n/// }\n/// }\n/// offset = offset + packed_member_len;\n/// let packed_member: [Field; 1] = self.y.pack();\n/// let packed_member_len: u32 = <Field as Packable>::N;\n/// for i in 0_u32..packed_member_len {\n/// {\n/// result[i + offset] = packed_member[i];\n/// }\n/// }\n/// offset = offset + packed_member_len;\n/// result\n/// }\n///\n/// fn unpack(packed: [Field; 2]) -> Self {\n/// let mut offset: u32 = 0_u32;\n/// let mut member_fields: [Field; 1] = [0_Field; 1];\n/// for i in 0_u32..<AztecAddress as Packable>::N {\n/// member_fields[i] = packed[i + offset];\n/// }\n/// let x: AztecAddress = <AztecAddress as Packable>::unpack(member_fields);\n/// offset = offset + <AztecAddress as Packable>::N;\n/// let mut member_fields: [Field; 1] = [0_Field; 1];\n/// for i in 0_u32..<Field as Packable>::N {\n/// member_fields[i] = packed[i + offset];\n/// }\n/// let y: Field = <Field as Packable>::unpack(member_fields);\n/// offset = offset + <Field as Packable>::N;\n/// Self { x: x, y: y }\n/// }\n/// }\n/// ```\npub comptime fn derive_packable(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Packable` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_packable_clause = get_where_trait_clause(s, quote {Packable});\n\n // The following will give us:\n // <type_of_struct_member_1 as Packable>::N + <type_of_struct_member_2 as Packable>::N + ...\n // (or 0 if the struct has no members)\n let right_hand_side_of_definition_of_n = if params.len() > 0 {\n params\n .map(|(_, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n <$param_type as $crate::traits::Packable>::N\n }\n })\n .join(quote {+})\n } else {\n quote {0}\n };\n\n // For structs containing a single member, we can enhance performance by directly returning the packed member,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let pack_function_body = if params.len() > 1 {\n // For multiple struct members, generate packing code that:\n // 1. Packs each member\n // 2. Copies the packed fields into the result array at the correct offset\n // 3. Updates the offset for the next member\n let packing_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let packed_member = $crate::traits::Packable::pack(self.$param_name);\n let packed_member_len = <$param_type as $crate::traits::Packable>::N;\n for i in 0..packed_member_len {\n result[i + offset] = packed_member[i];\n }\n offset += packed_member_len;\n }\n })\n .join(quote {});\n\n quote {\n let mut result = [0; Self::N];\n let mut offset = 0;\n\n $packing_of_struct_members\n\n result\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n $crate::traits::Packable::pack(self.$param_name)\n }\n } else {\n quote {\n [0; Self::N]\n }\n };\n\n // For structs containing a single member, we can enhance performance by directly unpacking the input array,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let unpack_function_body = if params.len() > 1 {\n // For multiple struct members, generate unpacking code that:\n // 1. Unpacks each member\n // 2. Copies packed fields into member array at correct offset\n // 3. Updates offset for next member\n let unpacking_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let mut member_fields = [0; <$param_type as $crate::traits::Packable>::N];\n for i in 0..<$param_type as $crate::traits::Packable>::N {\n member_fields[i] = packed[i + offset];\n }\n let $param_name = <$param_type as $crate::traits::Packable>::unpack(member_fields);\n offset += <$param_type as $crate::traits::Packable>::N;\n }\n })\n .join(quote {});\n\n // We join the struct member names with a comma to be used in the `Self { ... }` syntax\n let struct_members = params\n .map(|(param_name, _, _): (Quoted, Type, Quoted)| quote { $param_name })\n .join(quote {,});\n\n quote {\n let mut offset = 0;\n $unpacking_of_struct_members\n Self { $struct_members }\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n Self { $param_name: $crate::traits::Packable::unpack(packed) }\n }\n } else {\n quote {\n Self {}\n }\n };\n\n quote {\n impl$generics_declarations $crate::traits::Packable for $typ\n $where_packable_clause\n {\n let N: u32 = $right_hand_side_of_definition_of_n;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n $pack_function_body\n }\n\n #[inline_always]\n fn unpack(packed: [Field; Self::N]) -> Self {\n $unpack_function_body\n }\n }\n }\n}\n\nmod test {\n use crate::traits::{Deserialize, Packable, Serialize};\n\n #[derive(Deserialize, Eq, Packable, Serialize)]\n pub struct Empty {}\n\n #[derive(Deserialize, Eq, Packable, Serialize)]\n pub struct Smol {\n a: Field,\n b: Field,\n }\n\n #[derive(Deserialize, Eq, Serialize)]\n pub struct HasArray {\n a: [Field; 2],\n b: bool,\n }\n\n #[derive(Deserialize, Eq, Serialize)]\n pub struct Fancier {\n a: Smol,\n b: [Field; 2],\n c: [u8; 3],\n d: str<16>,\n }\n\n #[derive(Deserialize, Eq, Packable, Serialize)]\n pub struct HasArrayWithGenerics<T, let N: u32> {\n pub fields: [T; N],\n pub length: u32,\n }\n\n #[test]\n fn serde_on_empty() {\n let original = Empty {};\n let serialized = original.serialize();\n assert_eq(serialized, [], \"Serialized does not match empty array\");\n let deserialized = Empty::deserialize(serialized);\n assert_eq(deserialized, original, \"Deserialized does not match original\");\n }\n\n #[test]\n fn packable_on_empty() {\n let original = Empty {};\n let packed = original.pack();\n assert_eq(packed, [], \"Packed does not match empty array\");\n let unpacked = Empty::unpack(packed);\n assert_eq(unpacked, original, \"Unpacked does not match original\");\n }\n\n #[test]\n fn serde_on_smol() {\n let smol = Smol { a: 1, b: 2 };\n let serialized = smol.serialize();\n assert(serialized == [1, 2], serialized);\n let deserialized = Smol::deserialize(serialized);\n assert(deserialized == smol);\n\n // None of the struct members implements the `Packable` trait so the packed and serialized data should be the same\n let packed = smol.pack();\n assert_eq(packed, serialized, \"Packed does not match serialized\");\n }\n\n #[test]\n fn serde_on_has_array() {\n let has_array = HasArray { a: [1, 2], b: true };\n let serialized = has_array.serialize();\n assert(serialized == [1, 2, 1], serialized);\n let deserialized = HasArray::deserialize(serialized);\n assert(deserialized == has_array);\n }\n\n #[test]\n fn serde_on_fancier() {\n let fancier =\n Fancier { a: Smol { a: 1, b: 2 }, b: [0, 1], c: [1, 2, 3], d: \"metaprogramming!\" };\n let serialized = fancier.serialize();\n assert(\n serialized\n == [\n 1, 2, 0, 1, 1, 2, 3, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61,\n 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x21,\n ],\n serialized,\n );\n let deserialized = Fancier::deserialize(serialized);\n assert(deserialized == fancier);\n }\n\n #[test]\n fn serde_on_contains_array_with_generics() {\n let struct_with_array_of_generics = HasArrayWithGenerics { fields: [1, 2, 3], length: 3 };\n let serialized = struct_with_array_of_generics.serialize();\n assert(serialized == [1, 2, 3, 3], serialized);\n let deserialized = HasArrayWithGenerics::deserialize(serialized);\n assert(deserialized == struct_with_array_of_generics);\n }\n\n #[test]\n fn packable_on_contains_array_with_generics() {\n let struct_with_array_of_generics = HasArrayWithGenerics { fields: [1, 2, 3], length: 3 };\n let packed = struct_with_array_of_generics.pack();\n assert(packed == [1, 2, 3, 3], packed);\n\n let unpacked = HasArrayWithGenerics::unpack(packed);\n assert(unpacked == struct_with_array_of_generics);\n }\n\n}\n"
|
|
4553
4553
|
},
|
|
4554
|
-
"
|
|
4554
|
+
"353": {
|
|
4555
4555
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/meta/utils.nr",
|
|
4556
4556
|
"source": "/// Generates serialization code for a list of parameters and the total length of the serialized array\n///\n/// # Parameters\n/// - `params`: A list of (name, type) tuples to serialize\n/// - `use_self_prefix`: If true, parameters are accessed as `self.$param_name` (for struct members).\n/// If false, parameters are accessed directly as `$param_name` (for function parameters).\n///\n/// # Returns\n/// A tuple containing:\n/// - Quoted code that serializes the parameters into an array named `serialized_params`\n/// - Quoted code that evaluates to the total length of the serialized array\n/// - Quoted code containing the name of the serialized array\npub comptime fn derive_serialization_quotes(\n params: [(Quoted, Type)],\n use_self_prefix: bool,\n) -> (Quoted, Quoted, Quoted) {\n let prefix_quote = if use_self_prefix {\n quote { self. }\n } else {\n quote {}\n };\n\n let params_len_quote = get_params_len_quote(params);\n let serialized_params_name = quote { serialized_params };\n\n let body = if params.len() == 0 {\n quote {\n let $serialized_params_name: [Field; 0] = [];\n }\n } else if params.len() == 1 {\n // When we have only a single parameter on the input, we can enhance performance by directly returning\n // the serialized member, bypassing the need for loop-based array construction. While this optimization yields\n // significant benefits in Brillig where the loops are expected to not be optimized, it is not relevant in ACIR\n // where the loops are expected to be optimized away.\n\n let param_name = params[0].0;\n quote {\n let $serialized_params_name = $crate::traits::Serialize::serialize($prefix_quote$param_name);\n }\n } else {\n // For multiple struct members, generate serialization code that:\n // 1. Serializes each member\n // 2. Copies the serialized fields into the serialize array at the correct offset\n // 3. Updates the offset for the next member\n let serialization_of_struct_members = params\n .map(|(param_name, param_type): (Quoted, Type)| {\n quote {\n let serialized_member = $crate::traits::Serialize::serialize($prefix_quote$param_name);\n let serialized_member_len = <$param_type as $crate::traits::Serialize>::N;\n for i in 0..serialized_member_len {\n $serialized_params_name[i + offset] = serialized_member[i];\n }\n offset += serialized_member_len;\n }\n })\n .join(quote {});\n\n quote {\n let mut $serialized_params_name = [0; $params_len_quote];\n let mut offset = 0;\n\n $serialization_of_struct_members\n }\n };\n\n (body, params_len_quote, serialized_params_name)\n}\n\n/// Generates a quoted expression that computes the total serialized length of function parameters.\n///\n/// # Parameters\n/// * `params` - An array of tuples where each tuple contains a quoted parameter name and its Type. The type needs\n/// to implement the Serialize trait.\n///\n/// # Returns\n/// A quoted expression that evaluates to:\n/// * `0` if there are no parameters\n/// * `(<type1 as Serialize>::N + <type2 as Serialize>::N + ...)` for one or more parameters\npub comptime fn get_params_len_quote(params: [(Quoted, Type)]) -> Quoted {\n if params.len() == 0 {\n quote { 0 }\n } else {\n let params_quote_without_parentheses = params\n .map(|(_, param_type): (Quoted, Type)| {\n quote {\n <$param_type as $crate::traits::Serialize>::N\n }\n })\n .join(quote {+});\n quote { ($params_quote_without_parentheses) }\n }\n}\n"
|
|
4557
4557
|
},
|
|
4558
|
-
"
|
|
4558
|
+
"355": {
|
|
4559
4559
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/poseidon2.nr",
|
|
4560
4560
|
"source": "use crate::constants::TWO_POW_64;\nuse crate::traits::{Deserialize, Serialize};\nuse std::meta::derive;\n// NB: This is a clone of noir/noir-repo/noir_stdlib/src/hash/poseidon2.nr\n// It exists as we sometimes need to perform custom absorption, but the stdlib version\n// has a private absorb() method (it's also designed to just be a hasher)\n// Can be removed when standalone noir poseidon lib exists: See noir#6679\n\ncomptime global RATE: u32 = 3;\n\n#[derive(Deserialize, Eq, Serialize)]\npub struct Poseidon2Sponge {\n pub cache: [Field; 3],\n pub state: [Field; 4],\n pub cache_size: u32,\n pub squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2Sponge {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2Sponge::hash_internal(input, message_size, message_size != N)\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2Sponge {\n let mut result =\n Poseidon2Sponge { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = std::hash::poseidon2_permutation(self.state, 4);\n }\n\n pub fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n pub fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n"
|
|
4561
4561
|
},
|
|
4562
|
-
"
|
|
4562
|
+
"383": {
|
|
4563
4563
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr",
|
|
4564
4564
|
"source": "use crate::meta::{derive_deserialize, derive_packable, derive_serialize};\nuse crate::utils::field::field_from_bytes;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic\n// if a value can actually be zero. In a future refactor, we can\n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\npub trait Empty: Eq {\n fn empty() -> Self;\n\n fn is_empty(self) -> bool {\n self.eq(Self::empty())\n }\n\n // Requires this Noir fix: https://github.com/noir-lang/noir/issues/9002\n // fn assert_not_empty<let U: u32>(self, msg: str<U>) { // This msg version was failing with weird compiler errors.\n // // We provide a default impl but it's likely inefficient.\n // // The reason we include this function is because there's a lot of\n // // opportunity for optimisation on a per-struct basis.\n // // You only need to show one element is not empty to know that the whole thing\n // // is not empty.\n // // If you know an element of your struct which should always be nonempty,\n // // you can write an impl that solely checks that that element is nonempty.\n // assert(!self.is_empty(), msg);\n // }\n\n // This default impl is overwritten by types like arrays, because there's a much\n // more efficient approach.\n fn assert_empty<let S: u32>(self, msg: str<S>) {\n assert(self.is_empty(), msg);\n }\n}\n\nimpl Empty for Field {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for bool {\n #[inline_always]\n fn empty() -> Self {\n false\n }\n}\n\nimpl Empty for u1 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u16 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u128 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl<T, let N: u32> Empty for [T; N]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty(); N]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\n\nimpl<T> Empty for [T]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty()]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\nimpl<A, B> Empty for (A, B)\nwhere\n A: Empty,\n B: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n (A::empty(), B::empty())\n }\n}\n\nimpl<T> Empty for Option<T>\nwhere\n T: Eq,\n{\n #[inline_always]\n fn empty() -> Self {\n Option::none()\n }\n}\n\n// pub fn is_empty<T>(item: T) -> bool\n// where\n// T: Empty,\n// {\n// item.eq(T::empty())\n// }\n\n// pub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool\n// where\n// T: Empty,\n// {\n// array.all(|elem| is_empty(elem))\n// }\n\n// pub fn assert_empty<T>(item: T) -> ()\n// where\n// T: Empty,\n// {\n// assert(item.eq(T::empty()))\n// }\n\n// pub fn assert_empty_array<T, let N: u32>(array: [T; N]) -> ()\n// where\n// T: Empty,\n// {\n// // A cheaper option than `is_empty_array` for if you don't need to gracefully\n// // handle a bool result.\n// // Avoids the `&` operator of `is_empty_array`'s `.all()` call.\n// for i in 0..N {\n// assert(is_empty(array[i]));\n// }\n// }\n\npub trait Hash {\n fn hash(self) -> Field;\n}\n\npub trait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n #[inline_always]\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u16 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u128 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl<let N: u32> ToField for str<N> {\n #[inline_always]\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\npub trait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value != 0\n }\n}\nimpl FromField for u1 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u16 {\n fn from_field(value: Field) -> Self {\n value as u16\n }\n}\nimpl FromField for u32 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\nimpl FromField for u128 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u128\n }\n}\n\n// docs:start:serialize\n/// Trait for serializing Noir types into arrays of Fields.\n///\n/// An implementation of the Serialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait (and Deserialize) are\n/// typically used to communicate between Noir and TypeScript (via oracles and function arguments).\n///\n/// # On Following Noir's Intrinsic Serialization\n/// When calling a Noir function from TypeScript (TS), first the function arguments are serialized into an array\n/// of fields. This array is then included in the initial witness. Noir's intrinsic serialization is then used\n/// to deserialize the arguments from the witness. When the same Noir function is called from Noir this Serialize trait\n/// is used instead of the serialization in TS. For this reason we need to have a match between TS serialization,\n/// Noir's intrinsic serialization and the implementation of this trait. If there is a mismatch, the function calls\n/// fail with an arguments hash mismatch error message.\n///\n/// # Associated Constants\n/// * `N` - The length of the output Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let N: u32> Serialize for str<N> {\n/// let N: u32 = N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let bytes = self.as_bytes();\n/// let mut fields = [0; Self::N];\n/// for i in 0..bytes.len() {\n/// fields[i] = bytes[i] as Field; // Each byte gets its own Field\n/// }\n/// fields\n/// }\n/// }\n/// ```\n#[derive_via(derive_serialize)]\npub trait Serialize {\n let N: u32;\n\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let M: u32> Serialize for str<M> {\n let N: u32 = M;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let bytes = self.as_bytes();\n let mut fields = [0; Self::N];\n for i in 0..bytes.len() {\n fields[i] = bytes[i] as Field;\n }\n fields\n }\n}\n\n/// Implementation of Deserialize for BoundedVec.\n///\n/// This implementation deserializes a BoundedVec from an array of Fields. The array contains:\n/// 1. The serialized items, each taking up T::N Fields\n/// 2. The length of the BoundedVec as the last Field\n///\n/// # Type Parameters\n/// * `T` - The type of items stored in the BoundedVec, must implement Deserialize\n/// * `M` - The maximum length of the BoundedVec\n///\n/// # Fields Array Layout\n/// [item1_field1, item1_field2, ..., item2_field1, item2_field2, ..., length]\n/// Where:\n/// - itemN_fieldM: The M-th Field of the N-th item (T::N Fields per item)\n/// - length: The number of items in the BoundedVec (1 Field)\n///\n/// Total length N = T::N * M + 1, where:\n/// - T::N is the number of Fields needed to deserialize one item\n/// - M is the maximum length of the BoundedVec\n/// - +1 is for storing the length\n///\n/// # Note\n/// Not deriving this because it's not supported to call derive_deserialize on a \"remote\" struct (and it will never\n/// be supported).\nimpl<T, let M: u32> Deserialize for BoundedVec<T, M>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M + 1;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut new_bounded_vec: BoundedVec<T, M> = BoundedVec::new();\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n let len = fields[<T as Deserialize>::N * M] as u32;\n\n for i in 0..len {\n let mut nested_fields = [0; <T as Deserialize>::N];\n for j in 0..<T as Deserialize>::N {\n nested_fields[j] = fields[i * <T as Deserialize>::N + j];\n }\n\n let item = T::deserialize(nested_fields);\n new_bounded_vec.push(item);\n }\n\n new_bounded_vec\n }\n}\n\n// This may cause issues if used as program input, because noir disallows empty arrays for program input.\n// I think this is okay because I don't foresee a unit type being used as input. But leaving this comment as a hint\n// if someone does run into this in the future.\nimpl Deserialize for () {\n let N: u32 = 0;\n\n fn deserialize(_fields: [Field; Self::N]) -> Self {\n ()\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Serialize for BoundedVec<T, M>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M + 1; // +1 for the length of the BoundedVec\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let mut fields = [0; Self::N];\n\n let storage = self.storage();\n\n for i in 0..M {\n let serialized_item = storage[i].serialize();\n\n for j in 0..<T as Serialize>::N {\n fields[i * <T as Serialize>::N + j] = serialized_item[j];\n }\n }\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n fields[<T as Serialize>::N * M] = self.len() as Field;\n\n fields\n }\n}\n\n// docs:start:deserialize\n/// Trait for deserializing Noir types from arrays of Fields.\n///\n/// An implementation of the Deserialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait is typically used when\n/// deserializing return values from function calls in Noir. Since the same function could be called from TypeScript\n/// (TS), in which case the TS deserialization would get used, we need to have a match between the 2.\n///\n/// # Associated Constants\n/// * `N` - The length of the input Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let M: u32> Deserialize for str<M> {\n/// let N: u32 = M;\n///\n/// #[inline_always]\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// str::<Self::N>::from(fields.map(|value| value as u8))\n/// }\n/// }\n/// ```\n#[derive_via(derive_deserialize)]\npub trait Deserialize {\n let N: u32;\n\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let M: u32> Deserialize for str<M> {\n let N: u32 = M;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n str::<Self::N>::from(fields.map(|value| value as u8))\n }\n}\n\n/// Trait for efficiently packing and unpacking Noir types into and from arrays of Fields.\n///\n/// The `Packable` trait allows types to be serialized and deserialized with a focus on minimizing the size of\n/// the resulting Field array. This trait is used when storage efficiency is critical (e.g. when storing data\n/// in the contract's public storage).\n///\n/// # Associated Constants\n/// * `N` - The length of the Field array, known at compile time\n#[derive_via(derive_packable)]\npub trait Packable {\n let N: u32;\n\n /// Packs the current value into a compact array of `Field` elements.\n fn pack(self) -> [Field; N];\n\n /// Unpacks a compact array of `Field` elements into the original value.\n fn unpack(fields: [Field; N]) -> Self;\n}\n\n#[test]\nunconstrained fn bounded_vec_serialization() {\n // Test empty BoundedVec\n let empty_vec: BoundedVec<Field, 3> = BoundedVec::from_array([]);\n let serialized = empty_vec.serialize();\n let deserialized = BoundedVec::<Field, 3>::deserialize(serialized);\n assert_eq(empty_vec, deserialized);\n assert_eq(deserialized.len(), 0);\n\n // Test partially filled BoundedVec\n let partial_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2]]);\n let serialized = partial_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(partial_vec, deserialized);\n assert_eq(deserialized.len(), 1);\n assert_eq(deserialized.get(0), [1, 2]);\n\n // Test full BoundedVec\n let full_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2], [3, 4], [5, 6]]);\n let serialized = full_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(full_vec, deserialized);\n assert_eq(deserialized.len(), 3);\n assert_eq(deserialized.get(0), [1, 2]);\n assert_eq(deserialized.get(1), [3, 4]);\n assert_eq(deserialized.get(2), [5, 6]);\n}\n"
|
|
4565
4565
|
},
|
|
4566
|
-
"
|
|
4566
|
+
"386": {
|
|
4567
4567
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/type_serialization.nr",
|
|
4568
4568
|
"source": "use crate::traits::{Deserialize, Serialize};\n\nglobal U1_SERIALIZED_LEN: u32 = 1;\nglobal BOOL_SERIALIZED_LEN: u32 = 1;\nglobal U8_SERIALIZED_LEN: u32 = 1;\nglobal U16_SERIALIZED_LEN: u32 = 1;\nglobal U32_SERIALIZED_LEN: u32 = 1;\nglobal U64_SERIALIZED_LEN: u32 = 1;\nglobal U128_SERIALIZED_LEN: u32 = 1;\nglobal FIELD_SERIALIZED_LEN: u32 = 1;\nglobal I8_SERIALIZED_LEN: u32 = 1;\nglobal I16_SERIALIZED_LEN: u32 = 1;\nglobal I32_SERIALIZED_LEN: u32 = 1;\nglobal I64_SERIALIZED_LEN: u32 = 1;\n\nimpl Serialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> bool {\n fields[0] != 0\n }\n}\n\nimpl Serialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u1\n }\n}\n\nimpl Serialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Serialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Serialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Serialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Serialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u128\n }\n}\n\nimpl Serialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self]\n }\n}\n\nimpl Deserialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0]\n }\n}\n\nimpl Serialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as u8 as Field]\n }\n}\n\nimpl Deserialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u8 as i8\n }\n}\n\nimpl Serialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as u16 as Field]\n }\n}\n\nimpl Deserialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u16 as i16\n }\n}\n\nimpl Serialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as u32 as Field]\n }\n}\n\nimpl Deserialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u32 as i32\n }\n}\n\nimpl Serialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as u64 as Field]\n }\n}\n\nimpl Deserialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Serialize for [T; M]\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M;\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let mut result: [Field; _] = std::mem::zeroed();\n for i in 0..M {\n let serialized_t = self[i].serialize();\n for j in 0..<T as Serialize>::N {\n result[i * <T as Serialize>::N + j] = serialized_t[j];\n }\n }\n result\n }\n}\n\nimpl<T, let M: u32> Deserialize for [T; M]\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let mut result: [T; M] = std::mem::zeroed();\n reader.read_struct_array::<T, <T as Deserialize>::N, M>(Deserialize::deserialize, result)\n }\n}\n\nimpl<T> Serialize for Option<T>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N + 1;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let mut result: [Field; Self::N] = std::mem::zeroed();\n\n result[0] = if self.is_some() { 1 } else { 0 };\n\n let value_serialized = self.unwrap_unchecked().serialize();\n for i in 0..<T as Serialize>::N {\n result[1 + i] = value_serialized[i];\n }\n\n result\n }\n}\n\nimpl<T> Deserialize for Option<T>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N + 1;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n if fields[0] == 1 {\n let mut value_fields = [0; <T as Deserialize>::N];\n for i in 0..<T as Deserialize>::N {\n value_fields[i] = fields[1 + i];\n }\n\n Option::some(T::deserialize(value_fields))\n } else {\n Option::none()\n }\n }\n}\n\nmod test {\n use crate::traits::{Deserialize, Serialize};\n\n #[test]\n fn u16_serialization() {\n let a: u16 = 10;\n assert_eq(a, u16::deserialize(a.serialize()));\n }\n\n #[test]\n fn i8_serialization() {\n let a: i8 = -10;\n assert_eq(a, i8::deserialize(a.serialize()));\n }\n\n #[test]\n fn i16_serialization() {\n let a: i16 = -10;\n assert_eq(a, i16::deserialize(a.serialize()));\n }\n\n #[test]\n fn i32_serialization() {\n let a: i32 = -10;\n assert_eq(a, i32::deserialize(a.serialize()));\n }\n\n #[test]\n fn i64_serialization() {\n let a: i64 = -10;\n assert_eq(a, i64::deserialize(a.serialize()));\n }\n\n #[test]\n fn option_field_serialization() {\n let opt_some = Option::some(5);\n assert_eq(Option::<_>::deserialize(opt_some.serialize()), opt_some);\n\n let opt_none = Option::none();\n assert_eq(Option::<Field>::deserialize(opt_none.serialize()), opt_none);\n }\n\n #[test]\n fn array_serialization() {\n let array = [1, 2, 3, 4];\n\n let serialized: [Field; 4] = array.serialize();\n let deserialized: [Field; 4] = Deserialize::deserialize(serialized);\n assert_eq(deserialized, array);\n }\n\n #[test]\n fn nested_array_serialization() {\n let nested_array = [[1, 2, 3, 4], [5, 6, 7, 8]];\n\n let serialized: [Field; 8] = nested_array.serialize();\n let deserialized: [[Field; 4]; 2] = Deserialize::deserialize(serialized);\n\n assert_eq(deserialized, nested_array);\n }\n\n #[test]\n fn option_array_serialization() {\n let opt_some = Option::some([2, 5]);\n assert_eq(Option::<_>::deserialize(opt_some.serialize()), opt_some);\n\n let opt_none = Option::none();\n assert_eq(Option::<Field>::deserialize(opt_none.serialize()), opt_none);\n }\n}\n"
|
|
4569
4569
|
},
|
|
4570
|
-
"
|
|
4570
|
+
"391": {
|
|
4571
4571
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr",
|
|
4572
4572
|
"source": "global KNOWN_NON_RESIDUE: Field = 5; // This is a non-residue in Noir's native Field.\n\npub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\npub fn min(f1: Field, f2: Field) -> Field {\n if f1.lt(f2) {\n f1\n } else {\n f2\n }\n}\n\nglobal C1: u32 = 28;\nglobal C3: Field = 40770029410420498293352137776570907027550720424234931066070132305055;\nglobal C5: Field = 19103219067921713944291392827692070036145651957329286315305642004821462161904;\n\npub fn pow(x: Field, y: Field) -> Field {\n let mut r = 1 as Field;\n let b: [u1; 254] = y.to_le_bits();\n\n for i in 0..254 {\n r *= r;\n r *= (b[254 - 1 - i] as Field) * x + (1 - b[254 - 1 - i] as Field);\n }\n\n r\n}\n\n/// Returns Option::some(sqrt) if there is a square root, and Option::none() if there isn't.\npub fn sqrt(x: Field) -> Option<Field> {\n // Safety: if the hint returns the square root of x, then we simply square it\n // check the result equals x. If x is not square, we return a value that\n // enables us to prove that fact (see the `else` clause below).\n let (is_sq, maybe_sqrt) = unsafe { __sqrt(x) };\n\n if is_sq {\n let sqrt = maybe_sqrt;\n validate_sqrt_hint(x, sqrt);\n Option::some(sqrt)\n } else {\n let not_sqrt_hint = maybe_sqrt;\n validate_not_sqrt_hint(x, not_sqrt_hint);\n Option::none()\n }\n}\n\n// Boolean indicating whether Field element is a square, i.e. whether there exists a y in Field s.t. x = y*y.\nunconstrained fn is_square(x: Field) -> bool {\n let v = pow(x, -1 / 2);\n v * (v - 1) == 0\n}\n\n// Tonelli-Shanks algorithm for computing the square root of a Field element.\n// Requires C1 = max{c: 2^c divides (p-1)}, where p is the order of Field\n// as well as C3 = (C2 - 1)/2, where C2 = (p-1)/(2^c1),\n// and C5 = ZETA^C2, where ZETA is a non-square element of Field.\n// These are pre-computed above as globals.\nunconstrained fn tonelli_shanks_sqrt(x: Field) -> Field {\n let mut z = pow(x, C3);\n let mut t = z * z * x;\n z *= x;\n let mut b = t;\n let mut c = C5;\n\n for i in 0..(C1 - 1) {\n for _j in 1..(C1 - i - 1) {\n b *= b;\n }\n\n z *= if b == 1 { 1 } else { c };\n\n c *= c;\n\n t *= if b == 1 { 1 } else { c };\n\n b = t;\n }\n\n z\n}\n\n// NB: this doesn't return an option, because in the case of there _not_ being a square root, we still want to return a field element that allows us to then assert in the _constrained_ sqrt function that there is no sqrt.\nunconstrained fn __sqrt(x: Field) -> (bool, Field) {\n let is_sq = is_square(x);\n if is_sq {\n let sqrt = tonelli_shanks_sqrt(x);\n (true, sqrt)\n } else {\n // Demonstrate that x is not a square (a.k.a. a \"quadratic non-residue\").\n // Facts:\n // The Legendre symbol (\"LS\") of x, is x^((p-1)/2) (mod p).\n // - If x is a square, LS(x) = 1\n // - If x is not a square, LS(x) = -1\n // - If x = 0, LS(x) = 0.\n //\n // Hence:\n // sq * sq = sq // 1 * 1 = 1\n // non-sq * non-sq = sq // -1 * -1 = 1\n // sq * non-sq = non-sq // -1 * 1 = -1\n //\n // See: https://en.wikipedia.org/wiki/Legendre_symbol\n let demo_x_not_square = x * KNOWN_NON_RESIDUE;\n let not_sqrt = tonelli_shanks_sqrt(demo_x_not_square);\n (false, not_sqrt)\n }\n}\n\nfn validate_sqrt_hint(x: Field, hint: Field) {\n assert(hint * hint == x, f\"The claimed_sqrt {hint} is not the sqrt of x {x}\");\n}\n\nfn validate_not_sqrt_hint(x: Field, hint: Field) {\n // We need this assertion, because x = 0 would pass the other assertions in this\n // function, and we don't want people to be able to prove that 0 is not square!\n assert(x != 0, \"0 has a square root; you cannot claim it is not square\");\n // Demonstrate that x is not a square (a.k.a. a \"quadratic non-residue\").\n //\n // Facts:\n // The Legendre symbol (\"LS\") of x, is x^((p-1)/2) (mod p).\n // - If x is a square, LS(x) = 1\n // - If x is not a square, LS(x) = -1\n // - If x = 0, LS(x) = 0.\n //\n // Hence:\n // 1. sq * sq = sq // 1 * 1 = 1\n // 2. non-sq * non-sq = sq // -1 * -1 = 1\n // 3. sq * non-sq = non-sq // -1 * 1 = -1\n //\n // See: https://en.wikipedia.org/wiki/Legendre_symbol\n //\n // We want to demonstrate that this below multiplication falls under bullet-point (2):\n let demo_x_not_square = x * KNOWN_NON_RESIDUE;\n // I.e. we want to demonstrate that `demo_x_not_square` has Legendre symbol 1\n // (i.e. that it is a square), so we prove that it is square below.\n // Why do we want to prove that it has LS 1?\n // Well, since it was computed with a known-non-residue, its squareness implies we're\n // in case 2 (something multiplied by a known-non-residue yielding a result which\n // has a LS of 1), which implies that x must be a non-square. The unconstrained\n // function gave us the sqrt of demo_x_not_square, so all we need to do is\n // assert its squareness:\n assert(\n hint * hint == demo_x_not_square,\n f\"The hint {hint} does not demonstrate that {x} is not a square\",\n );\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28,\n 151, 202, 67, 55, 77, 233, 80, 187, 224, 167,\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes: [u8; 31] = field.to_be_bytes();\n assert_eq(inputs, return_bytes);\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28,\n 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158,\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2: [u8; 31] = field.to_be_bytes();\n\n assert_eq(return_bytes2, return_bytes);\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes: [u8; 32] = max_value.to_be_bytes();\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n\n#[test]\nunconstrained fn sqrt_valid_test() {\n let x = 16; // examples: 16, 9, 25, 81\n let result = sqrt(x);\n assert(result.is_some());\n assert_eq(result.unwrap() * result.unwrap(), x);\n}\n\n#[test]\nunconstrained fn sqrt_invalid_test() {\n let x = KNOWN_NON_RESIDUE; // has no square root in the field\n let result = sqrt(x);\n assert(result.is_none());\n}\n"
|
|
4573
4573
|
},
|
|
4574
|
-
"
|
|
4574
|
+
"395": {
|
|
4575
4575
|
"path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr",
|
|
4576
4576
|
"source": "pub struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_u64(&mut self) -> u64 {\n self.read() as u64\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() != 0\n }\n\n pub fn read_array<let K: u32>(&mut self) -> [Field; K] {\n let mut result = [0; K];\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array());\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n deserialise: fn([Field; K]) -> T,\n mut result: [T; C],\n ) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert_eq(self.offset, self.data.len(), \"Reader did not read all data\");\n }\n}\n"
|
|
4577
4577
|
},
|