@aztec/protocol-contracts 0.0.1-commit.cbf2c2d5d → 0.0.1-commit.ce4f8c4f2

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.
@@ -1874,7 +1874,7 @@
1874
1874
  }
1875
1875
  },
1876
1876
  "bytecode": "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",
1877
- "debug_symbols": "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YAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDMQzGMBjDYAyDOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DOQzmMJjDYA6DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DNQzWMFjDYA2DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+DPQz2MNjDYA+D1zB4DYPXMHgNg9cweA2D1zB4DYPXMHgNg9cweA2D1zB4DYPXMHgNg9cweA2D1zB4DYPXMHgNg9cweA2D1zB4DYPXMHgNg9cweA2D1zB4DYPXMHgNg9cweA2D1zB4DYPXMHgNg9cweA2D1zB4DYPXMHgNg9cweA2D1zB4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K1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcsMIFK1ywwgUrXLDCBStcfFrh1sepnNrp/WfI8XG6nc7XKeap84h56jxinjqPmKfOI+ap84h56jxinjqPzz7c5+l2krFkLBlLxpKxZCwZS8aSsWQsGVvGlrFlbBlbxpaxZWwZW8aWETJCRsgIGSEjZISMkBEyQkbKSBkpI2WkjJSRMlJGykgZJaNklIySUTJKRskoGSWjZLSMltEyPjhfH6d0kvHx92qvj9PldDu9/x1Lvp8+/l7t87SctlM4pVM5vb8f9XG6nN4zrvfTRzumP07LaTuFUzp9NQzima18diuf4cpnufKZrny2K5/xyme98pmvfPYrnwHLZ8HymbDUggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy24yGdv9hmcfRZnn8nZbzZnZTyrs8/s7LM7+wzPWp7VggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCCy240IILLbjQggstuNCCi3oWpp+J6Wdj+hmZflamv5mZlvEMTT9L08/UNM6NbIaVzTCzGXY2w9BmWNoMU5thazOMbYa1zTC3GfY2w+BmWNwMk5thczOMbobVzTC7GXY3w/BmWN4M05thezOMb4b1zTC/GfY3wwBnWOAME5xhgzOMcIYVzjDDGXY4wxBnWOIMU5xhizOMcYY1zjDHGfY4wyBnWOQMk5xhkzOMcoZVzjDLGXY5wzBnWOYM05xhmzOMc4Z1zjDPGfY5w0BnWOgME51hozOMdIaVzjDTGXY6w1BnWOoMU51hqzOMdYa1zjDXGfY6w2BnWOwMk51hszOMdobVzjDbGXY7w3BnWO4M051huzOMd4b1zjDfGfY7w4BnWPAME55hwzOMeIYVzzDjGf1syj+j8s+q/DMr/+zKP8Py3yzLy3i25Z9xeZyb9AybnmHUM6x6hlnPsOsZhj3DsmeY9gzbnmHcM6x7hnnPsO8ZBj7DwmeY+Awbn2HkM6x8hpnPsPMZhj7D0meY+gxbn2HsM6x9hrnPsPcZBj/D4meY/Aybn2H0M6x+htnPsPsZhj/D8meY/gzbn2H8M6x/hvnPsP8ZBkDDAmiYAA0boGEENKyAhhnQsAMahkDDEmiYAg1boGEMNFjhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS5Z4ZIVLlnhkhUuWeGSFS73PI2ae55GzT1Po+aep1Fzz9Oouedp1NzzNGrueeo89zx1nnueOs+9ZWwZW8aWsWVsGVtGyAgZISNkhIyQETJCRsgIGSkjZaSMlJEyUkbKSBkpI2WUjJJRMkpGySgZJaNklIyS0TJaRstoGS2jZbSMltEyWsYl45JxybhkXDIuGZeMS8Yl45Jxy7hl3DJuGbeMW8Yt45Zxy7hlHBlHxpFxZBwZR8aRcWQcGfPUecY8dZ4xT51nzFPnGfPUecY8dZ4xT51nzFPnGfPUecY8dZ7xkrFkLBlLBs4D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOA+cB84D54HzwHngPHAeOP9swb0+TpfT+9eo/XE6c/r4ev7xKz6+nn+etlM4pVM5tdNX2zVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1LSNmrZR0zZq2kZN26hpGzVto6Zt1GycN84b543zxnnjvHHeOG+cN84b543zxnnjvHHeOG+cN84b543zxnnjvHHeOG+cN84b543zxnnjvHHeOG+cN84b543zxnnjvHHeOG+cN84b543zxnnjvHHeOG+cN84b543zxnnjvHHeOG+cN84b543zxnnj/ML5hfML5xfOL5xfOL9wfuH8wvmF8wvnF84vnF84v3B+4fzC+YXzC+cXzi+cXzi/cH7h/ML5hfML5xfOL5xfOL9wzgqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpefVrj1cVpO2+n9Z8jxcUqncmqny+l2OnOap87zzFPneeap8/zsw32eZLSMltEyWkbLuGRcMi4Zl4xLxiXjknHJuGRcMm4Zt4xbxi3jlnHLuGXcMm4Zt4wj48g4Mo6MI+PIODKOjCNj7BL1GrtEvcYuUa+xS9Rr7BL1GrtEvcYuUa+xS9Rr7BL1GrtEvV4ylowlY8lYMpaMJWPJWDKWjA/O1/tpv5xkfPy92uvjFE7p9P53LPlxaqfL6XY6c/r4e7XP03J6fz/q4xRO7xnXx+n9re+P0+V0O505fbRjPk9fDYPSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCKy240oIrLbjSgistuNKCK9uoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdRihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKFK1a4YoUrVrhihStWuGKF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",
1877
+ "debug_symbols": "td3bjiXJdaXrd6lrXiyzeXA3vspGQ6AoSiBQIAWKbGBD4Lt3nObnSQKZoIrdN1pWLKWNOP0ZWZHD//HfP/3b7/71L//xL7//w7//8b9++vX/998//euffv/zz7//j3/5+Y+//c2ff//HP7z9r//90+v9/6z46dfnr7/6aX38w9v/vd/+Yb//w3779+vtvD5f9udLfL7k50t9vvRPv863l+vz5f58OT/9un71U7w+X9bny9st19tLfL683XL99S1v3qx/+fOffve79+xv3s63t/4/f/On3/3hzz/9+g9/+fnnX/30v3/z818+/p/+6z9/84eP1z//5k9v//b1q59+94d/e3t9u/Dff//z795Pf/3V86tf3/+lHffXL75f6Zevq//RC+475oJzf/eC/f0LouvrgrietyBf528uiO9fsHMu2H1994J/7C2447sX/OBjcPZccKK/+zHof/Zd+NGncV9fF/T1vAvr5D96wXqteRPW63p9c8U//DZcx8fxfu1v3or1tx+H9aOvptM+kvcveSNWn/l6XFc9X0/vX1t/80b84Oshd8wdGa/1fD7W32K1fvBFGVfH80W1v39H/uhzkuv2Scld39yyf+ktub9/S/9feH+u/wt33D/43LyueWfe8Fjff19+8Haca88X2f39j+kPvsh29OC233/Z977S9/rBHavnHdl7P9Dff/tW7B98nZ5157wjez8fi6j62zviR8Dt7ffvPt+/4wdfYZHPp/WBdvfffTDqBze8titesX7ZHes1v3fEyvz+HT/4yqh1zffS2q/nk7LuX/au9P5l70qX70jd8c/fcV2/7I7zvC+nv/9pif3/9kN67ufNON9/M35EbGYi9ts/p/wdsVE/+o10+3C8neuBpc//4JK3bynP78Z3f++SH32T7DXIfvPr629/E40f/Ca6dg70a38D/d8xH+cHb8OqeTfu1c/vorHzf/BmvNKb8c0fGP7+zfjRFfF8NOObr/K/uyJ/8AXa5zr+8HTuld/7jGT86M8+rz3vy9u54ruX/PAtufP2lpxX/rJLjj/JvZ3r+5f84Lt9nvn6qDjf/ePkj96M6w2WeV/eznV/9834wWe3754Pat/ffHb7H//6aF+mq6/1i77E7pgvj3Xf372ifvC9vt/+AOsT+/ad+rufkx9eEpHzDe7tfMUvumRtvx33it2/5Iv9H/uPjR9+Yq/LJ/b65nf0/h98afhvrr7ze18aP/xQvP2WU88npb/7oah/+h2pf/4d+acp+dF/uPU1b8LVJ//2m+P/evvH3/z293/62x+gxPuPP94+uPH28493zuP6er2/Xs/na76+XtfX6/56ja/X/Hqtr9ev+/Lrvvy6L7/uq6/76uu++rqvvu6rr/vq6776uq++7quv++rrvv66r7/u66/7+uu+/rqvv+7rr/v6677+uq+/7ru+7ru+7ru+7ru+7ru+7rve7nv/j8yrv16vr9f7/Y9rb6/n8/V+vf9n09vr+nrd7//d8/YaX6/59fp23/ufcO7+er2+Xu+v17f78u3Xn/df//bJPvH+B4a31/x6rfc/nr299tfr9f5b/9vr/fV6Pl/X6zWH95vW+yE+r3z708z8L/X5xr/9gfzzrXv7icIc7jmczzdsrdcc1hz2HGIOOYeaQ8/h/Q19T1/353u43n94V+/p7z+++zzsOcQccg7v7/fHr+o5XHO453C+Dh8/0Ps4rDnsOcQccg5zc8zNMTfH3Bxzc87NOTfn3Jxzc87NOTfn3Jxzc87NOTfX3Fxzc83NNTfX3Fxzc83NNTfX3Fxzc8/NPTf33Nxzc8/NPTf33Nxzc8/NPTdfc/M1N19z8zU3X3PzNTdfc/M1N19z8zU333PzPTffc/M9N99z8z0333PzPTffc/M9N5+5+czNZ24+c/OZm8/cfObmMzefufl83bxfrzmsOew5xBxyDjWHnsM1h3sOc/Oam9fcvObmNTevuXnNzWtuXnPzmpvX3Lzn5j0377l5z817bh4G9zC4h8E9DO5hcA+Dexjcw+AeBvcwuIfBPQzuYXAPg3sY3MPgHgb3MLiHwT0M7mFwD4N7GNzD4B4G9zC4h8E9DO5hcA+Dexjcw+AeBvcwuIfBPQzuYXAPg3sY3MPgHgb3MLiHwT0M7mFwD4N7GNzD4B4G9zC4h8E9DO5hcA+Dexjcw+AeBvcwuIfBPQzuYXAPg3sY3MPgHgb3MLiHwT0M7mFwD4N7GNzD4B4G9zC4h8EYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEYBmMYjGEwhsEcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EcBnMYzGEwh8EaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEaBmsYrGGwhsEeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8EeBnsY7GGwh8FrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBaxi8hsFrGLyGwWsYvIbBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwXsYvIfBexi8h8F7GLyHwTMMnmHwDINnGDzD4BkGzzB4hsEzDJ5h8AyDZxg8w+AZBs8weIbBMwyeYfAMg2cYPMPgGQbPMHiGwTMMnmHwDINnGDzD4BkGzzB4hsEzDJ5h8AyDZxg8w+AZBs8weIbBMwyeYfAMg2cYPMPgGQbPMHiGwTMMnmHwDINnGDzD4BkGzzB4hsEzDJ5h8LwzmOf9cL4O7wx+HtYc9hxiDjmHmkPP4ZrD3Nxz8zU3X3PzNTdfc/M1N19z8zU3X3PzNTdfc/M9N99z8z0333PzPTffc/M9N99z8z0333PzmZvP3Hzm5jM3n7n5zM1nbj5z85mbz9fNb38j/3JaTtspnNKpnNrpcrqdZCwZS8aSsWQsGUvGkrFkLBlLxpaxZWwZW8aWsWVsGVvGlrFlhIyQETJCRsgIGSEjZISMkJEyUkbKSBkpI2WkjJSRMlJGySgZJaNklIySUTJKRskoGS2jZbSMltEyWkbLaBkto2VcMi4Zl4xLxiXjknHJuGRcMi4Zt4xbxi3jlnHLuGXcMm4Zt4xbxpFxZBwZR8aRcWQcGUfGkYHzhfOF84XzhfOF84XzhfOF84XzhfOF84XzhfOF84XzhfOF84XzhfOF88+CzuvjtJzev+nsj1M4vX/b+fwV5dROl9PtdOb08a348/SW0R8Z75x/ncIpncqpnS6n2+nM6Z3zr5OMlJEyUkbKSBkpI2WkjJJRMkpGySgZJaNklIySUTJaRstoGS2jZbSMltEyWkbLuGRcMi4Zl4xLxiXjknHJuGRcMm4Zt4xbxi3jlnHLuGXcMm4Zt4wj48g4Mo6MI+PIODKOjCPjTMZH4efrtJy2UzilUzm10+V0O8lYMpaMJWPJWDKWjCVjyVgylowtY8vYMraMLWPL2DK2jC1jywgZON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zjfON843zgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88B54DxwHjgPnAfOA+eB88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjhPnCfOE+eJ88R54jxxnjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88J54bxwXjgvnBfOC+eF88Z547xx3jhvnDfOG+eN88Z547xx3jhvnDfOG+eN88Z547xx3jhvnDfOG+eN88Z547xx3jhvnDfOG+eN88Z547xx3jhvnDfOP2pa7/aD9dHT+jx9cP55ev95YnyctlM4pVM5tdPldDudOX38NdnnSUbJKBklo2SUjJJRMkpGy2gZLaNltIyW0TJaRstoGZeMS8Yl45JxybhkXDIuGZeMS8Yt45Zxy7hl3DJuGbeMW8Yt45ZxZBwZR8aRcWQcGUfGkXFkeNL18qjrZ8vr87Sdwimdyqmdrq+vzo+y19dJxsfP218fp+W0nd5/3p4fp3Qqp3a6nG6nM6ePn7fXx2k5vWdcH6f3t74/TuXUTpfT7fT1d8dL8Wtpfi3Vr6X7tZS/lvbXUv9a+l9LAWxpgC0VsKUDtpTAlhbYUgNbemBLEWxpgi1VsKULtpTBljbYUgdb+mBLIWxphC2VsKUTtpTCllbYUgtbemFLMWxphi3VsKUbtpTDlnbYUg9b1/Pc7PPg7PPk7PPo7PPs7PPw7PP07DePz8p4HqD1BK2q2NIVW8piS1tsqYstfbGlMLY0xpbK2NIZW0pjS2tsqY0tvbGlOLY0x5bq2NIdW8pjS3tsqY8t/bGlQLY0yJYK2dIhW0pkS4tsqZEtPbKlSLY0yZYq2dIlW8pkS5tsqZMtfbKlULY0ypZK2dIpW0plS6tsqZUtvbKlWLY0y5Zq2dItW8plS7tsqZct/bKlYLY0zJaK2dIxW0pmS8tsqZktPbOlaLY0zZaq2dI1W8pmS9tsqZstfbOlcLY0zpbK2dI5W0pnS+tsqZ0tvbOleLY0z5bq2dI9W8pnS/tsqZ8t/bOlgLY00JYK2tJBW0poSwttqaEtPbSliLY00ZYq2tJFW8po636elH8elX+elX8eln+eln8el3+el38emP/miXkZOFdMW5ppSzVt6aYt5bSlnbbU05Z+2lJQWxpqS0Vt6agtJbWlpbbU1Jae2lJUW5pqS1Vt6aotZbWlrbbU1Za+2lJYWxprS2Vt6awtpbWltbbU1pbe2lJcW5prS3Vt6a4t5bWlvbbU15b+2lJgWxpsS4Vt6bAtJbalxbbU2JYe21JkW5psS5Vt6bItZbalzbbU2ZY+21JoWxptS6Vt6bQtpbal1bbU2pZe21JsW5ptS7Vt6batg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/PzuDEeOcZjx3j0GI8f4xFkPIaMR5HxODK+kWR8ZezXo8l4PBmPKOMxZTyqjMeV8cgyHlvGo8vgy3gRZrwYM16UGS/OjBdpxos140Wb8eLNeBFnvJgzXtQZL+6MF3nGiz3jRZ/x4s94EWi8GDReFBovDo0XicaLReNFo/Hi0XgRabyYNF5UGi8ujReZxotN40Wn8eLTeBFqvBg1XpQaL06NF6nGi1XjRavx4tV4EWu8mDVe1Bovbo0XucaLXeNFr/Hi13gRbLwYNl4UGy+OjRfJxotl40Wz8eLZeBFtvJg2XlQbL66NF9nGi23jRbfx4tt4EW68GDdelBsvzo0X6caLdeNFu/Hi3XgRb7yYN17UGy/ujRf5xot940W/8eLfeBFwvBg4XhQcLw6OFwnHi4XjRcPx4uF4EXG8cL5wvnC+cL5wvnC+cL5wvnC+cL4eL843YhwZjxrnceM8cpzHjvPocR4/ziPIwfnC+cL5wvnC+cI5V9Umq9psVZuuavNVbcKqzVi1Kas2Z9UmrdqsVZu2avNWbeKqzVy1qas2d9Umr9rsVZu+avNXbQKrzWC1Kaw2h9UmsdosVpvGavNYbSKrzWS1qaw2l9Ums9psVpvOavNZbUKrzWi1Ka02p9UmtdqsVpvWavNabWKrzWy1qa02t9Umt9rsVpveavNbbYKrzXC1Ka42x9UmudosV5vmavNcbaKrzXS1qa4219Umu9psV5vuavNdbcKrzXi1Ka8259UmvdqP9erRXj3eq0d89ZivHvXV47565FeP/erRXz3+q0eA9RiwHgXW48B6JFiPBevRYD0erEeE9Y0J61FhfePCkvHYsB4d1uPDeoRYjxHrUWLh/JFiPVasR4v1eLEeMdZjxnrUWI8b65FjPXasR4/1+LEeQdZjyHoUWY8j65FkPZasR5P1eLIeUdZjynpUWY8r65FlPbasR5f1+LIeYdZjzHqUWY8z65FmPdasR5v1eLMecdZjznrUWY8765FnPfasR5/1+LMegdZj0HoUWo9D65FoPRatR6P1eLQekdZj0npUWo9L65FpPTatR6f1+LQeodZj1HqUWo9T65FqPVatR6v1eLUesRaz1qbW2txam1xrs2tteq3Nr7UJtjbD1qbY2hxbm2Rrs2xtmq3Ns7WJtjbT1qba2lxbm2xrs21tuq3Nt7UJtzbj1qbc2pxbm3Rrs25t2q0dj/vukd899rtv9HcyHgHeY8B7FHiPA++R4OGcgmtzcG0Srs3CtWm4Ng/XJuLaTFybimtzcW0yrs3Gtem4Nh/XJuTajFybkmtzcm1Srs3KtWm5Ni/XJubazFybmmtzc21yrs3Otem5Nj/XJujaDF2bomtzdG2Srs3StWm6Nk/XJuraTF2bqmtzdW2yrs3Wtem6Nl/XJuzajF2bsmtzdm3Srs3atWm7Nm/XJu7azF2bumtzd23yrs3etem7Nn/XJvDaDF6bwmtzeG0Sr83itWm8No/XJvLaTF6bymtzeW0yr83mtem8Np/XJvTajF6b0mtzem1Sr83qtWm9Nq/XJvbazF6b2mtze21yr83utem9Nr/XJvjaDF+b4mtzfG2Sr52P7fLRXT6+y0d4+Y3xUsbjvHykl4/18tFe4pzwazN+bcqvzfm1Sb8269em/dq8X5v4azN/beqvzf21yb82+9em/9r8X5sAbDOAbQqwzQG2ScA2C9imAds8YJsIbDOBbSqwzQW2ycA2G9imA9t8YJsQbDOCbUqwzQm2ScE2K9imBdu8YJsYbDODbWqwzQ22ycE2O9imB9v8YJsgbDOEbYqwzRG2ScI2S9imCds8YZsobDOFbaqwzRW2ycI2W9imC9t8YZswbDOGbcqwzRm2ScM2a9imDdu8YZs4bDOHbeqwzR22ycM2e9imD9v8YZtAbDOIbQqxzSG2ScQ2i9imEds8YptIbDOJbSqxzSW2ycQ2m9imE9t8YptQbDOKbUqxXY/f9hHcPobbR3H7OG6/kdzKeDS38zTqrnkaddc8jbprnkbdNU+j7pqnUXfN06i75mnUXfM06q55GnVXy2gZLeOSccm4ZFwyLhmXjEvGJeOSccm4Zdwybhm3jFvGLeOWccu4Zdwyjowj48g4Mo6MI+PIODKOjHkadfc8jbp7nkbdPU+j7p6nUXfP06i752nU3fM06u55GnX3PI26+yVjyVgylowlY8lYMpaMJWPJWDK2jC1jy9gytowtY8vYMraMLSNkhIyQETJCRsgIGSEjZISMlJEyUkbKSBkpI2WkjJSRMkpGySgZJaNklIySgfPGeeO8cd44b5w3zhvnjfPGeeO8cd44b5w3zhvnjfPGeeO8cd44b5w3zhvnjfPGeeO8cd44b5w3zhvnjfPGeeO8cd44b5w3zhvnjfPGeeP8wvmF8wvnF84vnF84v3B+4fzC+YXzC+cXzi+cXzi/cH7h/ML5hfML5xfOr3nqfF/z1Pm+5qnzfc1T5/uap873NU+d72ueOt/XPHW+r3nqfF/z1Pm+5qnzfU3bdV/Tdt3XtF33NW3XfU3bdV/Tdt3XtF33Na32fU2rfV/Tat9XykgZKSNlpIyUkTJSRsooGSWjZJSMklEySkbJKBklo2W0jJbRMlpGy2gZLaNltIxLxiXjknHJuGRcMi4Zl4xLxiXjlnHLuGXcMm4Zt4xbxi3jlnHLODKOjCPjyDgyjowj48g4MqbVvu9pte97Wu37nlb7vqfVvu9pte97Wu37nlb7vqfVvu9pte/7JWPJWDKWjCVjyVgylowlY8lYMraMLWPL2DK2jC1jy9gytowtI2Tg/Mb5jfMb5zfOb5zfOL9xfuP8xvmN8xvnN85vnN84v3F+4/zG+Y3zG+c3zm+c3zi/cX7j/Mb5jfMb5zfOb5zfOL9xfuP8xvmN8xvnN85vnN84v3F+4/zG+Y3zG+c3zm+c3zi/cX7j/Mb5jfMb5zfOb5zfOL9xfuP8xvmN8xvnN85vnN84v3F+4/zG+Y3zG+c3zg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzs9wHq/hPF7DebyG83gN5/EazuM1nMdrOI/XcB6v4TxeLxlLxpKxZCwZS8aSsWQsGUvGkrFlbBlbxpaxZWwZW8aWsWVsGSEjZISMkBEyQkbICBkhI2SkjJSRMlJGykgZKSNlpIyUUTJKRskoGSWjZJSMklEySkbLaBkto2W0jJbRMlpGy2gZl4xLxiXjknHJuGRcMi4Zl4xLxi3jlnHLuGXcMm4Zt4xbxi3jlnFkHBlHxpFxZBwZR8aRcWTgfOF84XzhfOF84XzhfOF84XzhfOF84XzhfOF84XzhfOF84XzhfOF84XzhfOF84XzhfOF84XzhfOF84XzhfOGcFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS5Y4YIVLljhghUuWOGCFS4+rXDr41RO7fT+M+T4ON1O5+sU89R5xDx1HjFPnUfMU+cR89R5xDx1HjFPncdnH+7zdDvJWDKWjCVjyVgylowlY8lYMpaMLWPL2DK2jC1jy9gytowtY8sIGSEjZISMkBEyQkbICBkhI2WkjJSRMlJGykgZKSNlpIySUTJKRskoGSWjZJSMklEyWkbLaBkfnK+PUzrJ+Ph7tdfH6XK6nd7/jiXfTx9/r/Z5Wk7bKZzSqZze34/6OF1O7xnX++mjHdMfp+W0ncIpnb4aBvHMVj67lc9w5bNc+UxXPtuVz3jls175zFc++5XPgOWzYPlMWGrBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlzkszf7DM4+i7PP5Ow3m7MyntXZZ3b22Z19hmctz2rBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMGFFlxowYUWXGjBhRZcaMFFPQvTz8T0szH9jEw/K9PfzEzLeIamn6XpZ2oa50Y2w8pmmNkMO5thaDMsbYapzbC1GcY2w9pmmNsMe5thcDMsbobJzbC5GUY3w+pmmN0Mu5theDMsb4bpzbC9GcY3w/pmmN8M+5thgDMscIYJzrDBGUY4wwpnmOEMO5xhiDMscYYpzrDFGcY4wxpnmOMMe5xhkDMscoZJzrDJGUY5wypnmOUMu5xhmDMsc4ZpzrDNGcY5wzpnmOcM+5xhoDMsdIaJzrDRGUY6w0pnmOkMO51hqDMsdYapzrDVGcY6w1pnmOsMe51hsDMsdobJzrDZGUY7w2pnmO0Mu51huDMsd4bpzrDdGcY7w3pnmO8M+51hwDMseIYJz7DhGUY8w4pnmPGMfjbln1H5Z1X+mZV/duWfYflvluVlPNvyz7g8zk16hk3PMOoZVj3DrGfY9QzDnmHZM0x7hm3PMO4Z1j3DvGfY9wwDn2HhM0x8ho3PMPIZVj7DzGfY+QxDn2HpM0x9hq3PMPYZ1j7D3GfY+wyDn2HxM0x+hs3PMPoZVj/D7GfY/QzDn2H5M0x/hu3PMP4Z1j/D/GfY/wwDoGEBNEyAhg3QMAIaVkDDDGjYAQ1DoGEJNEyBhi3QMAYarHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDBChescMEKF6xwwQoXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl6xwyQqXrHDJCpescMkKl3ueRs09T6PmnqdRc8/T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LduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2atlGLduoZRu1bKOWbdSyjVq2Ucs2arHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1yxwhUrXLHCFStcscIVK1zd8zRq3fM0at3zNGrd8zRq3fM0at3zNGrd8zRq3fPUed3z1Hnd89R53ZeMW8Yt45Zxy7hl3DJuGbeMW8Yt48g4Mo6MI+PIODKOjCPjyJinzuvMU+d15qnzOvPUeZ156rzOPHVeZ546rzNPndeZp87rzFPndV4ylowlY8lYMpaMJWPJWDKWjCVjy9gytowtY8vYMraMLWPL2DJCRsgIGSEjZISMkBEyQkbISBkpI2WkjJSRMlJGykgZKaNklIySUTJKRskoGSWjZJSMltEyWkbLaBkto2W0jJaB84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/OD84Pzg/MznPdrOO/XcN6v4bxfw3m/hvN+Def9Gs77NZz3azjv10vGkrFkLBlLxpKxZCwZS8aSsWRsGVvGlrFlbBlbxpaxZWwZW0bICBkf389fH6dwev8etT9O5fT+PerzV1xOt9OZ08f388/TctpOX23Xto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlHbNmrbRm3bqG0btW2jtm3Uto3atlF743zjfON843zjfOM8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAeeA8cB44D5wHzgPngfPAOStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1yzwjUrXLPCNStcs8I1K1x/WuHWx+lyup3ef4Yc76d56rx7njrvnqfOu+ep8+556rx7njrvnqfOu+ep8+556rw/+3Afpy1jy9gytowtY8vYMraMLWPLCBkhI2SEjJARMkJGyAgZISNlpIyUkTJSRspIGSkjZaSMklEySkbJKBklo2SUjJJRMlpGy2gZLaNltIyW0TJaRsu4ZFwyLhmXjEvGB+cfX52Xr91Pu8Rff/XT//7Nn37/m3/9+Xf/9dOv//vtH//9L3/47Z9//8c/fP3jn////5x/869/+v3PP//+P/7lP//0x9/+7t/+8qff/cvPf/ztx7/76//66/8B",
1878
1878
  "verification_key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAAAAAAAAAAAAAAAAAAANc/6vbBHLxCVZk0kb+3McKMAAAAAAAAAAAAAAAAAAAAAAC3G/osltK8XDqVIiHy+KQAAAAAAAAAAAAAAAAAAAEroBCft7S55iiExfkl1SAtsAAAAAAAAAAAAAAAAAAAAAAAhcIWLre2ZksGfhKxLXA4AAAAAAAAAAAAAAAAAAAA50FloPwiXYWMzlyLiWsr4eQAAAAAAAAAAAAAAAAAAAAAAJQuesvh+0efzX1APUZF7AAAAAAAAAAAAAAAAAAAAfb44MR21JaNK9219cLbVT74AAAAAAAAAAAAAAAAAAAAAABe5zkE+au9IlglsJR3V7wAAAAAAAAAAAAAAAAAAADMyIRznjgpI6hQ6GaVxcDvcAAAAAAAAAAAAAAAAAAAAAAAdP7lM2gQaStkok4STeaoAAAAAAAAAAAAAAAAAAABzF9V31fx+934lDZt2tOuiEwAAAAAAAAAAAAAAAAAAAAAAFqhLT8aAgjiRsifJSRaPAAAAAAAAAAAAAAAAAAAALR+tg118VsT/mgCo0h1z5IUAAAAAAAAAAAAAAAAAAAAAAB18vLjpi8fbNMOkLIT4QgAAAAAAAAAAAAAAAAAAAPyUYR9NerC8qtftS/P926R5AAAAAAAAAAAAAAAAAAAAAAAajnsV2gtGEZzq+NEA6yQAAAAAAAAAAAAAAAAAAABUCPeZXO90g4gVug2RJCu+HQAAAAAAAAAAAAAAAAAAAAAAA4n/QOwi/R0IpFPkzcK2AAAAAAAAAAAAAAAAAAAAoo/dewX4Jpv5090pG1LyXS4AAAAAAAAAAAAAAAAAAAAAACIDlYUxof1FLLawjviAwAAAAAAAAAAAAAAAAAAAABpWupmqynaHJISiP89CVKpiAAAAAAAAAAAAAAAAAAAAAAAbVL4DI+Wloh4qzYQ0BsYAAAAAAAAAAAAAAAAAAACELdRj2dCS7GxQWKKNCYkbNwAAAAAAAAAAAAAAAAAAAAAAE7cdw3cOvS05da6FKzlIAAAAAAAAAAAAAAAAAAAA34RD4CY/7x6vQarrV/2yyVwAAAAAAAAAAAAAAAAAAAAAAAot+yK0pCzlx7efA+XTYQAAAAAAAAAAAAAAAAAAADKV5Skq5e58zJPucpMJ/0oEAAAAAAAAAAAAAAAAAAAAAAAlPhj9v98Uc9CgAq5ucpwAAAAAAAAAAAAAAAAAAABx5zYhN1wv1vbfLyCbbVTaYQAAAAAAAAAAAAAAAAAAAAAAFirzOUFp4ss0XzWfetIXAAAAAAAAAAAAAAAAAAAA2nMNAzJArrrdtiFD8Mw3d3YAAAAAAAAAAAAAAAAAAAAAABKRZzcRcvTTCBmsCocv4wAAAAAAAAAAAAAAAAAAAMv1VJXhGnLtaccv4FHM7/W2AAAAAAAAAAAAAAAAAAAAAAADKo+4dL85LgCUCG5nklIAAAAAAAAAAAAAAAAAAAAHxbvMxuGE7BMpu6a9uqYZWQAAAAAAAAAAAAAAAAAAAAAAIBkM6fY6yJB3F5Umz6yQAAAAAAAAAAAAAAAAAAAApdIhFEMWRknkZr2rdqhmXLgAAAAAAAAAAAAAAAAAAAAAAA5VBMTD7CA/iQt9OqVO9wAAAAAAAAAAAAAAAAAAABU0BEk8yGQpJZlidx3pxVPiAAAAAAAAAAAAAAAAAAAAAAAI9J8OHRR8QA9kCylykBYAAAAAAAAAAAAAAAAAAAA6Q53Vaqs0Ph5hobHw0FVGPwAAAAAAAAAAAAAAAAAAAAAAAOxN3C7qEBDGdq4d5PsWAAAAAAAAAAAAAAAAAAAABquyzxvAEPAnXJrtrvPNpb4AAAAAAAAAAAAAAAAAAAAAAB97+WypaMLsDg+LnWaFrgAAAAAAAAAAAAAAAAAAAE61yUv8gEHXwPr7f0dQTwvBAAAAAAAAAAAAAAAAAAAAAAAWchNRA/y9Zhc8mKcKTC4AAAAAAAAAAAAAAAAAAAALeR8jr2PubzcUWPUeEpis1wAAAAAAAAAAAAAAAAAAAAAAEu29tY/qET8luk9MtKjKAAAAAAAAAAAAAAAAAAAAbTBF4Z1gAkawc5dt8ZSqhJ8AAAAAAAAAAAAAAAAAAAAAACJJwD73IgpSb3lCqz8WQAAAAAAAAAAAAAAAAAAAAPx2iNr3HZSXXwyzJNyLy3FjAAAAAAAAAAAAAAAAAAAAAAAZB5WzFWCwZGDu9P9ekB8AAAAAAAAAAAAAAAAAAADw1IlSoQ89VxWTUJ7JnriHfQAAAAAAAAAAAAAAAAAAAAAAFIj/fZBsyHk1DYLH6VnwAAAAAAAAAAAAAAAAAAAA5wtN+SnTjmKKLwTWAxjaXBMAAAAAAAAAAAAAAAAAAAAAAC4+4Gdn/pXZmRQ9m+IllAAAAAAAAAAAAAAAAAAAACZRRJAJbwJA9ViZUIXHIug9AAAAAAAAAAAAAAAAAAAAAAAge17wglMtNmyRTDw+MyQAAAAAAAAAAAAAAAAAAADwiq30/fwSovTh+0aLwIyligAAAAAAAAAAAAAAAAAAAAAAHuNNASR+nukTxNk6v1IKAAAAAAAAAAAAAAAAAAAAWqZsLX3UIQSvKhurI1/wON8AAAAAAAAAAAAAAAAAAAAAACtuZRbVtWqVVXLxmi2mtQAAAAAAAAAAAAAAAAAAAPaAyOn2uepcJgHwauY/DEEAAAAAAAAAAAAAAAAAAAAAAAAgUBOiHavQOLtNhuRnevcAAAAAAAAAAAAAAAAAAAB4H4NERwuedxb5OBqiCC0bSwAAAAAAAAAAAAAAAAAAAAAADYIjtPc/cRiGZQE4YfZpAAAAAAAAAAAAAAAAAAAARVd9/87+oKGxEOXDZG9SqSYAAAAAAAAAAAAAAAAAAAAAAChFd8l432JqmcY9mhlS1wAAAAAAAAAAAAAAAAAAAAy3uV89nNhNkyipA4A/E32RAAAAAAAAAAAAAAAAAAAAAAAMzY01Rg7NySGyjRmWC/MAAAAAAAAAAAAAAAAAAADuzjj/pQiddpFlq8EJ9NlShgAAAAAAAAAAAAAAAAAAAAAAEaJOdZhf2UcVOsfkd4QwAAAAAAAAAAAAAAAAAAAA8BV9GL865HgKu24PTkEqoIoAAAAAAAAAAAAAAAAAAAAAACfTzmLOqEybFtNTO2GOkwAAAAAAAAAAAAAAAAAAAMKj2r6ME9LpT4TLCCzcbs3hAAAAAAAAAAAAAAAAAAAAAAAmTNbOSzUE0+lU3lC79tsAAAAAAAAAAAAAAAAAAADRQRMWMnrbCV2Asy8UVSk3dwAAAAAAAAAAAAAAAAAAAAAAAQYSxjD0AAl4dLNxNSYBAAAAAAAAAAAAAAAAAAAAXS6OOIG+ykQE9z3Tqxl02tkAAAAAAAAAAAAAAAAAAAAAABBKxtJlWP+BVPNnjvXH2gAAAAAAAAAAAAAAAAAAAGWb6D7UV0dzK6UpGSoR8I+5AAAAAAAAAAAAAAAAAAAAAAAU0tP9pdh+gD4rmLsvaNsAAAAAAAAAAAAAAAAAAADiGFS5gYr6BVOMpLWnVW15IAAAAAAAAAAAAAAAAAAAAAAADkB3sjDjeNaSp4bB13TmAAAAAAAAAAAAAAAAAAAAC+akxRBrjqURuXlIHiATbg8AAAAAAAAAAAAAAAAAAAAAACxLXWH5dMClrPHirRL1lAAAAAAAAAAAAAAAAAAAAIHkt590N/vgwfoHesAAbhBBAAAAAAAAAAAAAAAAAAAAAAAERAaMa1H1Id2bi/DW8RwAAAAAAAAAAAAAAAAAAAAAmROnjy6TDgq+7orKYAhS1QAAAAAAAAAAAAAAAAAAAAAACkc1oAFzdZwRLlREHgtLAAAAAAAAAAAAAAAAAAAAHKsIxfnBkQZn4E2JF+vrazgAAAAAAAAAAAAAAAAAAAAAACAPddG3vy0Z8Oev6KG8tQAAAAAAAAAAAAAAAAAAAJW12Le0pjsF32UrDRDvFG0mAAAAAAAAAAAAAAAAAAAAAAAJnjvVoKAKt/4YBAEFubMAAAAAAAAAAAAAAAAAAAAhKa86Y39aYioyRA+GDR4qfwAAAAAAAAAAAAAAAAAAAAAAABW40lFdduLM7Jnc0ZRZAAAAAAAAAAAAAAAAAAAAIiuIgQjcJdGqRQ4LS8ISw34AAAAAAAAAAAAAAAAAAAAAABuRdReSC609i8AclZUJKgAAAAAAAAAAAAAAAAAAAEghQcfr5CAAodWMy3Q4H20ZAAAAAAAAAAAAAAAAAAAAAAAwXomSsUju2yLm6ZIHeoQAAAAAAAAAAAAAAAAAAAB8hoR2GGgdwp2Kk2OrfEDhwwAAAAAAAAAAAAAAAAAAAAAAFkZaXMu1UM0sY71YEW/kAAAAAAAAAAAAAAAAAAAAQ5lzrBLXynltb+mMpA5sprcAAAAAAAAAAAAAAAAAAAAAAC4k1CD7+VCO0x3mkttHewAAAAAAAAAAAAAAAAAAACjt0afkbIQNnJQ/30VSHGTOAAAAAAAAAAAAAAAAAAAAAAAEPQY7Ewrfs3NCr0XQFVoAAAAAAAAAAAAAAAAAAACTMJUq50xXPRaG2ctKAHM4VAAAAAAAAAAAAAAAAAAAAAAAJhUixAiTMGRq/5ZzYZSUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACz5L8fsknFvhg+pplzYGYK7QAAAAAAAAAAAAAAAAAAAAAAHF2Z+T37mHqX2vTNzY/5AAAAAAAAAAAAAAAAAAAA7NVJybPq0r9oGwkfA0zFUm4AAAAAAAAAAAAAAAAAAAAAACPxQeLsJB8PzF6pEcjL7gAAAAAAAAAAAAAAAAAAAGvMegX/lalrKJQkxfczZw2WAAAAAAAAAAAAAAAAAAAAAAAAxDcm91tv2g3iLODg36sAAAAAAAAAAAAAAAAAAAAdCgnXF47JO614WPluZPC0jQAAAAAAAAAAAAAAAAAAAAAAL5tuC04sAZaN5cMkgqp9AAAAAAAAAAAAAAAAAAAAF6UyFPM7GtAJ5GGyaZJyGb4AAAAAAAAAAAAAAAAAAAAAABQQfUvkU8gEqOKRhpGbPgAAAAAAAAAAAAAAAAAAAJKHn2GoKCaTAlYbtX87FVfPAAAAAAAAAAAAAAAAAAAAAAAoRQUJTjXTtVikNALK2uI="
1879
1879
  },
1880
1880
  {
@@ -2013,7 +2013,7 @@
2013
2013
  }
2014
2014
  },
2015
2015
  "bytecode": "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",
2016
- "debug_symbols": "tZndbhs5DEbfxde5kChKFPMqwaJwU7cwYDiBmyywKPLuS87ok51dSDDs9qY8bjzH+iElzcyvzbfd1/cfX/bH7y8/N49PvzZfT/vDYf/jy+Hlefu2fzna//7aBP+nUN08pgeLunksFlNoMbZILaYWucXcYmlRWqwtNh83HzcfNx+bL3vkFnOLpUVpsbaoa8zmE4+xRVpjseuqR/ueWpTQon0vRgcC8PpNyS22K8V+MfpQSAWYK/qP1gCIAAIkAAMyoAAEUAEwK8wKs8KsMCvMCrPCrDArzNrMEgIgAgiQAAzIgAIQQDNL9KvEgQEZ4N+pDtqAAsB+nciBAAnAgAwoAPt1Wi6vAG3gCbqCm9WBAAlg5hQdzJy88Z6mKwigArSBp+oKEUCABGAAzAwzw+wpm9hBG3jSrhABBEgAN/tg5gwoADd7v3IFaINiHvaeFruKk4Ndxd6MIoAK0AZeHCtYe7g4ECABGJABBSAAN3sLvVIW8EpZIQLc7E31SlmBAV7zwaEABFAB2sArZYUIMHP2vnulrMCADHCzD4tXygoV4GYb+eqVskIEECABGJABbs4OAqgAbRDdXBzcXB0IkABuVocMKAABVIA28PpawdfV4ECABGBABhSAr9bkUAHaYNkAkkMEuNm7vOwBCzAgA9zs3fH6Ev8Jr68VtIHX1woRQIAEMLNEhwwws3gzvL5WcLP/qNfXAsumsICbfeSXbWGBBGBABhSAANzs8+X1tUAJgAggQALwstVUL8EllhZljV5tIg4RQABzVO/3siktkAEFIABrXfUh8WpbwKtthQggQAIwwM0+w15tKwigArSBV9sK3ub68fGwweHhy9tpt/Ozw8Vpws4Yr9vT7vi2eTy+Hw4Pm7+3h/flSz9ft8clvm1P9lfrx+74zaIJv+8PO6ePh/PVYXxpJPJUWy6PlELsimh8KYljCVNpCmbpAqFP19P4+pTRg2Sj0hsgen0vUgrnXmge9oLHkiwVjmwr21mR+ZMijxVUfKNdFDas1BXl6jZUPxWsbbAla9iGqaJIV9R0i8LOo1DYkfRGRUFO2EDQUBEns2onqaawbfciLerVQ6HdkHUymnGWm+QnrjU5KfFgSueGqjCkICPDpB8cexs4JrkhrbQiL0sIYTwQZTIbvm2tsyHnoeSry6uEdG5Dui2pQk5dUcaKqJOlws6fWCnsCNkd+fNiQ7PVJoe+2OSL8vivYrJiiqDAbLe/SG252lD9gLoaCo0NabJYBe2LVQzDKaXJhNSCzK5ax42YrJilJPTD7jbrRSPSZ8ckM+0GEuVht5A6dshkMDj3hVsuDOG2rJBhVkxz81ymUZVHihRmJULnEsn1tlYwFBTiUJFmS57CwGGcFynNlrzazxQU+WJGPmdn4tmM9NG8qFKOfH0rKPWOXJ6N/teKMjubVDhiinHcjokjnRffZHcO43bUP+uI9uBC++oZKQxrjWeVEjj0mTFOQ8u8LakvgcZZxm2ZZWo5Hz15ODdTA/fdPevYMNveK+OYwnb/NO7HxEH9/EuZbmoFSTfUMs7SycJhjyPj+cw3nlWuv2Es6t1jUe8ei3r/WGS6fyxmjuvGYmq4eyys8dL7IeGmar96LOTPOq4cT7l7PGe7Uorad6XJSl7ib9iVZvkZ+xZdeLjLz44adgSN5yOo3nJaodgHw+7U8khR8r2nlTLbnzWgH0mJhplVZtkZpN/k2bDc6Ci5O2S8Ixa9N8Nn43ldXkwfHpwXzzR5eCB078ODmcHeXUFhL63i4K57aqiU+40Jy02G/nTOXngN7/znh61+d2RM+dYj26WFxykuv2FTFL1/EZe7U3xqGC/if9nH7fP+9Om98IerTvvt18Ouffz+fny++OvbP6/4C94rv55ennff3k87N51fLts/T2q3mhrrXw8beyD9VOx1YSGxT/5G5Ekt6dQ+fnhb/gU="
2016
+ "debug_symbols": "tZnRbhs5DEX/xc95kChKlPIrQVG4qVMYMJzATRZYBPn3JUe6GqcLCYadvpTHjeeaokiKM/O++bn78fbr+/749Px7c//wvvlx2h8O+1/fD8+P29f981H/933j7J9EeXMf7tSWzX1SG1yzvllqNjTLzcZmU7PSbG626XHT46bHTY9VL5rlZmOzqVlpNjdbqo2qJ2Z9s1Rt0uuyWf1eUSuuWf2e9wYE4PpNic22K0V/0VsoJANUy9uPZgfwAAIEAAMiIAEEkAFQLlAuUC5QLlAuUC5QLlAuUC5QLk1ZnAN4AAECgAERkAACaMri7SoxYEAE2HeyQWlADqC/TmRAgABgQAQkgP46LZdnQGlgCVrBlIsBAQJAlYM3UOVgzluaVhBABpQGlqoVPIAAAcAAKDOUGcqWsoENSgNL2goeQIAAMGULZoyABDBlW1fMgNIgqQ7bSpNexcFAr2JzIwkgA0oDK44K6g8nAwIEAAMiIAEEYMrmoVXKAlYpFTzAlM1Vq5QKDLCadwYJIIAMKA2sUip4gCpHW7tVSgUGRIApW1isUipkgClr5LNVSgUPIEAAMCACTDkaCCADSgNvysnAlLMBAQLAlItBBCSAADKgNLD6qmB91RkQIAAYEAEJYN2aDDKgNFgOgGDgAaZsS17OgAUYEAGmbMux+hL7CauvCqWB1VcFDyBAAKiyeIMIUGUxN6y+Kpiy/ajV1wLLobCAKVvkl2NhgQBgQAQkgABM2fbL6muB5AAeQIAA4OWoyVaCi03NSrVWbSIGHkAA1ci27uVQWiACEkAA6l22kFi1LWDVVsEDCBAADDBl22GrtgoCyIDSwKqtgvmcPz7uNhgevr+edjubHc6mCZ0xXran3fF1c398OxzuNv9sD2/Ll36/bI+Lfd2e9K+6jt3xp1oVfNofdkYfd+vVbnypJ7JUWy73FJzvEl75XMSPRZhSk2CWLiD06XoaXx8iVhA0Kt0BKZevIgS3rqLE4Sp4LBIlQyNqZ1slIn+SiGMJSnbQLhIaVuoS6WIfsk0F1QdtWUMfphJJukQO10joPAoJHUmvlEjICQ0EDSX8ZFd1kmoSeuyepUW+OBSlK8Qyiaaf5SbZxFWTkwIPtnSukAsUgpORwmQd7LsP7INckVYlIy+Tc24ciDTZDTu26m7IGkq+uLySC6sP4bqkcjF0iTSW8GXSKnT+RKfQEbJrxM/NhmbdJrrebOJZefwpMemYIigwPe3PUlsuVsg2oFaFRGOFMGlWrvRm5d1wS2myITkhs3PJYycmHTOlgHXo3WY+c+KP02OSmXoDifLQW8gy1pBJMDj2xr0WGLsrs0KGWTHNzbVMfSk8kghuViK0lkjM13nBkCDnhxJh1vIKFNiN8yKEWcvLfaYgz2d7+nm0CTzbkR7NsyrVDnq5FxT6Qs5no/95kWazSYaGD96P/ZhohLX5Br1zGPuR/66G1wcXpXdPT25YazyrFMeu74xyGKrMfQm9BSpHGfsyy9S0jp483JupAvfTPZaxwux4z4wxhfX+abyOiQb1+ZciXeUFSVfIaZylk8ahjyP9OvONd5XzF8Qi3xyLfHMs8u2xiHR7LGYal8ViqnBzLNR56esQd1W1XxwL+bsaF8ZTbo7n7FQKvvRTadLJk/+CU2mWn74f0YmHp/xs1NAR1K8jaLlmWiHfg6F3anEkkeKt00qanc/FYR2hEA0zK82y00m/ydOwXKmRYteQ8YmYyq0ZPovnZXkxfXiwNs8weXggdOvDg5mCvruChL608oO77qlCpthvTFiuUuhP5/SF1/DOfz5s9bsjZYrXjmznKjxOcfmCQ1HK7U1cbk7xqcK4iX/Tj9vH/enTe+EPkzrttz8Ou/bx6e34ePbX139f8Be8V345PT/ufr6ddqa0vlzWfx6K3moWn7/dbfSB9EPS14WJRD/ZG5GHoklX9OOH+fIf"
2017
2017
  },
2018
2018
  {
2019
2019
  "name": "process_message",
@@ -2122,10 +2122,6 @@
2122
2122
  "error_kind": "string",
2123
2123
  "string": "attempt to multiply with overflow"
2124
2124
  },
2125
- "737457407951538843": {
2126
- "error_kind": "string",
2127
- "string": "BoundedVec has non-zero trailing elements"
2128
- },
2129
2125
  "992401946138144806": {
2130
2126
  "error_kind": "string",
2131
2127
  "string": "Attempted to read past end of BoundedVec"
@@ -2208,8 +2204,8 @@
2208
2204
  }
2209
2205
  }
2210
2206
  },
2211
- "bytecode": "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",
2212
- "debug_symbols": "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iI3LCu8vlLjHJYl7uY5/qcR6VJo/Cv5SicuPj91D66USdc3ZyfWtuy+VYCs+TAl/pQTvMbTrlM4XSnx4kB+vlVhDbz+kRH3tcLbVwOU6yPOVEsbF3PqLJa5vUrx2Um09V/2QEvWlEupr1ZNev138tRJ8l/r20uHUIayxtcc70kb/PS+jOpzNGK+dknLjV2DLayVugx9MuYxkvBier5Yo6+1ruY5hfK3E5eeKy9sR/mqJfnnP4LXwLJyRDys3vlSCXwp/MbYuO/JqCb52MH8G/mEJ270/8gP6mfHzlddv4s5FAk+XWOto5yr/90v0l0p0Fmz0y8jJl0p0tuLyesFXSjirk66ffn61hLx2Rrzz+6r9tcPpl9fPxmvHYtzW9ez6IwlfKsGnkkd7rWn56mcffmv2CyWuC6Pl8nsin0uYbL9wzviLfHiL9vnNGCTGeKmFi662dUd7rYQyul/biyUYta32don26lZcZjlvr5UwjsUob2/FeK156hqK+rbEf97/55//8vNvf/rlb3/58z9+/tuvf7//y3/PYr/9/Of/+uWv5//8n3/++pfLf/3H//9/+V/+67eff/nl5//90//99re//PW///nbX2el+d9+up3/5z/qfHf3PmxR/vMPP5X7/263+z61W9X7/9b7/+7tD97mfzv+471L3/9P/c9/z637fw=="
2207
+ "bytecode": "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",
2208
+ "debug_symbols": "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SwZZMsiSQZYMsmSQJYMsGWTJIEsGWTLIkkGWDLJkkCWDLBlkySBLBlkyyJJBlgyyZJAlgywZZMkgSwZZMsiSQZYMsmTcs8QCHRwL+7oPGF3BAoaiBxrYwA46OBbeA+SOAipYQGyOzbE5Nsfm2Aa2gW1gG9gGtoFtYBvYBraRNj2OAxRQwQJW0MAGdtBBbIJNsAk2wSbYBJtgE2yCTbApNsWm2BSbYlNsik2xKTbFVrAVbAVbwVawFWwFW8FWsBVsFVvFVrFVbBVbxVaxVWwVW8Vm2AybYTNshs2wGTbDZtgMW8PWsDVsDVvD1rA1bA1bw9awdWwdW8fWsXVsHVvH1rF1bB2bY3Nsjs2xOTbH5tgcm2NzbAPbwDawDWwD28A2sA1sAxtZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZImSJkCVClghZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiVKlihZomSJkiUxm1DnLGSN2YQnRpacGB37HljAChrYwA46OBZGgJwoIDbDZtgMm2EzbIbNsDVsDVvD1rA1bA1bw9awNWwNW8fWsXVsHVvH1rF1bB1bx9axOTbH5tgcm2NzbI7NsTk2xzawDWwD28A2sA1sA9vANrCNZYsphIkCKljAChrYwA46iE2wCTbBJtgEm2ATbIJNsAk2xabYFJtiU2wRIHNUTos2sIPRpO84FkaAnDhtc/q+xhTCxALOunN2vsa8wUQHx8J7VNxRQAULWEEDsVVsFVvFZtgMm2EzbIbNsBk2w2bYDFvDFs1/PiGg8RafRAfnn805Txrv8kkUcC7knLipMaMxcS5kb4EGNjBsseej+Z84FkbzP1FABQtYQQMbiM2xObaBbWAb2KL5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"
2213
2209
  },
2214
2210
  {
2215
2211
  "name": "sync_state",
@@ -2225,10 +2221,6 @@
2225
2221
  "error_kind": "string",
2226
2222
  "string": "attempt to multiply with overflow"
2227
2223
  },
2228
- "737457407951538843": {
2229
- "error_kind": "string",
2230
- "string": "BoundedVec has non-zero trailing elements"
2231
- },
2232
2224
  "992401946138144806": {
2233
2225
  "error_kind": "string",
2234
2226
  "string": "Attempted to read past end of BoundedVec"
@@ -2332,8 +2324,8 @@
2332
2324
  }
2333
2325
  }
2334
2326
  },
2335
- "bytecode": "H4sIAAAAAAAA/+29eYBcR3UvPJre932Z7lk1o81s3jCywY6NV8CW5Y1gYyIN1liSLUtiNDKWwWBJyLIsLyPNyJtsFm84AcOXsAR4SQiEhDzi/sKXhOURCAGSF0gCcdge4QH5WtZ09bm36pyqul135l5N+6+xbtepqrP86tSpU6cChw899Hs7dm29Yd2OqfGpiZ5Duz/02snNW7Zs3nj++JYtsz3T0zPT018Y7qH/WzLd/O/QYUDomyc9u/vp87dt3TE1s/uZCzZPTtww1bv7g6/bOjWxcWLyyWtOO1VO095+iVb7O5+wt+/R6/+J3U8dY8GhBKPz7JUTW8anNt86oTmTHp5CQJfCh4+NZcP41Pj527bvYlN6/gk4KED9+NBv7njoTxgY+lNXTW3bfugwMlKbkM5/+qLNE1s2NMl+64aTt+0/MvFfz775iunb7t3UuPT3rgr/+9++8pdPb/re//yjP/qxveEFrOF09p9e8a1T/vW/PvlXp5/5D4ev+uy6fz7/9aWeN33q/7n4kac+8Pb/197wQtbw+Q2j3/v67G9d9pX7imtvf8lXP7vn76Pn5z/58E8v/96rn91w+257w4tYw+xHX7f1hld/9MyTZ2ffteLKLz70pc/+4vM733Jo++E/O/q+j6/5tb3hxYCDZ5wu4eCSW95vb38J6/inO772zF/d97EvPDv1wacfzH0j9UjipfF379v3H/Uf9T/6wr4n7Q1fxzp+4prVUslxsnm9VvOwvfkb2LDP+cPAdZt+/5fbEhfv/ejbv/G/1uxM9Y9/fujup6/780NDP1h3l73hpazh9+89+u7MRw+/f/gljZ+FL37g39f95HWh1d9ovLPvz/b86gcvzNgbXsYa/s11v/rWxzMzt99236ffsXplYfzDM1/7z3/94l99JPOT7zz3tq+90t5wjZ6OR+3tL9drH7e3X9shVF6h1X7JYXv7K/X6z9rbX6Wj4T0AIOfaX63Xnpv/NXrte+3t36hlofz4f5sp3u6nnv3Wefc1Tv7er+L3XDb+nttOO/i3v/3D26sfXPbPNz3X/+GcveGbWMPvTp1/aKpyyxk/jP71fad8oD7w7Z9+8OP/8vNdE6v//V++/8mRn9gbXqsnsXPt7a9rdVw9dcWZ2x/+cvGbK5f+/bl/+uGXz/b9dOw13/zUJR944Zf/8xcCUb251XCJpEt7w+s1RrztjqmP2tu/hbGKEwfd8e8gDTkC9obr9HjM4ed6p27DXPtxvfacVr9VMvHWfyF7wxtAwyV7l+54KHbfkss+v+dlH0/GP/+D89732vMbf/Wee4YyH36fveGGVsOTXhN74el73rWv5x8/+G/3//ykPzr3ZbnB83Iv/7ujX61vnXxz3wv2hhN6U+23t79Rr33Q3n4jWOpO0ZfUJkVOcw03a/XL4d5Niv1yDW/W4xenIVv02nO+wS167SP29lv12ifs7bfptU/b22/Xa5+xt3+bXvuCvf2klms2bG++Q6v5y+zNp7San2xvvlOr+Sn25rdqNT/V3vztijbzGnvD27T6Pc/efJdW8/PtzW/Xan6Bvfk79BSOa/9ORa5dam94h9a419qbv0ur+VX25u/Wan61vfnzd+qxjSewW2sAb+ba79Fq/xau/V6t9uNc+/dotX8r136fVvsbuPZ3abXfwLXfr9V+gmt/t1b7G7n2B7Tab+Ta36PVfhPX/qBW+81c+3sV7Z5veZ9Wzzdz7e/Xar+Fa/+AVvtbuPbTWu23cu0PabXfxrU/rNV+O9d+Rqv9JNd+Vqv9Dq79Ea32U1z7B7Xa7+TaP6TV/lau/cNa7d/OtX9Eq/1tXPtHtdrv4tof1Wp/O9f+Ma327+DaP67V/g6u/XsVkWcv1/J9ai2XpLiW71cMWe7nWn5AMWY5+8yVE1M7J7fu/tBF2yYnNm/ceixwf+R/jN8+NXHDup1TW9ZtnJi6Zmrzls1Tu5o9TE3cNvXNnsru5y6buGXb5K7zNmyYnNixA4bTsS9B9EsI/RJGv0TQL1H0Swz9Eke/JNAvSfRLCv2SRr9k0C9Z9EsO/ZJHvxTQL0X0Swn9Uka/4BpSRb/0HVOsZ67afMv2LRPHlddv/2fxzaU/OeN0LZpPXXPKqavpf5WPdHp695OXbbsVnIXV2qeb3ElbXW+z8dLm0e3mreOTu5qNLt9+hBF+sinq4xxp9QR6eO51WzccP3izdV7TPYKwdt7ugnXPz7nXzo1+OLSnm+eGkxOWr+1dFNJbP99bf7s3guJe4xSPGqd4xDjF/cYp7jNNcYfxIU4bpzhjnOIe0xQnTRO8wwfKaF4udxuneMgHs37AOMWDPrDqA563weae3PtrzN7FuA76QdSP+sAGjbsTzQCq9/H2kA8kYx7Bjy5K6DnoC+2x7dPq7b2k6p6T9YPuOOuGdpyCadbb3as3qkkbDdA9wYjec+2I3pZtG6enZ+1xmLlmr9/9u5dMjG8/b3JyfBeUxUuQ368X/36gZ5aLVTTDrrufPv7DQ6KPLxHHUexNjkcyeqzT+3R7ejdOTN2w6erxjRsnNly6beOO6elDyNAvsZEklIwLjfTrpkJph0b6F1xRIX8/AdVnfMP549t37NzSNFYsmFdD1GjJYYHkT0FkvGQGDxZiMkX+fe2MfgCPE/qgHt+H7Ao11BpNj/3LCOSc7dtSKB3bt9EWxbeLFazHrmA9cDbHk/Qb6SvmyPK/6SECZCP2bwNwzE3atnBem8Yc0587PuIX/+fy7bNgmk9etnOLsOkAR7cfMwuVEdh/0gt/TetCTTEH/qmOw6rXdIw+ud1PvX7nLdsPPf99DAkCz17aNJarN41vhcqyHnLmmWMkXncjkHegkfhBi/K/2ZUhSIBnyHXwDOHgGTQEniEePIOGwDMgBs+Q2+B5kZvgGdHj+wCPLhh4DkHO2b4NQ+lwoOscPCNOwDMEx2z7FoZjtuNSANCQgWfQCp4B2IWdbggzC5UREOAZkOhCQPHm0m/m4KWxBHWBg06QK9hIPMtIh3gx4dAVdh26wjh0hQxBV5iHrpAh6AqKoSvsNnRd4CZ0RecDuoIEdIVMQlfUCXSFCeiKUNAVBDRk0BWyQlfQBrc2Q0TMQmUEBHQFJboQVLzm+dcMX/pRD8IJdIUaibMYacEqgkNXxHXoiuDQFTYEXREeusKGoCskhq6I29B1oZvQFZsP6AoR0BU2CV0xJ9AVIaArSkEX8I4iMugKW6ErZINbmyEiZqEyAgK6QhJdCCleNN/D8OUM1INwAl3hRvwvGekzeTHh0BV1HbqiOHRFDEFXlIeuiCHoCouhK+o2dJ3vJnTF5wO6wgR0RUxCV9wJdEUJ6IpR0AW8o6gMuiJW6Arb4NZmiIhZqIxAHQd5AFCsyvETO5d629jUQp4rMAONWUFNBLERAazFGvENjPjVVkP+XyvalrzzeBb1lRM7tm25deKyZlfjGyfmcqqbpxTm9jwXzqgnhPJahaNw3HUUjuMoHDOEwnEehWPu7n3jvnYgkwu9942ZROGkExSOEyicUNz7xmUoHEP3vgmObhwzi85G8MyFb9s5vmWHeOcsBL4lt3SMEj27n7p6cvxYeSYRHBi5lBJ0cMGke1nE25dFauiXOvplAP0yiH4Z6l5KWYBLKRaPq+VabTd8BBD9e0Z6R/cIwP9HAK6eXnaPABbtEUALJA6Yxp97GOl7u9kT/s+eeEM3e6KbPaGcPdE1eGjwuDhDfF54mNDYgDk+jhnlY8A9PgYc87GVX79bw00MExn7bYp7jVM8apziEeMU9xunuM80xR3GhzhtnOKMcYp7TFOcND7Ex4xTfNz7kz7sAxM0r993Gad40AezPrAY1XGvD8DxiA/U0Twf7/e+Opq3wUOL0omadeZMqw8DC110eOkyNIqFFLAQq/6ly1GdS5dLutvWbpyqG6dazLd8gvDXqrd86EdI8vKkrd6UYhI9oAENVpBGH13KiGethvyZtiG/deeWm6+cmJrcPHHrxPHL5Pr29tvIv7+pgzStLu76D3ff1MXdLu46PR/oJiT4LyHhDd2EhG5CgnJCAj4CLi8zIPNtes/uGCV6iLzMcNcd6bojXXekW+xBcxtIPyn5U8Fla60nGy5iG7prDF+57r2ekX4TP8pexYchohRv6P9smfD/6+Q2yNw6vmXzhvGpifO2bngxAnrh1rftnNg5sWHNtqmJHc1/vPDWia3H7hcd0UaIS5F/vwyl1Iuj3BEzWc3stQqxfJNPXrXzrfZAAAuaIo1SH2kpxfGFFqrGWlo1Uo3e9QwcbrKbeZpYFjOuL4sZfFlMG1oWM/yymDa0LKbEy2LG18tibj6WxRSxLKZNLos5J8tihlgWs9SymAI0ZMti2rospmAXdroZzCxURmD/SRr+2kIMwx4kfJm0WJQId25j3L+FGmlSzqumhIVrf4qXD45nmqp9jT6e5XA8yxrCsxyPZ1lDeJYR41nuah08u1oDz4D+iBHt+TsdQBqviplG7xPMO9qjU9VBcwnMGl0CI+4tgaCqw9MdamoG6zYr0lQwb5sYcvAbQjIvcoNE1HMCLcg3eh/gj+BzLU5s0rC4XJt9LbW6h7+Sa0ytzjOqVnH31CpuTq3O9ZFaPeaeWj2ERtk38jt27Eu0vYvEails4m+N2w84A0/Zf1NuK552iXMbqUoHpBAGV4mVcu3upy5tLolgAFX4JyfOMqTBfa20yaI+TI0LkVbbvOe1qtYIvJ0pwXMuvojmYMla8BfRuDkPGFqyBMXqB+C8bWIYhN8QkkMktgxAYrwWDDV6P8Or26AUWwb5eQzy2PIJopq8thFyo6xD0eH623lHtTZSqYsVgHo/hwUD8E/7xmUQUzvul6CPQWQzNoCtj3aOVfl8ky+iKySyYWM0tgtULdsIrGWkv4Rjait4xUiBuWDaKDEBYlSDjd7/FwSv1OVblYbU6FFVLQMUjetv2Li2U4tJmfs4CBcODDVEBizn9DA5J0BhSDCn4Ubv14k5WYDQ/tFi7MjgaohaDrV3e8KFsPdbbFQ7NACvKnUQaiSTh7hJ1hQmKRjIkFQVabEN0WtEU2z/BMRGuS5VkesCiHMBO9zLGHZ9BzOMexlDhryMYUJYAi9jxNAOZoTvdgTOG39cYxgjOUpq0AgkxmvQaKP3J7xmLJV6GUv5eSzlvYwf8bFeg4v/MBQdrr+ddzQk9TJGCKfrWpSHqog9IhDc0kbvr4HpY5CE4O4IibuDjUCPHHeXOsHdQZHegGERC+Yg50GNwI+kOwYW5RHEHRuEv6bcsSy/O46iPhPC/2xbOXj2VxuBVYx0Ao+F2Nyxa+FcsPFIVI4eVUbujtEbb0fuWNaiXyJlLRCuS7ZTd2yE9BSqLhl3oI+YUxFioP1jCeKWplrSsNDUgEE5LFRFK1xnGjAi1YClil5QlvSCqvxp4NzANxOhRe4YNA99Y9u3AvQjWzb+sD58PEu5hU1BvZQRv0xvhzKiYBJLHalPU6lPkavPqJNVRbAUjVKrylL4p/pA5Ho8pqrHowIGjTUCq41486OUyIcpkaOIMSoT+bVC5zLwW2xCt1oP4QOWycy523PfgrobjFYfu+zmxh6gC6ESE6mOTN+W8Y3GIE844SxTUDhHwLm0E+BsWuTrKYUbhjwReMWAeBttHDkGeKZFVe5k4TEvgNHCqNdVjPiUecdhCBnWIImSQ43Am+QoOUxnAigHlobhsOyTHFLAhWFi44Mq7YiqbzQsYNBII7DOyGo/TIm8TokcjQANy0S+XRjECdyogJLZDlEyi6PksBQlR0Sq42BVtuzYBGEHucJlnSjckKrCZcUW+TZK4eqQJ4ITCkC8jTbqs6uiKFkVkG6eDDg9wGzCEefk4kHArOtHjVk8CJgzFATMkufw3JzLho4ay3y3FhlRcsbi2aSGl2k/oHngfBevGFVpELBK+uotZd9tn0/RnFqdZ1Stiu6pVdGcWp3rI7WacU+t7kc36xv5DTmWA1NAc2BKfJTvYcphQN3A8jPioBblBJYbgcfYknMvmga0mbi4kyGuHOb4JCHAKy5NCHCLy3MDCs4lEQFettOIRPdXAh/sOE2uh7gPmEE1pXMA6jUKQBn3ACiz20yiMPIMYdbXFx/yC/0MYcbkxYe8k4sPWThmPNg5TN3by8qS+TPoM4Q5KoMmo/wMYRY53MnAX6tcfAjJLz5kxFj2Wcb9B/Drutw1sIx0D5NVuwaWEUc6/kx+dJMVLlRJy7ojIv1Vhu5/oYFHSemEc6TvkbSspdy4co3Al+AJik0fchpKm0VvoOTw/F6BgMHQHeUiS1Qv3wh8WS7kDD+ynFQSeTXVE2dIB/4OjgpZem7Ytn3X3NIjKEOHLw5wUdV/qGi20+dqWor/VeqmlfSWdAhVsLSVYX/YZtiGiS0TUxOMZYcdsCx0WKekE1XhZUEvi4bcu9IAKrzgq2WG3+JkLRIUd5dWLyjzybbYdxzriUndiRcl9N7SS2gvSrHcYvdCsXG/OuPrKkC5hfarfXyhGHi1uheKoUPcwYViwQioZc6UX50W+9W/BBeKJUtpK7Ty/vaHlItYlekWPzjeY1oHq9JOLguHELTaZgKtKt4tf/D8+/ThqsIM5rALcIWHCEaIfKilRD7UKH9OwP4c48Oz7M9l/NVE9udy4Y3wYJEXfspcvDHFxYlBwYMIWmqBt9cUkZMcUewvbqi/OKHCKQJL0677fWkcS1OGsDRN8go3oTTPxwy0C145w43gR1vbyiCfxxWCA0CjS9TOghtQivCkDJb1dHBSt+BlPfETlLDIIFtYjT5XFaGLMeAU9xqneNQ4xSPGKe43TnGfaYo7jA9x2jjFGeMU95imOGmMIPszaHzWh4xTfNAH2nOXd2Xt3qQPeX/S+3yg3w8Yp3jYOMX7fbBsmV9aD/pAe6a9b4T3+4CNB4xTnPW+YO72gWBmvM9G83C71/ts9AXc7vU+li1KR88P22DzgnnYBxZjXjD3eF8wR3wAPAe8z8bHjFPUefwa5oUoDwPEp02++Rk+V+/Nz4iDNz/P1Xvzcy5aHp7mouUZyA71Y9IMIUFYZFsnrbygF7A+Wz9aXnA/rbxA8oqr6gmGRtw6Q6PlFb63CiGZihyiHFM8apziEeMU9xunuM80xR3GhzhtnOKMcYp7TFOcNE1wl/E5HzJO8QHjFA8bp3i/D4zaPPAc9IH2THveBl1QHvNsPOB9Nt7tAzY+6IN18K6uqD3pTkz6YB3c6302+mId3Ov9RWbSB1B2yAfKs9/7gnnYBxZjXjD3eF8wR3wAPD7wHB8zTvFxZ4E09WG4FOQtvEYvyFtxEOR9jV6QV5QpHXrlPKfxg/IqEY34fZhQFktOMUZS9ipwVMyeV7cugOSu1RhtpC1sYv5hL91xcKW/Tm+FObseFEFr860VHwlQN4BYve7c9eo3gFJwXOihCVdFIIqNs40qalUERMpcaIQul9c2iArtZBvkBza0udIXx26r8TPaKB7R1R3fIKPQp8IpPCjSVERZwCt8lFD4IvwZ9nBc56dZMaOnWVH3TrMAr5ydZm0y7UN0CS4OglhdOhPPlxTUrLzzjsBbk3bwqiiAlyb3ivBnGEnhkrCm/YMS1rIqWhIq1JJQbYR2sQX3PvS++fpWwkLoHYqjBjTAuPkBVBrRICP+LkoEBVJJKiLJgp4JwilDsk2pyJYnWVJY6+knUEqW8YlkfLf81Z2STOsqWlpXkmjdvVpad7/iqEVaJ6o7VWpE/jcjfohy02mtS5FaR7pDcUPuUBz+jOgvZai/FPzZwuw34kQ5ggRfjoD92Ue8VBbmX2FAWae1i5lW38VE4Ww5owCztYs5AWkgYk7wYk6QyyL4GUZSWHwPmC9veIlGJMoM78NU8lsU38dRcShqIhmyroy4hFiB2FGU9JQ9oL+jKOE7ioKhHUWJZ2cB3VFU4dA4Vld3K6xkfHdVQnqAZF4ndVGzOOo5+qLJu5+6mNdJXSzBoXF8ZMsxnrpYErkmuGRK8sC7Y4pHjVM8YpzifuMU95mmuMP4EKeNU5wxTnGPaYqTpgnebnzOB41TnPW+euNn5I4pPuQDmJjxwRjv8rwN4ienTilOGR/i497n4rQPjNoPa/+s90V9tw9EPeN9Nh72gf894wMbPOgDPt7fBfBFAuDmBfOwDyzGvGDu8b5gjvgAeA4sQv975/z533knqZB0oNVkKmT+bOT34+Lfl3r1UyHP1kmF7J33QL86SZZbt5YaZEZDFVJtdtsp5uGf6ik+jOI6jmIB/qmueYzijRzFEvxTPYrPKN5MPeRexSjWCIpbOIo1+CdCsU5QvIWjWId/IhQHCIprOIoD8E/7wRN8i1t88MQO59azYhFX6OZegHPBtDD3InyYEb+arxw8NwDB8UrU9QLZUfx4JWLoeCVK5BF3+NhAWAy0UV8/jBKfj7P9MHG2HzH5MErcycMo1Al9DI7Zbu8gCz0qexglYn0YJQy7sNONYmahMgL7Tyx5/SoPo4TlD6NEhGn+4S3yBwfDfL42SPPHbFotX1s0qmgjvF0hX1v24GBYTHovA9odGngkf3Awpvr8nihFPdYIv514cDCmobQvDp55zu+HRLCRi+QLRo40i6tOWCTjeCN8h1zGEX5kMakg4mqaFxOPavd8vDcYVX+ips0LU+8NHrMA/K2msEy/wph+hdx8bjCs9dxgmPCYIq57TBHcYwob8pgi5D0xfK2MkLu1ENZdiOzOrecG3yD23UIOnxtsV3qz8acXotbcr3qvmfck9PlOjCb6ixjqL6LYX9xQf3HF/qKG+rOkGGtvCefoXiveED7FFiKi8FnTP0WorsMaDZNZxkijIb7RMMXrIfin+kAq0sV9qZPRj/CNllr2CLbRj8A/HYx+3OjoK5qjr8A/uTxrfGEcdX1hHMUXxqWGFsZREbPMhBKGxcvRqNuhhEvdDCUs0+P7crtCLUdDCSsh52zfVkHp2L6d1EEoYZmTUMIoHLPt2xgcs91rBgg4KvOal1pDCcOwCzvdUcwsVEZg/4kFKizE0LGOWjz8D1BYM6zgowyL1g4lH2X++8OuzwvgckzPcgr6cDmGw+WwIbgcI3ll48YyODSOj8sgkiHdLeO7W0aIBpDMmicZNk8yZ57kkHmSGfMk8+ZJFsyTLJknWTVPsmaeZN08yQHzJAfNkxwxT7JinmTMPMmyxm5i2MVQDnBqxMWf8k6COXmtvZJsTzlEBrKXQtHzO/WhRvj/EpF7sBFGjpcrhI8x7PqWbBj3MSqGfIxhMqaCXxIe5hV8RGFdHCK7cytWealYvYccxirV1TvRVm8ubwEwoJ25wClZL8wmkop5hb2bAKG/QT0VukFff4O4/gYM6W+QZ3oA1d8QHBqnv+wtlts0Iu3U89shaVqgU4J4erxjinuNU5wxTvGIcYoHfcDH+72vjtPGKR7ygfLsN0YRwL3pQc56X3v2+UB7HvABhN/vYQ33E4Qf8j4+TvpAecyz8YD32XiXD/T7rq5D4UkoM8/GGR+sCMYdFPwNHg+Bow+U5+BiXAb3+gDKHu3i94m+IfTR7u09PmCjD6DMD87t3T6w6gd9IGrvO+A7vK+M5uH7Hh/gjg8WhFkfCMYPuHP/IsQdF8DWvDfxkA/GOON9UZu3avObt8M+oLh//oywF7xhMPfjja0/Ngvyb3qPPSDQaeLBBv4Yf65LQVJDWJe2dlJDmL/PCEamdLnwjNPxgX2o9KdvuWD0v6/HREA/Qoc0ipBZEp3WrXirNZ0/APq1fgnyXJz7EoKdzyVs5b/S8f3Qt2pxEfTCGQfj8SZngmm9BgZUBdgDUVymQNWJQa/KCerEgGZprFmdTLYDFGoCY683Iv8Ok+3w0jHo7QBBMZo6gVgp+DOMJPr0yRzdbeKp/Fh+w48qdNOrMcUBOCpHFXeQOdZao1kjmONAI/ILMEfMhEvMCJkRaz4Q1+pjF1rpBL3aPChilozDghzDQcgTTo2GIIu5rwXYN3XJFM02FxSWYtq3lnjBpAQe9iFffPIPQkTjaghRNIQQRRMIsUY8lawjhCj6CSGiZQWEqHQRolOEqDhEiAp4cK5bZQMte6F7mTgkzheP+LouWWw+6pKFiLpkYZN1yWJOLhNH4JjxOizDVAmeiLwEj+UysX1no1hKTGEEROmykFJdshCyKPRaLIpbFkKN6FmM+7dQI+3toFyRe2UWM/pw5u8yiwicRdM6cJZ2cq8sjADaNhOAllloQMMLLT7/Pn1EY28hNsWijGhhVUTDqzCO2L+BOj1LiWtLo/ZvoKjcGPHy/DLCn1kuLIMYvYYXfsjcc+yhruvkf9fpt910nbInlOuUNe06Zdx3nTIL5ToR5WePuS7sfwOEIKnzCs1FzMHjqBkcT0KG8CRDHjTZuJGFQ+N2y1lo6kh3Wb67LBEDysKlDSEZJ2fg3sX7iBgu471ObibrXB4Lt8ML2CJBRvosFsMv2pFG9Hbi4j1sLb54H/LqGhxybw3GbSYOh8YpeBwyVv10yk0FZ6uyUL3DZi/eC9S7V6reYVK9e2n1bvqkdwP1xkuWhljJUvTMK8iXUZaPPqRWRrlXvH2/H5RR7vq+vvd9L+qGDbthw4UPG1qyO4S484xa2DCoFjZU8r0Nxg2v6cYNj/d4tQ6eXW0ybvj8nSd64PC9HQQO8//YDRxanbTPuRw4tB/FW1DbTFam5QWATmfjTJX70MqrG4kKYVG+vDXQIrzMb5wo85sgqp4m+erHQFO0rSrUsqrilwir8ppALiIEEuyACctXqkNLL+xybvuz5IDR7U/Y+faniQrfxrc/lLsQc337E3PfXYi55y4gr7nF3N7+XOjm9idxQr3mlnCy/YkRrkKc2v7AJ9mcv+YWpx7cUn/NLeb2a25Bi0WJcOf/ENufsMb2x3b0ECIUKU7gmaZqX6iPZwkcz+KG8CzB41ncEJ7FxHiWuEAHzy5wdiogRrR3+OYwM0YgWhxFtHd2cJi5fKOZgE4CjhnfqIwQG5WlxEZllDg8HRMepMSyHbsi1CYmxsM9Dhlx112gOA4ZMUOQITjrixmCDOw4z20X6Hw3XaDcfABGhACMmEkXKOfEBYoTgJGlXCCANHHZsh6zukARG8jZDBExC5URqPtT2BmK3AWKibFsJXCBVP2bKOHfGASr4mIDK2S/Fi/ogFXBpH/zNhNwVVroHRsOV8/fq49XpZbFrHjMBbyyfcsRDk6ecHAKhINTpB2ceCN2bsfXuCkHR5YSccbpcKxz7S9G4ydc5MnaHnQrekg6dgFIG8C6AOgKiYMtYllM/OJWuC22t+vVuQ+Uvvbqit6FSQdeXdG0V1egvLqwc68uDLtw7tWFtbw6Y4GtmDCwFVvHuP8ADrbz/Vh87Ab5E/bxZ0TJX5JEhibpWxnQ3qiBR0HphAtkUloQago/rkIjdhORc1nQUNo46oGjD78VRAIGQ0eaFVVnLBJysRHbLhdyjB9ZQSqJoprqFcSjmoKjQpaeG7Zt38VSK2cdeNFxdf+6zYtZlaWDWkhain8rGUnXzOCJQioWhv1hm2EbJrZMTLWzUQ87ySs5TE5YIxdyQQ8DTeVCxshcSHy1jJE5yBEDqZcGc5DPx7IyneUgtz1se/IHWJNTzooEUQVuRCtRohG7hw3obqVz+O1iMvd1nO1LbcEiHK8iCryKkEfVFK8i3d2P/2ParmY1F06omHbB9O4nQe1+zMS0EwsV01Z1egOEICPmjtUdZBUn3E8TStDY26E5XY1vIrhuC3DeeGgxgRbfIjcYBUiMXxlLjdjHREWl5jiB1gIsknWfWiv2R3izY8JWVQp8PUyo6W/nHTFi67llHrA3qyVzvLesBfbmuT9sg7CeyfRzaLdIdIXR2C7c0scvZaS/wIEcGFuuhYM2juQsiIuzC3Xai8i4Gc+ev1O8B/6SQumwXIelw67BS4cxewtplOWTF2cTVOoqQaZw+lNRUMksoZJohCKnCmxZgXxyjdhX5CcROUT2WVL2TdpfV5B90T3Z56SyF4BATir7Erk6ZXnZA81IYkSTxGV2h3HCLOxWGCf8HpA9tXDkRGgPiNsBJamwrRNMOKm2rZv//uR4/0O0WxneXysQTbIRP52RfoGK+qcRvE9SeJ9SwPs0Mu4UafPpRuznCjafdM/m01KbzxJFFlGbz4nMEzCF058cFJd6FCgltfkkafOSSFFTsZbI8V6qs0LZN2kHFWSfdk/2SansUyQIqCuMhc2Ur5jRGIm8FkdatRZHSmib8Yxc9mFHdh9uxPMLa/dhqezTTirmZ0RgQdk9yOPNayxFqQ5ln6LX+qbsBxTX+rBkrceitMIj1CSpNZFGfGlrVCv/xCPHBexLHDkwuNrJgcHVGmuA/ECcrskTo9eAJtdXEufDguO77nnYCXgedpHZ8zC1QyedFVYGzUnSJQtTLjG/g8hS/nJOQYhYXCdHImAzsPMahXUz6966WZCum0UyUKYTVAFMMbVHzkmxMktiZY5eN7ON+MWK62bB2bqZJP1ADnmhCsu2nkUipNCrEREpUlZVgH/aPxYpqyopWFUFsaoSaVWVRvzqhY08VaRWVeX5XJEKh36so8RrYA1KR13iJWd5USLRijOj4usUrapCWpXOnJSsqgAC+O5doXXg9ZyYV2h9nTmd8u4FWge5AyknuQMJOGb8kuwwdSyfkCehWnIHYpY10EY3gZmFygjUExEUbmxAM+q1WJTgxkb8nURJADDSXucJuzHikJlT7aTrV+aSOJ4lDOGZwLNKuItnSfevzMXdvDKXW2hESxi9MpczfWXOAmn4vf8R4t7/UuLe/yhxRU98ZS5+ZH5rAnR9IP/5QBe46QPlTygfKG/aB8q57wPlFsoHQseasPogQUKQVD52znU8ybmfj50j87Hxm9WCAFkerhnqp1Wx+TgqSYixLWO2vnuMAGc0UJEgAxUW9RbdiIh/ijgqga3FRyUxry6YMfcWTFzBM3Bo1Mmpzvscbio4W0KRqw9uq7e8AmZc9fkC8eXY+F8A9caPcGLsCOcKjYu98tFHnNfvbJ5iPo/X74x69Ygy6t4RZdSQoxrp1u904aJP1L/1OyP8Moc6f1H0og9ZvzOqfNEHq99puTrcSfGqsMWiRLjzT0SwTufycxSt3+nmxUUH9TtPzIuL7tfvjPq+fqezq4vzVb9T+eriwtfvbLpav3b5bnX3rrPv7zq76gJ163d263dqu0Di+p2JkrzSU2TeKz0l+pxWegpDzglJv7S1A070a+CRPKM/oZrRHxeGpxLDRHgqoaG0cdQXTeChH6rSU9jZ/RWJ6iUbieWOKj0lpJJIqqleQjyqkxa20lPU/UpPx0yA2HM5f6wg6malp4hWpadF/uyL08x29I0rjUfpDIZrL0TeqzOe2R5mYdEzMA6E5v1Zo8Q5zp41irqu3/5+BTGMaZWfz+/j87EnmLdnjeJO9gRRYk8Qo/YEMFDo/FmjmEYkU2EErj1rFKJd5CbuvFHtWaOQpqcQJBSpe8zjo2fagP6cyA+1+eigR5SKnLjZ5Sr8XRP2rwnPh0uSPKEMOGnagBOKLonuSW3YBjoOT2oVXlqMuuCSRMUuyV5HBemj0g1aTG2DFhUj7H6FCJYwTGl54VFI+lEWrblHA49CHaYZhaCmCMOn9+tl0RGxdcw3JFLGBAIGQ3cUmJWoXjMwOysXcpQfmcN8Rl71kHDxw/MRpow5KEgfNRamfNRkQXrLY66+KEi/oGGcsHthHLwAh2Vx4sKUlkMxTxXguGC+CnCEWJgSPbty9Pp6yHmYMtRIfBgPU1L6HXFdvyPu67eGwunuCUKYVvm5THtsPvYEIWJPEDa5J4g52RNQbxVHqT0BDNzJVz/LnsDi5ahHFhVGQMUHlfYEIfkjVWEx7nyBCFOCkQY1PYUAoUgGj12uWWzHLgieRa/WwbOrnYQpwwiiPX+nCUjLLDSk4Scvz79XH9NYZcn8P6pjWlgV03CPb4QIcC4lYiejRE7oGJETuozICV0uDkJ8mxd+yFxANdQxdWeq1cerFvMEOMUC8KytWSGWGbxSXbOE5ed6NUIEcu834dz7bW7Ef4h7v0litUi57v2m8NUiaWi1kBTh7WS1QC6iptz2fi9x0/udl6UiQSwVSZPeb8aJ95siVoo05f0CyE/JPLqk1ftNwC7sdFOYWaiMwP4TS7F2Fe83gXi/cYtFCXAnGSK8X5180aTV+60RipQi8Cytp9pv1MezNI5nKUN4lqarl7qAZ+lrdPDsGifebxL9UneAaZzJ4iqhiXY5fZXI4CqRNqQSwrLhTCU6vcul84CMpRY9Xp4ELSmRV31iJCcAnHwjWRM9jTDHiU0aZTPAsyxz/lyyJIa409gP+rmaoxZMVy9pAOqGcbNJE9Bn8H2484yWf1ig9+E0EfdcDQ8yRYjBUnfCUZngFCQmKhOcfKmooIVMzwUwkeH1fIV9PoHWbzbavwShXtq+sVPe9Wi8fROanbMevV64iY3zUzzfmVKqKi9uZxkoDe7ulsGOsu05E4XA086wi4KPHI/PBqeVI1QjbbKjdJt/2JpCmi+P2nn4J/GefZ72xEEfBcQTz2NYxYeS2koyp/6vQ9EK8dYZjSsFkJJqpE9ipC/FgbAVuWCkwFyw4sgk1OWpURUaybXyxIa8k/dNCqoAnBeP62qYYoI/eJVx9FhkkXzyDeV0h4+OJq8j5pSHpu0EqLAXvkDR9rrwKZnkOlBcXb0At/xFhzTJ5SI3y7TCLIX17GW6SMutCIcnlNuNVHVzy0Km9c5okXAnS667kyXcnSwacifppzi5OZcNuZNlvtsynLdNDBX4DSvvT2pQGRLjNajaSO4UvSAqcycr5JsCrcWEK/RVMrn6l6DocP3tvKOi1M0oi+BkrtG1KA9VIbssfHgi+W75E2vYUzFlGniba9weOfBWnABvQaQ4YFz0ox82H6oMP6o6ZGXEISt04JDd49ghu1bskAUY6fvkl+IZKTAXbDwSnSNHlTwkd8hSREjDoUOWsOiXSFmPEM5LolOHrEy6Cim3rPsoMacIBEH7xygELk21lOBCUwXeL8eFlGiN60wFylIVeMo5GKakYPhBR15oQgqGMYlq2UUbg386cIcdvrGTor3QYiP5EUUvNCHxQjGoe0ZiQ3VxfPZjbFj3ooGtzURgK88HttifOSLFJA0CVfzAAo3k/+g4SEslavAPYAXg9BAmB3jFCRBOURD+DCOJ3C1h66eIOakNjHufo7bXQa2QrdJEUop4ycYP5yRCyy+2FDB3rcZog217JeafcvGoy0E2x4IfdXGBWjA0CnVSOqfImnxcYZSPKff4mHLMx1Ym326tk0KFmPjze41TPGqc4hHjFPcbp7jPNMUdxoc4bZzijHGKe0xTnDRN8A4fcPGQ99XbBROc9QHFgz6w6gOet8Hn7/eByfiAjQ/7QL/NL/73eF8wR3zg5/lAvx8zTXHK+BAfd7Z/UB8G2LxZUlefg6mrGwWVAeaavR55C2o5liIv/n12yawgxXU1l+IKPy5HEuqRG9PzHcaY7/6wE5LO75Vkjd4rSbh3ryRBnB5rBkAyGlkLaUIMluN/R8mIaUhMlIyYepVryYipU9GYLTt4S52pe8LBaGwXRuxSVzHSr8EDpdwdLnlZm6DaHS5RHDHYSJ0rP3gLCkOU2+HMkZahuSjtsbR+YN5zFDYK7zanLuzYsqkIdoqnHlzYq4YbiauGXBbwUsh127fR9p/cVf+x9p/cndll7T+5smHL23/G9K9JBVvKVfwScU2qZRZ/oYGJAalZpNEzubmWVwrzwlK/LT+RyxCBdZ28sAy1sFrywizMC0D9aGnz3Leg7hrYmuwuNO85pOF3ZaRsyJG3OwJ6Kb8B0lMAo2qDOgb8SzrGBQcnG0HcnwgY8ieChO30EoeQQV4SIQJfggQfNa9yn6TPxxDOx6AhPoZIm8cPbEM8H8Pyk40wWVuHoLjXOMWjxikeMU5xv3GK+0xT3GF8iNPGKc4Yp7jHNMVJ0wTfZXzO9xmneNA4xcM+oHjQBxZzwPP67QI2PuAD5TG/xjzqfVHfb5ziocVoMXf7YGE95H2rnvSBUT/i/Uk/ZprilPEhPu5s06Q+jECHxzmvEx/PhFbpHeeEHRznrNI8zmGxMPc22A4CFQu+we6oAE0AEb+vC2pF5iNqHSAKagVNFtSKOCmoFYJjxkMww9yFLFjnVFYkKmgtqBWAXVClV+lbY4IR2H9iSYNXKagVkBfUCorz4v9B/sSE4GgqKI3BKxbXDooPgr4rP5oKCa8BxC0rh4j0zxjQ/rMGHskfNgiTZ55xqCmiMpupHxBPTOg8P/bi4Nv/W4NU0GVXIGAwdKRZRHXGQeEjzKn/UDh/5Ecmf5M4oqZ6YfGofjIfT0yEHNQtC5p6YuKYCRCAI1OwAKpgQTefmAhoPTER8KrPFHDPZwo4PpSAEsQMUdkzN/jExCVi7y1o/ImJ+JxtPP993dQPcNZYEN+6Zq/splfoFXYB91PRe8QVZ3duK410Qn7YXXWSkie4wF+F47LPsgL/VB+I/PLvgOrl36qAQQONdN5IEZQqJfMSJXP0nnUVlfkcS64V1uRI97EJ3YpmFaQ6zCo4D88qqEqzCgZEqiPTt0G+0QDkCSecQQWFc3TbvNLJbfOmRY5RCleCPBEUEwHE23DjINFwLZFMkeqkNAX7My+GyZexca9xof4VMizJbe9iI32qHCZLTmBSUJGrBMdln2VRARhKopv/Mq0tq5aUEJUrLTfSZxqByRIl8xwlc7RyVgmV+RxLrhQWv0qfOw8wmcNhsiSFybJIdRwsy5ZCN4JyTXKFSzlRuKKqwqXEFvkGSuFykCdUscoUgBvXYPJ1ghn0NtJvZH1fhRY53UgUOW213igIDR73daUK+GriYdW5wArwtwF9dNNNJmoStWZEr7FHG+m3slleT2xFBUNlgUhRuCu9vuMXjHqIDOMoscWIsAltcPYrphqbie1dL1AO6kU9PJsy/MyVE1M7J7dyW1g23Ta7zjgdZ1f9jya+/Fvf/Ndv8uxqQZWhjg6cGszdf+1ll7je0Zcj//bTv/qLjdOud/RP0bUX9n7i3iHXO/rYK196VupNy++UdzRnwHP/HG4vicLYSOQZPvIGzhOZZbZ+3kjfY11qQ+2RqAZf2EIsbBCzNwi0G1h6jrd/YPn3BLYsz/1zUjBlRivGTTnZSN9tY2q03ay1cNn7jor7jtsnF8fcgRZBewNwz6iFH7sx5QrpRrBaFA8iMg4Y0uafhR742oVfP/g1183m4Z+ueeXe6uh/yDty7ymRmH5UcsGfEsFvkqVFWwfm7zi68NUluNgJCn3vTzA4+l3OK+2FWosMp5cfTi8xnBT8mRNfH3uRA3/qYBPx1AH+2GCKKEiKPfDGdiK5tTyeFdV2IkuSuHtfonYiRY3ICrETUYmrlAmK41QIt6yxG2cU15kKkTOKN3IUq/BPTnR9eqsBais10ZhAL/ZR1eCfCM0+Yp43cxT7LN3ZDj37YXdkykYdNEJSNmrw1yopG3VZ9T+UBf3ClmsVWg4IW44rtBwUtlyn0HJI2PJGhZbDwpY3K7QcEbbcotByqbDlLbClKGiYZW/Up/8/PTyb6+H594mDkV/hrXPUXLxilEg11Nx3CYs5oPhTUlhpS2SYk1ppS/NVIZ6q8th5R6k2KPC6UW+kv8d07lcE82+2j7FObEJGXd+EjOKbkLqhTcgorzh1dBMyBofGcXEMrh9Id2N8d2OEVMekHm+X4AlFkAKQOmH1a4F58/bf30j/pvWDzADl+AQVPRDQdm4E24S4k+mVH4n20+lCyHj4Rv2Uu1iHf6oPpK/NYAxAyBOqPjg8nkGjjUyMOqEKwuaE2PgT0X6FRXMUkWl/a9JrxEPOKBx69nV46BnDDz1HsegqZX+jUo1aJjJawBNOOMsUVKpPpKYylaqTKmVRc6HN1RRzQ0ZJx6gPIIYo5ykzxH5wzrxCyuiJDikDnUBKUzAnLRykDDiBlOaQT15YSBmQQsqoKHNMplFCHKIgZcyrkPJqRUgZUISUcwTdDDYy57IfrJtXSLmgCyk0pLzBf5ByhdchZdAJpAhwaJCElFGvQsr1hiFlnaCboUZmnP3gznmFlIkupNCQssV/kDJ5QkLKkC6kDHkVUu4wDCl3CroZbmT2sB98YF4h5a4upNCQcp//IGWmCymehpT3GoaUDwi6GWlknmQ/+Py8QsoHu5BCQ8pH/AcpH+9Ciqch5bOGIeXzgm6WNjJfYD/43rxCyl92IYWGlL/2H6R8pQspnoaUfzQMKd/DZ2d78n1N+1vN2exqlO415/Yv8sovNSdmXFc145p4XP9GPI+uhK+iQcuZ2a867LowESDzAjHsHIUveQV8wW5016k1I9XI/MzRm+7yNUP4FDkYFXFVGH0KPEBkDKHKliKlVrfMScSgXymuGegTK0FhBawAJZdgI9uDP18O8t+L/DvQ7M8ycZGjQrz0W2Xp4hfPV96hxv2bkuupbyX379+UdO7fjMKhCQ4ZZClRo2RKRpfgYie4GJJws8taoJY9p5uE203C7RI8QZNws+cIfe8sS2/Jzmt6S/aET2/pMAk3u4DpLQ6TcLMLnN7STcIF2imyOdX0FsUk3Ow6YWQuy9JbsvOa3pLtprdQkNIUjP/SW7KeT29Z3Em4WcPpLdk7hUm4WZbekp3X9JZsN71FAin+S2/JnpjpLSdMEm7WcHpL9gPCJNwsS2/Jzmt6S7ab3iKBFP+lt2S76S3HG3gVUgynt2Q/L0zCzbL0luy8prdku+ktEkjxX3pLtpve4m1IMZze0kQMURJu9p/ZmXNwXiHlB11IoSHlBf9Bys+7kOJlSMktMQspuaAwCTfH3vPJLZtPSMnFu5BCQkou5ztIyVW6kOJpSFlqGFKWeScJN7fKm0m4uZf5Mgk3d6oHk3Bzr+om4bbnJGLQOQuShJt7rReTcBUfGOEqUoPhcTWpwfC4qtRgeHhd6hzx0E6er0wN1Kxdm1rjIZQQHDw+mwT1gArBvRjBhSSfFA2YjHM9buhVg9Sff+ry7/xi+3L5qwaIKYQJJNmGNaIfEbawVfRcb249MGCsC2FN3+2QNDajOeM+9jQ8YP0chY3Ch5xzG1ojWvk51MIEWZ9hPa8uo5/1GcazPkOGsj4FKhACCXodPmSPPvUmeHwqQhhkVEH0MVIvI5AYrwWxRu5t/HICKvQjnUb5eUTb7GsB2hb09sR69ht0uQ8jnkSQWrGaWn0bI30rhaf6EKGyyNIgEZSCxDu1QQJSbOGFkPS75R6WQKq9Ug8rIlIFMCryRTVsKxnqcCuZwbeSYelWUsCGsJQNMZINQd7IYpAP6rwNtj1NjVU4ZJEIM70OF+IjX3jZJf9xxQ8HlV/lEilBrxZW4jnU1rfpbI8egI8B/XfYNdE/qL/iRdx/hz1Cbp/whSciWh/k0qNXCIpk0DzJEL8S4NLWhJq36ks7iEu715C0gySU4+ggACrmFz2/G+stRHtTOMW9xikeNU7xiHGK+41T3Gea4g7jQ5w2TnHGOMU9pilOmiZ4mw/U2w8G84Bxiod9wMeDPrDqA563QRcmfcgHY9znfbM2L+q7fGCDsz4QtXkFf8gHq4x5D+VR75uMD7DM/KQfM01xyvgQH/c+Fw/7QBn94N1O+2DW5tdB88GE+7u+6GIxmdnuwurJSfvBFfUD3M74AG73eZ+PPvAcdy5Gz/FuH8DEjPfZOOsDJPOBYFzAxgPe96H8oI73+0AdF+Oidev8LVpBJ1lOITr5/KLmKDZv3Hos5+jIc+O3T03csG7n1JZ1W7ZtnJ6e3f3cZRO3bJvc1aQwObFjR6vZ63f/7iUT49vPm5wc3wVmEBxHfr9O/PtQYHb3M1dtvmX7lgmWO/DENat3P338h4dEH8e5f3xxavYmxzNlAlz2DsimQdMSe0kuc3KjErepZA3N7JhV+skaAfeTNQI6yRqWNETBTYC5du/WUP8gIRj27fl7jFM8aJzirGmKk8aHuM84xUPGKU4bp3jEOMUZ4xT3+kDWR7yv4Hf5QMH3L0bkmfaBYHyg3w96X3fM67d5Nh72wYpg3kF5yAer1pHFqI6LEhzncx0MgCuKcz/e2Ppjs+DKUqCR/0rHyfknuXix8ST9vSR14zaE7zPDivdxnjj/aOzsN4+/HBOB4FKb/GJThN7I28ca1WPiSvQKmO1yWJDn4twXy03ouWtfItWJ6I5Mh4ugF0FsY26km5wJpnW7CqgKsAehEkbsShhoc8vCvGj7B5Z/j7X5LuwgDqsJ2GlF2ubc+nkj/+1WGGnun8LtZi2O2fsOi/uO2icXxZS4RdDeIAaYe/wyXP7rratqGi9xpfU0KqsPGGn3X+JK87qXIuw709nt7zYdvtsMnDdeGAK9XJ0jL99mIDF+uck18j/kTTcrNd0sP48sr13f5wtk4GqlyeLz9NUqg6tV2pBaCeSbJtQqq9ftuVriAPO2iSEHvyEk86RaZSExXq3yjfwvebXKSdUqx88jx6vVzwQ99jYKCfaDX1Gx+5Sh2H0K/ozoL22ovzT8GebfbSRcrRRfpGSu1Xr+IiyTFF4QJc2XhcHoJVB6yfaXOekVdwgefzx+JiM1kD27nzvO6xd/fvn22TaJ8tzSDZ2INn1MRiXiAOxKTuol+Kf9MnYVfrQcQNl/WQGN5q5t239Sgr+2EONNo9wo/EOLuYUizqGKgEOt/c17BXQrjUKVF1VVD9J6+Fv0gJS7z5ACkeLX4jvvKNA2C7vCVBRgqcKrYEUNlrg6UxWT06oQyOLWE4+2bsqAs3P6vQpjYxUpIMJoiAqIVBuFP2SkX4qSthcH3K6ALH3k+lqiRtXXKJwsLw4ogK5qi+paZ6OyQJhwXKcTVfaq0PaIyoFomRlhuUM5pzsseFg4i5iTBYedWDdWOZBVh3z+TmFlvMJvyQvb9BEagAY+UiSTa9wkUwqTFAykJlVFWfVMMDyh2C5SLB1YFSE2IG6fcE3BtasRE6Zdu5od42omobRGeG9pkx2l28iMiVekZ3ONrsUadVgEtHCNvNBUn6yUp9Agm9D3Jkf1n+UGKSysC4ZFIGkf5zfW4UfSCQVoXUec0D7M61NYp9c7XqevFa/T04z0DRjpsn2dvhbOBRuPROXoUW2Ur9NVXr7lDtfpskW/RMp6M7GmlTtdp+kKv1W3jPttahV+a1SFXxTR045gId0o3CqHhTShATolftMULKiU+BUMRF7it6pa4jctNpE75JiMYUKaZH6T9p1y5ledML8oAnIwLDvzi/BP9YGkO8SBtBQH9is6SWXSSarKTj+RNU8otkCjcK9S+eWSwxLLKRZpukl/EXqW8jqbGjfDlqGP622A6grA2u8IhJrQ+LDcDgac+CYCh2aAAqF++Kf6QOQgNKgKQgPCB1gL7zOyWRigRF6jRI6uOwMykV8rfLmi8IzCyxXVDsuNnuexlyvqvHCGFBSu6kTh+lUVriq2yN+nFK4GeULtFqsAbRy5l5yjLiC9vgOULIlR8jOM+N+7ECaSPeAjRMlao/BZOUrWnaBkTaRgYFhEhKHmZPu81i0P+y+MoGSdEnmFEjkaYJK+2bRdHCNqzANKZnGUrEtRsp/Apl6NFdTylA4nnAEFhas6UbiaqsJVxRb5dUrhKiTyp0RQ9vfuoeQql89AgCXN02GVRu5G2fWUoLL7uRtlvdyNiqGUIOH5Hpi3TQxV+M3RrrBCm11zV/ifvF5UpbkbVXJpbJnJv6OxQRPaW4aim6f4tvSxh8J/oaKXPfawXXjsXmRvuxd+hWuVgzPJqvMzyWqj2OPoTLLSYYCpInM2i0EiLmg5oiPckoDWGZuc0zXVc9Y+4cJYjKudSZap4K52rLNPEussZhyF2ypShyZNMpl3oNMKk1wIf6ZYpvwZS+YGHW6zYU4fsTTXXE+rrOFLc5+hpZl66FCwNNcNpVXWyY0bd1Tbr+BGD6jGDcSPqBaX8ZrRL12a+0UbAvvSXByer6PnPkJ/O++oz8nRc7XDo2d4WircOxdf4fyYoy455iie6ujoWY67Vc2j56plY4QfPVeV8x+xo+cq5ofL3bHiWY7dsWvF7tg7Gemz8Ytl+NEzenpSkagcParz5O5Yhbju5tAdC1r0S6SsFxKuS7BTd6xOegoVt4z7DQaOnvt01ZKGhaYGrJXDQoW88Kh+9FyhYEHl6Lni6tEzooq/7RyTKzJMvs6RLyxnflGi4YaOnuXbsg6DDMVxRV84OJ9Hz8UbOz56LpOXuNpHz6Zf980Qr5lliWscOeJ13zzxum+BeN23CC5zLJLXfbV9CtI+muj9bsbD9+uFLdzMJCi+x1EmgdzVPFEyCYoHjWzxByiRk5kEfYYzCYqHFc7IKt1MAsdOTH8nTkzTIh93nknQZ3EcGNo42i3g8FnpZOcFllwhSj7DiH/RheAuMqyqJBe8+CE5StacoKTwIgUYFpkLrj4Q+T2huuqGSXynpvgHRlCyRom8TIk8rZs8UqUOP5qR3U/PA0oSmQQ1KUrWySspOukHgCeCWKRc4SquXkyriC3yC5TClSFPqHyrCkAbt1CyeVxInGcENc5I0kSUNKhgC7ZzIBZIYz8IiY+BvsO49GX0unfnLxBn9E8qiBeIk+69QJwkTipCet2iohLWiwbz5s7C5QqVIS0uZFEzTgsyjeK3iFPzTc60uKVWX0crD2xUrzyQ4iPDv+EsL6PCKFFNFyXLy8x7f51WXcnywY25nnvsX/KE/hUwvG8Rsxtxj4Vpx5E8d711pQW/6SFiE3mMrykWo4cAJ1mXhFbCGpFI2bSRn8hj9CEhCG+DeowNDZSe42e0UTyiX3RcpKaHqOiQFS8Yv2QiRY/fEuSyajejBPwTw4rNwO65cB6+TGmyI6W/TGXxZSpjaJnK0hhi7zan120S61ZY3wfMG4eQLHoYQS5TOUiM171Co5TgETMvXaby/Dzy3DJVCqNguaRjFgf11SqHq1XWkFrlyLJguHRz5oUwrwQJaT5xzWopP0/jCeR1LY5X7nijNMJ0kd8qx6HpIxyJ8xyJExzJwJ9hB/Ebiah/Bk3aZE5a3whewaj45GU7tyCrANqoZG1UhI04sRQVC1HliEJUx9wM0D3smi98pacGeMWfHj7npj0iNJpwnb57Vmqt5Su/oO6eFeG4CElZOFdsUb6JqGmFCrdEqBFXCKvSNnVVPWJ5zW8VmGaxUXoNM02B9RfnQ+wlfeEWmXB/qC7cAuwd37i12HHhArGj7CV2bAbsQDWuatU4S5rF03gqpsqK9DZBIqki9PWKl6Lvsxm9Hp9RnLO8snTVrou2OXFqm1NvlNa0JLdqFJXBko4TS8/Rd9LquJMWN+Sk1clFHc9prROpp+92lnqKE8TfXXJMcb9pipM+mPRB4xSnjVM84n3BPNYVtTdFjT946B3lucs4xUPeB0f8SQzvCGbaB4LxATje5QNtfMAHop72vg26AOAzxinu9cGsfeCMHvGBz+MDUfvBGX1kMbplB7suT9fl8QruTHpYGdmffcYH+aAPVoQZFxZ/NALax0VApUX3S//ccaDyPD7shwdBB1yvKDDAXwIAI0MDpAOKDwauOvnVz38n88iXNO6NyC8UDNJHpfaxDukx8Ww0qXgQfTBwAH0wcIh6MHBQd2Q6XAS9OKpCRouGIlkwT7LsjCT3sKElxs6djM6124gearGXk8qbeWnGtY591tk7KRE4oIkxpxg9DCm5dxhSaouqexiygA7MPuMU7/eBt2F+V/KA95XHYAgRIN+i9KhnFuN2rHs81z2e68aBFlZ3FmUcyA8xch+4et2V1auSMW/Vd3t/0o8sRo/HjTMgjURPS11rUQZp+UYqqVUpCnA6WoBfEN7o16WtHd7oJ+MLaOijXzHM+fJXfeMVX/zb6E3O5Koe2ioRYU7NYOLJaJhzAA1z9qNhzkEqzDmgOzIdLoJeqDWqZn7ZK5gnWXZGkgtzWooUYWHOzXyYE8ytHegU3akob2c/uFn9hnihHUfFgp+b0KL17NpC+Z3EfRJ2hbfV7Do4vyfXbENKmxaP5bTjR0UvXodhQwQU7dVSQY2YIlJQFdyMab05r3rvwFLZlxgtdhOnQt2paWqYkDXU1Qn8wkVCSZDC1Wcf+8G7FvoqXQLV5SIkgJ0XrGdX6QZ2f+iiZrebN249hpNHPj1++9TEDet2Tm1Zt3Fi6qpN45MTG66auGFyoqkoz102ccu2yV3NOUw2ddkiceRLDf1Sn9n9zFWbb9m+ZWJO04T/Bw4uTplFacXQLwX0Swn9Up5VGRk+Tv6xDty/KLhe7qSA+xBVQ8cnglKwVcIdKBkqd1ISeSFg3pyVK6yPkrcvnqW80/5GeUZUVoiBM9Kp4MkZ8PhoC3DupyrqJjVEUyAAJ2lZZ+e5PwzLGVSVj6LdIgW7ACanhDf/l/2CEX8vr6lJrXPTHtSpWNKpESz5mL7hl3DDLxgy/BIt7c4eiFryB1oGA+bN7e/AN0eGX4bEhIb/YV636wrmInxbgjP9DxIH8qpqgdsghZkFkx0VgEHjD9JUncEk15sllNCpKvZ0nPgw1GlsoWkOcoD8DLpjdwaQA41lf8qI/zG1IpSoF4iyWks4LtMs/BkPqSp3k/9l4s+26zhommJ2UJGl7r6DRj9YiqfZ1cnMp5L5ZKo+8yRrHctUkIg41zO34g9BBtu+DbdarRPrCFVjoM5uqi9XrzFQguMiyqCi1kk/5kdZZ5VnelXFOn++9GW36IRnB1y3zgHcOuuGrHOAdAJs3BiEQ+NEMKiwjgpyVAcJqQ4qWKdzkrWOZTrIcwizzmHIYNu3kQ6sc8CJdVbhuAgmNAMK+jsPymY0o/Ej+jYz6L7NDJI202midVNRXrtl/IabX7vttt0fvHrbleMbNt92RAisZaFWD1mM1LBsS16Vbck92ZbmTbZVLdli1WQFoqm6LpoqLpqUIdEIPIIUIZoBXdE4ukVQJdZIdBUcIjf8ljsK/LZoqFGJkcta0tlKObfTqgQ7Vp9h+WaxktTfLM7RuFK8VXyckc5Qj5NknUVDKH+zLnDy1XaDX9iOeved42vQKL4OuIevA6i/OQSHxolgCIoAszS+uyFCqkMK/qZzkrWOZTrEcwjzN0eIpWJpB/7moBN/sw7HZbfOAQXr1NyCZ2kfSG03+PJbUO9+SceegAPrHMKtc9CQdQ6RKwS+oxniRTAMRYB0N8x3N0xIdVjBOp2TrHX8crUz6xw0aZ01J9bZB8dlesdQ8+qOoebeilabtx1DfUF3g92dvpuy7etkN0ht1Muui6bs/ka9rLdR7zO0GxS8f0bVsVa5q02/99hn8XgE7z1WriOPIJLOXKrWZuoahb3c9aiMnOzlyo1ltzPS6zhvEeT6oe+O1GhItnMrBX+Gpect6dg9yOnbUQ23o7IhO6rRJ9sdIqvedhsXg0plhg7fTa1sc9OObuKdLo8qVp97itW3OBXrnW4q1tsVAPpdqIycAHStsewtjPRuKthWMhRsK8GfaYS9667bUd39sHfd1bC3XsQFF4Pl6WKXwt6H3Ax736uzcV1Qxaq5p1i1xalY73VTsR5RAGj0xeu6E4CuN5ady0g/SQF02RBAW3JUnTwNr9lfn2J/8z2/lKH+Uor91Qz1V/Po/AqG+isQAFPyKs7PT4GxxYTzf+4mzv+pAs5/0TTOn8pIf8nF1EUHer3gqYudBqSzWtoA5o2fYePnYKReWyK+vBYMNypfI4+dk85OsluK9TdEjkLn9zIoSKib7Kjetka5nX4bFb4TOx1sLKsx0t/l1jvrEQ3BoCFiVldqoD8Qsrpp1aSNhsmNKnbIKUCnUdfRaRRHp6WG0GmM58ZSwEJ46/kz7VvPU5O7zpvYccqpqy+YuGFy13bi2vPI7t+9ZGJ8+3mTk+O7AF/HsmiL0RnhheGnj5M4JPi4Osv947EZzYq7rnNdM90U/n4gK/734eysg0FJmkgIcjY70qj2MJt9QcdnTLmuvSn3fcaUns9YM7S2Cg9uwLzxtCJ0ZzJArq2WjY8or7DyaxcvV1Z+oV4kZJBbpaoZ6nBsqaHDsaXwZ/PdHxbrbfMgqhvaTklC2ylGOqFe4KMEx49vbEaB6EQlPqpF9oMcOveNaKCyzZVXUUl2pq7OlRQ8Wyybl2nzuNDqqqewqdQ8OhXG82epTWdzKsOtlKzctRqjZWi7lpr/AFdFZwjb5PGgPWIoJWJYyJg1sCPRrqW6guWqfQ5nzFWbtiDO6xp0WyMcz1paUEON6kvkgqJuh4xzghqEf9oFVYIfLYLCVpQnLp9EAx4l+TvO1dPVF5s6Dymn84AECHGQBEi1QYlne6pRZc+QV89UH2CJH+BrFWMrcw2vsKwz1gJYcFN6zEVGCMePFZSyPPo8ANljl3gKNU30gnqTvn31gqsxm7lwMbma/eACnbMtvUeel8zo+69x98+24npnW3o1SZYcRkvBiGqS4GZSgt8cFQexFEEQFQepXkGudklc96gNQEuxLlX3UgSQstO92y9O1HLBb790mE+Kq6Uw0AfmjSf2D2IkR0i1HILEhJvrcTIXP+ksvb+lWNfLQ3zVGxyH+K4QhvjG/i8jfSNqy7KVCPVnB+eq1VpWm/62sYlGVL254wzlHlZDkzeXIZ7JuDtSsPisc3zaqsgnNRH0N8Z+xEi/DQWmzYSvUiCrN7VhS+jH7Gc/eDs/e1PhIie4lnK/FldKtO7huFY2hGt0La4Ucc8FTx1WrcXVJwwfVN9DJisktdLKOVx7d0cO8iec3WBRX1P6nBwRlOfhiMCJ1ZzARwSNpkUZPCQ4Rk7jmGCQ6r4ubjPk8KgAG5r5w4InmJkd5muq43pcdl2Py2pl3A1fxekn0L/PEPprXsWpwW9YqED1Kk5NmI5RfR+ZWpV0FiJvKdaj6putAR79f58LT/VB2HG0LlHB+7557w+7udPmwe+h3SIOZ5lyOPsaY99hpJ9Tdzj74fjx6wijQHS4p50iPO1+It4wANwCYfToT9gP/nChq43jel6GBLALNkz+fbxOuvBugUUArlWlGXzygs232uMzoBfUa+NCioMKzfqPFfpHextCw/fPiGC0vy0Y4YHJXzPN+0tOXkkFzUvy8kqqaV5S3b+uEZrHh7r6StQpTsbQKVYG/myekra4yWdMdpQBnMQPVwrOEjcpyx10ZndVKuKiUsZ7DU9gWIvAd6hzPhUC7+cJLNUisIrarakQ+BRPYEyLwIU8gWVaBD7JE1iuRWA3T2CFFoE38QRWahFYyRNYpUXg+zyBk7QIXMITeIkWgU/zBF6qReAQT+BlWgR+xhN4uRaBGZ7AK7QIvMATOFmLgGDPeYpK+SNx3fFTtfruRXfCbZf8xxjQnoa45P0WLOf8h9MaY6sZ8Z9RlYcHKGeQT63KQCLImDP8epMh1puqgguQQVwokgmZRl87jenXOtHojJ57mtKPR2Tcj0Zn9KLRmtUN0V28sGI17ij1qziAZDyiarEsgSvdFyceR9zkbL/T8mhD9vkkNWLRfTm0NfV4VpXY0PbjtOOEh697+tNX0smDKcOO8NOIOtih2n6VgB3ZvhVhR7ZvFdhR+7Ut26+CsCPbtxDsyPYtDTtqUR+h4gQhQ3GCEMHtOAFsCT0j79UHtgQObHFDwJYgecVZFBga9fhRmOKWyjr/UgH4BBt9X2Ca8XJOM3rhDJDZ9vKz7SU0Iw5/ZuNFL6EZAT3hXKSvGQFcM3oNaUaA5BVu9QGej8FWu+d3Y70F+d6ChGTaFPcap3jUOMUjxinuN05xn2mKO4wPcdo4xRnjFPeYpjhpmuAu43M+ZJzig8Yp3m+c4l2el7QLBnPI+9g46X1J+wG+XcDGR41TPLwY1fEBH6jjrA8omvccD3hfMpM+QJ6DPsCJe3xghDPeR0cXZv3IYlwT7vaB8hzy/ko46QOLecT7k37MNMUp40N83BhF9mfC+4I56AOXxw+b1hkfSGZ6/mRNh4rVhwFOHixXFZ5rX1XYsm3j9PQsUhXodeKU/sCFyO/Xin8fXDIrStMnc/gvVLsUcDxPYknrGGP0OvE5xxc7PkbvIa7Z8ZkIAMVChtQmBH823/1hJIWZD+kW1fViYXyNHTp9GSUsK+SRFpP+W3l9CME9uFBbf+2MTcE/8fPw1oS+oX7izjKmN4HW/KSSjb5/ZD/4Jn9MhJFnSS1XobklVzG6P9/93HFmvWhNl2+fbf+6/T6IYOhvEb4N0vcvjPD31PlRRAdc4gf8Y65yQwUOr23ZZ5zO/RIc+FeOwwdV+KNsJYbyqXIs/VqoN2XBhdJWetfYVz8T+T+/90DwD77+wra3/+ykmS9dfN+ffOg1hxsvO+fOq7734I8uI+RyLEscmT7BmzLNm5ScN0WU0XLz+DFxzJnkNRj0iSeclIAWc4yu6IF8TIgqtQTr4r90qswFO0taahEmTq2D7leZC5JFJrg5h/S6RV38kAilwbzxZBd0scqQiVohem3JNGphfo1MtzEc6TTNzyPdZt+cWtWWOFg2rlIHUP6aVe1Sz7gQxHI8Tg0yqJHjxyiuo7JNqxo33hjFG6k7dH0atwkZxZupEn461eQZxS1U/fa6Ro4ho3gLlZjbr3FXhlFcQ9dQU789EoLoT5b7Qu9f4aO8nKoMPKRxpZ5R3MpRHIZ/IhRHyHnnOZoj8E+NJSzk+hIWcn8JC5FLGFfRAAyNusyK4s9SsmQARbJqnmSfeZI18yTr5kn2myc5YJ7koHmSQ+ZJDpsnOYKRLPPXWNPt7TnmRIhcO9boWcqxa7r357eCBumb9OIRW6GLhYGPqCoU2LbzIwo1aoJ7WWlz4aq0emI/2A9miNT2gppfWTLkV5YsPxOETGrfYwO64gTKa76gm9fczWvWo9jNa+7mNXfzmjUodvOau3nNnpG0L/KaDy1GPnazkLtZyCe0Oh72wcpqXtR+yBrq5gx3c4a7OcMLazHdnOFuznA3Z3hhgaebM+yrnOHz3c8ZPt9cznDzDOF/d5zR1UMcwijk1J5xevtf8bSfUJu46ukAEzB6NhAydDaQJDIfernUQlDwpjiXfYilVcnyg9HzuAyRDLCWqiiHFgAryN6yQ8dSJMbC5z4V4Z9Y7pNwLOMKY+kjxrKOznESHaqOvIudwP0fh5p+NddrBGoRQjTCzyNCAGvI8jPBRIb+mE3k1w4nco2Q8MArW4TrPegxJBCnkPQbORsCvtBcljEBGBzAhV0vwRV2H3TCJOjYuBGBQ+PUIwIZSywHKiW4Xk6xW4XAWTyBiBaBVwgUsbfRv4IpoihBItDoZ2Xu61nqND1k6DQ9BH/2NH5srTLlK+3yDhDaH9VTwPfoa38U1/6AIe2P8swOoNofg0PjBBFjXid6HB/je4sRoo3JY3eOKR41TvGIcYr7jVPcZ5riDuNDnDZOccY4xT2mKU4aIwiQbxGqowtjPGic4kM+mPVd3tVw95TnQeMUZ32wyhwyTvEB7yvPAz6wwVkfUDTvmB3wvmTMq+PDPli2zCPPPd4XjPlJP2qc4uHFaDEHF6PL85hpilPGh/i497n4Hh84jke8z8Zp73uik95fslzwoKa9D414ep+H/O+ZxbgKznp/0vu8Dzwu2ODdPlCeAz5YWWd8gDzm8Jb9mViMYHZgMTo9Lmj4QR/w8YB5mwl63mbe5QMw80EwwbxXf8QHFA972Hlkf4bNk4x4maR5F8C9hWafHxTIOIh3k1E8pz4uCnvaB4w0L+yHfYA+5t3c+/ywMPggzuUCRT+oz6wP1OdWjKAg6xYkgiKNqHKsZi8E9TZXXddvBDX7MHYlKNDoX06lIx8j3NGVoF7Qvc/SrC+japupEHidPTM52mYQRzqmx3N78nKLMGMXL4oYnqcdNZSnLbD3aFta3LPpYGicJNmVPTxPW/MJ97jcNXZM8ahxikeMU9xvnOI+0xR3GB/itHGKM8Yp7jFNcdIYQQCd3lfHWR9QNA89B7wvmUkfoOOjxikeXkyCebbtIhke4+3e18bHTFOcMj7Ex73PxYPeh28/THp6MaL3PYtxEZzx/qRd8KD2+4CPD/lg1nctRgXf6324XZwO/XuMU3zQ+8tW14fyqAkeWoy64wd3Yp8PRH3ABwpuHieOLiqXh/2ZWIxrgh80/JAP8NEHm3+DsmZ/Bj1vM+/yAZj5wKm/x/tulAsUzcf9Z83bYNg8yYiXSZp3AdxbaPb5QYGMg3g3K8Nz6uOisKd9wEjzwn54Ubq59/lhYfDDscLMolSfWV+4KjmMZC+ZE4k0Ejx84FrK8p16KcsBJynLdzpNWbbljOZagxNk0Fb1klhX2njfIsw4z3oCPaAZtDlDGbRVXvC5tuBt3KjBoXHKWWMWhGbQ1vjeaoS61+S+mmOKR41TPGKc4n7jFPeZprjD+BCnjVOcMU5xj2mKk6YJ3uEDLh7yvnq7YIKzPqB40AdWfcDzNohH5jxkhOZF/ZAPVn8frNWT3h+iC6Le7wPkOeJ9UT/gg0XmAHdBswp3n+oblirRXQj+zNEeSH3ane6YXy/eAFdXIL9fL/59rUd/w7xCZ7/cwwkOcLmEMSxEMowTXMnyM+4icaEx8PutbfvAjM7FV80XshL62/aQ+xdfQ2SQx8aNJBwax+hkq90mrDPBA4RJQnJdgl2CHiOIvV+20f4l2MZW7o07jFqq3aYFSP/JPSmYg+OyYKz9lwBLc3OPDxLvE4ZsxBYcmNONgU8fG/CWLYcauWvnfUDqJNnLnDdSgwxpKCOjeDNHMQn/RCimCYpbOIpp+CdCMUdQvIWjmIN/IhQLBMU1HMUC/FPd+QICrVA+YlXDN2OjvJyjWIN/IhTrBMWtHMU6/FPDNSm57pqU3HdNSjquST8cGmfZ4Cv6Wm8/310/ARaAZJ95kiHzJJPmSabNk8yZJ1kwT7JqnmTNPMk6RjL15FU732olWW6RXIuufB9pPX/cel/5NPH72vxSHmoM/KC1lKdvQjsQPpd9OfSPsCV07snnJ645RbDSbxS+KD/wIx420+bKR6VRV3Ez8ehxBjp+uC8RNeTwRGkPLNAYnGYD+jlVBSuukUNAVcGy1G2xsamXWO80n+u9RH+9C+DrXa+h9S5A8orbX4ChcXxkuw/8BF1QWy5ISCYoj6E7pnjUOMUjxinuN05xn2mKO4wPcdo4xRnjFPeYpjhpmuAu43M+ZJzig8Yp3m+c4l2el7QLBnPI+9g46X1J+wG+XRC1D/hoXnkO+2DROmic4kM+8PN84JVN+gB5HvLBGKcX47L1gA8EM+sDiuaR58BiRJ67fbAQHvK+EU76YB18xPuTfsw0xSnjQ3zcGEX2Z8L7gjnoA7T1w77aD7uE6fmTNR3NVh8GuMVo8vZg4GL33zu52ORzJ4Mz/LFH3Nx5VZw73gm0/4xqCDlAqE0U/syeiwT6C86lK2E5VUs6ZkVK/wQojp8ABQ2dAMVJK7RxIwGHxrEafEXvDCf47hKE9BJQVqZIzn3b1CXYJXhiEuQeD2LQogpBeDeWSic4WnbeESM2zq0TCYV1QpN7UQUHOmEf/nj7G54oQuSwjFvGJsgYGfwcy2HZjnZgzWFh/55XmFFalMXCco83ClNkB/+cpcjeZ1cAlvmxvuVaDH5Rd9whyFQRU4bex4h/iUpWjZPKm5RsouyEg7CpGZc2CX+mTjLR9huxRV2kcyLrCQoYHG8M/h3QOrvPFOd9pueOj+LF/7l8+ywc/GU7twhw6Hc47gKqWQ1Xhao3koU/wxGx04yskL5bl8bdurghty5N8srGjQwcGsfHjHShyvCdZQjB+IHgvK1xQF1tHaVNdpRWMwYT7gFbATgtM9hNpr1GcQacPQ5LtPE8mPy84M1Kzco0Vfsc2W3OHqL8DKdSdSgnPMmcE9wA5Ift2yAOqK0h2vndA/kwtwCs+sIcYf43PRyIZxWWyCxviVm1JTIrdzaG0ChPVu5siDywbGNoPyMeovJjM6jTqJ0onGgMxXnVTJoLvCQ7vljqJcXXVu5QS7lPWqKh3CE4D2JDktZ0SS334SjcTui6swwjN1PObFojsTvY9jzJa2ca3lZCT/F69b2thPveVkI9hvwJGEMe33D++PYdO7c0pWaLDAOWC2PDiSWHBeHfU7BA7wxKvxeJSV+GxapnrKTF/2eLPnfoYptHmziPNnMU366PJ2m2W7qCwBM8lFoj7rzXqfuzCdn+K27df1m2sHa6CcwsVEZAbRIlupBg3trfXPerb308M3P7bfd9+h2rVxbGPzzztf/81y/+1UcyP/nOc2/72hn4NF+8ziqcSZBCvqihbXx0IftTJxnFwTuoQDFBUCQjdAmNPSqjuM7RneEMQZG/KZ1R8N6yBMWbKQcYjWLkCIpbHN1rzhMU+ZvSefgnQrFAUHR2U7ooosj+5G9KF+GfCE3qsi5/U7oE/7TjFRhLSnwQmCJ8mLLecpbX92HKuA+TMuTDlHluptCIUQUOjQOoCnQvkO4qfHcVAvMAyYB5khHzJIPmSSbMk0ybJ5kxTzJrnmTOPMm8eZIF8ySL5kmWzJOMmicZMk8ybJ5kTCPtJYVsMT/Z3mLuONbT3B5zelpjF8i+JJFcphy9DxTvQ3Mas4tLT7mC5ClXHK4YfJAt2Bh6J3HKBe86ix2CAOEQhFwPahBl2gLulWkLoA5BGA6NU/CwwroYJLszruAszIGk3jlRb5hPRzjySY2tQU4tNp4Tx67vBcWsnAfG82LiDzDz2aExIVD0TH3LlYPjIjdd3ROdjk501EUSasMzdywDxtk+mCGj4sRmP6ix2U8rLPc5ctVIQwHwap9rDD0NVw3cyKOGjDwKf4aRRG2Y7YaFU/mQ3IKpSECvxhQLlAUrFW9D5pihcarQGPp9MEuL5gegMraAY+5bUDe3t9XHLrs5FFokQxqxkYKUx4LgRxFyhVOkEmQydZJUIM+o0B1j0iFGJEGmmMYDNnk9Ab1C38XKu/+ATZ7EAjzmkhftIeba4eV3tHclLYp7jVM8apziEeMU9xunuM80xR3GhzhtnOKMcYp7TFOcNE3wDh9w8ZD31dsFE5z1AcWDPrDqA563Qbwoi4fWwRkfrIMHfcDH+72vjtM+QHAfOFF+wIkZH9jgQz6w6kWpjg/4wEM5QGWVhDR2u3miO0sE2tEGWn3aLr1+lH+53utHFQevH73c268fYSSRcB6rCb5OWNN7+KpWtGj4JE+8FzL8igV8L0QU7hw+3VMDqjaGz1zAAXV6MlvjD32w4yDLaxDcsQ7T6g5uK1yrnl2cguNCD3XwivzrUGEQt5nXWQiJrPcSpxX514Bho+mk2hdtmubb+R2wHuKiTU69Ij8IsWeIw/UiUcm/j3+uhf3JouzD23QyGzXNJWY0kSHlXiIDntnYfW+uS9Bbr7lt4uEA+4K/8xZFv2TbPmkbIoh1OmVonU7RjkOgMdLPBjR1Aj0Ecrk+RnYfApHGGLoPgWhR7D4EYoRi9yEQExS7D4F41GC6D4EsFvjuPgRiZoiHfeDxzHjfql0oQ7zX+4tMd0no4kT3waAFtupFqY7dV2S8qo7dV2Q8io7dV2SMUOy+ImNiiN1XZLyKtt1XZLzKR9++IrPG/Vdk1ph8RWZkqOO8gh4ixyKEloXt/MkWB4UZiCdbQobO6uLq+Yu61SYDYh2Ku11t8g1uVpvUrJybQ6+h9vB3ewHnbN+KhIqWWhQdVJtMOqk2abnei1eiLFIvJMVl1SZD1mqTAdgFUSAyRFebFIzA/pMQ/LWFGFEZs8lhtha8HxIgHqVKaawZ1KNUqYXsT51kqr20EIPUeZiJUXRWMTJJUFxHVZhAS66kCYo3mqpBySje7KgGZY6gaKxiJKNorGIkoyipGGm3ZqCsWXHppSyxwhf1wD6jv8IX8RU+a2iFF1SEAEXyucUEDI1Kh0YrqQhqSZQINAEkw+ZJRsyTjJonGTBPMmGeZNI8ybR5khnzJHPmSebNkyyYJ5kyT1KnJGEW2YcYLUkYRzbGaSc129IaswP1bLAwAFlcyuKnikoSjuzoliTsWewlCd/gVklCG3/yhLZU9AS2Ql9bKri25A1pi+CeZx7VlhocGqct7NoXntNc43urEQBbkx8aOqZ41DjFI8Yp7jdOcZ9pijuMD3HaOMUZ4xT3mKY4aZrgHT7g4iHvq7cLJjjrA4oHfWDVBzxvg3gGm4eM0LyoH/LB6u+DtXrSBzZ4qCsYE0N8wAdLAl/OxoV3I0LwZ452LOrTdqmcTWW5XjmbmoNyNsuNlbOJaEQRqIvKEfgzb5bPYUdg7AfiAhwj/9UKB4z8g86hyoKWgci6FzzCD1UsleQ5EbGnuTdpnCumCZl3CS4yggbKQOBFJVLol1wbseeAYOmIJ+pojfzGY3W0lgY8VkdrabRbR2ve62hl4bjQ9Iz5rqO1tGKgjhZ6ROqkjtbS/o5faOghcjzzZupogYSgIlExrU8NG7OGDC1LW36gsfRP2ICWn0CFcC7W9xK7hXCkYaNuIRwtit1COEYodgvhmKDYLYTjUYPpFsJZLPDdLYRjZojdAhde9fMWZYGLbiEcjwqmW3nEqzjRrTzi0WWrW3nECMVu5RETQ+xWHvEq2nYrj3iVj76tPHKR+5VHLjJZeWTp5zquANJDnErFqVvxWQ0hU1f3s/Bn3GwSerPJo3eAeojyFRHixnHU/q0MdRd/wTxp/1bFWdcaInG4m2Bn49Pqh7sBOFu8YEaJE3ME0kDEHOHFHCHEHIA/s9/8A/3FxTf/om317FRHHNz8S+DHclFDx3KCWhLRNjvx5K2EKAsH1+yIOT6+yigfI+7xMeKYj60Fbbfp/Ch8O+uY4lHjFI8Yp7jfOMV9pinuMD7EaeMUZ4xT3GOa4qRpgrcbn/NB4xRnva/e+B7HMcWHfAATMz4Y412et0E8XuOU4pTxIT7ufS5O+8Co/bD2z3pf1Hf7AMnMK88D3hfMXu8P8bAPdOegD7yJvYsRHCe9b9R+WBFcoGheHQ/Mn2To6Ir6MKIdBvCR+7uJM/QC+GkHAfwzNAP43gmt5lqFtDqMYebRguTr2XnFG1ENsl7bATTYn3HBWUeiMfpmRvza9rHIM1dOTO2c3EoVss0aMo8s/BnRX8BQfwH4M4wkys05utcKbzONbmD3q4h412U7tyBU0VtfOfLsB2kkKCico3jtsKRwug0GSKOCk9ELSg0X4EScFBumRj9udPRpzdFbCkRzxeLxs4Wi62c0RNXigntViwvIQqb7LkFOvEAV3X6X4FI33yUo6/G9wh+nzo2GO9nsg5zDCx1yTwHUWxQdvEtQdvIuQRGOGT9lrnHrNkDAouxdgoL1XYIc7MJOt4iZhcoI7D+xQIXauwQv2hBzND9AyDHXNnJVMGC2iD1H0TmpMgFymkVFC/ogRxQVLbtXVLSMcqMKh8Z5MFWIP0h3Vb67KuEUAZJB8yST5kmmzJPMGCM5921Tl2CXYJfgCUKQ+5aDSM59ZWsj+XZLVmPzllHbRGfmvT/uXSgubPHHaLfIRpvRWCPYaGcaY8OM9J9SDwLlKF6gBW/KyKBA26hgWOXG6J+D/b/Fl7W8adVycOa+BXXdm1Yfu1AnKuTMC1G3mQrkCrWoRjRCnhlpJKFCPpOQsegPJ59KY/TL4JkEbY0khZ9pjP6tgvDL7gk/40T4mQ6FnyCFn9cI7iSkwi+Twk/AboXG+Q9y4WNR1Dwt/GYU9TsKws+4J/yEVPhlguW9WnABuMIJH6hGWiM2lpcKP0MKPw+7FRrnvzu3/LTU8v9jYWFfbvl5J5ZfFskJcIUTPlCNsAbsywPIeVL4aRr2843RX8qFn3YG+82Y/68X1vLTToSf7lD4CVL4MQ0nM9Gh8BMWjRYIfywKhE/58GmRDw+IYwr9jMQVES8YY6nWsFb+iRNbcfOdrCJyCpx38pBQXmN2BakypEllKNBIkG6MFYh3siCOiG/LJIggZcb1k5gMHqRMGApSZkgngQskP0vsAXLOPIGEiwrOzmaQpAVn72Spqzd4Bo476QcMkJ71C7A56+Q0uGzplToNtn8sQzkTNfDRLXYVWW4rNG5WG2MrF3aXVZUut31khAlpJKjF3we5wplXTWFpyoi2bp3tsir0cltujJ2muNxWnS23tAuBv1CeAbEou8KeAVcQpN8z+H7PIOJjBfgzlCSXCdIP+YM0W/3kBZtvtY9E3uxVQj9lNeybl+erGmPnsvLHh/lFb7WeXQ3zFM7So4AmAZ3Jy2c17MWmGa/SP7lsd4Wvw68ytA4LZvMqQtvOhJNWJ3mmKklOamcaktpq0TxBLzapWQfFD3luOlPGeNA6T7/LPFeHjA9yxvwgh00Pcqf5MY6YJ7nUPMlR05y8w/wYx8yTXGae5HJfkFxh3Lz3mB/kSvMkc+ZJrjJP8iTj0nnU/CBfYnyQh80P8qWmB7nLy6sY+/Nl5km+3DzJV5gnmfQFyZPtnuNp7ZwE25fT2xketi+vhEOc2z2OoZeMVyMRjdPaf1YFO6zVjbE/YMRRD+409rTKauH4TuaCmWBLeJosz/VV1jzXMyzM4UZ8WmPsYTbijzofsZDyY/xe43RzhbdO57b+QDoD3MfT23+i8YhXImIHbUXH0a9sjH2ABUpuRQNZp3UYyErhgaxXSgNZgpDHK6WBrNWiOAngCme1QD1ehSoTT/R0aSDrDDKQdboFGzj5nNEY+zAVyBqAPOG+ZiBxuanws+tHQ1r9AtLVH3OqC7CwYAheC/Bn6iQhEGHNziJFdYZlfJyozmqMfVp+vnsWYqeAUSUx8T8Cz6dpE59j5xVi0p+VXxd7NXFKhhrhWXyjV8NR2bXlLPgnukycaV0mgAWdwi0/oLuzZMvPa168uiCSyKtRPZOsLkkBv89sjP1PuzVZWrcM9Zv8GnSOoXjX2WS86xwNJTjbggM2eb5agYVnM521MPEs2JRn4tmNsa8zRn0Zo32OmDZUCgHtcxpjf2cX0NkiAX2V+NWp+K/OhA1av/oG8auT8V+ttpgTUxx1WDwNRfjTIGnOWW1bDeGurpa7q30IZIGTvVGBjPoaY//GiP+TxmnWUiloCc7NanBcdiXvg39iAxHhRB+NE7XG2L+yM48jbLL/pjHuMircMhxGa/n+PcEo+htjLyicdBY6cxCbR96og9gvdRAHCMcFFfMg3wg4U3He7xiE4lIfSRyVQRz2zN21BVNpyWerxlxYt1dijYYQyxu0cJFTiKHG2H/L3YVhJ+7CEN9oGI7LbnlD8E9MMwfc08xBqWYK2DAoZcMIyQaBZo5APqjzVkkzh/gnbKFE5jTzBhT4ECVL0fBeayyrtIgvQ++K1J3Au2BNqMNx2ZWsBv/EBiKC9xoN7/XGsjIP781pq487hQowBYfRElKUm9sgFCthXXUN/R6CaoRpOLnPGoJ6zzNupLFsWL7PWsqPrOTE8pbC6dhZNAL/xAaCWMBwG6D5OS5tLFuusOoOdhiWyeHYtlSKbaNOrG+MbzQKecJh2xhkMRX+WMp/rSvg4qBDXGTYV/m2hjMgXwPrErfEroJ1+CemJyX39GRAqidCR8uBKzBIroEqaFV3KOs6UdlhgOnBFzX0oLQwepDq6oFMD1B3eRDBccB40bnKYGPZGrm7PORERQbJxbdOrfaDqIrU3FORulRFhkS+mYwNMh+EUxHLnsL4soB7YgNEJZs6g5H3a2htqkNvN057u26lNXekIwNOdKSTzX5Ng7dyGBlAYKRGw8hAY9nNchgZdKIiAyTE1jgVGeA1mleRPvdUpOZkpam5utIMuB4PKhPeSJ9FWnMw8i780sZVO99qHVIVjgGNLnLNytKjzwHRPo81goRECv9upgM3oZNBrKmPtqZyY9keuTUNOFGjMok0fdQNlrJr/vuIr/y2spy3DGXlijtkaL0YoqQ4qOBSKJx0VIUnHctmFEIBA+6pSEmqIn1O3Nch8qpRmVSRQQ3zUwLcMgPO63E4cAScg3yzASlwDqkB54AwPr/sCTlwDsiD/4gb8rSj3UzdiRtiEbgjNyTlnlUMOQn+D7ka/FdwQzSAc8SJUQvmPEJJcRj+qbnzHqB1tbnz/qQCcA65pyIpJ2tryomKWAL5lIoMm/dUW8CZpE4QqhpYMUQkf1UtPxPh05/L06Qw8GMT3iYm/ZeOoK/aIfTFaeizZzzBbQlWEH74+Iembv83/R+eLGU/whEOADm+YdWvTnpYMDZYCFkhyxaDZUFphBHdW6JWebUIE1cyR/ArmUOGrmSO0AZj73apXrdN4b12y/gNN7922227P3j1tivHN2y+7YhQ88pCfFkKBYkdl69np53f6MA/qYuN9B8Z8W+5hnXlzxhd8wc08x6s9o+vqCXqwLKge2AJ2vaLjyy/r5BJPtxhOsbHPHZkOUIeWeoEhkaku4Jh8th8hN4XDDeW/YTKJC9BnlBJ1zpzGkTNalBgVk04sCss6BdNuiqQ56zcVJIKNlBw4iEUGst+I/cQSvxok1IdLIh8ccJDKCjMsWRfx66HFLH9NbExvR4OThR0Wx4iqh6B9aQkrnpUIpb2ut4yF9Rf2uv40l4ytLTXyR0XfgGjzit5P2Qs0l0/mTZJkewzT7LWsUz70cTRHgJ8SqgDuU6sI9QTEvWWfq9arv6ERBmOC/W3S8fCSEIDLxMPRzAYE2jUmykTLGi+SVHmOcqv/dUOt9qZTmKUZUNZGGWIklTKUUEDzJXczwLxOkOJuaZH7b8KE7AZcb1YXASHzbAh2BQ8pxYGku3k2Z6QuERbxLVne9iXgJsP98T0OB/nlRJD1iTkHZ4KEUarhzp4uCfm5OGeCByz7VsUjtkOkqBEXkQGkmErSIZgF8RDfmH64R7BCOw/CcNfW4ghNhRCHN6gxaY4ny7UWH4u4z76gmiIPwIJSzc7EbUjENGoIo3lF8iPQCLCQmRByDlUsFHrVUH2DttN4tFc10Ln5ZdogFhQyqMYuSEMQuXixxVrLL+U8MdjGnoesbIjarNNjG5QRjdO0MVYItI1wBKkWUKVk2FhFd3lV8v1LciPLCaVcFjNCmKCUYUby98ER4Wsgzds276LFTGddbBSRdAvcfRLcFZlFaPWtJZBXccpGLRgmYKFUAULWhn2h22GbZjYMjHVrvt62AHLQofJCXNFWXEHLuy6AxfGHbiQIQcuzGNfCN33WtZJzv+OKNh6kOzOvXLWAbEzGXRW77f1Mq5GaeiknrzO01eWpPuloZO89BLE+UdKr9tzsW5TopNa3IVMw28ISfopiZTFORa89rB8injiG313in6kuIWqovBmb2P5newHt3Ihx14oD6TzXr7zXiI8lIA/w0BxI7rf3chDB+MO7vEn7N9i7WMrbBu0qcWXFUd4Dcyyw1b6vzfgy1TuGfshK1jk0OuRWZ7bgbbvYJdfVoFinqA4Tr+ETESoE4YC+wn4s6c7fCT4fGxQRREPQC/2iRbhn3g4jZNwFiiXzcMpQZLkVhEItYRsFYvw1xZiPATkGivyDAIO47OpCvR1bjbvFFZTX/4gL7A+c/W2uKd5g+0fqa5xmD9S7YAUp8JBqFT4I4BrhadPy3/KZPNex6R5Mw4oWGqAAAbaUgN2fgZM8jNA4HrCZEcJdJEocFkPyz+kmyLMaFwrTBBe3mCkP4JjaWv3yUgBCMDGQ3ooRcmo/kC+J6ZeXF/rbFQFywBF4/okjHrgy1KQqvRS1bgU1KfA6To5J8sND1EpgeV/RMypBO2BuH+AWzd6Z2lOVO8QDCrQWP45+Wl4wMkd6Qq5BNeoh0AqGgOpSTWRjhrVLKAmihr9JZWQEbS4M0QiJAehzHXYTDyVwxbyFVF9OJKZ2JcZIP0nZUVB6v4hamJ1J+rYtJGvyNWxX2S9Dg4J+yl1tFzVVh+IXB0HVNWxX5g6t/ybiurYR6pjPyXxACVxFID6ZRK/Vli5avn3FBLSOr2peJ7HKlfVyMusdY0rPHKFq6sqXJ/YIn9EKVwA8oRyIfsA2KjProAeuRdEpD/k2KN+h04eU8D1EF3A/TymAJlqwc05aChEFxQdoeGrpGUTggU8VI+FxA9+rggQOwU0RJcgI5wthfwNuupv5Fd9LO5VRrctFT62FaW2huhqHRQeswaotTrYWJFkyHCvfWS9cMp4+kGOSD8oEeHaMv+qLWBKixf3o/zyWEShogZS4ojCiu1swjXHpLsRBdcjCitWGI4orHgdI32SdyIKK17uzYjCilPVIgoVH0UUVqwm5pSjHPqSinU7iyisONuliEJZM6JgqdrgoYjCigsoj7oCWaIVUQiiEQVwwtCOKLzHeERhxaWM+C2UFVXmM6Kw4opuRIENTxRRWPEmRXX0S0RhxbpuROHFBgoKtxARhRU3mY0oNMHGrYhC02dz6lG/A93geS2ikHMvopAjIgoJQxEF4U4cXyXz8BvmNZMKnoDEhDuyd/N6kZdGFAR5G3kuorDidnTV34jGGjahwa31aKxhE/ATnEQUEvoRhaZndLdSRCFIRBSyREQhR0QUSkREoYxHFEKozxWGQ3d6r4HLcgJDx+8gZUCmE87FED8XMAhuew4mhs80xmsnmDTOhbj7iZLZRZgomfFPouSK33UtUXLFU8JEyRWfYD/4kJcTJQEBLFVyPQ8iGPTH0C8sUfKqFl9WTjtPlNw0n4mSV9KJkvZsugL8SKbm5UEjJDXPsreWpuatPJ0p3Z/gHMrjqXnP3ys+xPh8x8mUVG5ewWRuHn1G525cuB2UxfNgE848NMrg87wXanBaeQIj5incnePD3X+rW7eD0dgu9KpXphjpr2Kkc/Zw93YFZKG9/Sw9qhXfkIe7s8TGaK2zUeUsAxSN6x/UQsNBKhYe0Argyzld6iSEX2qs+CdiTr3QHuwfkwrWnUDUkp13vE28Z/mBPL6YIHfG6j5aAo7KPscU/FN9IEWpJmYlx0EQHjgGZRsrXpA/BJRFeJ+geN8k/RM577NOeC/wK7NwVHbep+Gf6gNJSHmfV41EZMVuwS/lvMf0PivR+1/LeZ93wvuEaJUFo7LzPuFs5c52iMAWv0+4XgUVM/VyZBA0T92dhdvQM07nfgnIBBH3NQN/bSGGRfmEgZ08pSyBxkqYKtLaXRzQdxAki97KLCN+il7WeFFh0Ss5WSBKjZUluaGUnZyHlsi6N0XqzLekMRD5AlFRXSBEbwhUGiv7nWdYWx48ISSepySOwkZZJvHtwhJqK0cVDqA6fIy1J4sfQJWlB1AVkerI9K3KN6pAnlCngyU8QcWBwpVUFa4gtsiXUwqXhzyh7y+2wUZ9djn0AConIN3cRbm7oQOWNE87b41jsbzrId68+8dieb1jsYKhEG+B3KJxAYki/ObO9m3lxbxeFKUh3iIBECzEu/K18xVgyRH623lHOdRMglyAZeXluv5TUBJgeYiRvhJP357vAMvKNzoKsMjrMhVU08YRX/M6IhhhcdH9E2BZud5AgCWnu8kv0pv8lROONvlBJwGWLOU/qwRYsk7cmZyqO5MVnylskW/yc042+U3S2+S8zznhfVq0KIJROQmw5Jxs8vOqm/ycMMCy8lbnwa2cRO93OQqwyHmfJQMsOVNFRwyGuJEAy52UG5+ALHEcYMn6JcBytzDA4qtsleZxs8+yVbT9L5lP8Sjjxf+gi/HMZ/zqfd34FRueMH71jCIOuRW/ypmOXz3XjV+92EBB4RYkfvUp5/ErUZCpCTbqswui8augiPTlXICFbYPhYoiry3vO/7OXffdfPnY7n53SkncLjTvs6O7N/T/+2LmvvE/eUecV2jkKUa0HtZbwixoeRNOsI/7f+kG0mPvl42Nk+XhuznG9bn9DP6gVEHoBMaE3E0UBM2b9EoTNW0+tHe34asBvOtbOXxOhJ8yfvInZ+1cwCUblTpHouly0sfIbjPjXKQeRwQCWVRdFC72HcLXjykGrFK+Nd1LyO95Y+W15yCuOsDNGs7NJ/LuO8lXC0uU1TuarxDgHJm4zAKwAeVxegNwi1xhUD7RR4sWnWpj6QizDmsSsdajjcJ5E8WrL4FSqo0cdLrpRYIQL85pEL3/5Yq7VDeJVRenFiJVfUH8xIgrHRUgSE0pUWZJqahZEexKsWr16MqqjJ3briU1vCM0i38D059e6IB6AkxCB+Cp2VLOqh7rZI9lZx+3HDxNwDCiacSAel7roSbWa/nHBbJONVREA4Fhq/loiXhJm3IrrLgCWKsmiBWDVICOeIhZLLgU91kbLJ9dsQ8A6euyFHTuYQ/cIiZJBXJThPW69EQrvMfCOKfcUVEL8hLVRRGl4SXROCeUHTuJK2Ec9d6O+IAVQLQ5AgvhiFSPieWEi9pYAIOXAI4hpXMTCLdWyyuBWHAdW3OHmdP93//vr976j70fyzSnxylBA/kSMhW/M5/sd1PHv/LWLkP5+02uvXUTh0LiIS1Sa4hAldK/XnwSB6aIcvmDzrQiorJNnP6xajRGOqLySpT7PUBsF7DuYqAJ2xgiKfNEtC1KJXqlatZsx4LdQBpCcRT2rpunbd7qyRmHeswpA+MMGKDzhCgPv1epfgIUtcsy/+EjT6jdsntq8bev4lqaezAplHBL+a0TMVVZCbdXFGl5kQEGjkmQoIGwRkciTfIM8FJCUXZ5YJya9Rh4ISJFXXNWX0pRlAcdzRwi/JWV1dgRLMB9yC3V4RhHCzyii0jMK2qOgXrxGs0tsDwDy2xHx83+rriccKhY1WIXuukJObq6EVW+uhITPoq1aL0+sCCOKH6IUv0n6BkcRMLnih8kIWIhT/LDFpcEUv9eq+DHeT+YVP+qe4kekii9Ql0h7yeMUPwRZ3NZF6mi+9StUM0J09ZH1aO7FE5e/+EasaHBxYeLFqp1koZLWSO/gf4V70AHXPWiiGlCvIQ864CQ1KUSaXfuQ5uNrt+2Y2Lxh29ZT105M3rJzavyYM3AYCiYINQzKQX24vbjnF4B/4vIPSMJZEd7pCkqdrgTv3sk9tfgzEhQOimNFd7GjqcO6gagIhcJN0gdcQmH6HCJCn0Ooxo+isJEn3Y+4nvthOc1QJxmR+gF0scwIja+JxqqHnN9gjVMa2CT9qFwDk040UKC2STgq8gar6ju7MdhoAfyAmFQDBWyIEX5AArLIwf58naP9eZx0VlzS6d+T63TEiU43d7LPuYSqERJVeZ1WC3vjb0dHiDyKBfRto4S6rCMDYXGdGGrUdQ8w6n4MleJVr5N4mZYHGIUeYCyooddKh+0REIjsMLb/hlc/cvuez//vqxVi+7iR9VLoF6ACjUHKI8LBfc6htOyWGDhtFOPe8x1X8eshilQl9ZzfmMQ//S6T8F/rJ+HQpP8GgDQGc5EOYS6Iw1zcydIddxL3syQAUSGvsEZMJSb1OSPk+myJoAgX0W9R+bW9kCdUQneULGYQFkVCmPnMqd5JPR2n80XRrUMPcSmjl792DqaIZwAF+QwgFEsUcoBYHsVJS4gcoIWAxQUw24STkHNCLeQcJvU80YGex8iIX5wKivZSkg2QIw6TI46IRozzyTrelmVii7L6BAjVDFKqGVJcj1i0E9q+YD06iZ0BnFR1tvcnYyoOkkzXOtwjJ4kUTbcsNuTWQruW3CMnO9D/OGmxUdICYkBXPK/6a6WqP8Sm8wpnIQLTqj/eVX1ZeGjhVf8V3lf9canqn8Gmc5ET1V9nXPXXdVVfGEXylOpftCCqT6haREN540TSmiVsi4l0ScfvmDiI1SXwWF3cUKwu4SRWlyQZrBGrS8BYXTK4UDouOa0NE2nQa5yFIiwZZKJQxElv0T4qmBvRVkgam5EoiBehgnjhxknj7F7O51xMC475Py04QiptRJp0GyFtsktwsROU5kifdJtu5lywjWdC27+DkX6HylVcdSuy3AJ2BKVBKZTudn7qGm6jqpD0e+SnrlFDp66WywbkqatbaSkx3PUNOzlAlV8tjpFsEPgLMQX30PnJH3VzqW16HZ4KhoL1R4Y/uv5S1+texF/9X4/+7Ef3HHW9o+cSf/PaP35f9HfkHVk0N9JWYaFLELW7BIG2XiMNbJdIo5gCzv1zjLgLGgXDbCFDq1njpA+2LJSZBfu19UO4Ta+lzPbph+1f0BywVks7YyKSeVKMaen1e+dk9P8D4M5xrErCBgA=",
2336
- "debug_symbols": "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"
2327
+ "bytecode": "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",
2328
+ "debug_symbols": "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"
2337
2329
  },
2338
2330
  {
2339
2331
  "name": "public_dispatch",
@@ -3525,23 +3517,23 @@
3525
3517
  "function_locations": [
3526
3518
  {
3527
3519
  "name": "try_aes128_decrypt_oracle",
3528
- "start": 255
3520
+ "start": 201
3529
3521
  },
3530
3522
  {
3531
3523
  "name": "try_aes128_decrypt",
3532
- "start": 1059
3524
+ "start": 1005
3533
3525
  },
3534
3526
  {
3535
3527
  "name": "test::aes_encrypt_then_decrypt",
3536
- "start": 1857
3528
+ "start": 1703
3537
3529
  },
3538
3530
  {
3539
3531
  "name": "test::aes_encrypt_then_decrypt_with_bad_sym_key_is_caught",
3540
- "start": 3213
3532
+ "start": 3059
3541
3533
  }
3542
3534
  ],
3543
3535
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/oracle/aes128_decrypt.nr",
3544
- "source": "use crate::utils::array::assert_bounded_vec_trimmed;\n\n#[oracle(aztec_utl_tryAes128Decrypt)]\nunconstrained fn try_aes128_decrypt_oracle<let N: u32>(\n ciphertext: BoundedVec<u8, N>,\n iv: [u8; 16],\n sym_key: [u8; 16],\n) -> Option<BoundedVec<u8, N>> {}\n\n/// Attempts to decrypt a ciphertext using AES128.\n///\n/// Returns `Option::some(plaintext)` on success, or `Option::none()` if decryption fails (e.g. due to malformed\n/// ciphertext). Note that decryption with the wrong key will still return `Some` with garbage data, it's up to\n/// the calling function to verify correctness (e.g. via a MAC check).\n///\n/// Note that we accept ciphertext as a BoundedVec, not as an array. This is because this function is typically used\n/// when processing logs and at that point we don't have comptime information about the length of the ciphertext as\n/// the log is not specific to any individual note.\npub unconstrained fn try_aes128_decrypt<let N: u32>(\n ciphertext: BoundedVec<u8, N>,\n iv: [u8; 16],\n sym_key: [u8; 16],\n) -> Option<BoundedVec<u8, N>> {\n try_aes128_decrypt_oracle(ciphertext, iv, sym_key).map(|result: BoundedVec<u8, N>| {\n assert_bounded_vec_trimmed(result);\n result\n })\n}\n\nmod test {\n use crate::{\n messages::encryption::aes128::derive_aes_symmetric_key_and_iv_from_ecdh_shared_secret_using_poseidon2_unsafe,\n utils::{array::subarray::subarray, point::point_from_x_coord},\n };\n use crate::test::helpers::test_environment::TestEnvironment;\n use super::try_aes128_decrypt;\n use poseidon::poseidon2::Poseidon2;\n use std::aes128::aes128_encrypt;\n\n global TEST_PLAINTEXT_LENGTH: u32 = 10;\n global TEST_CIPHERTEXT_LENGTH: u32 = 16;\n global TEST_PADDING_LENGTH: u32 = TEST_CIPHERTEXT_LENGTH - TEST_PLAINTEXT_LENGTH;\n\n #[test]\n unconstrained fn aes_encrypt_then_decrypt() {\n let env = TestEnvironment::new();\n\n env.utility_context(|_| {\n let ciphertext_shared_secret = point_from_x_coord(1).unwrap();\n\n let (sym_key, iv) = derive_aes_symmetric_key_and_iv_from_ecdh_shared_secret_using_poseidon2_unsafe::<1>(\n ciphertext_shared_secret,\n )[0];\n\n let plaintext: [u8; TEST_PLAINTEXT_LENGTH] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n\n let ciphertext: [u8; TEST_CIPHERTEXT_LENGTH] = aes128_encrypt(plaintext, iv, sym_key);\n\n let ciphertext_bvec = BoundedVec::<u8, TEST_CIPHERTEXT_LENGTH>::from_array(ciphertext);\n\n let received_plaintext = try_aes128_decrypt(ciphertext_bvec, iv, sym_key).unwrap();\n assert_eq(received_plaintext.len(), TEST_PLAINTEXT_LENGTH);\n assert_eq(received_plaintext.max_len(), TEST_CIPHERTEXT_LENGTH);\n assert_eq(subarray::<_, _, TEST_PLAINTEXT_LENGTH>(received_plaintext.storage(), 0), plaintext);\n assert_eq(\n subarray::<_, _, TEST_PADDING_LENGTH>(received_plaintext.storage(), TEST_PLAINTEXT_LENGTH),\n [0 as u8; TEST_PADDING_LENGTH],\n );\n })\n }\n\n global TEST_MAC_LENGTH: u32 = 32;\n\n #[test(should_fail_with = \"mac does not match\")]\n unconstrained fn aes_encrypt_then_decrypt_with_bad_sym_key_is_caught() {\n let env = TestEnvironment::new();\n\n env.utility_context(|_| {\n // The AES decryption oracle will not fail for any valid ciphertext; it will always return\n // `Some` with some data. Whether the decryption was successful is up to the app to check in a\n // custom way.\n //\n // E.g. if it's a note that's been encrypted, upon decryption the app can check whether the\n // note hash exists onchain. If it doesn't, that's a strong indicator that decryption failed.\n //\n // E.g. for non-note messages, the plaintext could include a MAC\n // (https://en.wikipedia.org/wiki/Message_authentication_code). We demonstrate this approach in\n // this test: we compute a MAC, include it in the plaintext, encrypt, and then verify that\n // decryption with a bad key produces a MAC mismatch.\n let ciphertext_shared_secret = point_from_x_coord(1).unwrap();\n\n let (sym_key, iv) = derive_aes_symmetric_key_and_iv_from_ecdh_shared_secret_using_poseidon2_unsafe::<1>(\n ciphertext_shared_secret,\n )[0];\n\n let mac_preimage = 0x42;\n let mac = Poseidon2::hash([mac_preimage], 1);\n let mac_as_bytes = mac.to_be_bytes::<TEST_MAC_LENGTH>();\n\n let plaintext: [u8; TEST_PLAINTEXT_LENGTH] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n\n // We append the mac to the plaintext. It doesn't necessarily have to be 32 bytes; that's quite an extreme\n // length. 16 bytes or 8 bytes might be sufficient, and would save on data broadcasting costs. The shorter\n // the mac, the more possibility of false positive decryptions (decryption seemingly succeeding, but the\n // decrypted plaintext being garbage). Some projects use the `iv` (all 16 bytes or the first 8 bytes) as a\n // mac.\n let mut plaintext_with_mac = [0 as u8; TEST_PLAINTEXT_LENGTH + TEST_MAC_LENGTH];\n for i in 0..TEST_PLAINTEXT_LENGTH {\n plaintext_with_mac[i] = plaintext[i];\n }\n for i in 0..TEST_MAC_LENGTH {\n plaintext_with_mac[TEST_PLAINTEXT_LENGTH + i] = mac_as_bytes[i];\n }\n\n let ciphertext = aes128_encrypt(plaintext_with_mac, iv, sym_key);\n\n // We now would broadcast the tuple [ciphertext, mac] to the network. The recipient will then decrypt the\n // ciphertext, and if the mac inside the received plaintext matches the mac that was broadcast, then the\n // recipient knows that decryption was successful.\n\n // For this test, we intentionally mutate the sym_key to a bad one, so that decryption fails. This allows\n // us to explore how the recipient can detect failed decryption by checking the decrypted mac against the\n // broadcasted mac.\n let mut bad_sym_key = sym_key;\n bad_sym_key[0] = 0;\n\n // We need to convert the array to a BoundedVec because the oracle expects a BoundedVec as it's designed to\n // work with logs of unknown length.\n let ciphertext_bvec = BoundedVec::<u8, 48>::from_array(ciphertext);\n // Decryption with wrong key still returns Some (with garbage).\n let received_plaintext = try_aes128_decrypt(ciphertext_bvec, iv, bad_sym_key).unwrap();\n\n let extracted_mac_as_bytes: [u8; TEST_MAC_LENGTH] =\n subarray(received_plaintext.storage(), TEST_PLAINTEXT_LENGTH);\n\n assert_eq(mac_as_bytes, extracted_mac_as_bytes, \"mac does not match\");\n });\n }\n}\n"
3536
+ "source": "#[oracle(aztec_utl_tryAes128Decrypt)]\nunconstrained fn try_aes128_decrypt_oracle<let N: u32>(\n ciphertext: BoundedVec<u8, N>,\n iv: [u8; 16],\n sym_key: [u8; 16],\n) -> Option<BoundedVec<u8, N>> {}\n\n/// Attempts to decrypt a ciphertext using AES128.\n///\n/// Returns `Option::some(plaintext)` on success, or `Option::none()` if decryption fails (e.g. due to malformed\n/// ciphertext). Note that decryption with the wrong key will still return `Some` with garbage data, it's up to\n/// the calling function to verify correctness (e.g. via a MAC check).\n///\n/// Note that we accept ciphertext as a BoundedVec, not as an array. This is because this function is typically used\n/// when processing logs and at that point we don't have comptime information about the length of the ciphertext as\n/// the log is not specific to any individual note.\npub unconstrained fn try_aes128_decrypt<let N: u32>(\n ciphertext: BoundedVec<u8, N>,\n iv: [u8; 16],\n sym_key: [u8; 16],\n) -> Option<BoundedVec<u8, N>> {\n try_aes128_decrypt_oracle(ciphertext, iv, sym_key)\n}\n\nmod test {\n use crate::{\n messages::encryption::aes128::derive_aes_symmetric_key_and_iv_from_ecdh_shared_secret_using_poseidon2_unsafe,\n utils::{array::subarray::subarray, point::point_from_x_coord},\n };\n use crate::test::helpers::test_environment::TestEnvironment;\n use super::try_aes128_decrypt;\n use poseidon::poseidon2::Poseidon2;\n use std::aes128::aes128_encrypt;\n\n global TEST_PLAINTEXT_LENGTH: u32 = 10;\n global TEST_CIPHERTEXT_LENGTH: u32 = 16;\n global TEST_PADDING_LENGTH: u32 = TEST_CIPHERTEXT_LENGTH - TEST_PLAINTEXT_LENGTH;\n\n #[test]\n unconstrained fn aes_encrypt_then_decrypt() {\n let env = TestEnvironment::new();\n\n env.utility_context(|_| {\n let ciphertext_shared_secret = point_from_x_coord(1).unwrap();\n\n let (sym_key, iv) = derive_aes_symmetric_key_and_iv_from_ecdh_shared_secret_using_poseidon2_unsafe::<1>(\n ciphertext_shared_secret,\n )[0];\n\n let plaintext: [u8; TEST_PLAINTEXT_LENGTH] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n\n let ciphertext: [u8; TEST_CIPHERTEXT_LENGTH] = aes128_encrypt(plaintext, iv, sym_key);\n\n let ciphertext_bvec = BoundedVec::<u8, TEST_CIPHERTEXT_LENGTH>::from_array(ciphertext);\n\n let received_plaintext = try_aes128_decrypt(ciphertext_bvec, iv, sym_key).unwrap();\n assert_eq(received_plaintext.len(), TEST_PLAINTEXT_LENGTH);\n assert_eq(received_plaintext.max_len(), TEST_CIPHERTEXT_LENGTH);\n assert_eq(subarray::<_, _, TEST_PLAINTEXT_LENGTH>(received_plaintext.storage(), 0), plaintext);\n assert_eq(\n subarray::<_, _, TEST_PADDING_LENGTH>(received_plaintext.storage(), TEST_PLAINTEXT_LENGTH),\n [0 as u8; TEST_PADDING_LENGTH],\n );\n })\n }\n\n global TEST_MAC_LENGTH: u32 = 32;\n\n #[test(should_fail_with = \"mac does not match\")]\n unconstrained fn aes_encrypt_then_decrypt_with_bad_sym_key_is_caught() {\n let env = TestEnvironment::new();\n\n env.utility_context(|_| {\n // The AES decryption oracle will not fail for any valid ciphertext; it will always return\n // `Some` with some data. Whether the decryption was successful is up to the app to check in a\n // custom way.\n //\n // E.g. if it's a note that's been encrypted, upon decryption the app can check whether the\n // note hash exists onchain. If it doesn't, that's a strong indicator that decryption failed.\n //\n // E.g. for non-note messages, the plaintext could include a MAC\n // (https://en.wikipedia.org/wiki/Message_authentication_code). We demonstrate this approach in\n // this test: we compute a MAC, include it in the plaintext, encrypt, and then verify that\n // decryption with a bad key produces a MAC mismatch.\n let ciphertext_shared_secret = point_from_x_coord(1).unwrap();\n\n let (sym_key, iv) = derive_aes_symmetric_key_and_iv_from_ecdh_shared_secret_using_poseidon2_unsafe::<1>(\n ciphertext_shared_secret,\n )[0];\n\n let mac_preimage = 0x42;\n let mac = Poseidon2::hash([mac_preimage], 1);\n let mac_as_bytes = mac.to_be_bytes::<TEST_MAC_LENGTH>();\n\n let plaintext: [u8; TEST_PLAINTEXT_LENGTH] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n\n // We append the mac to the plaintext. It doesn't necessarily have to be 32 bytes; that's quite an extreme\n // length. 16 bytes or 8 bytes might be sufficient, and would save on data broadcasting costs. The shorter\n // the mac, the more possibility of false positive decryptions (decryption seemingly succeeding, but the\n // decrypted plaintext being garbage). Some projects use the `iv` (all 16 bytes or the first 8 bytes) as a\n // mac.\n let mut plaintext_with_mac = [0 as u8; TEST_PLAINTEXT_LENGTH + TEST_MAC_LENGTH];\n for i in 0..TEST_PLAINTEXT_LENGTH {\n plaintext_with_mac[i] = plaintext[i];\n }\n for i in 0..TEST_MAC_LENGTH {\n plaintext_with_mac[TEST_PLAINTEXT_LENGTH + i] = mac_as_bytes[i];\n }\n\n let ciphertext = aes128_encrypt(plaintext_with_mac, iv, sym_key);\n\n // We now would broadcast the tuple [ciphertext, mac] to the network. The recipient will then decrypt the\n // ciphertext, and if the mac inside the received plaintext matches the mac that was broadcast, then the\n // recipient knows that decryption was successful.\n\n // For this test, we intentionally mutate the sym_key to a bad one, so that decryption fails. This allows\n // us to explore how the recipient can detect failed decryption by checking the decrypted mac against the\n // broadcasted mac.\n let mut bad_sym_key = sym_key;\n bad_sym_key[0] = 0;\n\n // We need to convert the array to a BoundedVec because the oracle expects a BoundedVec as it's designed to\n // work with logs of unknown length.\n let ciphertext_bvec = BoundedVec::<u8, 48>::from_array(ciphertext);\n // Decryption with wrong key still returns Some (with garbage).\n let received_plaintext = try_aes128_decrypt(ciphertext_bvec, iv, bad_sym_key).unwrap();\n\n let extracted_mac_as_bytes: [u8; TEST_MAC_LENGTH] =\n subarray(received_plaintext.storage(), TEST_PLAINTEXT_LENGTH);\n\n assert_eq(mac_as_bytes, extracted_mac_as_bytes, \"mac does not match\");\n });\n }\n}\n"
3545
3537
  },
3546
3538
  "176": {
3547
3539
  "function_locations": [
@@ -3955,41 +3947,7 @@
3955
3947
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/append.nr",
3956
3948
  "source": "/// Appends the elements of the second `BoundedVec` to the end of the first one. The resulting `BoundedVec` can have\n/// any arbitrary maximum length, but it must be large enough to fit all of the elements of both the first and second\n/// 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"
3957
3949
  },
3958
- "246": {
3959
- "function_locations": [
3960
- {
3961
- "name": "assert_bounded_vec_trimmed",
3962
- "start": 705
3963
- },
3964
- {
3965
- "name": "test::trimmed_empty_vec",
3966
- "start": 1039
3967
- },
3968
- {
3969
- "name": "test::trimmed_full_vec",
3970
- "start": 1200
3971
- },
3972
- {
3973
- "name": "test::trimmed_partial_vec",
3974
- "start": 1370
3975
- },
3976
- {
3977
- "name": "test::dirty_trailing_element_fails",
3978
- "start": 1613
3979
- },
3980
- {
3981
- "name": "test::dirty_last_element_fails",
3982
- "start": 1983
3983
- },
3984
- {
3985
- "name": "test::trimmed_array_elements",
3986
- "start": 2191
3987
- }
3988
- ],
3989
- "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/assert_trimmed.nr",
3990
- "source": "/// Asserts that elements past `len()` in a `BoundedVec` are zeroed.\n///\n/// Oracle functions may return `BoundedVec` values with dirty trailing storage (non-zero elements past `len()`).\n/// This is problematic because `BoundedVec`'s `Eq` implementation and other operations assume trailing elements\n/// are zeroed.\n///\n/// This function should be called on any `BoundedVec` obtained from an oracle to guard against malformed data.\n///\n/// TODO(https://github.com/noir-lang/noir/issues/4218): Remove once Noir natively validates `BoundedVec` returned\n/// from unconstrained functions.\npub(crate) unconstrained fn assert_bounded_vec_trimmed<T, let MaxLen: u32>(vec: BoundedVec<T, MaxLen>)\nwhere\n T: Eq,\n{\n let storage = vec.storage();\n let len = vec.len();\n for i in 0..MaxLen {\n if i >= len {\n assert_eq(storage[i], std::mem::zeroed(), \"BoundedVec has non-zero trailing elements\");\n }\n }\n}\n\nmod test {\n use super::assert_bounded_vec_trimmed;\n\n #[test]\n unconstrained fn trimmed_empty_vec() {\n let vec: BoundedVec<Field, 3> = BoundedVec::new();\n assert_bounded_vec_trimmed(vec);\n }\n\n #[test]\n unconstrained fn trimmed_full_vec() {\n let vec = BoundedVec::<Field, 3>::from_array([1, 2, 3]);\n assert_bounded_vec_trimmed(vec);\n }\n\n #[test]\n unconstrained fn trimmed_partial_vec() {\n let vec = BoundedVec::<Field, 5>::from_array([1, 2, 3]);\n assert_bounded_vec_trimmed(vec);\n }\n\n #[test(should_fail_with = \"BoundedVec has non-zero trailing elements\")]\n unconstrained fn dirty_trailing_element_fails() {\n let mut vec = BoundedVec::<Field, 3>::from_array([1]);\n // We use the unchecked setter to write past the length, knowingly breaking the invariant.\n vec.set_unchecked(1, 42);\n assert_bounded_vec_trimmed(vec);\n }\n\n #[test(should_fail_with = \"BoundedVec has non-zero trailing elements\")]\n unconstrained fn dirty_last_element_fails() {\n let mut vec = BoundedVec::<Field, 3>::from_array([1, 2]);\n vec.set_unchecked(2, 99);\n assert_bounded_vec_trimmed(vec);\n }\n\n #[test]\n unconstrained fn trimmed_array_elements() {\n // Test with array element type (like get_notes_oracle returns BoundedVec<[Field; N], MaxNotes>).\n let vec = BoundedVec::<[Field; 2], 3>::from_array([[1, 2], [3, 4]]);\n assert_bounded_vec_trimmed(vec);\n }\n}\n"
3991
- },
3992
- "249": {
3950
+ "248": {
3993
3951
  "function_locations": [
3994
3952
  {
3995
3953
  "name": "subarray",
@@ -4019,7 +3977,7 @@
4019
3977
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subarray.nr",
4020
3978
  "source": "/// Returns `DstLen` elements from a source array, starting at `offset`. `DstLen` must not be larger than the number of\n/// 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"
4021
3979
  },
4022
- "250": {
3980
+ "249": {
4023
3981
  "function_locations": [
4024
3982
  {
4025
3983
  "name": "subbvec",
@@ -4061,7 +4019,7 @@
4061
4019
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subbvec.nr",
4062
4020
  "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 support 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"
4063
4021
  },
4064
- "253": {
4022
+ "252": {
4065
4023
  "function_locations": [
4066
4024
  {
4067
4025
  "name": "bytes_to_fields",
@@ -4083,7 +4041,7 @@
4083
4041
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/conversion/bytes_to_fields.nr",
4084
4042
  "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. For example, [1, 10, 3, ..., 0] (31 bytes) is encoded as [1 * 256^30 + 10 * 256^29 + 3 * 256^28 + ...\n/// + 0] 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 are\n/// 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). Each field is converted into 31\n/// big-endian bytes, and the resulting 31-byte chunks are concatenated back together in the order of the original\n/// 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. So\n // 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"
4085
4043
  },
4086
- "254": {
4044
+ "253": {
4087
4045
  "function_locations": [
4088
4046
  {
4089
4047
  "name": "fields_to_bytes",
@@ -4133,7 +4091,7 @@
4133
4091
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/conversion/fields_to_bytes.nr",
4134
4092
  "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. 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 that\n/// 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 is\n/// assumed to be an array obtained via `fields_to_bytes`, i.e. one that actually represents fields. To convert a byte\n/// 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. For example, [1, 10, 3, ..., 0] (32 bytes) is encoded as [1 * 256^31 + 10 * 256^30 + 3 * 256^29 + ...\n/// + 0] Note 1: N must be a multiple of 32 bytes Note 2: The max value check code was taken from\n/// 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 try_fields_from_bytes(bytes).expect(f\"Value does not fit in field\")\n}\n\n/// Converts a single 32-byte big-endian chunk (starting at `offset`) into a Field, returning\n/// `Option::none()` if the chunk's value is >= the field modulus.\nfn try_field_from_be_bytes<let N: u32>(bytes: BoundedVec<u8, N>, offset: u32) -> Option<Field> {\n let p = std::field::modulus_be_bytes();\n let mut field = 0;\n // Field arithmetic silently wraps values >= the modulus, so we compare each 32-byte chunk against\n // the modulus byte-by-byte (big-endian, most significant first). The first byte that differs\n // determines the result: if our byte is smaller we're valid, if larger we've overflowed.\n // cmp tracks the result: 0 = equal so far, 1 = less than modulus, 2 = exceeds modulus.\n let mut cmp: u8 = 0;\n for j in 0..32 {\n let byte = bytes.get(offset + j);\n field = field * 256 + byte as Field;\n\n if cmp == 0 {\n if byte < p[j] {\n cmp = 1;\n } else if byte > p[j] {\n cmp = 2;\n }\n }\n }\n if cmp == 1 {\n Option::some(field)\n } else {\n Option::none()\n }\n}\n\n/// Non-panicking version of `fields_from_bytes`. Returns `Option::none()` if the input\n/// length is not a multiple of 32 or if any 32-byte chunk exceeds the field modulus.\npub(crate) fn try_fields_from_bytes<let N: u32>(bytes: BoundedVec<u8, N>) -> Option<BoundedVec<Field, N / 32>> {\n if bytes.len() % 32 == 0 {\n let mut fields = BoundedVec::new();\n let num_chunks = bytes.len() / 32;\n for i in 0..num_chunks {\n let field = try_field_from_be_bytes(bytes, i * 32);\n if field.is_some() {\n fields.push(field.unwrap());\n }\n }\n if fields.len() as u32 == num_chunks {\n Option::some(fields)\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n}\n\nmod tests {\n use crate::utils::array::subarray;\n use super::{fields_from_bytes, fields_to_bytes, try_fields_from_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. So\n // we need to convert the field array to a BoundedVec to be able to feed it to the `fields_from_bytes`\n // function. 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, 25, 26, 27, 28, 29,\n 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 and then\n // 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). This is acceptable since we are\n // 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 #[test]\n unconstrained fn try_fields_from_bytes_returns_none_on_unaligned_length() {\n let input = BoundedVec::<_, 64>::from_parts([0 as u8; 64], 33);\n assert(try_fields_from_bytes(input).is_none());\n }\n\n #[test]\n unconstrained fn try_fields_from_bytes_returns_none_on_field_modulus() {\n // The field modulus itself is not a valid field value (it wraps to 0).\n let p: [u8; 32] = std::field::modulus_be_bytes().as_array();\n let input = BoundedVec::<u8, 32>::from_array(p);\n assert(try_fields_from_bytes(input).is_none());\n }\n\n #[test]\n unconstrained fn try_fields_from_bytes_round_trips(input: [Field; 3]) {\n let bytes = BoundedVec::<_, 113>::from_array(fields_to_bytes(input));\n let fields = try_fields_from_bytes(bytes).unwrap();\n\n assert_eq(fields.len(), input.len());\n assert_eq(subarray(fields.storage(), 0), input);\n }\n}\n"
4135
4093
  },
4136
- "257": {
4094
+ "256": {
4137
4095
  "function_locations": [
4138
4096
  {
4139
4097
  "name": "get_sign_of_point",
@@ -4183,7 +4141,7 @@
4183
4141
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/point.nr",
4184
4142
  "source": "use crate::protocol::{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 = 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Returns: true if p.y <= MOD_DIV_2, else false.\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 the\n // sign we check if the y coordinate is less or equal than the field's modulus minus 1 divided by 2. Ideally we'd\n // do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is equivalent,\n // 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 is no corresponding\n/// y value in the field that satisfies the curve equation), it may not be possible to reconstruct a `Point`.\n/// `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 is no corresponding\n/// y value in the field that satisfies the curve equation), it may not be possible to reconstruct a `Point`.\n/// `Option::none()` is returned in such cases.\n///\n/// @param x - The x coordinate of the point @param sign - The \"sign\" of the y coordinate - determines whether y <=\n/// (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::protocol::point::Point;\n use crate::utils::point::{\n BN254_FR_MODULUS_DIV_2, get_sign_of_point, point_from_x_coord, point_from_x_coord_and_sign,\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(point.y * point.y, point.x * point.x * point.x - 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 #[test]\n unconstrained fn test_both_roots_satisfy_curve() {\n // Derive a point from x = 8 (known to be valid from test_point_from_x_coord_valid)\n let x: Field = 8;\n let point = point_from_x_coord(x).unwrap();\n\n // Check y satisfies curve equation\n assert_eq(point.y * point.y, x * x * x - 17);\n\n // Check -y also satisfies curve equation\n let neg_y = 0 - point.y;\n assert_eq(neg_y * neg_y, x * x * x - 17);\n\n // Verify they are different (unless y = 0)\n assert(point.y != neg_y);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_and_sign_invalid() {\n // x = 3 has no valid point on the curve (from test_point_from_x_coord_invalid)\n let x = Field::from(3);\n let result_positive = point_from_x_coord_and_sign(x, true);\n let result_negative = point_from_x_coord_and_sign(x, false);\n\n assert(result_positive.is_none());\n assert(result_negative.is_none());\n }\n\n #[test]\n unconstrained fn test_get_sign_of_point() {\n // Derive a point from x = 8, then test both possible y values\n let point = point_from_x_coord(8).unwrap();\n let neg_point = Point { x: point.x, y: 0 - point.y, is_infinite: false };\n\n // One should be \"positive\" (y <= MOD_DIV_2) and one \"negative\"\n let sign1 = get_sign_of_point(point);\n let sign2 = get_sign_of_point(neg_point);\n assert(sign1 != sign2);\n\n // y = 0 should return true (0 <= MOD_DIV_2)\n let zero_y_point = Point { x: 0, y: 0, is_infinite: false };\n assert(get_sign_of_point(zero_y_point) == true);\n\n // y = MOD_DIV_2 should return true (exactly at boundary)\n let boundary_point = Point { x: 0, y: BN254_FR_MODULUS_DIV_2, is_infinite: false };\n assert(get_sign_of_point(boundary_point) == true);\n\n // y = MOD_DIV_2 + 1 should return false (just over boundary)\n let over_boundary_point = Point { x: 0, y: BN254_FR_MODULUS_DIV_2 + 1, is_infinite: false };\n assert(get_sign_of_point(over_boundary_point) == false);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_zero() {\n // x = 0: y^2 = 0^3 - 17 = -17, which is not a quadratic residue in BN254 scalar field\n let result = point_from_x_coord(0);\n assert(result.is_none());\n }\n\n #[test]\n unconstrained fn test_bn254_fr_modulus_div_2() {\n // Verify that BN254_FR_MODULUS_DIV_2 == (p - 1) / 2 This means: 2 * BN254_FR_MODULUS_DIV_2 + 1 == p == 0 (in\n // the field)\n assert_eq(2 * BN254_FR_MODULUS_DIV_2 + 1, 0);\n }\n\n}\n"
4185
4143
  },
4186
- "267": {
4144
+ "266": {
4187
4145
  "function_locations": [
4188
4146
  {
4189
4147
  "name": "Poseidon2::hash",
@@ -4367,7 +4325,7 @@
4367
4325
  "path": "std/array/mod.nr",
4368
4326
  "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 vector.\n ///\n /// ```noir\n /// let array = [1, 2];\n /// let vector = array.as_vector();\n /// assert_eq(vector, [1, 2].as_vector());\n /// ```\n #[builtin(as_vector)]\n pub fn as_vector(self) -> [T] {}\n\n /// Returns this array as a vector.\n /// This method is deprecated in favor of `as_vector`.\n ///\n /// ```noir\n /// let array = [1, 2];\n /// let vector = array.as_slice();\n /// assert_eq(vector, [1, 2].as_vector());\n /// ```\n #[builtin(as_vector)]\n #[deprecated(\"This method has been renamed to `as_vector`\")]\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 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 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 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 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"
4369
4327
  },
4370
- "325": {
4328
+ "324": {
4371
4329
  "function_locations": [
4372
4330
  {
4373
4331
  "name": "<impl Empty for AztecAddress>::empty",
@@ -4461,7 +4419,7 @@
4461
4419
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
4462
4420
  "source": "use crate::{\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{AZTEC_ADDRESS_LENGTH, DOM_SEP__CONTRACT_ADDRESS_V1, MAX_FIELD_VALUE},\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::sqrt,\n};\n\n// We do below because `use crate::point::Point;` does not work\nuse 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 `true` if the address is valid.\n ///\n /// An invalid address is one that can be proven to not be correctly derived, meaning it contains no contract code,\n /// public keys, etc., and can therefore not receive messages nor execute calls.\n pub fn is_valid(self) -> bool {\n self.get_y().is_some()\n }\n\n /// Returns an address's [`AddressPoint`].\n ///\n /// This can be used to create shared secrets with the owner of the address. If the address is invalid (see\n /// [`AztecAddress::is_valid`]) then this returns `Option::none()`, and no shared secrets can be created.\n pub fn to_address_point(self) -> Option<AddressPoint> {\n self.get_y().map(|y| {\n // If we get a negative y coordinate (y > (r - 1) / 2), we swap it to the\n // positive one (where y <= (r - 1) / 2) by negating it.\n let final_y = if Self::is_positive(y) { y } else { -y };\n\n AddressPoint { inner: Point { x: self.inner, y: final_y, is_infinite: false } }\n })\n }\n\n /// Determines whether a y-coordinate is in the lower (positive) or upper (negative) \"half\" of the field.\n /// I.e.\n /// y <= (r - 1)/2 => positive.\n /// y > (r - 1)/2 => negative.\n /// An AddressPoint always uses the \"positive\" y.\n fn is_positive(y: Field) -> bool {\n // Note: The field modulus r is MAX_FIELD_VALUE + 1.\n let MID = MAX_FIELD_VALUE / 2; // (r - 1) / 2\n let MID_PLUS_1 = MID + 1; // (r - 1)/2 + 1\n // Note: y <= m implies y < m + 1.\n y.lt(MID_PLUS_1)\n }\n\n /// Returns one of the two possible y-coordinates.\n ///\n /// Not all `AztecAddresses` are valid, in which case there is no corresponding y-coordinate. This returns\n /// `Option::none()` for invalid addresses.\n ///\n /// An `AztecAddress` is defined by an x-coordinate, for which two y-coordinates exist as solutions to the curve\n /// equation. This function returns either of them. Note that an [`AddressPoint`] must **always** have a positive\n /// y-coordinate - if trying to obtain the underlying point use [`AztecAddress::to_address_point`] instead.\n fn get_y(self) -> Option<Field> {\n // We compute the address point by taking our address as x, and then solving for y in the\n // equation which defines the grumpkin curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = x * x * x - 17;\n\n sqrt(y_squared)\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n //\n // address = address_point.x\n // |\n // address_point = pre_address * G + Ivpk_m (always choose \"positive\" y-coord)\n // | ^\n // | |.....................\n // pre_address .\n // / \\ .\n // / \\ .\n // partial_address public_keys_hash .\n // / \\ / / \\ \\ .\n // / \\ Npk_m Ivpk_m Ovpk_m Tpk_m .\n // contract_class_id \\ |...................\n // / | \\ \\\n // artifact_hash | public_bytecode_commitment salted_initialization_hash\n // | / / \\\n // private_function_tree_root deployer_address salt initialization_hash\n // / \\ / \\\n // ... ... constructor_fn_selector constructor_args_hash\n // / \\\n // / \\ / \\\n // leaf leaf leaf leaf\n // ^\n // |\n // |---h(function_selector, vk_hash)\n // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n // Each of these represents a private function of the contract.\n\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 DOM_SEP__CONTRACT_ADDRESS_V1,\n );\n\n // Note: `.add()` will fail within the blackbox fn if either of the points are not on the curve. (See tests below).\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_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 check_max_field_value() {\n // Check that it is indeed r-1.\n assert_eq(MAX_FIELD_VALUE + 1, 0);\n}\n\n#[test]\nfn check_is_positive() {\n assert(AztecAddress::is_positive(0));\n assert(AztecAddress::is_positive(1));\n assert(!AztecAddress::is_positive(-1));\n assert(AztecAddress::is_positive(MAX_FIELD_VALUE / 2));\n assert(!AztecAddress::is_positive((MAX_FIELD_VALUE / 2) + 1));\n}\n\n// Gives us confidence that we don't need to manually check that the input public keys need to be on the curve for `add`,\n// because the blackbox function does this check for us.\n#[test(should_fail_with = \"is not on curve\")]\nfn check_embedded_curve_point_add() {\n // Choose a point not on the curve:\n let p1 = Point { x: 1, y: 1, is_infinite: false };\n let p2 = Point::generator();\n let _ = p1 + p2;\n}\n\n// Gives us confidence that we don't need to manually check that the input public keys need to be on the curve for `add`,\n// because the blackbox function does this check for us.\n#[test(should_fail_with = \"is not on curve\")]\nfn check_embedded_curve_point_add_2() {\n // Choose a point not on the curve in the 2nd position.\n let p1 = Point::generator();\n let p2 = Point { x: 1, y: 1, is_infinite: false };\n let _ = p1 + p2;\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 0x2f66081d4bb077fbe8e8abe96a3516a713a3d7e34360b4e985da0da95092b37d;\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], DOM_SEP__CONTRACT_ADDRESS_V1);\n let expected_computed_preaddress_from_partial_and_pubkey =\n 0x286c7755f2924b1e53b00bcaf1adaffe7287bd74bba7a02f4ab867e3892d28da;\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\n assert(address.get_y().is_some()); // We don't bother checking the result of get_y as it is only used internally\n assert(address.is_valid());\n\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(point.y * point.y, point.x * point.x * point.x - 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\n assert(address.get_y().is_none());\n assert(!address.is_valid());\n\n assert(address.to_address_point().is_none());\n}\n"
4463
4421
  },
4464
- "356": {
4422
+ "355": {
4465
4423
  "function_locations": [
4466
4424
  {
4467
4425
  "name": "sha256_to_field",
@@ -4579,7 +4537,7 @@
4579
4537
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
4580
4538
  "source": "mod poseidon2_chunks;\n\nuse crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, nullifier::Nullifier, private_log::PrivateLog,\n transaction::tx_request::TxRequest,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, DOM_SEP__NOTE_HASH_NONCE,\n DOM_SEP__PRIVATE_LOG_FIRST_FIELD, DOM_SEP__SILOED_NOTE_HASH, DOM_SEP__SILOED_NULLIFIER,\n DOM_SEP__UNIQUE_NOTE_HASH, FUNCTION_TREE_HEIGHT, NULL_MSG_SENDER_CONTRACT_ADDRESS,\n 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\n// TODO: refactor these into their own files: sha256, poseidon2, some protocol-specific hash computations, some merkle computations.\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\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 compute_siloed_note_hash(contract_address: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), note_hash],\n DOM_SEP__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique, siloed note hashes from siloed note hashes.\n///\n/// The protocol injects uniqueness into every note_hash, so that every single note_hash in the\n/// tree is unique. This prevents faerie gold attacks, where a malicious sender could create\n/// two identical note_hashes for a recipient (meaning only one would be nullifiable in future).\n///\n/// Most privacy protocols will inject the note's leaf_index (its position in the Note Hashes Tree)\n/// into the note, but this requires the creator of a note to wait until their tx is included in\n/// a block to know the note's final note hash (the unique, siloed note hash), because inserting\n/// leaves into trees is the job of a block producer.\n///\n/// We took a different approach so that the creator of a note will know each note's unique, siloed\n/// note hash before broadcasting their tx to the network.\n/// (There was also a historical requirement relating to \"chained transactions\" -- a feature that\n/// Aztec Connect had to enable notes to be spent from distinct txs earlier in the same block,\n/// and hence before an archive block root had been established for that block -- but that feature\n/// was abandoned for the Aztec Network for having too many bad tradeoffs).\n///\n/// (\n/// Edit: it is no longer true that all final note_hashes will be known by the creator of a tx\n/// before they send it to the network. If a tx makes public function calls, then _revertible_\n/// note_hashes that are created in private will not be made unique in private by the Reset circuit,\n/// but will instead be made unique by the AVM, because the `note_index_in_tx` will not be known\n/// until the AVM has executed the public functions of the tx. (See an explanation in\n/// reset_output_composer.nr for why).\n/// For some such txs, the `note_index_in_tx` might still be predictable through simulation, but\n/// for txs whose public functions create a varying number of non-revertible notes (determined at\n/// runtime), the `note_index_in_tx` will not be deterministically derivable before submitting the\n/// tx to the network.\n/// )\n///\n/// We use the `first_nullifier` of a tx as a seed of uniqueness. We have a guarantee that there will\n/// always be at least one nullifier per tx, because the init circuit will create one if one isn't\n/// created naturally by any functions of the tx. (Search \"protocol_nullifier\").\n/// We combine the `first_nullifier` with the note's index (its position within this tx's new\n/// note_hashes array) (`note_index_in_tx`) to get a truly unique value to inject into a note, which\n/// we call a `note_nonce`.\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, DOM_SEP__UNIQUE_NOTE_HASH)\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 DOM_SEP__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_note_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_nullifier(contract_address: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), nullifier],\n DOM_SEP__SILOED_NULLIFIER,\n )\n}\n\npub fn create_protocol_nullifier(tx_request: TxRequest) -> Scoped<Counted<Nullifier>> {\n // The protocol nullifier is ascribed a special side-effect counter of 1. No other side-effect\n // can have counter 1 (see `validate_as_first_call` for that assertion).\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_first_field(\n contract_address: AztecAddress,\n field: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [contract_address.to_field(), field],\n DOM_SEP__PRIVATE_LOG_FIRST_FIELD,\n )\n}\n\npub fn compute_siloed_private_log(contract_address: AztecAddress, log: PrivateLog) -> PrivateLog {\n let mut fields = log.fields;\n fields[0] = compute_siloed_private_log_first_field(contract_address, fields[0]);\n PrivateLog::new(fields, log.length)\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_siloed_secret_key(\n master_secret_key: EmbeddedCurveScalar,\n app_address: AztecAddress,\n key_type_domain_separator: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [master_secret_key.hi, master_secret_key.lo, app_address.to_field()],\n key_type_domain_separator,\n )\n}\n\npub fn compute_l2_to_l1_message_hash(\n message: Scoped<L2ToL1Message>,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let contract_address_bytes: [u8; 32] = message.contract_address.to_field().to_be_bytes();\n let recipient_bytes: [u8; 20] = message.inner.recipient.to_be_bytes();\n let content_bytes: [u8; 32] = message.inner.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\n// TODO: consider a variant that enables domain separation with a u32 (we seem to have standardised u32s for domain separators)\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\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// 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 subarray_hash_matches_fixed() {\n let values_to_hash = [3; 17];\n let padded = values_to_hash.concat([0; 11]);\n let subarray_hash = poseidon2_hash_subarray(padded, values_to_hash.len());\n\n // Hash the entire values_to_hash.\n let fixed_len_hash = poseidon::poseidon2::Poseidon2::hash(values_to_hash, values_to_hash.len());\n\n assert_eq(subarray_hash, fixed_len_hash);\n}\n\n#[test]\nfn subarray_hash_matches_variable() {\n let values_to_hash = [3; 17];\n let padded = values_to_hash.concat([0; 11]);\n let subarray_hash = poseidon2_hash_subarray(padded, values_to_hash.len());\n\n // Hash up to values_to_hash.len() fields of the padded array.\n let variable_len_hash = poseidon::poseidon2::Poseidon2::hash(padded, values_to_hash.len());\n\n assert_eq(subarray_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 unique_siloed_note_hash_matches_typescript() {\n let inner_note_hash = 1;\n let contract_address = AztecAddress::from_field(2);\n let first_nullifier = 3;\n let note_index_in_tx = 4;\n\n let siloed_note_hash = compute_siloed_note_hash(contract_address, inner_note_hash);\n let siloed_note_hash_from_ts =\n 0x1986a4bea3eddb1fff917d629a13e10f63f514f401bdd61838c6b475db949169;\n assert_eq(siloed_note_hash, siloed_note_hash_from_ts);\n\n let nonce: Field = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n let note_hash_nonce_from_ts =\n 0x28e7799791bf066a57bb51fdd0fbcaf3f0926414314c7db515ea343f44f5d58b;\n assert_eq(nonce, note_hash_nonce_from_ts);\n\n let unique_siloed_note_hash_from_nonce = compute_unique_note_hash(nonce, siloed_note_hash);\n let unique_siloed_note_hash = compute_note_nonce_and_unique_note_hash(\n siloed_note_hash,\n first_nullifier,\n note_index_in_tx,\n );\n assert_eq(unique_siloed_note_hash_from_nonce, unique_siloed_note_hash);\n\n let unique_siloed_note_hash_from_ts =\n 0x29949aef207b715303b24639737c17fbfeb375c1d965ecfa85c7e4f0febb7d16;\n assert_eq(unique_siloed_note_hash, unique_siloed_note_hash_from_ts);\n}\n\n#[test]\nfn siloed_nullifier_matches_typescript() {\n let contract_address = AztecAddress::from_field(123);\n let nullifier = 456;\n\n let res = compute_siloed_nullifier(contract_address, nullifier);\n\n let siloed_nullifier_from_ts =\n 0x169b50336c1f29afdb8a03d955a81e485f5ac7d5f0b8065673d1e407e5877813;\n\n assert_eq(res, siloed_nullifier_from_ts);\n}\n\n#[test]\nfn siloed_private_log_first_field_matches_typescript() {\n let contract_address = AztecAddress::from_field(123);\n let field = 456;\n let res = compute_siloed_private_log_first_field(contract_address, field);\n\n let siloed_private_log_first_field_from_ts =\n 0x29480984f7b9257fded523d50addbcfc8d1d33adcf2db73ef3390a8fd5cdffaa;\n\n assert_eq(res, siloed_private_log_first_field_from_ts);\n}\n\n#[test]\nfn empty_l2_to_l1_message_hash_matches_typescript() {\n // All zeroes\n let res = compute_l2_to_l1_message_hash(\n L2ToL1Message { recipient: EthAddress::zero(), content: 0 }.scope(AztecAddress::from_field(\n 0,\n )),\n 0,\n 0,\n );\n\n let empty_l2_to_l1_msg_hash_from_ts =\n 0x003b18c58c739716e76429634a61375c45b3b5cd470c22ab6d3e14cee23dd992;\n\n assert_eq(res, empty_l2_to_l1_msg_hash_from_ts);\n}\n\n#[test]\nfn l2_to_l1_message_hash_matches_typescript() {\n let message = L2ToL1Message { recipient: EthAddress::from_field(1), content: 2 }.scope(\n AztecAddress::from_field(3),\n );\n let version = 4;\n let chainId = 5;\n\n let hash = compute_l2_to_l1_message_hash(message, version, chainId);\n\n // The following value was generated by `yarn-project/stdlib/src/hash/hash.test.ts`\n let l2_to_l1_message_hash_from_ts =\n 0x0081edf209e087ad31b3fd24263698723d57190bd1d6e9fe056fc0c0a68ee661;\n\n assert_eq(hash, l2_to_l1_message_hash_from_ts);\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"
4581
4539
  },
4582
- "358": {
4540
+ "357": {
4583
4541
  "function_locations": [
4584
4542
  {
4585
4543
  "name": "fatal_log",
@@ -4653,7 +4611,7 @@
4653
4611
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/logging.nr",
4654
4612
  "source": "// Log levels matching the JS logger:\n\n// global SILENT_LOG_LEVEL: u8 = 0;\nglobal FATAL_LOG_LEVEL: u8 = 1;\nglobal ERROR_LOG_LEVEL: u8 = 2;\nglobal WARN_LOG_LEVEL: u8 = 3;\nglobal INFO_LOG_LEVEL: u8 = 4;\nglobal VERBOSE_LOG_LEVEL: u8 = 5;\nglobal DEBUG_LOG_LEVEL: u8 = 6;\nglobal TRACE_LOG_LEVEL: u8 = 7;\n\n// --- Per-level log functions (no format args) ---\n\npub fn fatal_log<let N: u32>(msg: str<N>) {\n fatal_log_format(msg, []);\n}\n\npub fn error_log<let N: u32>(msg: str<N>) {\n error_log_format(msg, []);\n}\n\npub fn warn_log<let N: u32>(msg: str<N>) {\n warn_log_format(msg, []);\n}\n\npub fn info_log<let N: u32>(msg: str<N>) {\n info_log_format(msg, []);\n}\n\npub fn verbose_log<let N: u32>(msg: str<N>) {\n verbose_log_format(msg, []);\n}\n\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\npub fn trace_log<let N: u32>(msg: str<N>) {\n trace_log_format(msg, []);\n}\n\n// --- Per-level log functions (with format args) ---\n\npub fn fatal_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n log_format(FATAL_LOG_LEVEL, msg, args);\n}\n\npub fn error_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n log_format(ERROR_LOG_LEVEL, msg, args);\n}\n\npub fn warn_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n log_format(WARN_LOG_LEVEL, msg, args);\n}\n\npub fn info_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n log_format(INFO_LOG_LEVEL, msg, args);\n}\n\npub fn verbose_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n log_format(VERBOSE_LOG_LEVEL, msg, args);\n}\n\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n log_format(DEBUG_LOG_LEVEL, msg, args);\n}\n\npub fn trace_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n log_format(TRACE_LOG_LEVEL, msg, args);\n}\n\nfn log_format<let M: u32, let N: u32>(log_level: u8, 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 { log_oracle_wrapper(log_level, msg, args) };\n}\n\nunconstrained fn log_oracle_wrapper<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field; N],\n) {\n log_oracle(log_level, msg, N, args);\n}\n\n#[oracle(aztec_utl_log)]\nunconstrained fn log_oracle<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n length: u32,\n args: [Field; N],\n) {}\n"
4655
4613
  },
4656
- "377": {
4614
+ "376": {
4657
4615
  "function_locations": [
4658
4616
  {
4659
4617
  "name": "Poseidon2Sponge::hash",
@@ -4683,7 +4641,7 @@
4683
4641
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/poseidon2.nr",
4684
4642
  "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// TODO: Poseidon is stand-alone now\n\nglobal 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 sponge.squeeze()\n }\n}\n"
4685
4643
  },
4686
- "396": {
4644
+ "395": {
4687
4645
  "function_locations": [
4688
4646
  {
4689
4647
  "name": "<impl ToField for Field>::to_field",
@@ -4725,7 +4683,7 @@
4725
4683
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/traits/to_field.nr",
4726
4684
  "source": "use crate::utils::field::field_from_bytes;\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"
4727
4685
  },
4728
- "404": {
4686
+ "403": {
4729
4687
  "function_locations": [
4730
4688
  {
4731
4689
  "name": "field_from_bytes",
@@ -4851,6 +4809,56 @@
4851
4809
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr",
4852
4810
  "source": "pub 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\n// TODO: write doc-comments and tests for these magic constants.\n\nglobal KNOWN_NON_RESIDUE: Field = 5; // This is a non-residue in Noir's native Field.\nglobal C1: u32 = 28;\nglobal C3: Field = 40770029410420498293352137776570907027550720424234931066070132305055;\nglobal C5: Field = 19103219067921713944291392827692070036145651957329286315305642004821462161904;\n\n// @dev: only use this for _huge_ exponents y, when writing a constrained function.\n// If you're only exponentiating by a small value, first consider writing-out the multiplications by hand.\n// Only after you've measured the gates of that approach, consider using the native Field::pow_32 function.\n// Only if your exponent is larger than 32 bits, resort to using this function.\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] = field2.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\n#[test]\nunconstrained fn sqrt_zero_test() {\n let result = sqrt(0);\n assert(result.is_some());\n assert_eq(result.unwrap(), 0);\n}\n\n#[test]\nunconstrained fn sqrt_one_test() {\n let result = sqrt(1);\n assert(result.is_some());\n assert_eq(result.unwrap() * result.unwrap(), 1);\n}\n\n#[test]\nunconstrained fn field_from_bytes_empty_test() {\n let empty: [u8; 0] = [];\n let result = field_from_bytes(empty, true);\n assert_eq(result, 0);\n\n let result_le = field_from_bytes(empty, false);\n assert_eq(result_le, 0);\n}\n\n#[test]\nunconstrained fn field_from_bytes_little_endian_test() {\n // Test little-endian conversion: [0x01, 0x02] should be 0x0201 = 513\n let bytes = [0x01, 0x02];\n let result_le = field_from_bytes(bytes, false);\n assert_eq(result_le, 0x0201);\n\n // Compare with big-endian: [0x01, 0x02] should be 0x0102 = 258\n let result_be = field_from_bytes(bytes, true);\n assert_eq(result_be, 0x0102);\n}\n\n#[test]\nunconstrained fn pow_test() {\n assert_eq(pow(2, 0), 1);\n assert_eq(pow(2, 1), 2);\n assert_eq(pow(2, 10), 1024);\n assert_eq(pow(3, 5), 243);\n assert_eq(pow(0, 5), 0);\n assert_eq(pow(1, 100), 1);\n}\n\n#[test]\nunconstrained fn min_test() {\n assert_eq(min(5, 10), 5);\n assert_eq(min(10, 5), 5);\n assert_eq(min(7, 7), 7);\n assert_eq(min(0, 1), 0);\n}\n\n#[test]\nunconstrained fn full_field_comparison_test() {\n assert(full_field_less_than(5, 10));\n assert(!full_field_less_than(10, 5));\n assert(!full_field_less_than(5, 5));\n\n assert(full_field_greater_than(10, 5));\n assert(!full_field_greater_than(5, 10));\n assert(!full_field_greater_than(5, 5));\n}\n\n#[test]\nunconstrained fn sqrt_has_two_roots_test() {\n // Every square has two roots: r and -r (i.e., p - r)\n // sqrt(16) can return 4 or -4\n let x = 16;\n let result = sqrt(x).unwrap();\n assert(result * result == x);\n // The other root is -result\n let other_root = 0 - result;\n assert(other_root * other_root == x);\n // Verify they are different (unless x = 0)\n assert(result != other_root);\n\n // Same for 9: roots are 3 and -3\n let y = 9;\n let result_y = sqrt(y).unwrap();\n assert(result_y * result_y == y);\n let other_root_y = 0 - result_y;\n assert(other_root_y * other_root_y == y);\n assert(result_y != other_root_y);\n}\n\n#[test]\nunconstrained fn sqrt_negative_one_test() {\n let x = 0 - 1;\n let result = sqrt(x);\n assert(result.unwrap() == 0x30644e72e131a029048b6e193fd841045cea24f6fd736bec231204708f703636);\n}\n\n#[test]\nunconstrained fn validate_sqrt_hint_valid_test() {\n // 4 is a valid sqrt of 16\n validate_sqrt_hint(16, 4);\n // -4 is also a valid sqrt of 16\n validate_sqrt_hint(16, 0 - 4);\n // 0 is a valid sqrt of 0\n validate_sqrt_hint(0, 0);\n // 1 is a valid sqrt of 1\n validate_sqrt_hint(1, 1);\n // -1 is also a valid sqrt of 1\n validate_sqrt_hint(1, 0 - 1);\n}\n\n#[test(should_fail_with = \"is not the sqrt of x\")]\nunconstrained fn validate_sqrt_hint_invalid_test() {\n // 5 is not a valid sqrt of 16\n validate_sqrt_hint(16, 5);\n}\n\n#[test]\nunconstrained fn validate_not_sqrt_hint_valid_test() {\n // 5 (KNOWN_NON_RESIDUE) is not a square.\n let x = KNOWN_NON_RESIDUE;\n let hint = tonelli_shanks_sqrt(x * KNOWN_NON_RESIDUE);\n validate_not_sqrt_hint(x, hint);\n}\n\n#[test(should_fail_with = \"0 has a square root\")]\nunconstrained fn validate_not_sqrt_hint_zero_test() {\n // 0 has a square root, so we cannot claim it is not square\n validate_not_sqrt_hint(0, 0);\n}\n\n#[test(should_fail_with = \"does not demonstrate that\")]\nunconstrained fn validate_not_sqrt_hint_wrong_hint_test() {\n // Provide a wrong hint for a non-square\n let x = KNOWN_NON_RESIDUE;\n validate_not_sqrt_hint(x, 123);\n}\n"
4853
4811
  },
4812
+ "409": {
4813
+ "function_locations": [
4814
+ {
4815
+ "name": "Reader<N>::new",
4816
+ "start": 144
4817
+ },
4818
+ {
4819
+ "name": "Reader<N>::read",
4820
+ "start": 222
4821
+ },
4822
+ {
4823
+ "name": "Reader<N>::read_u32",
4824
+ "start": 355
4825
+ },
4826
+ {
4827
+ "name": "Reader<N>::read_u64",
4828
+ "start": 429
4829
+ },
4830
+ {
4831
+ "name": "Reader<N>::read_bool",
4832
+ "start": 505
4833
+ },
4834
+ {
4835
+ "name": "Reader<N>::read_array",
4836
+ "start": 598
4837
+ },
4838
+ {
4839
+ "name": "Reader<N>::read_struct",
4840
+ "start": 855
4841
+ },
4842
+ {
4843
+ "name": "Reader<N>::read_struct_array",
4844
+ "start": 1094
4845
+ },
4846
+ {
4847
+ "name": "Reader<N>::peek_offset",
4848
+ "start": 1263
4849
+ },
4850
+ {
4851
+ "name": "Reader<N>::advance_offset",
4852
+ "start": 1362
4853
+ },
4854
+ {
4855
+ "name": "Reader<N>::finish",
4856
+ "start": 1426
4857
+ }
4858
+ ],
4859
+ "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/reader.nr",
4860
+ "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 peek_offset(&mut self, offset: u32) -> Field {\n self.data[self.offset + offset]\n }\n\n pub fn advance_offset(&mut self, offset: u32) {\n self.offset += offset;\n }\n\n pub fn finish(self) {\n assert_eq(self.offset, self.data.len(), \"Reader did not read all data\");\n }\n}\n"
4861
+ },
4854
4862
  "41": {
4855
4863
  "function_locations": [
4856
4864
  {
@@ -4950,56 +4958,6 @@
4950
4958
  "source": "use crate::cmp::{Eq, Ord, Ordering};\nuse crate::default::Default;\nuse crate::hash::{Hash, Hasher};\n\npub struct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::mem::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some {\n self._value\n } else {\n default\n }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n pub fn expect<let N: u32, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some {\n self\n } else {\n other\n }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some {\n self\n } else {\n default()\n }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some {\n Option::none()\n } else {\n self\n }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T>\nwhere\n T: Eq,\n{\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T>\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T>\nwhere\n T: Ord,\n{\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n"
4951
4959
  },
4952
4960
  "410": {
4953
- "function_locations": [
4954
- {
4955
- "name": "Reader<N>::new",
4956
- "start": 144
4957
- },
4958
- {
4959
- "name": "Reader<N>::read",
4960
- "start": 222
4961
- },
4962
- {
4963
- "name": "Reader<N>::read_u32",
4964
- "start": 355
4965
- },
4966
- {
4967
- "name": "Reader<N>::read_u64",
4968
- "start": 429
4969
- },
4970
- {
4971
- "name": "Reader<N>::read_bool",
4972
- "start": 505
4973
- },
4974
- {
4975
- "name": "Reader<N>::read_array",
4976
- "start": 598
4977
- },
4978
- {
4979
- "name": "Reader<N>::read_struct",
4980
- "start": 855
4981
- },
4982
- {
4983
- "name": "Reader<N>::read_struct_array",
4984
- "start": 1094
4985
- },
4986
- {
4987
- "name": "Reader<N>::peek_offset",
4988
- "start": 1263
4989
- },
4990
- {
4991
- "name": "Reader<N>::advance_offset",
4992
- "start": 1362
4993
- },
4994
- {
4995
- "name": "Reader<N>::finish",
4996
- "start": 1426
4997
- }
4998
- ],
4999
- "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/reader.nr",
5000
- "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 peek_offset(&mut self, offset: u32) -> Field {\n self.data[self.offset + offset]\n }\n\n pub fn advance_offset(&mut self, offset: u32) {\n self.offset += offset;\n }\n\n pub fn finish(self) {\n assert_eq(self.offset, self.data.len(), \"Reader did not read all data\");\n }\n}\n"
5001
- },
5002
- "411": {
5003
4961
  "function_locations": [
5004
4962
  {
5005
4963
  "name": "derive_serialize",
@@ -5025,7 +4983,7 @@
5025
4983
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/serialization.nr",
5026
4984
  "source": "use crate::{reader::Reader, writer::Writer};\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 mut writer: Writer<Self::N> = Writer::new();\n/// self.stream_serialize(&mut writer);\n/// writer.finish()\n/// }\n///\n/// fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n/// let bytes = self.as_bytes();\n/// for i in 0..bytes.len() {\n/// writer.write(bytes[i] as Field);\n/// }\n/// }\n/// }\n/// ```\n#[derive_via(derive_serialize)]\npub trait Serialize {\n let N: u32;\n\n fn serialize(self) -> [Field; Self::N];\n\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>);\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/// fn serialize(self) -> [Field; Self::N] {\n/// let mut writer: Writer<Self::N> = Writer::new();\n/// self.stream_serialize(&mut writer);\n/// writer.finish()\n/// }\n///\n/// #[inline_always]\n/// fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n/// Serialize::stream_serialize(self.fields, writer);\n/// Serialize::stream_serialize(self.length, writer);\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 params_len_quote = get_params_len_quote(params);\n\n let function_body = params\n .map(|(name, _typ): (Quoted, Type)| {\n quote {\n $crate::serialization::Serialize::stream_serialize(self.$name, writer);\n }\n })\n .join(quote {});\n\n quote {\n impl$generics_declarations $crate::serialization::Serialize for $typ\n $where_serialize_clause\n {\n let N: u32 = $params_len_quote;\n\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: $crate::writer::Writer<Self::N> = $crate::writer::Writer::new();\n $crate::serialization::Serialize::stream_serialize(self, &mut writer);\n writer.finish()\n }\n\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut $crate::writer::Writer<K>) {\n $function_body\n }\n }\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/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// let mut reader = Reader::new(fields);\n/// let result = Self::stream_deserialize(&mut reader);\n/// reader.finish();\n/// result\n/// }\n///\n/// fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n/// let mut bytes = [0 as u8; M];\n/// for i in 0..M {\n/// bytes[i] = reader.read() as u8;\n/// }\n/// str::<M>::from(bytes)\n/// }\n/// }\n/// ```\n#[derive_via(derive_deserialize)]\npub trait Deserialize {\n let N: u32;\n\n fn deserialize(fields: [Field; Self::N]) -> Self;\n\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self;\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(fields: [Field; Self::N]) -> Self {\n/// let mut reader = Reader::new(fields);\n/// let result = Self::stream_deserialize(&mut reader);\n/// reader.finish();\n/// result\n/// }\n///\n/// #[inline_always]\n/// fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n/// let x = <AztecAddress as Deserialize>::stream_deserialize(reader);\n/// let y = <Field as Deserialize>::stream_deserialize(reader);\n/// Self { x, y }\n/// }\n/// }\n/// ```\npub 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::serialization::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 $param_name = <$param_type as Deserialize>::stream_deserialize(reader);\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 $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::serialization::Deserialize::stream_deserialize(reader) }\n }\n } else {\n quote {\n Self {}\n }\n };\n\n quote {\n impl$generics_declarations $crate::serialization::Deserialize for $typ\n $where_deserialize_clause\n {\n let N: u32 = $right_hand_side_of_definition_of_n;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = $crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut $crate::reader::Reader<K>) -> Self {\n $function_body\n }\n }\n }\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\ncomptime 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::serialization::Serialize>::N\n }\n })\n .join(quote {+});\n quote { ($params_quote_without_parentheses) }\n }\n}\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\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"
5027
4985
  },
5028
- "413": {
4986
+ "412": {
5029
4987
  "function_locations": [
5030
4988
  {
5031
4989
  "name": "<impl Serialize for bool>::serialize",
@@ -5355,7 +5313,7 @@
5355
5313
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/type_impls.nr",
5356
5314
  "source": "use crate::{reader::Reader, serialization::{Deserialize, Serialize}, writer::Writer};\nuse std::embedded_curve_ops::EmbeddedCurvePoint;\nuse std::embedded_curve_ops::EmbeddedCurveScalar;\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 fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> bool {\n reader.read() != 0\n }\n}\n\nimpl Serialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u1\n }\n}\n\nimpl Serialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u8\n }\n}\n\nimpl Serialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u16\n }\n}\n\nimpl Serialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u32\n }\n}\n\nimpl Serialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u64\n }\n}\n\nimpl Serialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u128\n }\n}\n\nimpl Serialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self);\n }\n}\n\nimpl Deserialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read()\n }\n}\n\nimpl Serialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u8 as Field);\n }\n}\n\nimpl Deserialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u8 as i8\n }\n}\n\nimpl Serialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u16 as Field);\n }\n}\n\nimpl Deserialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u16 as i16\n }\n}\n\nimpl Serialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u32 as Field);\n }\n}\n\nimpl Deserialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u32 as i32\n }\n}\n\nimpl Serialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u64 as Field);\n }\n}\n\nimpl Deserialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() 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\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n for i in 0..M {\n self[i].stream_serialize(writer);\n }\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 fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let mut result: [T; M] = std::mem::zeroed();\n for i in 0..M {\n result[i] = T::stream_deserialize(reader);\n }\n 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 fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write_bool(self.is_some());\n if self.is_some() {\n self.unwrap_unchecked().stream_serialize(writer);\n } else {\n writer.advance_offset(<T as Serialize>::N);\n }\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 fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n if reader.read_bool() {\n Option::some(<T as Deserialize>::stream_deserialize(reader))\n } else {\n reader.advance_offset(<T as Deserialize>::N);\n Option::none()\n }\n }\n}\n\nglobal SCALAR_SIZE: u32 = 2;\n\nimpl Serialize for EmbeddedCurveScalar {\n\n let N: u32 = SCALAR_SIZE;\n\n fn serialize(self) -> [Field; SCALAR_SIZE] {\n [self.lo, self.hi]\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self.lo);\n writer.write(self.hi);\n }\n}\n\nimpl Deserialize for EmbeddedCurveScalar {\n let N: u32 = SCALAR_SIZE;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n Self { lo: fields[0], hi: fields[1] }\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n Self { lo: reader.read(), hi: reader.read() }\n }\n}\n\nglobal POINT_SIZE: u32 = 3;\n\nimpl Serialize for EmbeddedCurvePoint {\n let N: u32 = POINT_SIZE;\n\n fn serialize(self) -> [Field; Self::N] {\n [self.x, self.y, self.is_infinite as Field]\n }\n\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self.x);\n writer.write(self.y);\n writer.write(self.is_infinite as Field);\n }\n}\n\nimpl Deserialize for EmbeddedCurvePoint {\n let N: u32 = POINT_SIZE;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n Self { x: fields[0], y: fields[1], is_infinite: fields[2] != 0 }\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n Self { x: reader.read(), y: reader.read(), is_infinite: reader.read_bool() }\n }\n}\n\nimpl<let M: u32> Deserialize for str<M> {\n let N: u32 = M;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let u8_arr = <[u8; Self::N] as Deserialize>::stream_deserialize(reader);\n str::<Self::N>::from(u8_arr)\n }\n}\n\nimpl<let M: u32> Serialize for str<M> {\n let N: u32 = M;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.as_bytes().stream_serialize(writer);\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> Deserialize for BoundedVec<T, M>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M + 1;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let mut new_bounded_vec: BoundedVec<T, M> = BoundedVec::new();\n let payload_len = Self::N - 1;\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 = reader.peek_offset(payload_len) as u32;\n\n for i in 0..M {\n if i < len {\n new_bounded_vec.push(<T as Deserialize>::stream_deserialize(reader));\n }\n }\n\n // +1 for the length of the BoundedVec\n reader.advance_offset((M - len) * <T as Deserialize>::N + 1);\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 let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(_reader: &mut Reader<K>) -> 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 fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.storage().stream_serialize(writer);\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 writer.write_u32(self.len() as u32);\n }\n}\n\n// Create a slice of the given length with each element made from `f(i)` where `i` is the current index\ncomptime fn make_slice<Env, T>(length: u32, f: fn[Env](u32) -> T) -> [T] {\n let mut slice = @[];\n for i in 0..length {\n slice = slice.push_back(f(i));\n }\n slice\n}\n\n// Implements Serialize and Deserialize for an arbitrary tuple type\ncomptime fn impl_serialize_for_tuple(_m: Module, length: u32) -> Quoted {\n // `T0`, `T1`, `T2`\n let type_names = make_slice(length, |i| f\"T{i}\".quoted_contents());\n\n // `result0`, `result1`, `result2`\n let result_names = make_slice(length, |i| f\"result{i}\".quoted_contents());\n\n // `T0, T1, T2`\n let field_generics = type_names.join(quote [,]);\n\n // `<T0 as Serialize>::N + <T1 as Serialize>::N + <T2 as Serialize>::N`\n let full_size_serialize = type_names\n .map(|type_name| quote {\n <$type_name as Serialize>::N\n })\n .join(quote [+]);\n\n // `<T0 as Deserialize>::N + <T1 as Deserialize>::N + <T2 as Deserialize>::N`\n let full_size_deserialize = type_names\n .map(|type_name| quote {\n <$type_name as Deserialize>::N\n })\n .join(quote [+]);\n\n // `T0: Serialize, T1: Serialize, T2: Serialize,`\n let serialize_constraints = type_names\n .map(|field_name| quote {\n $field_name: Serialize,\n })\n .join(quote []);\n\n // `T0: Deserialize, T1: Deserialize, T2: Deserialize,`\n let deserialize_constraints = type_names\n .map(|field_name| quote {\n $field_name: Deserialize,\n })\n .join(quote []);\n\n // Statements to serialize each field\n let serialized_fields = type_names\n .mapi(|i, _type_name| quote {\n $crate::serialization::Serialize::stream_serialize(self.$i, writer);\n })\n .join(quote []);\n\n // Statements to deserialize each field\n let deserialized_fields = type_names\n .mapi(|i, type_name| {\n let result_name = result_names[i];\n quote {\n let $result_name = <$type_name as $crate::serialization::Deserialize>::stream_deserialize(reader);\n }\n })\n .join(quote []);\n let deserialize_results = result_names.join(quote [,]);\n\n quote {\n impl<$field_generics> Serialize for ($field_generics) where $serialize_constraints {\n let N: u32 = $full_size_serialize;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: $crate::writer::Writer<Self::N> = $crate::writer::Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut $crate::writer::Writer<K>) {\n\n $serialized_fields\n }\n }\n\n impl<$field_generics> Deserialize for ($field_generics) where $deserialize_constraints {\n let N: u32 = $full_size_deserialize;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = $crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n \n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut $crate::reader::Reader<K>) -> Self {\n $deserialized_fields\n ($deserialize_results)\n }\n }\n }\n}\n\n// Keeping these manual impls. They are more efficient since they do not\n// require copying sub-arrays from any serialized arrays.\nimpl<T1> Serialize for (T1,)\nwhere\n T1: Serialize,\n{\n let N: u32 = <T1 as Serialize>::N;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: crate::writer::Writer<Self::N> = crate::writer::Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.0.stream_serialize(writer);\n }\n}\n\nimpl<T1> Deserialize for (T1,)\nwhere\n T1: Deserialize,\n{\n let N: u32 = <T1 as Deserialize>::N;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n (<T1 as Deserialize>::stream_deserialize(reader),)\n }\n}\n\n#[impl_serialize_for_tuple(2)]\n#[impl_serialize_for_tuple(3)]\n#[impl_serialize_for_tuple(4)]\n#[impl_serialize_for_tuple(5)]\n#[impl_serialize_for_tuple(6)]\nmod impls {\n use crate::serialization::{Deserialize, Serialize};\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"
5357
5315
  },
5358
- "414": {
5316
+ "413": {
5359
5317
  "function_locations": [
5360
5318
  {
5361
5319
  "name": "Writer<N>::new",