@maci-protocol/website 0.0.0-ci.80deae4 → 0.0.0-ci.85bba2d

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.
Files changed (37) hide show
  1. package/LICENSE +1 -2
  2. package/blog/2024-02-28-maci-v1.2.0.md +1 -1
  3. package/blog/2024-08-10-maci-v2.md +1 -1
  4. package/package.json +5 -5
  5. package/src/pages/roadmap.md +39 -80
  6. package/static/img/circuits/MACI-Circuits.excalidraw +28 -28
  7. package/static/img/circuits/ecdh.svg +1 -1
  8. package/static/img/circuits/messageToCommand.svg +1 -1
  9. package/static/img/circuits/messageValidator.svg +1 -1
  10. package/static/img/circuits/privToPubkey.svg +1 -1
  11. package/static/img/circuits/processMessages.svg +1 -1
  12. package/static/img/circuits/processMessagesInputHasher.svg +1 -1
  13. package/static/img/circuits/processMessages_2_0.svg +1 -1
  14. package/static/img/circuits/processOne.svg +1 -1
  15. package/static/img/circuits/processTopup.svg +1 -1
  16. package/static/img/circuits/tallyInputHasher.svg +1 -1
  17. package/static/img/circuits/verifySignature.svg +1 -1
  18. package/versioned_docs/version-v3.x/core-concepts/key-change.md +25 -25
  19. package/versioned_docs/version-v3.x/core-concepts/maci-keys.md +1 -1
  20. package/versioned_docs/version-v3.x/core-concepts/poll-types.md +2 -2
  21. package/versioned_docs/version-v3.x/core-concepts/polls.md +3 -3
  22. package/versioned_docs/version-v3.x/core-concepts/spec.md +35 -101
  23. package/versioned_docs/version-v3.x/core-concepts/state-leaf.md +2 -2
  24. package/versioned_docs/version-v3.x/guides/compile-circuits.md +7 -7
  25. package/versioned_docs/version-v3.x/guides/integrating.md +8 -8
  26. package/versioned_docs/version-v3.x/guides/testing/testing-in-detail.md +1 -1
  27. package/versioned_docs/version-v3.x/guides/troubleshooting.md +11 -11
  28. package/versioned_docs/version-v3.x/quick-start.md +6 -6
  29. package/versioned_docs/version-v3.x/supported-networks/deployed-contracts.md +2 -2
  30. package/versioned_docs/version-v3.x/technical-references/smart-contracts/MACI.md +5 -5
  31. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Poll.md +7 -7
  32. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Tally.md +2 -2
  33. package/versioned_docs/version-v3.x/technical-references/smart-contracts/VkRegistry.md +5 -5
  34. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/joinPoll.md +3 -4
  35. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/processMessages.md +12 -12
  36. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/tallyVotes.md +2 -2
  37. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/utilities.md +1 -1
@@ -18,4 +18,4 @@
18
18
  </style>
19
19
 
20
20
  </defs>
21
- <rect x="0" y="0" width="1473.9516795609748" height="849.7829336723412" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(305.0938053366018 342.91267861253846) rotate(0 114.33810379333897 33.80052213620297)"><path d="M16.9 0 C57.53 -1.87, 99.09 -0.68, 211.78 0 M16.9 0 C82.55 1.51, 148.92 1.5, 211.78 0 M211.78 0 C223.1 -1.04, 229.77 6.62, 228.68 16.9 M211.78 0 C224.37 0.26, 228.95 5.67, 228.68 16.9 M228.68 16.9 C227.38 24.03, 229.65 29.38, 228.68 50.7 M228.68 16.9 C229.34 30.33, 229.53 43.83, 228.68 50.7 M228.68 50.7 C228.16 62.5, 222.59 66.36, 211.78 67.6 M228.68 50.7 C229.96 61.89, 222.26 69.56, 211.78 67.6 M211.78 67.6 C139.81 65.29, 69.82 66.76, 16.9 67.6 M211.78 67.6 C155.59 67.48, 100.16 67.86, 16.9 67.6 M16.9 67.6 C6.87 67.4, -0.02 63.87, 0 50.7 M16.9 67.6 C5.55 69.05, 0.8 60.23, 0 50.7 M0 50.7 C-0.1 44.1, 0.52 37.54, 0 16.9 M0 50.7 C-0.42 42.13, 0.05 31.42, 0 16.9 M0 16.9 C-1.19 7.08, 6.43 0.12, 16.9 0 M0 16.9 C0 7.76, 7.86 -1.36, 16.9 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(352.5119872549408 364.21320074874166) rotate(0 66.919921875 12.5)"><text x="66.919921875" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">ProcessTopup</text></g><g stroke-linecap="round"><g transform="translate(405.49383508348114 257.54246773847444) rotate(0 -2.7202546113021526 40.81570261330012)"><path d="M0 0.44 C-0.69 13.93, -3.96 67.51, -4.86 81.21 M-1.46 -0.37 C-2.19 13.26, -4.72 69, -5.5 82.53" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(405.49383508348114 257.54246773847444) rotate(0 -2.7202546113021526 40.81570261330012)"><path d="M-14.32 53.85 C-11.39 61.73, -10.7 67.69, -5.5 82.53 M-14.32 53.85 C-10.7 64.25, -6.8 76.25, -5.5 82.53" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(405.49383508348114 257.54246773847444) rotate(0 -2.7202546113021526 40.81570261330012)"><path d="M6.17 54.89 C4.16 62.52, -0.08 68.23, -5.5 82.53 M6.17 54.89 C1.93 65.06, -2.02 76.66, -5.5 82.53" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(452.0787100794711 295.7899274158285) rotate(0 26.379974365234375 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Input</text></g><g transform="translate(463.36494619147345 444.35683512232436) rotate(0 34.84996032714844 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Output</text></g><g stroke-linecap="round"><g transform="translate(402.66037233670943 429.6719670239877) rotate(0 0.2229014099474398 20.511057519056294)"><path d="M0.41 0.45 C0.49 7.16, 0.4 33.93, 0.46 40.74 M-0.04 0.2 C-0.04 7.22, -0.06 34.6, 0.04 41.29" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(402.66037233670943 429.6719670239877) rotate(0 0.2229014099474398 20.511057519056294)"><path d="M-7.09 22.05 C-4.04 27.85, -3.23 34.17, 0.04 41.29 M-7.09 22.05 C-4.48 28.77, -2.5 35.54, 0.04 41.29" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(402.66037233670943 429.6719670239877) rotate(0 0.2229014099474398 20.511057519056294)"><path d="M6.94 21.97 C5.76 27.85, 2.34 34.19, 0.04 41.29 M6.94 21.97 C4.65 28.73, 1.73 35.52, 0.04 41.29" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(305.8244266247631 495.2353693232585) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C85.53 1.05, 158.03 1.11, 204.03 0 M16.09 0 C73.68 0.08, 132.65 -0.7, 204.03 0 M204.03 0 C214.73 0.93, 218.3 7.29, 220.12 16.09 M204.03 0 C215.82 -0.58, 221.29 5.45, 220.12 16.09 M220.12 16.09 C220.69 27.55, 218.92 41.02, 220.12 48.27 M220.12 16.09 C220.65 25.67, 219.25 34.67, 220.12 48.27 M220.12 48.27 C219.27 58.96, 215.39 64.08, 204.03 64.35 M220.12 48.27 C222.11 58.75, 213.77 64.55, 204.03 64.35 M204.03 64.35 C149.29 65.5, 96.87 65.44, 16.09 64.35 M204.03 64.35 C134.83 62.14, 67.68 62.75, 16.09 64.35 M16.09 64.35 C5.58 64.6, 0.48 58.42, 0 48.27 M16.09 64.35 C6.42 63.22, -0.61 60.37, 0 48.27 M0 48.27 C1.75 38.73, 0.42 27.61, 0 16.09 M0 48.27 C-0.14 36.28, 0.47 22.61, 0 16.09 M0 16.09 C0.93 5.16, 4.53 1.35, 16.09 0 M0 16.09 C-1.49 3.81, 5.48 0.78, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(346.6220566852586 514.9127858741344) rotate(0 69.25994110107422 12.5)"><text x="69.25994110107422" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newStateRoot</text></g><g transform="translate(570.3737259406327 257.96351260310803) rotate(0 49.669944763183594 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Processing</text></g><g stroke-linecap="round"><g transform="translate(574.0950351317991 385.6055951384592) rotate(0 41.82364155770529 -19.566703345299402)"><path d="M0.14 0.02 C13.79 -6.5, 68.74 -32.34, 82.58 -39 M-1.24 -1.01 C12.71 -7.33, 70.84 -31.05, 84.74 -37.39" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(574.0950351317991 385.6055951384592) rotate(0 41.82364155770529 -19.566703345299402)"><path d="M62.87 -16.85 C70.71 -26, 78.72 -32.34, 84.74 -37.39 M62.87 -16.85 C67.06 -20.78, 73.54 -26.78, 84.74 -37.39" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(574.0950351317991 385.6055951384592) rotate(0 41.82364155770529 -19.566703345299402)"><path d="M54.78 -35.72 C65.53 -38.12, 76.44 -37.72, 84.74 -37.39 M54.78 -35.72 C60.86 -35.28, 69.22 -36.89, 84.74 -37.39" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(296.2022097980471 180.8810513443027) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C54.49 0.7, 96.49 -1.09, 204.03 0 M16.09 0 C91.09 0.51, 165.77 0.6, 204.03 0 M204.03 0 C214.24 0.53, 219.66 4.13, 220.12 16.09 M204.03 0 C216.04 -0.08, 219.33 7.32, 220.12 16.09 M220.12 16.09 C219.12 26.97, 220.1 40.16, 220.12 48.27 M220.12 16.09 C219.97 25.38, 220.3 34.96, 220.12 48.27 M220.12 48.27 C221.35 58.79, 214.73 66.25, 204.03 64.35 M220.12 48.27 C220.03 60.44, 215.55 62.62, 204.03 64.35 M204.03 64.35 C165.74 64.74, 128.44 65, 16.09 64.35 M204.03 64.35 C152.78 64.03, 102.27 62.48, 16.09 64.35 M16.09 64.35 C4.18 65.8, 0.8 59.11, 0 48.27 M16.09 64.35 C5.37 66.48, 2.23 57.63, 0 48.27 M0 48.27 C-1.03 39, -0.41 27.04, 0 16.09 M0 48.27 C0.26 36.78, -0.59 24.75, 0 16.09 M0 16.09 C-0.49 5.05, 5.93 0.28, 16.09 0 M0 16.09 C-1.92 5.47, 7.15 -0.58, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(343.31984718276135 200.55846789517864) rotate(0 62.93993377685547 12.5)"><text x="62.93993377685547" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messageType</text></g><g stroke-linecap="round" transform="translate(693.7410533145616 71.95385055299676) rotate(0 124.50711860321496 67.5)"><path d="M32 0 C89.24 2.61, 142.13 2.7, 217.01 0 M32 0 C87.91 0.02, 144.11 -0.87, 217.01 0 M217.01 0 C239.46 -0.07, 248.33 12.37, 249.01 32 M217.01 0 C239.82 0.09, 247.28 9.51, 249.01 32 M249.01 32 C248.73 52.05, 248.8 67.78, 249.01 103 M249.01 32 C249.56 53.79, 248.94 76.74, 249.01 103 M249.01 103 C248.94 125.59, 239.04 133.49, 217.01 135 M249.01 103 C246.75 122.49, 238.55 134.57, 217.01 135 M217.01 135 C158.94 136.37, 101.04 134.91, 32 135 M217.01 135 C149.82 133.97, 84.21 133.31, 32 135 M32 135 C10.67 136.85, 1.94 123.15, 0 103 M32 135 C11.06 136.47, 1.79 123.39, 0 103 M0 103 C1.42 77.1, -1.28 53.89, 0 32 M0 103 C0.32 79.13, 0.85 55.72, 0 32 M0 32 C-1.67 10.76, 12.22 -0.5, 32 0 M0 32 C-0.75 9.29, 12.46 -0.11, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g stroke-linecap="round" transform="translate(10 378.0046382852429) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C68.15 -1.73, 122.06 0.23, 204.03 0 M16.09 0 C72.79 0.93, 130.64 0.81, 204.03 0 M204.03 0 C216.49 -0.21, 219.26 5.53, 220.12 16.09 M204.03 0 C214.53 1.05, 221.54 5.13, 220.12 16.09 M220.12 16.09 C221.68 26.41, 218.91 33.37, 220.12 48.27 M220.12 16.09 C220.25 23.29, 220.38 29.96, 220.12 48.27 M220.12 48.27 C221.04 58.01, 214.22 65.55, 204.03 64.35 M220.12 48.27 C220.6 56.82, 213.39 66.02, 204.03 64.35 M204.03 64.35 C142.02 66.3, 75.13 64.7, 16.09 64.35 M204.03 64.35 C136.11 63.48, 66.85 64.26, 16.09 64.35 M16.09 64.35 C4.07 63, 0.1 59.67, 0 48.27 M16.09 64.35 C3.52 64.66, -0.57 58.63, 0 48.27 M0 48.27 C0.05 39.26, -0.55 26.5, 0 16.09 M0 48.27 C-0.68 40.49, 0.03 33.16, 0 16.09 M0 16.09 C0.1 4.04, 3.7 -1.75, 16.09 0 M0 16.09 C-1.8 7.18, 3.68 -2.17, 16.09 0" stroke="#f08c00" stroke-width="1" fill="none"></path></g><g transform="translate(39.117652643503334 385.1820548361188) rotate(0 80.9399185180664 25)"><text x="80.9399185180664" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#f08c00" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">parameter: </text><text x="80.9399185180664" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#f08c00" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateTreeDepth</text></g><g stroke-linecap="round"><g transform="translate(251.16626846986253 399.0184776221963) rotate(0 22.27889688945629 -12.101152245474623)"><path d="M0.77 0.05 C8.11 -4.26, 36.44 -20.76, 43.65 -24.81 M-0.29 -0.97 C7.47 -4.61, 38.67 -19.93, 45.89 -23.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(251.16626846986253 399.0184776221963) rotate(0 22.27889688945629 -12.101152245474623)"><path d="M28.41 -5.22 C32.98 -11.73, 36.55 -15.94, 45.89 -23.59 M28.41 -5.22 C34.44 -10.78, 38.36 -16.08, 45.89 -23.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(251.16626846986253 399.0184776221963) rotate(0 22.27889688945629 -12.101152245474623)"><path d="M20.69 -20.75 C27.45 -23.18, 33.07 -23.26, 45.89 -23.59 M20.69 -20.75 C29.07 -21.66, 35.3 -22.32, 45.89 -23.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(60.19856941201192 185.788439500393) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C62.22 -1.13, 107.83 -1.02, 204.03 0 M16.09 0 C59.03 -0.2, 102.34 -1.15, 204.03 0 M204.03 0 C215.74 0.57, 220.52 4.29, 220.12 16.09 M204.03 0 C212.68 -0.24, 220.27 4.96, 220.12 16.09 M220.12 16.09 C220.93 26.13, 218.82 35.82, 220.12 48.27 M220.12 16.09 C219.02 25.03, 219.41 34.5, 220.12 48.27 M220.12 48.27 C221.81 60.3, 213 63.5, 204.03 64.35 M220.12 48.27 C220.78 58.91, 215.13 64.01, 204.03 64.35 M204.03 64.35 C135.41 62.57, 64.31 62.6, 16.09 64.35 M204.03 64.35 C143.56 64.83, 81.93 65.41, 16.09 64.35 M16.09 64.35 C5.35 63.47, -1.37 57.66, 0 48.27 M16.09 64.35 C7.58 64.29, 0.84 58.06, 0 48.27 M0 48.27 C1.83 40.03, 0.06 35.6, 0 16.09 M0 48.27 C0.87 36.89, -0.34 25.69, 0 16.09 M0 16.09 C-0.54 4.56, 4.18 -1.01, 16.09 0 M0 16.09 C0.29 5.95, 4.53 0.96, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(91.20621381576916 205.46585605126893) rotate(0 79.0499267578125 12.5)"><text x="79.0499267578125" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateTreeIndex</text></g><g stroke-linecap="round" transform="translate(61.02652621204345 103.62790443973608) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C84.72 -0.96, 156.62 2.27, 204.03 0 M16.09 0 C79.6 2.47, 144.96 1.77, 204.03 0 M204.03 0 C212.97 -1.42, 220.64 6.16, 220.12 16.09 M204.03 0 C215.65 -0.8, 221.47 4.18, 220.12 16.09 M220.12 16.09 C222.25 26.63, 221.03 42.69, 220.12 48.27 M220.12 16.09 C219.86 27.01, 220.12 37.07, 220.12 48.27 M220.12 48.27 C220.31 57.78, 216.15 65.92, 204.03 64.35 M220.12 48.27 C221.32 58.33, 213.33 63.58, 204.03 64.35 M204.03 64.35 C128.46 65.32, 54.07 61.95, 16.09 64.35 M204.03 64.35 C133.66 64.39, 64.65 64.32, 16.09 64.35 M16.09 64.35 C7.16 65.22, -0.02 58.97, 0 48.27 M16.09 64.35 C5.46 63.36, -0.22 59.93, 0 48.27 M0 48.27 C-0.53 40.11, 0.55 35.99, 0 16.09 M0 48.27 C-0.22 37.87, 0.48 25.23, 0 16.09 M0 16.09 C1.02 3.73, 6.8 1.45, 16.09 0 M0 16.09 C1.27 4.1, 5.83 -2.25, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(136.54412697566397 123.30532099061202) rotate(0 34.53997039794922 12.5)"><text x="34.53997039794922" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">amount</text></g><g stroke-linecap="round" transform="translate(296.65395800182364 102.15346082324095) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C55.14 -1.16, 94.08 -2.35, 204.03 0 M16.09 0 C76.54 -1.06, 134.64 -1.64, 204.03 0 M204.03 0 C215.37 -1.89, 218.74 5.5, 220.12 16.09 M204.03 0 C212.64 -0.53, 219.84 6.99, 220.12 16.09 M220.12 16.09 C219.38 23.49, 220.82 32.02, 220.12 48.27 M220.12 16.09 C220.92 24.62, 221.19 31.29, 220.12 48.27 M220.12 48.27 C221.17 58.89, 214.37 66.19, 204.03 64.35 M220.12 48.27 C220.53 60.65, 216.41 63.94, 204.03 64.35 M204.03 64.35 C142.08 62.24, 80.72 61.56, 16.09 64.35 M204.03 64.35 C134.57 65.07, 65.97 66.85, 16.09 64.35 M16.09 64.35 C5.92 65.74, 0.71 60.74, 0 48.27 M16.09 64.35 C5.84 65.73, 0.95 60.21, 0 48.27 M0 48.27 C0.67 38.88, 1 31.88, 0 16.09 M0 48.27 C0.43 42.06, 0.51 35.17, 0 16.09 M0 16.09 C0.42 3.58, 3.97 -1.93, 16.09 0 M0 16.09 C1.8 3.5, 3.97 1.8, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(356.0415844002098 121.83087737411688) rotate(0 50.669944763183594 12.5)"><text x="50.669944763183594" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">numSignups</text></g><g stroke-linecap="round" transform="translate(67.15680909446849 20.86625005850692) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C56.84 2.95, 99.44 0.05, 204.03 0 M16.09 0 C63.61 -0.03, 109.81 0.75, 204.03 0 M204.03 0 C212.77 -1.27, 218.12 5.09, 220.12 16.09 M204.03 0 C215.41 -2.28, 221.31 7.09, 220.12 16.09 M220.12 16.09 C220.57 28.06, 221.33 36.2, 220.12 48.27 M220.12 16.09 C219.78 28.08, 219.48 39.06, 220.12 48.27 M220.12 48.27 C221.97 59.03, 215.88 62.39, 204.03 64.35 M220.12 48.27 C221.92 60.78, 212.88 64.44, 204.03 64.35 M204.03 64.35 C136.73 64.3, 72.69 64.82, 16.09 64.35 M204.03 64.35 C158.21 62.65, 113.03 62.8, 16.09 64.35 M16.09 64.35 C5.6 63.02, 0.82 58.82, 0 48.27 M16.09 64.35 C3.77 63.32, -2.23 59.18, 0 48.27 M0 48.27 C1.68 35.83, 1.85 22.31, 0 16.09 M0 48.27 C-0.86 41.63, -0.38 33.18, 0 16.09 M0 16.09 C-1.55 6.51, 3.38 1.92, 16.09 0 M0 16.09 C-0.66 6.08, 7.37 -0.26, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(125.35442542205385 40.54366660938285) rotate(0 51.859954833984375 12.5)"><text x="51.859954833984375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateLeaf</text></g><g stroke-linecap="round" transform="translate(303.1244971034396 19.788772031065037) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C71.71 -1.13, 125.05 -1.11, 204.03 0 M16.09 0 C78.34 -0.43, 139.39 -1.58, 204.03 0 M204.03 0 C212.84 -1.02, 219.55 7.33, 220.12 16.09 M204.03 0 C213.15 -1, 219.5 7.47, 220.12 16.09 M220.12 16.09 C219.32 22.17, 219.16 28.57, 220.12 48.27 M220.12 16.09 C220.37 25.78, 219.87 34.74, 220.12 48.27 M220.12 48.27 C220.36 58.92, 214.76 63.83, 204.03 64.35 M220.12 48.27 C221.05 60.49, 215.71 64.38, 204.03 64.35 M204.03 64.35 C143.22 63.26, 80.22 64.7, 16.09 64.35 M204.03 64.35 C138.74 65.11, 73.3 65.2, 16.09 64.35 M16.09 64.35 C4.2 66.23, 1.17 57.34, 0 48.27 M16.09 64.35 C5.79 64.1, 1.78 60.64, 0 48.27 M0 48.27 C1.31 42.61, 1.8 36.71, 0 16.09 M0 48.27 C-1.03 37.74, 0.78 29.26, 0 16.09 M0 16.09 C0.04 7.08, 3.51 -0.5, 16.09 0 M0 16.09 C0.48 3.81, 4.83 0.47, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(310.81215707116166 26.96618858194097) rotate(0 102.36991119384766 25)"><text x="102.36991119384766" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateLeafPathEleme</text><text x="102.36991119384766" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">nts</text></g><g transform="translate(699.3682509583037 76.95385055299676) rotate(0 118.87992095947266 62.5)"><text x="118.87992095947266" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. Calculate amount and</text><text x="118.87992095947266" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">index by multiplying the </text><text x="118.87992095947266" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">input (stateTreeIndex </text><text x="118.87992095947266" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">and amount) * </text><text x="118.87992095947266" y="100" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messageType - 1</text></g><g transform="translate(662.6824042255288 10) rotate(0 227.539794921875 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Note that a topup message type should be 2</text></g><g stroke-linecap="round" transform="translate(1024.6434808349804 52.43111348363209) rotate(0 110.05757116156974 80)"><path d="M32 0 C74.21 -0.15, 117.51 -0.22, 188.12 0 M32 0 C89.99 1.97, 146.41 2.13, 188.12 0 M188.12 0 C210.84 -0.48, 221.04 11.47, 220.12 32 M188.12 0 C210.62 0.44, 220.95 8.96, 220.12 32 M220.12 32 C221.29 50.49, 218.04 71.95, 220.12 128 M220.12 32 C221.41 62.16, 221.57 92.34, 220.12 128 M220.12 128 C220.51 148.28, 207.61 160.68, 188.12 160 M220.12 128 C220.31 147.67, 208.23 158.61, 188.12 160 M188.12 160 C154.62 158.86, 123.02 161.95, 32 160 M188.12 160 C146.5 159.89, 104.22 159.84, 32 160 M32 160 C12.35 160.32, 0.92 148.38, 0 128 M32 160 C9.95 160.28, 0.54 150.14, 0 128 M0 128 C-0.68 105.2, 1.02 82.03, 0 32 M0 128 C0.03 97.89, -0.87 68.18, 0 32 M0 32 C-1.2 9.81, 9.65 -0.95, 32 0 M0 32 C-0.18 9.66, 11.87 -0.76, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1030.9511282904955 57.43111348363209) rotate(0 103.74992370605469 75)"><text x="103.74992370605469" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">this is to ensure </text><text x="103.74992370605469" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">that if we do not </text><text x="103.74992370605469" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">pass a topup </text><text x="103.74992370605469" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message, then </text><text x="103.74992370605469" y="100" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">amount and index will</text><text x="103.74992370605469" y="125" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">be zero</text></g><g stroke-linecap="round"><g transform="translate(964.8394764394076 131.13467708755525) rotate(0 18.623357063721755 0.4400617351489018)"><path d="M-0.47 0.09 C5.87 0.16, 31.43 0.51, 37.66 0.62 M0.29 -0.33 C6.63 -0.22, 31.14 0.92, 37.43 1.18" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(964.8394764394076 131.13467708755525) rotate(0 18.623357063721755 0.4400617351489018)"><path d="M19.67 6.78 C23.86 6.28, 27.29 3.72, 37.43 1.18 M19.67 6.78 C24.43 5.65, 29.32 3.87, 37.43 1.18" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(964.8394764394076 131.13467708755525) rotate(0 18.623357063721755 0.4400617351489018)"><path d="M20.22 -5.95 C24.31 -3.56, 27.62 -3.22, 37.43 1.18 M20.22 -5.95 C24.89 -3.67, 29.63 -2.04, 37.43 1.18" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(689.604523671558 240.80829830175344) rotate(0 140.63242792437597 49.070709675536364)"><path d="M24.54 0 C73.21 -0.32, 122.8 -0.38, 256.73 0 M24.54 0 C91.79 0.13, 160.4 0.24, 256.73 0 M256.73 0 C271.56 -0.29, 281.91 8.02, 281.26 24.54 M256.73 0 C272.38 -0.6, 283.27 8.81, 281.26 24.54 M281.26 24.54 C281.82 41.03, 279.95 60.31, 281.26 73.61 M281.26 24.54 C280.41 38.5, 280.33 52.64, 281.26 73.61 M281.26 73.61 C281.61 90.99, 272.53 97.05, 256.73 98.14 M281.26 73.61 C279.28 89.05, 274.52 98.04, 256.73 98.14 M256.73 98.14 C190.8 96.42, 128.04 96.59, 24.54 98.14 M256.73 98.14 C206.65 99.35, 157.79 99.67, 24.54 98.14 M24.54 98.14 C6.25 97.61, 0.98 90.13, 0 73.61 M24.54 98.14 C9.03 95.89, 0.6 89.72, 0 73.61 M0 73.61 C-1.82 63.8, -1.65 51.55, 0 24.54 M0 73.61 C0.54 57.13, 0.75 43.08, 0 24.54 M0 24.54 C1.91 10.06, 8.84 -0.77, 24.54 0 M0 24.54 C-1.76 7.32, 6.6 2.26, 24.54 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(694.9570443693714 264.8790079772898) rotate(0 135.2799072265625 25)"><text x="135.2799072265625" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Check that stateIndex </text><text x="135.2799072265625" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">&lt;= numSignups</text></g><g stroke-linecap="round" transform="translate(684.61126365493 347.69411862362404) rotate(0 171.64961777213057 30)"><path d="M15 0 C124.5 -1.05, 234.86 -0.26, 328.3 0 M15 0 C113.05 0.55, 211.63 -0.13, 328.3 0 M328.3 0 C336.39 0.68, 344.15 3.52, 343.3 15 M328.3 0 C339.21 1.8, 341.4 4.18, 343.3 15 M343.3 15 C344.45 23.21, 341.45 36.45, 343.3 45 M343.3 15 C343.49 22.8, 343.63 29.33, 343.3 45 M343.3 45 C344.29 54.52, 338.33 61.69, 328.3 60 M343.3 45 C343.56 55.95, 336.11 59.64, 328.3 60 M328.3 60 C217.01 59.23, 104.36 61.65, 15 60 M328.3 60 C262.77 58.67, 198.78 58.07, 15 60 M15 60 C6.93 60.13, 0.08 56.64, 0 45 M15 60 C4.46 61.69, -1.92 55.37, 0 45 M0 45 C1.51 33.68, 1.78 22.67, 0 15 M0 45 C-0.64 35.9, -0.64 27.3, 0 15 M0 15 C-1.88 4, 5.09 -1.11, 15 0 M0 15 C-1.32 3.76, 4.24 -1.85, 15 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(698.5710315735449 352.69411862362404) rotate(0 157.68984985351562 25)"><text x="157.68984985351562" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Check that the </text><text x="157.68984985351562" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newCreditBalance is &lt; field size</text></g><g stroke-linecap="round" transform="translate(691.8161890962996 426.50247851512904) rotate(0 171.64961777213057 30)"><path d="M15 0 C140.06 -0.11, 265.18 1.64, 328.3 0 M15 0 C116.71 -0.81, 219.57 -1.04, 328.3 0 M328.3 0 C337.36 0.8, 343.66 3.11, 343.3 15 M328.3 0 C336.86 -1.61, 343.07 4.32, 343.3 15 M343.3 15 C342.67 19.9, 341.68 27.45, 343.3 45 M343.3 15 C344.02 21.15, 343.1 27.04, 343.3 45 M343.3 45 C344.85 53.53, 338.94 60.44, 328.3 60 M343.3 45 C345.54 52.97, 338.7 61.5, 328.3 60 M328.3 60 C263.35 57.08, 201.77 58.89, 15 60 M328.3 60 C233.65 61.6, 138.91 61.98, 15 60 M15 60 C6.47 59.4, 0.48 54.81, 0 45 M15 60 C5.5 58.14, -2.12 52.86, 0 45 M0 45 C-1.12 38.46, 1.1 27.4, 0 15 M0 45 C-0.22 37.65, -0.81 27.94, 0 15 M0 15 C1.66 3.15, 3.76 -0.02, 15 0 M0 15 C0.01 3.8, 5.92 1.28, 15 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(725.9459094074926 431.50247851512904) rotate(0 137.5198974609375 25)"><text x="137.5198974609375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">4. Update the voice credit </text><text x="137.5198974609375" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">balance in the state leaf</text></g><g stroke-linecap="round" transform="translate(1120.6524440167136 413.7371993584802) rotate(0 171.64961777213057 30)"><path d="M15 0 C86.13 2.47, 158.04 0.97, 328.3 0 M15 0 C110.88 0.37, 208.36 0.71, 328.3 0 M328.3 0 C337.55 0.7, 341.53 5.8, 343.3 15 M328.3 0 C340.4 0.61, 341.64 3.6, 343.3 15 M343.3 15 C343.88 24.65, 341.08 34.01, 343.3 45 M343.3 15 C343.26 26.84, 342.39 37.58, 343.3 45 M343.3 45 C344.3 55.64, 337.18 59.81, 328.3 60 M343.3 45 C343.66 53.91, 339.46 61.89, 328.3 60 M328.3 60 C209.33 61.46, 89.29 60.21, 15 60 M328.3 60 C210.56 62.13, 93.52 61.67, 15 60 M15 60 C6.63 61.53, -0.35 56.74, 0 45 M15 60 C3.14 61.66, 1.58 56.88, 0 45 M0 45 C-0.62 36.8, -0.36 29.49, 0 15 M0 45 C-0.64 37.9, 0.13 30.71, 0 15 M0 15 C0.54 3.64, 3.83 -1.97, 15 0 M0 15 C0.15 3.16, 5.44 -0.15, 15 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1148.3321826384536 418.7371993584802) rotate(0 143.96987915039062 25)"><text x="143.96987915039062" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">hash(pubKeyX, pubKeyY, </text><text x="143.96987915039062" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newCreditBalance, timestamp)</text></g><g stroke-linecap="round"><g transform="translate(1052.4157563221893 449.5272260217139) rotate(0 23.866138307756728 0.9130208548290284)"><path d="M-0.46 0.3 C7.49 0.71, 39.38 1.9, 47.44 2.13 M0.3 -0.01 C8.46 0.26, 40.63 0.95, 48.52 1.32" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1052.4157563221893 449.5272260217139) rotate(0 23.866138307756728 0.9130208548290284)"><path d="M25.83 8.76 C32.05 6.47, 37.7 5.48, 48.52 1.32 M25.83 8.76 C32.09 6.59, 38.4 4.87, 48.52 1.32" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1052.4157563221893 449.5272260217139) rotate(0 23.866138307756728 0.9130208548290284)"><path d="M26.36 -7.57 C32.4 -5.79, 37.92 -2.73, 48.52 1.32 M26.36 -7.57 C32.52 -5.28, 38.68 -2.54, 48.52 1.32" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(691.7991762853402 506.1734722387064) rotate(0 171.64961777213057 55)"><path d="M27.5 0 C130.46 -0.14, 230.01 0.57, 315.8 0 M27.5 0 C113.29 1.59, 200.19 1.98, 315.8 0 M315.8 0 C334.62 0.3, 343.16 9.8, 343.3 27.5 M315.8 0 C332.36 0.81, 342.05 6.99, 343.3 27.5 M343.3 27.5 C344.92 45.6, 342.12 60.1, 343.3 82.5 M343.3 27.5 C343.49 39, 343.42 51.83, 343.3 82.5 M343.3 82.5 C342.95 100.15, 335.73 108.38, 315.8 110 M343.3 82.5 C343.08 103.1, 332.72 109.16, 315.8 110 M315.8 110 C240.14 107.7, 163.47 108.74, 27.5 110 M315.8 110 C232.73 110.45, 148.07 110.9, 27.5 110 M27.5 110 C10.87 109.65, 1.07 100.62, 0 82.5 M27.5 110 C10.53 109.56, 2.05 101.42, 0 82.5 M0 82.5 C0.36 68.48, 0.25 55.68, 0 27.5 M0 82.5 C-1.22 70.07, 0.12 57.67, 0 27.5 M0 27.5 C-1.12 9.05, 9.32 -0.25, 27.5 0 M0 27.5 C1.43 8.81, 7.45 2.17, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(710.1989161277833 511.1734722387064) rotate(0 153.2498779296875 50)"><text x="153.2498779296875" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">5. Get the path indices (to </text><text x="153.2498779296875" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">locate the leaf in the quinary </text><text x="153.2498779296875" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">tree) using </text><text x="153.2498779296875" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinGeneratePathIndices</text></g><g stroke-linecap="round" transform="translate(691.4589200661493 623.0218739641718) rotate(0 171.64961777213057 42.5)"><path d="M21.25 0 C109.76 0.4, 195.65 2, 322.05 0 M21.25 0 C135.39 1.56, 250.66 2.19, 322.05 0 M322.05 0 C337.56 0.2, 341.62 7.11, 343.3 21.25 M322.05 0 C335.99 1.25, 342.57 8.29, 343.3 21.25 M343.3 21.25 C344.23 35.63, 345.04 49.3, 343.3 63.75 M343.3 21.25 C344.18 31.29, 343.57 41.02, 343.3 63.75 M343.3 63.75 C344.72 76.29, 334.86 83.85, 322.05 85 M343.3 63.75 C342.99 77.96, 334.04 86.36, 322.05 85 M322.05 85 C208.7 84.47, 97.57 84.69, 21.25 85 M322.05 85 C249.75 84.32, 176.6 85.25, 21.25 85 M21.25 85 C7.11 85.76, -0.21 77.71, 0 63.75 M21.25 85 C7.33 84.29, -0.04 79.03, 0 63.75 M0 63.75 C-0.77 50.56, -1 38.42, 0 21.25 M0 63.75 C-0.33 54.22, -0.32 45.32, 0 21.25 M0 21.25 C1.21 6.21, 8.52 0.92, 21.25 0 M0 21.25 C-0.35 5.19, 8.57 -0.38, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(701.438661739647 628.0218739641718) rotate(0 161.6698760986328 37.5)"><text x="161.6698760986328" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">6. Generate a Merkle proof for </text><text x="161.6698760986328" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the leaf using </text><text x="161.6698760986328" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinTreeInclusionProof</text></g><g stroke-linecap="round" transform="translate(701.9331406802461 729.7829336723412) rotate(0 171.64961777213057 55)"><path d="M27.5 0 C97.44 1.54, 169.33 -0.04, 315.8 0 M27.5 0 C106.61 -1.3, 185.88 -0.79, 315.8 0 M315.8 0 C335.14 -0.95, 342.77 9.46, 343.3 27.5 M315.8 0 C336.06 0.93, 344.98 10.74, 343.3 27.5 M343.3 27.5 C341.86 37.97, 344.82 50.44, 343.3 82.5 M343.3 27.5 C343.25 47.17, 343.32 65.67, 343.3 82.5 M343.3 82.5 C343.84 101.26, 332.18 109.13, 315.8 110 M343.3 82.5 C343.73 100.79, 335.3 111.73, 315.8 110 M315.8 110 C244.41 108.65, 173.58 108.53, 27.5 110 M315.8 110 C205.82 109.19, 94.43 109.61, 27.5 110 M27.5 110 C9.72 111.43, 0.95 99.13, 0 82.5 M27.5 110 C11.45 109.15, -2.17 102.37, 0 82.5 M0 82.5 C0.04 62.23, -1.21 40.82, 0 27.5 M0 82.5 C-0.26 71.2, 0.44 59.03, 0 27.5 M0 27.5 C-0.73 8.95, 8.99 0.05, 27.5 0 M0 27.5 C-1.55 9.58, 9.84 0.92, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(712.5028939504235 734.7829336723412) rotate(0 161.07986450195312 50)"><text x="161.07986450195312" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">7. Extract the root from </text><text x="161.07986450195312" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinTreeInclusionProof and wire </text><text x="161.07986450195312" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">to the output signal </text><text x="161.07986450195312" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newStateRoot</text></g></svg>
21
+ <rect x="0" y="0" width="1473.9516795609748" height="849.7829336723412" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(305.0938053366018 342.91267861253846) rotate(0 114.33810379333897 33.80052213620297)"><path d="M16.9 0 C57.53 -1.87, 99.09 -0.68, 211.78 0 M16.9 0 C82.55 1.51, 148.92 1.5, 211.78 0 M211.78 0 C223.1 -1.04, 229.77 6.62, 228.68 16.9 M211.78 0 C224.37 0.26, 228.95 5.67, 228.68 16.9 M228.68 16.9 C227.38 24.03, 229.65 29.38, 228.68 50.7 M228.68 16.9 C229.34 30.33, 229.53 43.83, 228.68 50.7 M228.68 50.7 C228.16 62.5, 222.59 66.36, 211.78 67.6 M228.68 50.7 C229.96 61.89, 222.26 69.56, 211.78 67.6 M211.78 67.6 C139.81 65.29, 69.82 66.76, 16.9 67.6 M211.78 67.6 C155.59 67.48, 100.16 67.86, 16.9 67.6 M16.9 67.6 C6.87 67.4, -0.02 63.87, 0 50.7 M16.9 67.6 C5.55 69.05, 0.8 60.23, 0 50.7 M0 50.7 C-0.1 44.1, 0.52 37.54, 0 16.9 M0 50.7 C-0.42 42.13, 0.05 31.42, 0 16.9 M0 16.9 C-1.19 7.08, 6.43 0.12, 16.9 0 M0 16.9 C0 7.76, 7.86 -1.36, 16.9 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(352.5119872549408 364.21320074874166) rotate(0 66.919921875 12.5)"><text x="66.919921875" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">ProcessTopup</text></g><g stroke-linecap="round"><g transform="translate(405.49383508348114 257.54246773847444) rotate(0 -2.7202546113021526 40.81570261330012)"><path d="M0 0.44 C-0.69 13.93, -3.96 67.51, -4.86 81.21 M-1.46 -0.37 C-2.19 13.26, -4.72 69, -5.5 82.53" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(405.49383508348114 257.54246773847444) rotate(0 -2.7202546113021526 40.81570261330012)"><path d="M-14.32 53.85 C-11.39 61.73, -10.7 67.69, -5.5 82.53 M-14.32 53.85 C-10.7 64.25, -6.8 76.25, -5.5 82.53" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(405.49383508348114 257.54246773847444) rotate(0 -2.7202546113021526 40.81570261330012)"><path d="M6.17 54.89 C4.16 62.52, -0.08 68.23, -5.5 82.53 M6.17 54.89 C1.93 65.06, -2.02 76.66, -5.5 82.53" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(452.0787100794711 295.7899274158285) rotate(0 26.379974365234375 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Input</text></g><g transform="translate(463.36494619147345 444.35683512232436) rotate(0 34.84996032714844 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Output</text></g><g stroke-linecap="round"><g transform="translate(402.66037233670943 429.6719670239877) rotate(0 0.2229014099474398 20.511057519056294)"><path d="M0.41 0.45 C0.49 7.16, 0.4 33.93, 0.46 40.74 M-0.04 0.2 C-0.04 7.22, -0.06 34.6, 0.04 41.29" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(402.66037233670943 429.6719670239877) rotate(0 0.2229014099474398 20.511057519056294)"><path d="M-7.09 22.05 C-4.04 27.85, -3.23 34.17, 0.04 41.29 M-7.09 22.05 C-4.48 28.77, -2.5 35.54, 0.04 41.29" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(402.66037233670943 429.6719670239877) rotate(0 0.2229014099474398 20.511057519056294)"><path d="M6.94 21.97 C5.76 27.85, 2.34 34.19, 0.04 41.29 M6.94 21.97 C4.65 28.73, 1.73 35.52, 0.04 41.29" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(305.8244266247631 495.2353693232585) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C85.53 1.05, 158.03 1.11, 204.03 0 M16.09 0 C73.68 0.08, 132.65 -0.7, 204.03 0 M204.03 0 C214.73 0.93, 218.3 7.29, 220.12 16.09 M204.03 0 C215.82 -0.58, 221.29 5.45, 220.12 16.09 M220.12 16.09 C220.69 27.55, 218.92 41.02, 220.12 48.27 M220.12 16.09 C220.65 25.67, 219.25 34.67, 220.12 48.27 M220.12 48.27 C219.27 58.96, 215.39 64.08, 204.03 64.35 M220.12 48.27 C222.11 58.75, 213.77 64.55, 204.03 64.35 M204.03 64.35 C149.29 65.5, 96.87 65.44, 16.09 64.35 M204.03 64.35 C134.83 62.14, 67.68 62.75, 16.09 64.35 M16.09 64.35 C5.58 64.6, 0.48 58.42, 0 48.27 M16.09 64.35 C6.42 63.22, -0.61 60.37, 0 48.27 M0 48.27 C1.75 38.73, 0.42 27.61, 0 16.09 M0 48.27 C-0.14 36.28, 0.47 22.61, 0 16.09 M0 16.09 C0.93 5.16, 4.53 1.35, 16.09 0 M0 16.09 C-1.49 3.81, 5.48 0.78, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(346.6220566852586 514.9127858741344) rotate(0 69.25994110107422 12.5)"><text x="69.25994110107422" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newStateRoot</text></g><g transform="translate(570.3737259406327 257.96351260310803) rotate(0 49.669944763183594 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Processing</text></g><g stroke-linecap="round"><g transform="translate(574.0950351317991 385.6055951384592) rotate(0 41.82364155770529 -19.566703345299402)"><path d="M0.14 0.02 C13.79 -6.5, 68.74 -32.34, 82.58 -39 M-1.24 -1.01 C12.71 -7.33, 70.84 -31.05, 84.74 -37.39" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(574.0950351317991 385.6055951384592) rotate(0 41.82364155770529 -19.566703345299402)"><path d="M62.87 -16.85 C70.71 -26, 78.72 -32.34, 84.74 -37.39 M62.87 -16.85 C67.06 -20.78, 73.54 -26.78, 84.74 -37.39" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(574.0950351317991 385.6055951384592) rotate(0 41.82364155770529 -19.566703345299402)"><path d="M54.78 -35.72 C65.53 -38.12, 76.44 -37.72, 84.74 -37.39 M54.78 -35.72 C60.86 -35.28, 69.22 -36.89, 84.74 -37.39" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(296.2022097980471 180.8810513443027) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C54.49 0.7, 96.49 -1.09, 204.03 0 M16.09 0 C91.09 0.51, 165.77 0.6, 204.03 0 M204.03 0 C214.24 0.53, 219.66 4.13, 220.12 16.09 M204.03 0 C216.04 -0.08, 219.33 7.32, 220.12 16.09 M220.12 16.09 C219.12 26.97, 220.1 40.16, 220.12 48.27 M220.12 16.09 C219.97 25.38, 220.3 34.96, 220.12 48.27 M220.12 48.27 C221.35 58.79, 214.73 66.25, 204.03 64.35 M220.12 48.27 C220.03 60.44, 215.55 62.62, 204.03 64.35 M204.03 64.35 C165.74 64.74, 128.44 65, 16.09 64.35 M204.03 64.35 C152.78 64.03, 102.27 62.48, 16.09 64.35 M16.09 64.35 C4.18 65.8, 0.8 59.11, 0 48.27 M16.09 64.35 C5.37 66.48, 2.23 57.63, 0 48.27 M0 48.27 C-1.03 39, -0.41 27.04, 0 16.09 M0 48.27 C0.26 36.78, -0.59 24.75, 0 16.09 M0 16.09 C-0.49 5.05, 5.93 0.28, 16.09 0 M0 16.09 C-1.92 5.47, 7.15 -0.58, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(343.31984718276135 200.55846789517864) rotate(0 62.93993377685547 12.5)"><text x="62.93993377685547" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messageType</text></g><g stroke-linecap="round" transform="translate(693.7410533145616 71.95385055299676) rotate(0 124.50711860321496 67.5)"><path d="M32 0 C89.24 2.61, 142.13 2.7, 217.01 0 M32 0 C87.91 0.02, 144.11 -0.87, 217.01 0 M217.01 0 C239.46 -0.07, 248.33 12.37, 249.01 32 M217.01 0 C239.82 0.09, 247.28 9.51, 249.01 32 M249.01 32 C248.73 52.05, 248.8 67.78, 249.01 103 M249.01 32 C249.56 53.79, 248.94 76.74, 249.01 103 M249.01 103 C248.94 125.59, 239.04 133.49, 217.01 135 M249.01 103 C246.75 122.49, 238.55 134.57, 217.01 135 M217.01 135 C158.94 136.37, 101.04 134.91, 32 135 M217.01 135 C149.82 133.97, 84.21 133.31, 32 135 M32 135 C10.67 136.85, 1.94 123.15, 0 103 M32 135 C11.06 136.47, 1.79 123.39, 0 103 M0 103 C1.42 77.1, -1.28 53.89, 0 32 M0 103 C0.32 79.13, 0.85 55.72, 0 32 M0 32 C-1.67 10.76, 12.22 -0.5, 32 0 M0 32 C-0.75 9.29, 12.46 -0.11, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g stroke-linecap="round" transform="translate(10 378.0046382852429) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C68.15 -1.73, 122.06 0.23, 204.03 0 M16.09 0 C72.79 0.93, 130.64 0.81, 204.03 0 M204.03 0 C216.49 -0.21, 219.26 5.53, 220.12 16.09 M204.03 0 C214.53 1.05, 221.54 5.13, 220.12 16.09 M220.12 16.09 C221.68 26.41, 218.91 33.37, 220.12 48.27 M220.12 16.09 C220.25 23.29, 220.38 29.96, 220.12 48.27 M220.12 48.27 C221.04 58.01, 214.22 65.55, 204.03 64.35 M220.12 48.27 C220.6 56.82, 213.39 66.02, 204.03 64.35 M204.03 64.35 C142.02 66.3, 75.13 64.7, 16.09 64.35 M204.03 64.35 C136.11 63.48, 66.85 64.26, 16.09 64.35 M16.09 64.35 C4.07 63, 0.1 59.67, 0 48.27 M16.09 64.35 C3.52 64.66, -0.57 58.63, 0 48.27 M0 48.27 C0.05 39.26, -0.55 26.5, 0 16.09 M0 48.27 C-0.68 40.49, 0.03 33.16, 0 16.09 M0 16.09 C0.1 4.04, 3.7 -1.75, 16.09 0 M0 16.09 C-1.8 7.18, 3.68 -2.17, 16.09 0" stroke="#f08c00" stroke-width="1" fill="none"></path></g><g transform="translate(39.117652643503334 385.1820548361188) rotate(0 80.9399185180664 25)"><text x="80.9399185180664" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#f08c00" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">parameter: </text><text x="80.9399185180664" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#f08c00" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateTreeDepth</text></g><g stroke-linecap="round"><g transform="translate(251.16626846986253 399.0184776221963) rotate(0 22.27889688945629 -12.101152245474623)"><path d="M0.77 0.05 C8.11 -4.26, 36.44 -20.76, 43.65 -24.81 M-0.29 -0.97 C7.47 -4.61, 38.67 -19.93, 45.89 -23.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(251.16626846986253 399.0184776221963) rotate(0 22.27889688945629 -12.101152245474623)"><path d="M28.41 -5.22 C32.98 -11.73, 36.55 -15.94, 45.89 -23.59 M28.41 -5.22 C34.44 -10.78, 38.36 -16.08, 45.89 -23.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(251.16626846986253 399.0184776221963) rotate(0 22.27889688945629 -12.101152245474623)"><path d="M20.69 -20.75 C27.45 -23.18, 33.07 -23.26, 45.89 -23.59 M20.69 -20.75 C29.07 -21.66, 35.3 -22.32, 45.89 -23.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(60.19856941201192 185.788439500393) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C62.22 -1.13, 107.83 -1.02, 204.03 0 M16.09 0 C59.03 -0.2, 102.34 -1.15, 204.03 0 M204.03 0 C215.74 0.57, 220.52 4.29, 220.12 16.09 M204.03 0 C212.68 -0.24, 220.27 4.96, 220.12 16.09 M220.12 16.09 C220.93 26.13, 218.82 35.82, 220.12 48.27 M220.12 16.09 C219.02 25.03, 219.41 34.5, 220.12 48.27 M220.12 48.27 C221.81 60.3, 213 63.5, 204.03 64.35 M220.12 48.27 C220.78 58.91, 215.13 64.01, 204.03 64.35 M204.03 64.35 C135.41 62.57, 64.31 62.6, 16.09 64.35 M204.03 64.35 C143.56 64.83, 81.93 65.41, 16.09 64.35 M16.09 64.35 C5.35 63.47, -1.37 57.66, 0 48.27 M16.09 64.35 C7.58 64.29, 0.84 58.06, 0 48.27 M0 48.27 C1.83 40.03, 0.06 35.6, 0 16.09 M0 48.27 C0.87 36.89, -0.34 25.69, 0 16.09 M0 16.09 C-0.54 4.56, 4.18 -1.01, 16.09 0 M0 16.09 C0.29 5.95, 4.53 0.96, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(91.20621381576916 205.46585605126893) rotate(0 79.0499267578125 12.5)"><text x="79.0499267578125" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateTreeIndex</text></g><g stroke-linecap="round" transform="translate(61.02652621204345 103.62790443973608) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C84.72 -0.96, 156.62 2.27, 204.03 0 M16.09 0 C79.6 2.47, 144.96 1.77, 204.03 0 M204.03 0 C212.97 -1.42, 220.64 6.16, 220.12 16.09 M204.03 0 C215.65 -0.8, 221.47 4.18, 220.12 16.09 M220.12 16.09 C222.25 26.63, 221.03 42.69, 220.12 48.27 M220.12 16.09 C219.86 27.01, 220.12 37.07, 220.12 48.27 M220.12 48.27 C220.31 57.78, 216.15 65.92, 204.03 64.35 M220.12 48.27 C221.32 58.33, 213.33 63.58, 204.03 64.35 M204.03 64.35 C128.46 65.32, 54.07 61.95, 16.09 64.35 M204.03 64.35 C133.66 64.39, 64.65 64.32, 16.09 64.35 M16.09 64.35 C7.16 65.22, -0.02 58.97, 0 48.27 M16.09 64.35 C5.46 63.36, -0.22 59.93, 0 48.27 M0 48.27 C-0.53 40.11, 0.55 35.99, 0 16.09 M0 48.27 C-0.22 37.87, 0.48 25.23, 0 16.09 M0 16.09 C1.02 3.73, 6.8 1.45, 16.09 0 M0 16.09 C1.27 4.1, 5.83 -2.25, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(136.54412697566397 123.30532099061202) rotate(0 34.53997039794922 12.5)"><text x="34.53997039794922" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">amount</text></g><g stroke-linecap="round" transform="translate(296.65395800182364 102.15346082324095) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C55.14 -1.16, 94.08 -2.35, 204.03 0 M16.09 0 C76.54 -1.06, 134.64 -1.64, 204.03 0 M204.03 0 C215.37 -1.89, 218.74 5.5, 220.12 16.09 M204.03 0 C212.64 -0.53, 219.84 6.99, 220.12 16.09 M220.12 16.09 C219.38 23.49, 220.82 32.02, 220.12 48.27 M220.12 16.09 C220.92 24.62, 221.19 31.29, 220.12 48.27 M220.12 48.27 C221.17 58.89, 214.37 66.19, 204.03 64.35 M220.12 48.27 C220.53 60.65, 216.41 63.94, 204.03 64.35 M204.03 64.35 C142.08 62.24, 80.72 61.56, 16.09 64.35 M204.03 64.35 C134.57 65.07, 65.97 66.85, 16.09 64.35 M16.09 64.35 C5.92 65.74, 0.71 60.74, 0 48.27 M16.09 64.35 C5.84 65.73, 0.95 60.21, 0 48.27 M0 48.27 C0.67 38.88, 1 31.88, 0 16.09 M0 48.27 C0.43 42.06, 0.51 35.17, 0 16.09 M0 16.09 C0.42 3.58, 3.97 -1.93, 16.09 0 M0 16.09 C1.8 3.5, 3.97 1.8, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(356.0415844002098 121.83087737411688) rotate(0 50.669944763183594 12.5)"><text x="50.669944763183594" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">totalSignups</text></g><g stroke-linecap="round" transform="translate(67.15680909446849 20.86625005850692) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C56.84 2.95, 99.44 0.05, 204.03 0 M16.09 0 C63.61 -0.03, 109.81 0.75, 204.03 0 M204.03 0 C212.77 -1.27, 218.12 5.09, 220.12 16.09 M204.03 0 C215.41 -2.28, 221.31 7.09, 220.12 16.09 M220.12 16.09 C220.57 28.06, 221.33 36.2, 220.12 48.27 M220.12 16.09 C219.78 28.08, 219.48 39.06, 220.12 48.27 M220.12 48.27 C221.97 59.03, 215.88 62.39, 204.03 64.35 M220.12 48.27 C221.92 60.78, 212.88 64.44, 204.03 64.35 M204.03 64.35 C136.73 64.3, 72.69 64.82, 16.09 64.35 M204.03 64.35 C158.21 62.65, 113.03 62.8, 16.09 64.35 M16.09 64.35 C5.6 63.02, 0.82 58.82, 0 48.27 M16.09 64.35 C3.77 63.32, -2.23 59.18, 0 48.27 M0 48.27 C1.68 35.83, 1.85 22.31, 0 16.09 M0 48.27 C-0.86 41.63, -0.38 33.18, 0 16.09 M0 16.09 C-1.55 6.51, 3.38 1.92, 16.09 0 M0 16.09 C-0.66 6.08, 7.37 -0.26, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(125.35442542205385 40.54366660938285) rotate(0 51.859954833984375 12.5)"><text x="51.859954833984375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateLeaf</text></g><g stroke-linecap="round" transform="translate(303.1244971034396 19.788772031065037) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C71.71 -1.13, 125.05 -1.11, 204.03 0 M16.09 0 C78.34 -0.43, 139.39 -1.58, 204.03 0 M204.03 0 C212.84 -1.02, 219.55 7.33, 220.12 16.09 M204.03 0 C213.15 -1, 219.5 7.47, 220.12 16.09 M220.12 16.09 C219.32 22.17, 219.16 28.57, 220.12 48.27 M220.12 16.09 C220.37 25.78, 219.87 34.74, 220.12 48.27 M220.12 48.27 C220.36 58.92, 214.76 63.83, 204.03 64.35 M220.12 48.27 C221.05 60.49, 215.71 64.38, 204.03 64.35 M204.03 64.35 C143.22 63.26, 80.22 64.7, 16.09 64.35 M204.03 64.35 C138.74 65.11, 73.3 65.2, 16.09 64.35 M16.09 64.35 C4.2 66.23, 1.17 57.34, 0 48.27 M16.09 64.35 C5.79 64.1, 1.78 60.64, 0 48.27 M0 48.27 C1.31 42.61, 1.8 36.71, 0 16.09 M0 48.27 C-1.03 37.74, 0.78 29.26, 0 16.09 M0 16.09 C0.04 7.08, 3.51 -0.5, 16.09 0 M0 16.09 C0.48 3.81, 4.83 0.47, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(310.81215707116166 26.96618858194097) rotate(0 102.36991119384766 25)"><text x="102.36991119384766" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateLeafPathEleme</text><text x="102.36991119384766" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">nts</text></g><g transform="translate(699.3682509583037 76.95385055299676) rotate(0 118.87992095947266 62.5)"><text x="118.87992095947266" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. Calculate amount and</text><text x="118.87992095947266" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">index by multiplying the </text><text x="118.87992095947266" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">input (stateTreeIndex </text><text x="118.87992095947266" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">and amount) * </text><text x="118.87992095947266" y="100" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messageType - 1</text></g><g transform="translate(662.6824042255288 10) rotate(0 227.539794921875 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Note that a topup message type should be 2</text></g><g stroke-linecap="round" transform="translate(1024.6434808349804 52.43111348363209) rotate(0 110.05757116156974 80)"><path d="M32 0 C74.21 -0.15, 117.51 -0.22, 188.12 0 M32 0 C89.99 1.97, 146.41 2.13, 188.12 0 M188.12 0 C210.84 -0.48, 221.04 11.47, 220.12 32 M188.12 0 C210.62 0.44, 220.95 8.96, 220.12 32 M220.12 32 C221.29 50.49, 218.04 71.95, 220.12 128 M220.12 32 C221.41 62.16, 221.57 92.34, 220.12 128 M220.12 128 C220.51 148.28, 207.61 160.68, 188.12 160 M220.12 128 C220.31 147.67, 208.23 158.61, 188.12 160 M188.12 160 C154.62 158.86, 123.02 161.95, 32 160 M188.12 160 C146.5 159.89, 104.22 159.84, 32 160 M32 160 C12.35 160.32, 0.92 148.38, 0 128 M32 160 C9.95 160.28, 0.54 150.14, 0 128 M0 128 C-0.68 105.2, 1.02 82.03, 0 32 M0 128 C0.03 97.89, -0.87 68.18, 0 32 M0 32 C-1.2 9.81, 9.65 -0.95, 32 0 M0 32 C-0.18 9.66, 11.87 -0.76, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1030.9511282904955 57.43111348363209) rotate(0 103.74992370605469 75)"><text x="103.74992370605469" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">this is to ensure </text><text x="103.74992370605469" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">that if we do not </text><text x="103.74992370605469" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">pass a topup </text><text x="103.74992370605469" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message, then </text><text x="103.74992370605469" y="100" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">amount and index will</text><text x="103.74992370605469" y="125" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">be zero</text></g><g stroke-linecap="round"><g transform="translate(964.8394764394076 131.13467708755525) rotate(0 18.623357063721755 0.4400617351489018)"><path d="M-0.47 0.09 C5.87 0.16, 31.43 0.51, 37.66 0.62 M0.29 -0.33 C6.63 -0.22, 31.14 0.92, 37.43 1.18" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(964.8394764394076 131.13467708755525) rotate(0 18.623357063721755 0.4400617351489018)"><path d="M19.67 6.78 C23.86 6.28, 27.29 3.72, 37.43 1.18 M19.67 6.78 C24.43 5.65, 29.32 3.87, 37.43 1.18" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(964.8394764394076 131.13467708755525) rotate(0 18.623357063721755 0.4400617351489018)"><path d="M20.22 -5.95 C24.31 -3.56, 27.62 -3.22, 37.43 1.18 M20.22 -5.95 C24.89 -3.67, 29.63 -2.04, 37.43 1.18" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(689.604523671558 240.80829830175344) rotate(0 140.63242792437597 49.070709675536364)"><path d="M24.54 0 C73.21 -0.32, 122.8 -0.38, 256.73 0 M24.54 0 C91.79 0.13, 160.4 0.24, 256.73 0 M256.73 0 C271.56 -0.29, 281.91 8.02, 281.26 24.54 M256.73 0 C272.38 -0.6, 283.27 8.81, 281.26 24.54 M281.26 24.54 C281.82 41.03, 279.95 60.31, 281.26 73.61 M281.26 24.54 C280.41 38.5, 280.33 52.64, 281.26 73.61 M281.26 73.61 C281.61 90.99, 272.53 97.05, 256.73 98.14 M281.26 73.61 C279.28 89.05, 274.52 98.04, 256.73 98.14 M256.73 98.14 C190.8 96.42, 128.04 96.59, 24.54 98.14 M256.73 98.14 C206.65 99.35, 157.79 99.67, 24.54 98.14 M24.54 98.14 C6.25 97.61, 0.98 90.13, 0 73.61 M24.54 98.14 C9.03 95.89, 0.6 89.72, 0 73.61 M0 73.61 C-1.82 63.8, -1.65 51.55, 0 24.54 M0 73.61 C0.54 57.13, 0.75 43.08, 0 24.54 M0 24.54 C1.91 10.06, 8.84 -0.77, 24.54 0 M0 24.54 C-1.76 7.32, 6.6 2.26, 24.54 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(694.9570443693714 264.8790079772898) rotate(0 135.2799072265625 25)"><text x="135.2799072265625" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Check that stateIndex </text><text x="135.2799072265625" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">&lt;= totalSignups</text></g><g stroke-linecap="round" transform="translate(684.61126365493 347.69411862362404) rotate(0 171.64961777213057 30)"><path d="M15 0 C124.5 -1.05, 234.86 -0.26, 328.3 0 M15 0 C113.05 0.55, 211.63 -0.13, 328.3 0 M328.3 0 C336.39 0.68, 344.15 3.52, 343.3 15 M328.3 0 C339.21 1.8, 341.4 4.18, 343.3 15 M343.3 15 C344.45 23.21, 341.45 36.45, 343.3 45 M343.3 15 C343.49 22.8, 343.63 29.33, 343.3 45 M343.3 45 C344.29 54.52, 338.33 61.69, 328.3 60 M343.3 45 C343.56 55.95, 336.11 59.64, 328.3 60 M328.3 60 C217.01 59.23, 104.36 61.65, 15 60 M328.3 60 C262.77 58.67, 198.78 58.07, 15 60 M15 60 C6.93 60.13, 0.08 56.64, 0 45 M15 60 C4.46 61.69, -1.92 55.37, 0 45 M0 45 C1.51 33.68, 1.78 22.67, 0 15 M0 45 C-0.64 35.9, -0.64 27.3, 0 15 M0 15 C-1.88 4, 5.09 -1.11, 15 0 M0 15 C-1.32 3.76, 4.24 -1.85, 15 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(698.5710315735449 352.69411862362404) rotate(0 157.68984985351562 25)"><text x="157.68984985351562" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Check that the </text><text x="157.68984985351562" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newCreditBalance is &lt; field size</text></g><g stroke-linecap="round" transform="translate(691.8161890962996 426.50247851512904) rotate(0 171.64961777213057 30)"><path d="M15 0 C140.06 -0.11, 265.18 1.64, 328.3 0 M15 0 C116.71 -0.81, 219.57 -1.04, 328.3 0 M328.3 0 C337.36 0.8, 343.66 3.11, 343.3 15 M328.3 0 C336.86 -1.61, 343.07 4.32, 343.3 15 M343.3 15 C342.67 19.9, 341.68 27.45, 343.3 45 M343.3 15 C344.02 21.15, 343.1 27.04, 343.3 45 M343.3 45 C344.85 53.53, 338.94 60.44, 328.3 60 M343.3 45 C345.54 52.97, 338.7 61.5, 328.3 60 M328.3 60 C263.35 57.08, 201.77 58.89, 15 60 M328.3 60 C233.65 61.6, 138.91 61.98, 15 60 M15 60 C6.47 59.4, 0.48 54.81, 0 45 M15 60 C5.5 58.14, -2.12 52.86, 0 45 M0 45 C-1.12 38.46, 1.1 27.4, 0 15 M0 45 C-0.22 37.65, -0.81 27.94, 0 15 M0 15 C1.66 3.15, 3.76 -0.02, 15 0 M0 15 C0.01 3.8, 5.92 1.28, 15 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(725.9459094074926 431.50247851512904) rotate(0 137.5198974609375 25)"><text x="137.5198974609375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">4. Update the voice credit </text><text x="137.5198974609375" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">balance in the state leaf</text></g><g stroke-linecap="round" transform="translate(1120.6524440167136 413.7371993584802) rotate(0 171.64961777213057 30)"><path d="M15 0 C86.13 2.47, 158.04 0.97, 328.3 0 M15 0 C110.88 0.37, 208.36 0.71, 328.3 0 M328.3 0 C337.55 0.7, 341.53 5.8, 343.3 15 M328.3 0 C340.4 0.61, 341.64 3.6, 343.3 15 M343.3 15 C343.88 24.65, 341.08 34.01, 343.3 45 M343.3 15 C343.26 26.84, 342.39 37.58, 343.3 45 M343.3 45 C344.3 55.64, 337.18 59.81, 328.3 60 M343.3 45 C343.66 53.91, 339.46 61.89, 328.3 60 M328.3 60 C209.33 61.46, 89.29 60.21, 15 60 M328.3 60 C210.56 62.13, 93.52 61.67, 15 60 M15 60 C6.63 61.53, -0.35 56.74, 0 45 M15 60 C3.14 61.66, 1.58 56.88, 0 45 M0 45 C-0.62 36.8, -0.36 29.49, 0 15 M0 45 C-0.64 37.9, 0.13 30.71, 0 15 M0 15 C0.54 3.64, 3.83 -1.97, 15 0 M0 15 C0.15 3.16, 5.44 -0.15, 15 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1148.3321826384536 418.7371993584802) rotate(0 143.96987915039062 25)"><text x="143.96987915039062" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">hash(pubKeyX, pubKeyY, </text><text x="143.96987915039062" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newCreditBalance, timestamp)</text></g><g stroke-linecap="round"><g transform="translate(1052.4157563221893 449.5272260217139) rotate(0 23.866138307756728 0.9130208548290284)"><path d="M-0.46 0.3 C7.49 0.71, 39.38 1.9, 47.44 2.13 M0.3 -0.01 C8.46 0.26, 40.63 0.95, 48.52 1.32" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1052.4157563221893 449.5272260217139) rotate(0 23.866138307756728 0.9130208548290284)"><path d="M25.83 8.76 C32.05 6.47, 37.7 5.48, 48.52 1.32 M25.83 8.76 C32.09 6.59, 38.4 4.87, 48.52 1.32" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1052.4157563221893 449.5272260217139) rotate(0 23.866138307756728 0.9130208548290284)"><path d="M26.36 -7.57 C32.4 -5.79, 37.92 -2.73, 48.52 1.32 M26.36 -7.57 C32.52 -5.28, 38.68 -2.54, 48.52 1.32" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(691.7991762853402 506.1734722387064) rotate(0 171.64961777213057 55)"><path d="M27.5 0 C130.46 -0.14, 230.01 0.57, 315.8 0 M27.5 0 C113.29 1.59, 200.19 1.98, 315.8 0 M315.8 0 C334.62 0.3, 343.16 9.8, 343.3 27.5 M315.8 0 C332.36 0.81, 342.05 6.99, 343.3 27.5 M343.3 27.5 C344.92 45.6, 342.12 60.1, 343.3 82.5 M343.3 27.5 C343.49 39, 343.42 51.83, 343.3 82.5 M343.3 82.5 C342.95 100.15, 335.73 108.38, 315.8 110 M343.3 82.5 C343.08 103.1, 332.72 109.16, 315.8 110 M315.8 110 C240.14 107.7, 163.47 108.74, 27.5 110 M315.8 110 C232.73 110.45, 148.07 110.9, 27.5 110 M27.5 110 C10.87 109.65, 1.07 100.62, 0 82.5 M27.5 110 C10.53 109.56, 2.05 101.42, 0 82.5 M0 82.5 C0.36 68.48, 0.25 55.68, 0 27.5 M0 82.5 C-1.22 70.07, 0.12 57.67, 0 27.5 M0 27.5 C-1.12 9.05, 9.32 -0.25, 27.5 0 M0 27.5 C1.43 8.81, 7.45 2.17, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(710.1989161277833 511.1734722387064) rotate(0 153.2498779296875 50)"><text x="153.2498779296875" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">5. Get the path indices (to </text><text x="153.2498779296875" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">locate the leaf in the quinary </text><text x="153.2498779296875" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">tree) using </text><text x="153.2498779296875" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinGeneratePathIndices</text></g><g stroke-linecap="round" transform="translate(691.4589200661493 623.0218739641718) rotate(0 171.64961777213057 42.5)"><path d="M21.25 0 C109.76 0.4, 195.65 2, 322.05 0 M21.25 0 C135.39 1.56, 250.66 2.19, 322.05 0 M322.05 0 C337.56 0.2, 341.62 7.11, 343.3 21.25 M322.05 0 C335.99 1.25, 342.57 8.29, 343.3 21.25 M343.3 21.25 C344.23 35.63, 345.04 49.3, 343.3 63.75 M343.3 21.25 C344.18 31.29, 343.57 41.02, 343.3 63.75 M343.3 63.75 C344.72 76.29, 334.86 83.85, 322.05 85 M343.3 63.75 C342.99 77.96, 334.04 86.36, 322.05 85 M322.05 85 C208.7 84.47, 97.57 84.69, 21.25 85 M322.05 85 C249.75 84.32, 176.6 85.25, 21.25 85 M21.25 85 C7.11 85.76, -0.21 77.71, 0 63.75 M21.25 85 C7.33 84.29, -0.04 79.03, 0 63.75 M0 63.75 C-0.77 50.56, -1 38.42, 0 21.25 M0 63.75 C-0.33 54.22, -0.32 45.32, 0 21.25 M0 21.25 C1.21 6.21, 8.52 0.92, 21.25 0 M0 21.25 C-0.35 5.19, 8.57 -0.38, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(701.438661739647 628.0218739641718) rotate(0 161.6698760986328 37.5)"><text x="161.6698760986328" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">6. Generate a Merkle proof for </text><text x="161.6698760986328" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the leaf using </text><text x="161.6698760986328" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinTreeInclusionProof</text></g><g stroke-linecap="round" transform="translate(701.9331406802461 729.7829336723412) rotate(0 171.64961777213057 55)"><path d="M27.5 0 C97.44 1.54, 169.33 -0.04, 315.8 0 M27.5 0 C106.61 -1.3, 185.88 -0.79, 315.8 0 M315.8 0 C335.14 -0.95, 342.77 9.46, 343.3 27.5 M315.8 0 C336.06 0.93, 344.98 10.74, 343.3 27.5 M343.3 27.5 C341.86 37.97, 344.82 50.44, 343.3 82.5 M343.3 27.5 C343.25 47.17, 343.32 65.67, 343.3 82.5 M343.3 82.5 C343.84 101.26, 332.18 109.13, 315.8 110 M343.3 82.5 C343.73 100.79, 335.3 111.73, 315.8 110 M315.8 110 C244.41 108.65, 173.58 108.53, 27.5 110 M315.8 110 C205.82 109.19, 94.43 109.61, 27.5 110 M27.5 110 C9.72 111.43, 0.95 99.13, 0 82.5 M27.5 110 C11.45 109.15, -2.17 102.37, 0 82.5 M0 82.5 C0.04 62.23, -1.21 40.82, 0 27.5 M0 82.5 C-0.26 71.2, 0.44 59.03, 0 27.5 M0 27.5 C-0.73 8.95, 8.99 0.05, 27.5 0 M0 27.5 C-1.55 9.58, 9.84 0.92, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(712.5028939504235 734.7829336723412) rotate(0 161.07986450195312 50)"><text x="161.07986450195312" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">7. Extract the root from </text><text x="161.07986450195312" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinTreeInclusionProof and wire </text><text x="161.07986450195312" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">to the output signal </text><text x="161.07986450195312" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newStateRoot</text></g></svg>
@@ -18,4 +18,4 @@
18
18
  </style>
19
19
 
20
20
  </defs>
21
- <rect x="0" y="0" width="1493.3537606210123" height="411.5604845778562" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(294.40926691448794 170.81402033509562) rotate(0 129.27623258310302 33.800522136203085)"><path d="M16.9 0 C99.78 1.66, 184.71 1.7, 241.65 0 M16.9 0 C64.33 0.18, 111.71 0.53, 241.65 0 M241.65 0 C254.06 0.57, 258.51 6.13, 258.55 16.9 M241.65 0 C255.18 1.11, 258.99 4.59, 258.55 16.9 M258.55 16.9 C259.09 29.5, 259.61 38.17, 258.55 50.7 M258.55 16.9 C258.26 30.76, 259.11 43.58, 258.55 50.7 M258.55 50.7 C258.05 63.26, 252.9 67.46, 241.65 67.6 M258.55 50.7 C260.36 62.99, 254.55 69.45, 241.65 67.6 M241.65 67.6 C194.67 70.41, 149.05 69.02, 16.9 67.6 M241.65 67.6 C163.96 67.17, 87.42 67.91, 16.9 67.6 M16.9 67.6 C4.92 66.7, 0.69 63.1, 0 50.7 M16.9 67.6 C4.29 69.71, -0.84 63.25, 0 50.7 M0 50.7 C1.8 38.9, 1.05 27.55, 0 16.9 M0 50.7 C0.24 43.88, -0.02 35.02, 0 16.9 M0 16.9 C-0.1 5.63, 4.26 -1.51, 16.9 0 M0 16.9 C-1.98 6.02, 4.78 0.81, 16.9 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(313.0656035625324 192.1145424712986) rotate(0 110.6198959350586 12.5)"><text x="110.6198959350586" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">TallyVotesInputHasher</text></g><g stroke-linecap="round" transform="translate(10 10) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C86.77 -2.57, 160.04 -2.34, 204.03 0 M16.09 0 C57.66 1.05, 98.07 1.01, 204.03 0 M204.03 0 C216.72 0.97, 220.49 4.45, 220.12 16.09 M204.03 0 C215.35 0.13, 219.87 5.95, 220.12 16.09 M220.12 16.09 C222.07 30.23, 219.53 39.25, 220.12 48.27 M220.12 16.09 C219.94 28.63, 220.18 39.81, 220.12 48.27 M220.12 48.27 C221.68 59.88, 216.17 65.96, 204.03 64.35 M220.12 48.27 C217.96 57.95, 216.69 63.58, 204.03 64.35 M204.03 64.35 C135.53 64.67, 65.52 62.74, 16.09 64.35 M204.03 64.35 C161.17 64.13, 119.37 65.15, 16.09 64.35 M16.09 64.35 C4.19 66.18, -0.73 60.1, 0 48.27 M16.09 64.35 C5.73 64.87, 1.13 61.15, 0 48.27 M0 48.27 C-1.57 40.07, 0.35 32.92, 0 16.09 M0 48.27 C-0.02 35.48, -0.66 21.95, 0 16.09 M0 16.09 C-1.72 5.7, 4.62 0.7, 16.09 0 M0 16.09 C0.02 5.38, 4.23 1.1, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(54.94763921576896 29.677416550875932) rotate(0 65.10993194580078 12.5)"><text x="65.10993194580078" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">sbCommitment</text></g><g stroke-linecap="round"><g transform="translate(385.0214741061509 97.43477122007062) rotate(0 1.5956212533027951 21.722771252156463)"><path d="M-0.19 -0.45 C0.32 6.8, 2.17 35.88, 2.78 43.22 M0.71 0.51 C1.41 7.85, 3.37 36.79, 3.81 43.81" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(385.0214741061509 97.43477122007062) rotate(0 1.5956212533027951 21.722771252156463)"><path d="M-4.97 23.87 C-3.6 28.21, -0.96 34.59, 3.81 43.81 M-4.97 23.87 C-1.6 30.65, 0.89 36.74, 3.81 43.81" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(385.0214741061509 97.43477122007062) rotate(0 1.5956212533027951 21.722771252156463)"><path d="M9.9 22.89 C7.48 27.46, 6.35 34.08, 3.81 43.81 M9.9 22.89 C8.39 30.02, 5.99 36.42, 3.81 43.81" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(471.2704292368853 125.75873117477454) rotate(0 31.809967041015625 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Inputs</text></g><g transform="translate(482.5566653488877 274.70738765460897) rotate(0 40.27995300292969 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Outputs</text></g><g stroke-linecap="round"><g transform="translate(421.57579823026026 273.4370338845199) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M0.1 -0.25 C0.11 6.55, 0.54 34.15, 0.59 41.05 M-0.51 0.81 C-0.6 7.68, 0.15 34.93, 0.23 41.77" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(421.57579823026026 273.4370338845199) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M-7.18 22.64 C-4.63 30.51, -1.17 37.77, 0.23 41.77 M-7.18 22.64 C-4.88 29.3, -1.79 34.9, 0.23 41.77" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(421.57579823026026 273.4370338845199) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M6.85 22.35 C3.81 30.35, 1.68 37.72, 0.23 41.77 M6.85 22.35 C4.58 29.14, 3.1 34.83, 0.23 41.77" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(325.01614578217686 337.2056514761043) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C76.14 -0.7, 136.48 1.09, 204.03 0 M16.09 0 C83.23 -2.05, 147.81 -0.98, 204.03 0 M204.03 0 C215.21 0.71, 219.62 6.65, 220.12 16.09 M204.03 0 C214.73 -0.16, 221.92 6.39, 220.12 16.09 M220.12 16.09 C219.47 29.71, 219.7 41.33, 220.12 48.27 M220.12 16.09 C220.35 26.26, 219.38 35.48, 220.12 48.27 M220.12 48.27 C220 59.24, 214.04 63.45, 204.03 64.35 M220.12 48.27 C220.91 60.3, 213.4 66.46, 204.03 64.35 M204.03 64.35 C154.96 65.64, 106.88 63.54, 16.09 64.35 M204.03 64.35 C136.89 63.32, 70.28 64.02, 16.09 64.35 M16.09 64.35 C5.2 64.15, -0.1 58.98, 0 48.27 M16.09 64.35 C3.78 62.62, -1.98 59.38, 0 48.27 M0 48.27 C-0.1 38.82, 0.84 30, 0 16.09 M0 48.27 C-0.5 39.8, -0.3 29.42, 0 16.09 M0 16.09 C1.9 6.97, 3.57 -1.71, 16.09 0 M0 16.09 C0.88 5.93, 7.43 -0.7, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(384.403772180563 356.88306802698025) rotate(0 50.669944763183594 12.5)"><text x="50.669944763183594" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">numSignups</text></g><g stroke-linecap="round" transform="translate(255.71407860060526 14.325375601543328) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C60.38 1.04, 107.75 2.08, 204.03 0 M16.09 0 C90.89 -1.11, 164.19 0.08, 204.03 0 M204.03 0 C214.75 0.63, 221.02 4.92, 220.12 16.09 M204.03 0 C215.19 0.85, 219.98 5.94, 220.12 16.09 M220.12 16.09 C221.24 28.95, 220.01 41.79, 220.12 48.27 M220.12 16.09 C220.46 27.98, 219.37 38.96, 220.12 48.27 M220.12 48.27 C219.34 57.27, 215.32 65.1, 204.03 64.35 M220.12 48.27 C222.29 60.17, 215.63 62.52, 204.03 64.35 M204.03 64.35 C159.11 65.96, 114.63 65.98, 16.09 64.35 M204.03 64.35 C159.74 63.55, 114.79 64.74, 16.09 64.35 M16.09 64.35 C6.82 62.55, 1.24 58.97, 0 48.27 M16.09 64.35 C5.58 62.49, -1.75 59.21, 0 48.27 M0 48.27 C0.4 36.43, 0.19 24.87, 0 16.09 M0 48.27 C0.95 41.34, -0.63 33.52, 0 16.09 M0 16.09 C1.77 5.99, 7.19 -2, 16.09 0 M0 16.09 C-1.3 3.32, 5.45 -2.14, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(261.74175016500703 21.50279215241926) rotate(0 104.02989959716797 25)"><text x="104.02989959716797" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">currentTallyCommitme</text><text x="104.02989959716797" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">nt</text></g><g stroke-linecap="round" transform="translate(508.00472555008196 14.286553692389589) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C64.81 0.95, 111.26 -2.57, 204.03 0 M16.09 0 C73.5 1.31, 128.51 1.15, 204.03 0 M204.03 0 C214.84 1.93, 218.78 3.62, 220.12 16.09 M204.03 0 C212.75 -1.93, 221.12 7.46, 220.12 16.09 M220.12 16.09 C221.85 24.3, 220.23 34.73, 220.12 48.27 M220.12 16.09 C220.32 21.85, 219.73 29.09, 220.12 48.27 M220.12 48.27 C220.93 58.02, 214.78 64.23, 204.03 64.35 M220.12 48.27 C221.77 59.25, 213.29 64.55, 204.03 64.35 M204.03 64.35 C163.08 64.06, 123.4 64.58, 16.09 64.35 M204.03 64.35 C161.14 66.29, 116.43 65.85, 16.09 64.35 M16.09 64.35 C7 66.02, -1.17 57.12, 0 48.27 M16.09 64.35 C3.48 63.1, -2.21 57.91, 0 48.27 M0 48.27 C0.04 37.17, 0.57 29.68, 0 16.09 M0 48.27 C-0.52 39.34, -0.26 28.68, 0 16.09 M0 16.09 C1.65 5.62, 6.43 1.87, 16.09 0 M0 16.09 C0.88 5.21, 6.72 0.89, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(522.572382771222 33.96397024326552) rotate(0 95.48991394042969 12.5)"><text x="95.48991394042969" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newTallyCommitment</text></g><g stroke-linecap="round" transform="translate(752.5762828962881 14.985348057145302) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C81.91 -0.55, 151.62 -0.51, 204.03 0 M16.09 0 C72.92 0.72, 129.25 2.01, 204.03 0 M204.03 0 C215.9 0.44, 219.38 3.37, 220.12 16.09 M204.03 0 C216.94 -0.29, 218.4 3.6, 220.12 16.09 M220.12 16.09 C219.28 22.8, 220.99 31.71, 220.12 48.27 M220.12 16.09 C219.79 23.93, 220.58 32.2, 220.12 48.27 M220.12 48.27 C219.48 59.2, 214.69 65.59, 204.03 64.35 M220.12 48.27 C219.86 56.88, 216.45 66.36, 204.03 64.35 M204.03 64.35 C159.53 62.83, 117.88 65.24, 16.09 64.35 M204.03 64.35 C159.91 65.08, 116.09 65.35, 16.09 64.35 M16.09 64.35 C7.08 65.44, 0.53 59.08, 0 48.27 M16.09 64.35 C3.23 63.14, 0.86 57.74, 0 48.27 M0 48.27 C-0.9 39.28, -1.03 31.38, 0 16.09 M0 48.27 C-0.01 39.95, 0.8 30.47, 0 16.09 M0 16.09 C-0.12 5.59, 6.91 -0.8, 16.09 0 M0 16.09 C-0.95 3.52, 4.17 0.19, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(810.0838967824673 34.662764608021234) rotate(0 52.549957275390625 12.5)"><text x="52.549957275390625" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">packedVals</text></g><g stroke-linecap="round" transform="translate(563.3269904098835 342.18670710146375) rotate(0 110.05757116156974 17.5)"><path d="M8.75 0 C79.99 -0.19, 151.85 -1.64, 211.37 0 M8.75 0 C52.2 -2.57, 93.28 -1.6, 211.37 0 M211.37 0 C217.56 0.58, 218.73 3.98, 220.12 8.75 M211.37 0 C217.23 -1.93, 218.68 1.6, 220.12 8.75 M220.12 8.75 C221.37 11.44, 221.23 15.44, 220.12 26.25 M220.12 8.75 C220.86 13.96, 221 19.2, 220.12 26.25 M220.12 26.25 C221.26 32.53, 216.86 36.54, 211.37 35 M220.12 26.25 C218.47 32.21, 219.18 36.22, 211.37 35 M211.37 35 C153.56 35.9, 94.85 33.87, 8.75 35 M211.37 35 C134.26 36.56, 56.11 37.63, 8.75 35 M8.75 35 C2.22 35.46, -1.88 33.66, 0 26.25 M8.75 35 C2.37 34.93, 1.76 33.66, 0 26.25 M0 26.25 C1.17 20.01, -0.69 14.38, 0 8.75 M0 26.25 C-0.1 21.56, -0.5 17.24, 0 8.75 M0 8.75 C1.52 3.41, 4.47 1.49, 8.75 0 M0 8.75 C-2.09 3.72, 0.64 1.72, 8.75 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(609.4946155875665 347.18670710146375) rotate(0 63.88994598388672 12.5)"><text x="63.88994598388672" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batch number</text></g><g stroke-linecap="round" transform="translate(92.05212273505936 342.2376202745236) rotate(0 110.05757116156974 17.5)"><path d="M8.75 0 C87.8 1.47, 163.73 0.03, 211.37 0 M8.75 0 C80.33 1.32, 150.99 1.31, 211.37 0 M211.37 0 C217.29 1.89, 220.21 2.84, 220.12 8.75 M211.37 0 C216.45 0.06, 218.98 2.15, 220.12 8.75 M220.12 8.75 C220.91 15.34, 218.88 23.68, 220.12 26.25 M220.12 8.75 C219.53 13.76, 220.44 19.44, 220.12 26.25 M220.12 26.25 C221.21 32.93, 217.95 36.33, 211.37 35 M220.12 26.25 C217.92 33.43, 218.98 36.82, 211.37 35 M211.37 35 C143.51 34.44, 74.02 35, 8.75 35 M211.37 35 C131.56 34.14, 53.58 33.46, 8.75 35 M8.75 35 C1.81 36.98, 0.7 33.6, 0 26.25 M8.75 35 C2.1 34.43, 1.06 31.74, 0 26.25 M0 26.25 C-1.28 20.9, 0.87 17.15, 0 8.75 M0 26.25 C0.47 22.37, 0.55 16.2, 0 8.75 M0 8.75 C0.54 4.14, 4.21 0.3, 8.75 0 M0 8.75 C0.91 2.34, 2.54 1.86, 8.75 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(180.1297134278791 347.2376202745236) rotate(0 21.97998046875 12.5)"><text x="21.97998046875" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">hash</text></g><g stroke-linecap="round"><g transform="translate(606.8514310658963 201.4631287988518) rotate(0 108.38376029738589 0.46191284466056004)"><path d="M-0.42 0.96 C35.67 1.31, 181.12 1.18, 217.48 1.01 M1.56 0.41 C37.47 1.07, 180.92 2.54, 216.9 2.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(606.8514310658963 201.4631287988518) rotate(0 108.38376029738589 0.46191284466056004)"><path d="M193.35 10.99 C203.92 9.08, 211.37 6.33, 216.9 2.59 M193.35 10.99 C197.49 9.23, 203 6.78, 216.9 2.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(606.8514310658963 201.4631287988518) rotate(0 108.38376029738589 0.46191284466056004)"><path d="M193.47 -6.12 C203.83 -1.56, 211.24 2.15, 216.9 2.59 M193.47 -6.12 C197.72 -4.2, 203.2 -2.98, 216.9 2.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(647.8887406336343 152.29703720881002) rotate(0 49.669944763183594 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Processing</text></g><g stroke-linecap="round" transform="translate(850.3843537270727 131.33946292169503) rotate(0 121.49070339472077 34.20563317567928)"><path d="M17.1 0 C77.13 -0.25, 140.02 1.38, 225.88 0 M17.1 0 C84.36 0.77, 152.69 1.7, 225.88 0 M225.88 0 C235.37 1.26, 243.04 5.88, 242.98 17.1 M225.88 0 C236.79 -1.92, 241.9 7.18, 242.98 17.1 M242.98 17.1 C241.58 25.82, 241.99 32.3, 242.98 51.31 M242.98 17.1 C242.69 24.04, 242.3 31.26, 242.98 51.31 M242.98 51.31 C243.13 63.41, 238.81 68.87, 225.88 68.41 M242.98 51.31 C242.93 61.45, 235.7 68.68, 225.88 68.41 M225.88 68.41 C181.45 69.21, 131.82 67.12, 17.1 68.41 M225.88 68.41 C181.35 67.73, 136.7 68.68, 17.1 68.41 M17.1 68.41 C4.73 69.09, 0.66 62.01, 0 51.31 M17.1 68.41 C5.73 69.94, -0.42 62.82, 0 51.31 M0 51.31 C-1.27 38.99, -0.66 25.94, 0 17.1 M0 51.31 C0.77 41.45, 0.32 32.18, 0 17.1 M0 17.1 C-0.76 6.63, 7.48 -1.24, 17.1 0 M0 17.1 C-2.19 4.4, 4.07 0.09, 17.1 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(902.0650977101724 140.54509609737443) rotate(0 69.8099594116211 25)"><text x="69.8099594116211" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. Unpack the </text><text x="69.8099594116211" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">packedVals</text></g><g stroke-linecap="round" transform="translate(1197.2614826843608 117.14330183429206) rotate(0 143.04613896832575 47.61936899927218)"><path d="M23.81 0 C82.07 0.17, 139.61 0.19, 262.28 0 M23.81 0 C86.83 2.28, 148.09 1.35, 262.28 0 M262.28 0 C278.35 0.92, 286.89 9.63, 286.09 23.81 M262.28 0 C277.07 -1.96, 287.1 7.63, 286.09 23.81 M286.09 23.81 C288.06 35.11, 284.76 47.94, 286.09 71.43 M286.09 23.81 C286.32 34.75, 285.25 43.73, 286.09 71.43 M286.09 71.43 C284.38 86.09, 278.46 96.41, 262.28 95.24 M286.09 71.43 C287.89 89.29, 276.19 94.71, 262.28 95.24 M262.28 95.24 C201.69 96.91, 139.12 95.9, 23.81 95.24 M262.28 95.24 C174.34 93.83, 85.75 94.52, 23.81 95.24 M23.81 95.24 C7.24 95.21, -1.65 88.16, 0 71.43 M23.81 95.24 C6.33 94.52, -0.99 88.59, 0 71.43 M0 71.43 C0.6 58.43, -1.35 48.64, 0 23.81 M0 71.43 C-0.3 59.99, -0.77 48.81, 0 23.81 M0 23.81 C-0.42 7.52, 8.11 -1.84, 23.81 0 M0 23.81 C0.51 9.93, 9.02 1, 23.81 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1211.9477278538584 139.76267083356424) rotate(0 128.35989379882812 25)"><text x="128.35989379882812" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">This is the batch number </text><text x="128.35989379882812" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">and the number of signups</text></g><g stroke-linecap="round"><g transform="translate(1130.2937187664036 169.30603841698075) rotate(0 15.46634491356258 -0.1900694001952843)"><path d="M-0.07 0.17 C5.19 0.05, 26.11 -0.5, 31.19 -0.62 M-0.77 -0.22 C4.47 -0.28, 25.52 -0.07, 30.9 -0.05" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1130.2937187664036 169.30603841698075) rotate(0 15.46634491356258 -0.1900694001952843)"><path d="M16.32 5.14 C19.95 4.31, 22.76 2.04, 30.9 -0.05 M16.32 5.14 C19.85 3.96, 24.36 2.39, 30.9 -0.05" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1130.2937187664036 169.30603841698075) rotate(0 15.46634491356258 -0.1900694001952843)"><path d="M16.4 -5.44 C20.02 -3.81, 22.81 -3.62, 30.9 -0.05 M16.4 -5.44 C19.92 -3.79, 24.42 -2.51, 30.9 -0.05" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(830.5441914983394 236.61006188457782) rotate(0 134.74171867676966 52.76127373882025)"><path d="M26.38 0 C98.96 -1.38, 172.72 1.64, 243.1 0 M26.38 0 C100.19 -0.22, 173.74 -0.44, 243.1 0 M243.1 0 C262.35 -1.18, 268.6 10.13, 269.48 26.38 M243.1 0 C259.91 -0.37, 271.34 6.71, 269.48 26.38 M269.48 26.38 C269.58 42.95, 268.91 63.47, 269.48 79.14 M269.48 26.38 C269.42 37.41, 268.71 50.34, 269.48 79.14 M269.48 79.14 C268.44 97.52, 260.15 104.87, 243.1 105.52 M269.48 79.14 C268.33 97.18, 261.41 106.25, 243.1 105.52 M243.1 105.52 C178.56 105.81, 112.06 105.31, 26.38 105.52 M243.1 105.52 C169.21 105.87, 95.06 105.07, 26.38 105.52 M26.38 105.52 C7.44 106.82, 1.92 95.36, 0 79.14 M26.38 105.52 C8.2 103.39, -1.67 96.16, 0 79.14 M0 79.14 C0.65 66.23, 1.58 55.05, 0 26.38 M0 79.14 C-0.08 67.19, -0.23 54.14, 0 26.38 M0 26.38 C1.96 7.45, 7.4 -0.07, 26.38 0 M0 26.38 C-1.59 6.85, 8.55 1.11, 26.38 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(837.2260041692497 251.87133562339818) rotate(0 128.05990600585938 37.5)"><text x="128.05990600585938" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Use a sha256 hasher </text><text x="128.05990600585938" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">component to hash the </text><text x="128.05990600585938" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">values</text></g><g stroke-linecap="round" transform="translate(1189.182622877517 247.09786764752926) rotate(0 136.7999829552739 76.49551632667442)"><path d="M32 0 C100.02 -0.45, 167.49 0.63, 241.6 0 M32 0 C99.24 -0.83, 167.12 -0.22, 241.6 0 M241.6 0 C263.61 1.64, 271.62 11.64, 273.6 32 M241.6 0 C261.36 -1.37, 273.5 12.2, 273.6 32 M273.6 32 C273.93 62.81, 275.15 95.57, 273.6 120.99 M273.6 32 C272.65 63.76, 271.88 95.49, 273.6 120.99 M273.6 120.99 C275.25 144.08, 262.53 153.51, 241.6 152.99 M273.6 120.99 C275.19 142.47, 262.52 153.68, 241.6 152.99 M241.6 152.99 C175.68 150.67, 105.98 151.96, 32 152.99 M241.6 152.99 C184.61 151.46, 128.4 151.79, 32 152.99 M32 152.99 C11.22 151.47, -0.33 143.54, 0 120.99 M32 152.99 C9.9 150.69, 2.2 141.46, 0 120.99 M0 120.99 C-2.13 93.05, 0.12 65.07, 0 32 M0 120.99 C0 94.63, -0.24 68.31, 0 32 M0 32 C-0.85 10.48, 12.61 -0.57, 32 0 M0 32 C-1.16 12.23, 9.31 1.09, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1204.062714475369 273.59338397420356) rotate(0 121.91989135742188 50)"><text x="121.91989135742188" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">inputs: packedValues, </text><text x="121.91989135742188" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">sbCommitment, </text><text x="121.91989135742188" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">currentTallyCommitment, </text><text x="121.91989135742188" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newTallyCommitment</text></g><g stroke-linecap="round"><g transform="translate(1128.8686996605634 281.27010371267875) rotate(0 17.254973246360578 0.19478672632124017)"><path d="M-0.45 0.03 C5.32 0.19, 28.73 0.7, 34.64 0.72 M0.33 -0.42 C6.03 -0.41, 28.51 -0.25, 34.28 -0.08" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1128.8686996605634 281.27010371267875) rotate(0 17.254973246360578 0.19478672632124017)"><path d="M17.97 5.55 C23.08 4.08, 28.6 2.95, 34.28 -0.08 M17.97 5.55 C22.55 4.13, 25.96 2.96, 34.28 -0.08" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1128.8686996605634 281.27010371267875) rotate(0 17.254973246360578 0.19478672632124017)"><path d="M18.17 -6.25 C23.2 -4.07, 28.65 -1.55, 34.28 -0.08 M18.17 -6.25 C22.74 -4.63, 26.09 -2.76, 34.28 -0.08" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask></svg>
21
+ <rect x="0" y="0" width="1493.3537606210123" height="411.5604845778562" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(294.40926691448794 170.81402033509562) rotate(0 129.27623258310302 33.800522136203085)"><path d="M16.9 0 C99.78 1.66, 184.71 1.7, 241.65 0 M16.9 0 C64.33 0.18, 111.71 0.53, 241.65 0 M241.65 0 C254.06 0.57, 258.51 6.13, 258.55 16.9 M241.65 0 C255.18 1.11, 258.99 4.59, 258.55 16.9 M258.55 16.9 C259.09 29.5, 259.61 38.17, 258.55 50.7 M258.55 16.9 C258.26 30.76, 259.11 43.58, 258.55 50.7 M258.55 50.7 C258.05 63.26, 252.9 67.46, 241.65 67.6 M258.55 50.7 C260.36 62.99, 254.55 69.45, 241.65 67.6 M241.65 67.6 C194.67 70.41, 149.05 69.02, 16.9 67.6 M241.65 67.6 C163.96 67.17, 87.42 67.91, 16.9 67.6 M16.9 67.6 C4.92 66.7, 0.69 63.1, 0 50.7 M16.9 67.6 C4.29 69.71, -0.84 63.25, 0 50.7 M0 50.7 C1.8 38.9, 1.05 27.55, 0 16.9 M0 50.7 C0.24 43.88, -0.02 35.02, 0 16.9 M0 16.9 C-0.1 5.63, 4.26 -1.51, 16.9 0 M0 16.9 C-1.98 6.02, 4.78 0.81, 16.9 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(313.0656035625324 192.1145424712986) rotate(0 110.6198959350586 12.5)"><text x="110.6198959350586" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">TallyVotesInputHasher</text></g><g stroke-linecap="round" transform="translate(10 10) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C86.77 -2.57, 160.04 -2.34, 204.03 0 M16.09 0 C57.66 1.05, 98.07 1.01, 204.03 0 M204.03 0 C216.72 0.97, 220.49 4.45, 220.12 16.09 M204.03 0 C215.35 0.13, 219.87 5.95, 220.12 16.09 M220.12 16.09 C222.07 30.23, 219.53 39.25, 220.12 48.27 M220.12 16.09 C219.94 28.63, 220.18 39.81, 220.12 48.27 M220.12 48.27 C221.68 59.88, 216.17 65.96, 204.03 64.35 M220.12 48.27 C217.96 57.95, 216.69 63.58, 204.03 64.35 M204.03 64.35 C135.53 64.67, 65.52 62.74, 16.09 64.35 M204.03 64.35 C161.17 64.13, 119.37 65.15, 16.09 64.35 M16.09 64.35 C4.19 66.18, -0.73 60.1, 0 48.27 M16.09 64.35 C5.73 64.87, 1.13 61.15, 0 48.27 M0 48.27 C-1.57 40.07, 0.35 32.92, 0 16.09 M0 48.27 C-0.02 35.48, -0.66 21.95, 0 16.09 M0 16.09 C-1.72 5.7, 4.62 0.7, 16.09 0 M0 16.09 C0.02 5.38, 4.23 1.1, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(54.94763921576896 29.677416550875932) rotate(0 65.10993194580078 12.5)"><text x="65.10993194580078" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">sbCommitment</text></g><g stroke-linecap="round"><g transform="translate(385.0214741061509 97.43477122007062) rotate(0 1.5956212533027951 21.722771252156463)"><path d="M-0.19 -0.45 C0.32 6.8, 2.17 35.88, 2.78 43.22 M0.71 0.51 C1.41 7.85, 3.37 36.79, 3.81 43.81" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(385.0214741061509 97.43477122007062) rotate(0 1.5956212533027951 21.722771252156463)"><path d="M-4.97 23.87 C-3.6 28.21, -0.96 34.59, 3.81 43.81 M-4.97 23.87 C-1.6 30.65, 0.89 36.74, 3.81 43.81" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(385.0214741061509 97.43477122007062) rotate(0 1.5956212533027951 21.722771252156463)"><path d="M9.9 22.89 C7.48 27.46, 6.35 34.08, 3.81 43.81 M9.9 22.89 C8.39 30.02, 5.99 36.42, 3.81 43.81" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(471.2704292368853 125.75873117477454) rotate(0 31.809967041015625 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Inputs</text></g><g transform="translate(482.5566653488877 274.70738765460897) rotate(0 40.27995300292969 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Outputs</text></g><g stroke-linecap="round"><g transform="translate(421.57579823026026 273.4370338845199) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M0.1 -0.25 C0.11 6.55, 0.54 34.15, 0.59 41.05 M-0.51 0.81 C-0.6 7.68, 0.15 34.93, 0.23 41.77" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(421.57579823026026 273.4370338845199) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M-7.18 22.64 C-4.63 30.51, -1.17 37.77, 0.23 41.77 M-7.18 22.64 C-4.88 29.3, -1.79 34.9, 0.23 41.77" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(421.57579823026026 273.4370338845199) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M6.85 22.35 C3.81 30.35, 1.68 37.72, 0.23 41.77 M6.85 22.35 C4.58 29.14, 3.1 34.83, 0.23 41.77" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(325.01614578217686 337.2056514761043) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C76.14 -0.7, 136.48 1.09, 204.03 0 M16.09 0 C83.23 -2.05, 147.81 -0.98, 204.03 0 M204.03 0 C215.21 0.71, 219.62 6.65, 220.12 16.09 M204.03 0 C214.73 -0.16, 221.92 6.39, 220.12 16.09 M220.12 16.09 C219.47 29.71, 219.7 41.33, 220.12 48.27 M220.12 16.09 C220.35 26.26, 219.38 35.48, 220.12 48.27 M220.12 48.27 C220 59.24, 214.04 63.45, 204.03 64.35 M220.12 48.27 C220.91 60.3, 213.4 66.46, 204.03 64.35 M204.03 64.35 C154.96 65.64, 106.88 63.54, 16.09 64.35 M204.03 64.35 C136.89 63.32, 70.28 64.02, 16.09 64.35 M16.09 64.35 C5.2 64.15, -0.1 58.98, 0 48.27 M16.09 64.35 C3.78 62.62, -1.98 59.38, 0 48.27 M0 48.27 C-0.1 38.82, 0.84 30, 0 16.09 M0 48.27 C-0.5 39.8, -0.3 29.42, 0 16.09 M0 16.09 C1.9 6.97, 3.57 -1.71, 16.09 0 M0 16.09 C0.88 5.93, 7.43 -0.7, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(384.403772180563 356.88306802698025) rotate(0 50.669944763183594 12.5)"><text x="50.669944763183594" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">totalSignups</text></g><g stroke-linecap="round" transform="translate(255.71407860060526 14.325375601543328) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C60.38 1.04, 107.75 2.08, 204.03 0 M16.09 0 C90.89 -1.11, 164.19 0.08, 204.03 0 M204.03 0 C214.75 0.63, 221.02 4.92, 220.12 16.09 M204.03 0 C215.19 0.85, 219.98 5.94, 220.12 16.09 M220.12 16.09 C221.24 28.95, 220.01 41.79, 220.12 48.27 M220.12 16.09 C220.46 27.98, 219.37 38.96, 220.12 48.27 M220.12 48.27 C219.34 57.27, 215.32 65.1, 204.03 64.35 M220.12 48.27 C222.29 60.17, 215.63 62.52, 204.03 64.35 M204.03 64.35 C159.11 65.96, 114.63 65.98, 16.09 64.35 M204.03 64.35 C159.74 63.55, 114.79 64.74, 16.09 64.35 M16.09 64.35 C6.82 62.55, 1.24 58.97, 0 48.27 M16.09 64.35 C5.58 62.49, -1.75 59.21, 0 48.27 M0 48.27 C0.4 36.43, 0.19 24.87, 0 16.09 M0 48.27 C0.95 41.34, -0.63 33.52, 0 16.09 M0 16.09 C1.77 5.99, 7.19 -2, 16.09 0 M0 16.09 C-1.3 3.32, 5.45 -2.14, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(261.74175016500703 21.50279215241926) rotate(0 104.02989959716797 25)"><text x="104.02989959716797" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">currentTallyCommitme</text><text x="104.02989959716797" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">nt</text></g><g stroke-linecap="round" transform="translate(508.00472555008196 14.286553692389589) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C64.81 0.95, 111.26 -2.57, 204.03 0 M16.09 0 C73.5 1.31, 128.51 1.15, 204.03 0 M204.03 0 C214.84 1.93, 218.78 3.62, 220.12 16.09 M204.03 0 C212.75 -1.93, 221.12 7.46, 220.12 16.09 M220.12 16.09 C221.85 24.3, 220.23 34.73, 220.12 48.27 M220.12 16.09 C220.32 21.85, 219.73 29.09, 220.12 48.27 M220.12 48.27 C220.93 58.02, 214.78 64.23, 204.03 64.35 M220.12 48.27 C221.77 59.25, 213.29 64.55, 204.03 64.35 M204.03 64.35 C163.08 64.06, 123.4 64.58, 16.09 64.35 M204.03 64.35 C161.14 66.29, 116.43 65.85, 16.09 64.35 M16.09 64.35 C7 66.02, -1.17 57.12, 0 48.27 M16.09 64.35 C3.48 63.1, -2.21 57.91, 0 48.27 M0 48.27 C0.04 37.17, 0.57 29.68, 0 16.09 M0 48.27 C-0.52 39.34, -0.26 28.68, 0 16.09 M0 16.09 C1.65 5.62, 6.43 1.87, 16.09 0 M0 16.09 C0.88 5.21, 6.72 0.89, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(522.572382771222 33.96397024326552) rotate(0 95.48991394042969 12.5)"><text x="95.48991394042969" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newTallyCommitment</text></g><g stroke-linecap="round" transform="translate(752.5762828962881 14.985348057145302) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C81.91 -0.55, 151.62 -0.51, 204.03 0 M16.09 0 C72.92 0.72, 129.25 2.01, 204.03 0 M204.03 0 C215.9 0.44, 219.38 3.37, 220.12 16.09 M204.03 0 C216.94 -0.29, 218.4 3.6, 220.12 16.09 M220.12 16.09 C219.28 22.8, 220.99 31.71, 220.12 48.27 M220.12 16.09 C219.79 23.93, 220.58 32.2, 220.12 48.27 M220.12 48.27 C219.48 59.2, 214.69 65.59, 204.03 64.35 M220.12 48.27 C219.86 56.88, 216.45 66.36, 204.03 64.35 M204.03 64.35 C159.53 62.83, 117.88 65.24, 16.09 64.35 M204.03 64.35 C159.91 65.08, 116.09 65.35, 16.09 64.35 M16.09 64.35 C7.08 65.44, 0.53 59.08, 0 48.27 M16.09 64.35 C3.23 63.14, 0.86 57.74, 0 48.27 M0 48.27 C-0.9 39.28, -1.03 31.38, 0 16.09 M0 48.27 C-0.01 39.95, 0.8 30.47, 0 16.09 M0 16.09 C-0.12 5.59, 6.91 -0.8, 16.09 0 M0 16.09 C-0.95 3.52, 4.17 0.19, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(810.0838967824673 34.662764608021234) rotate(0 52.549957275390625 12.5)"><text x="52.549957275390625" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">packedVals</text></g><g stroke-linecap="round" transform="translate(563.3269904098835 342.18670710146375) rotate(0 110.05757116156974 17.5)"><path d="M8.75 0 C79.99 -0.19, 151.85 -1.64, 211.37 0 M8.75 0 C52.2 -2.57, 93.28 -1.6, 211.37 0 M211.37 0 C217.56 0.58, 218.73 3.98, 220.12 8.75 M211.37 0 C217.23 -1.93, 218.68 1.6, 220.12 8.75 M220.12 8.75 C221.37 11.44, 221.23 15.44, 220.12 26.25 M220.12 8.75 C220.86 13.96, 221 19.2, 220.12 26.25 M220.12 26.25 C221.26 32.53, 216.86 36.54, 211.37 35 M220.12 26.25 C218.47 32.21, 219.18 36.22, 211.37 35 M211.37 35 C153.56 35.9, 94.85 33.87, 8.75 35 M211.37 35 C134.26 36.56, 56.11 37.63, 8.75 35 M8.75 35 C2.22 35.46, -1.88 33.66, 0 26.25 M8.75 35 C2.37 34.93, 1.76 33.66, 0 26.25 M0 26.25 C1.17 20.01, -0.69 14.38, 0 8.75 M0 26.25 C-0.1 21.56, -0.5 17.24, 0 8.75 M0 8.75 C1.52 3.41, 4.47 1.49, 8.75 0 M0 8.75 C-2.09 3.72, 0.64 1.72, 8.75 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(609.4946155875665 347.18670710146375) rotate(0 63.88994598388672 12.5)"><text x="63.88994598388672" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batch number</text></g><g stroke-linecap="round" transform="translate(92.05212273505936 342.2376202745236) rotate(0 110.05757116156974 17.5)"><path d="M8.75 0 C87.8 1.47, 163.73 0.03, 211.37 0 M8.75 0 C80.33 1.32, 150.99 1.31, 211.37 0 M211.37 0 C217.29 1.89, 220.21 2.84, 220.12 8.75 M211.37 0 C216.45 0.06, 218.98 2.15, 220.12 8.75 M220.12 8.75 C220.91 15.34, 218.88 23.68, 220.12 26.25 M220.12 8.75 C219.53 13.76, 220.44 19.44, 220.12 26.25 M220.12 26.25 C221.21 32.93, 217.95 36.33, 211.37 35 M220.12 26.25 C217.92 33.43, 218.98 36.82, 211.37 35 M211.37 35 C143.51 34.44, 74.02 35, 8.75 35 M211.37 35 C131.56 34.14, 53.58 33.46, 8.75 35 M8.75 35 C1.81 36.98, 0.7 33.6, 0 26.25 M8.75 35 C2.1 34.43, 1.06 31.74, 0 26.25 M0 26.25 C-1.28 20.9, 0.87 17.15, 0 8.75 M0 26.25 C0.47 22.37, 0.55 16.2, 0 8.75 M0 8.75 C0.54 4.14, 4.21 0.3, 8.75 0 M0 8.75 C0.91 2.34, 2.54 1.86, 8.75 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(180.1297134278791 347.2376202745236) rotate(0 21.97998046875 12.5)"><text x="21.97998046875" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">hash</text></g><g stroke-linecap="round"><g transform="translate(606.8514310658963 201.4631287988518) rotate(0 108.38376029738589 0.46191284466056004)"><path d="M-0.42 0.96 C35.67 1.31, 181.12 1.18, 217.48 1.01 M1.56 0.41 C37.47 1.07, 180.92 2.54, 216.9 2.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(606.8514310658963 201.4631287988518) rotate(0 108.38376029738589 0.46191284466056004)"><path d="M193.35 10.99 C203.92 9.08, 211.37 6.33, 216.9 2.59 M193.35 10.99 C197.49 9.23, 203 6.78, 216.9 2.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(606.8514310658963 201.4631287988518) rotate(0 108.38376029738589 0.46191284466056004)"><path d="M193.47 -6.12 C203.83 -1.56, 211.24 2.15, 216.9 2.59 M193.47 -6.12 C197.72 -4.2, 203.2 -2.98, 216.9 2.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(647.8887406336343 152.29703720881002) rotate(0 49.669944763183594 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Processing</text></g><g stroke-linecap="round" transform="translate(850.3843537270727 131.33946292169503) rotate(0 121.49070339472077 34.20563317567928)"><path d="M17.1 0 C77.13 -0.25, 140.02 1.38, 225.88 0 M17.1 0 C84.36 0.77, 152.69 1.7, 225.88 0 M225.88 0 C235.37 1.26, 243.04 5.88, 242.98 17.1 M225.88 0 C236.79 -1.92, 241.9 7.18, 242.98 17.1 M242.98 17.1 C241.58 25.82, 241.99 32.3, 242.98 51.31 M242.98 17.1 C242.69 24.04, 242.3 31.26, 242.98 51.31 M242.98 51.31 C243.13 63.41, 238.81 68.87, 225.88 68.41 M242.98 51.31 C242.93 61.45, 235.7 68.68, 225.88 68.41 M225.88 68.41 C181.45 69.21, 131.82 67.12, 17.1 68.41 M225.88 68.41 C181.35 67.73, 136.7 68.68, 17.1 68.41 M17.1 68.41 C4.73 69.09, 0.66 62.01, 0 51.31 M17.1 68.41 C5.73 69.94, -0.42 62.82, 0 51.31 M0 51.31 C-1.27 38.99, -0.66 25.94, 0 17.1 M0 51.31 C0.77 41.45, 0.32 32.18, 0 17.1 M0 17.1 C-0.76 6.63, 7.48 -1.24, 17.1 0 M0 17.1 C-2.19 4.4, 4.07 0.09, 17.1 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(902.0650977101724 140.54509609737443) rotate(0 69.8099594116211 25)"><text x="69.8099594116211" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. Unpack the </text><text x="69.8099594116211" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">packedVals</text></g><g stroke-linecap="round" transform="translate(1197.2614826843608 117.14330183429206) rotate(0 143.04613896832575 47.61936899927218)"><path d="M23.81 0 C82.07 0.17, 139.61 0.19, 262.28 0 M23.81 0 C86.83 2.28, 148.09 1.35, 262.28 0 M262.28 0 C278.35 0.92, 286.89 9.63, 286.09 23.81 M262.28 0 C277.07 -1.96, 287.1 7.63, 286.09 23.81 M286.09 23.81 C288.06 35.11, 284.76 47.94, 286.09 71.43 M286.09 23.81 C286.32 34.75, 285.25 43.73, 286.09 71.43 M286.09 71.43 C284.38 86.09, 278.46 96.41, 262.28 95.24 M286.09 71.43 C287.89 89.29, 276.19 94.71, 262.28 95.24 M262.28 95.24 C201.69 96.91, 139.12 95.9, 23.81 95.24 M262.28 95.24 C174.34 93.83, 85.75 94.52, 23.81 95.24 M23.81 95.24 C7.24 95.21, -1.65 88.16, 0 71.43 M23.81 95.24 C6.33 94.52, -0.99 88.59, 0 71.43 M0 71.43 C0.6 58.43, -1.35 48.64, 0 23.81 M0 71.43 C-0.3 59.99, -0.77 48.81, 0 23.81 M0 23.81 C-0.42 7.52, 8.11 -1.84, 23.81 0 M0 23.81 C0.51 9.93, 9.02 1, 23.81 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1211.9477278538584 139.76267083356424) rotate(0 128.35989379882812 25)"><text x="128.35989379882812" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">This is the batch number </text><text x="128.35989379882812" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">and the number of signups</text></g><g stroke-linecap="round"><g transform="translate(1130.2937187664036 169.30603841698075) rotate(0 15.46634491356258 -0.1900694001952843)"><path d="M-0.07 0.17 C5.19 0.05, 26.11 -0.5, 31.19 -0.62 M-0.77 -0.22 C4.47 -0.28, 25.52 -0.07, 30.9 -0.05" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1130.2937187664036 169.30603841698075) rotate(0 15.46634491356258 -0.1900694001952843)"><path d="M16.32 5.14 C19.95 4.31, 22.76 2.04, 30.9 -0.05 M16.32 5.14 C19.85 3.96, 24.36 2.39, 30.9 -0.05" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1130.2937187664036 169.30603841698075) rotate(0 15.46634491356258 -0.1900694001952843)"><path d="M16.4 -5.44 C20.02 -3.81, 22.81 -3.62, 30.9 -0.05 M16.4 -5.44 C19.92 -3.79, 24.42 -2.51, 30.9 -0.05" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(830.5441914983394 236.61006188457782) rotate(0 134.74171867676966 52.76127373882025)"><path d="M26.38 0 C98.96 -1.38, 172.72 1.64, 243.1 0 M26.38 0 C100.19 -0.22, 173.74 -0.44, 243.1 0 M243.1 0 C262.35 -1.18, 268.6 10.13, 269.48 26.38 M243.1 0 C259.91 -0.37, 271.34 6.71, 269.48 26.38 M269.48 26.38 C269.58 42.95, 268.91 63.47, 269.48 79.14 M269.48 26.38 C269.42 37.41, 268.71 50.34, 269.48 79.14 M269.48 79.14 C268.44 97.52, 260.15 104.87, 243.1 105.52 M269.48 79.14 C268.33 97.18, 261.41 106.25, 243.1 105.52 M243.1 105.52 C178.56 105.81, 112.06 105.31, 26.38 105.52 M243.1 105.52 C169.21 105.87, 95.06 105.07, 26.38 105.52 M26.38 105.52 C7.44 106.82, 1.92 95.36, 0 79.14 M26.38 105.52 C8.2 103.39, -1.67 96.16, 0 79.14 M0 79.14 C0.65 66.23, 1.58 55.05, 0 26.38 M0 79.14 C-0.08 67.19, -0.23 54.14, 0 26.38 M0 26.38 C1.96 7.45, 7.4 -0.07, 26.38 0 M0 26.38 C-1.59 6.85, 8.55 1.11, 26.38 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(837.2260041692497 251.87133562339818) rotate(0 128.05990600585938 37.5)"><text x="128.05990600585938" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Use a sha256 hasher </text><text x="128.05990600585938" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">component to hash the </text><text x="128.05990600585938" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">values</text></g><g stroke-linecap="round" transform="translate(1189.182622877517 247.09786764752926) rotate(0 136.7999829552739 76.49551632667442)"><path d="M32 0 C100.02 -0.45, 167.49 0.63, 241.6 0 M32 0 C99.24 -0.83, 167.12 -0.22, 241.6 0 M241.6 0 C263.61 1.64, 271.62 11.64, 273.6 32 M241.6 0 C261.36 -1.37, 273.5 12.2, 273.6 32 M273.6 32 C273.93 62.81, 275.15 95.57, 273.6 120.99 M273.6 32 C272.65 63.76, 271.88 95.49, 273.6 120.99 M273.6 120.99 C275.25 144.08, 262.53 153.51, 241.6 152.99 M273.6 120.99 C275.19 142.47, 262.52 153.68, 241.6 152.99 M241.6 152.99 C175.68 150.67, 105.98 151.96, 32 152.99 M241.6 152.99 C184.61 151.46, 128.4 151.79, 32 152.99 M32 152.99 C11.22 151.47, -0.33 143.54, 0 120.99 M32 152.99 C9.9 150.69, 2.2 141.46, 0 120.99 M0 120.99 C-2.13 93.05, 0.12 65.07, 0 32 M0 120.99 C0 94.63, -0.24 68.31, 0 32 M0 32 C-0.85 10.48, 12.61 -0.57, 32 0 M0 32 C-1.16 12.23, 9.31 1.09, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1204.062714475369 273.59338397420356) rotate(0 121.91989135742188 50)"><text x="121.91989135742188" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">inputs: packedValues, </text><text x="121.91989135742188" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">sbCommitment, </text><text x="121.91989135742188" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">currentTallyCommitment, </text><text x="121.91989135742188" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newTallyCommitment</text></g><g stroke-linecap="round"><g transform="translate(1128.8686996605634 281.27010371267875) rotate(0 17.254973246360578 0.19478672632124017)"><path d="M-0.45 0.03 C5.32 0.19, 28.73 0.7, 34.64 0.72 M0.33 -0.42 C6.03 -0.41, 28.51 -0.25, 34.28 -0.08" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1128.8686996605634 281.27010371267875) rotate(0 17.254973246360578 0.19478672632124017)"><path d="M17.97 5.55 C23.08 4.08, 28.6 2.95, 34.28 -0.08 M17.97 5.55 C22.55 4.13, 25.96 2.96, 34.28 -0.08" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1128.8686996605634 281.27010371267875) rotate(0 17.254973246360578 0.19478672632124017)"><path d="M18.17 -6.25 C23.2 -4.07, 28.65 -1.55, 34.28 -0.08 M18.17 -6.25 C22.74 -4.63, 26.09 -2.76, 34.28 -0.08" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask></svg>
@@ -18,4 +18,4 @@
18
18
  </style>
19
19
 
20
20
  </defs>
21
- <rect x="0" y="0" width="1217.3312986646956" height="496.83961586464534" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(321.0041776352655 269.2483868541449) rotate(0 114.33810379333897 33.800522136203085)"><path d="M16.9 0 C88.76 -0.11, 158 0.44, 211.78 0 M16.9 0 C71.53 0.82, 127.07 1.75, 211.78 0 M211.78 0 C223.68 -0.9, 227.92 5.41, 228.68 16.9 M211.78 0 C225.18 -0.9, 226.79 5.25, 228.68 16.9 M228.68 16.9 C227.74 23.13, 228.84 30.7, 228.68 50.7 M228.68 16.9 C227.98 29.02, 228.54 40.3, 228.68 50.7 M228.68 50.7 C228.21 60.46, 222 67.03, 211.78 67.6 M228.68 50.7 C228.75 64.04, 223.87 66.73, 211.78 67.6 M211.78 67.6 C168.98 65.25, 127.31 68.09, 16.9 67.6 M211.78 67.6 C163.66 70.17, 117.7 68.45, 16.9 67.6 M16.9 67.6 C6.89 68.79, 0.74 63.11, 0 50.7 M16.9 67.6 C6.18 66.16, 1.05 63.67, 0 50.7 M0 50.7 C1.57 41.72, -1.05 32.87, 0 16.9 M0 50.7 C-1.02 41.13, -0.71 32.91, 0 16.9 M0 16.9 C-1.23 6.5, 4.23 -0.32, 16.9 0 M0 16.9 C0.42 4.17, 5.24 -0.28, 16.9 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(362.94235619667086 290.54890899034785) rotate(0 72.3999252319336 12.5)"><text x="72.3999252319336" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">VerifySignature</text></g><g stroke-linecap="round"><g transform="translate(421.4347549620111 183.87817598008132) rotate(0 -2.731305301702662 40.81570261330023)"><path d="M1.15 -0.19 C-0.03 13.24, -5.01 67.39, -6.26 80.99 M0.29 -1.34 C-0.58 12.2, -3.27 68.21, -3.96 82.19" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(421.4347549620111 183.87817598008132) rotate(0 -2.731305301702662 40.81570261330023)"><path d="M-12.83 53.53 C-9.79 62.65, -7.29 73.06, -3.96 82.19 M-12.83 53.53 C-10.21 60.96, -8.45 69.25, -3.96 82.19" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(421.4347549620111 183.87817598008132) rotate(0 -2.731305301702662 40.81570261330023)"><path d="M7.67 54.53 C3.17 63.48, -1.86 73.52, -3.96 82.19 M7.67 54.53 C4.61 61.83, 0.68 69.84, -3.96 82.19" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(467.98908237813475 222.12563565743494) rotate(0 31.809967041015625 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Inputs</text></g><g transform="translate(479.2753184901371 370.6925433639308) rotate(0 34.84996032714844 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Output</text></g><g stroke-linecap="round"><g transform="translate(418.5707446353731 356.0076752655941) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M-0.3 0.39 C-0.13 7.21, 0.53 34.01, 0.62 40.77 M0.54 0.11 C0.69 7.01, 0.41 34.44, 0.28 41.35" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(418.5707446353731 356.0076752655941) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M-6.48 21.98 C-4.26 26.72, -3.88 30.42, 0.28 41.35 M-6.48 21.98 C-4.85 27.51, -2.89 33.64, 0.28 41.35" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(418.5707446353731 356.0076752655941) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M7.55 22.17 C6.58 26.82, 3.77 30.49, 0.28 41.35 M7.55 22.17 C5.13 27.61, 3.03 33.69, 0.28 41.35" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(321.73479892342675 421.93401753200305) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C61.23 -1.36, 107.97 1.26, 204.03 0 M16.09 0 C64.31 1.22, 113.35 -0.31, 204.03 0 M204.03 0 C213.58 -0.15, 219.1 6.12, 220.12 16.09 M204.03 0 C212.78 -0.82, 219.17 6.98, 220.12 16.09 M220.12 16.09 C218.79 25.21, 219.73 36.48, 220.12 48.27 M220.12 16.09 C219.36 28.22, 219.51 40.52, 220.12 48.27 M220.12 48.27 C219.18 57.48, 216.66 63.23, 204.03 64.35 M220.12 48.27 C221.16 60.86, 213.23 66.63, 204.03 64.35 M204.03 64.35 C133.07 66.27, 60.87 66.01, 16.09 64.35 M204.03 64.35 C159.24 65.69, 114.06 66.52, 16.09 64.35 M16.09 64.35 C5.93 63.28, 1.28 58.4, 0 48.27 M16.09 64.35 C7.06 65.69, -1.77 58, 0 48.27 M0 48.27 C0.71 38.68, -0.47 32.27, 0 16.09 M0 48.27 C0.5 40.12, -0.75 32.37, 0 16.09 M0 16.09 C-0.54 6.98, 6.78 -1.23, 16.09 0 M0 16.09 C-1.55 4.33, 5.09 1.94, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(409.3823893110707 441.611434082879) rotate(0 22.40998077392578 12.5)"><text x="22.40998077392578" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">valid</text></g><g transform="translate(604.3045623273312 260.52445102419415) rotate(0 49.669944763183594 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Processing</text></g><g stroke-linecap="round"><g transform="translate(610.393068410685 311.06455075794474) rotate(0 93.97450351338216 1.8903043869634075)"><path d="M-0.98 -0.2 C29.99 0.69, 155.65 4.33, 186.98 4.87 M0.7 -1.35 C31.95 -0.73, 157.73 2.44, 189.18 3.32" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(610.393068410685 311.06455075794474) rotate(0 93.97450351338216 1.8903043869634075)"><path d="M160.73 12.84 C171.61 7.71, 184.95 4, 189.18 3.32 M160.73 12.84 C167.04 10.98, 173.45 7.98, 189.18 3.32" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(610.393068410685 311.06455075794474) rotate(0 93.97450351338216 1.8903043869634075)"><path d="M161.27 -7.68 C171.86 -4.74, 184.99 -0.39, 189.18 3.32 M161.27 -7.68 C167.33 -4.66, 173.62 -2.78, 189.18 3.32" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(10 269.0311999256169) rotate(0 126.28990173339844 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Verify a EdDSA signature</text></g><g stroke-linecap="round" transform="translate(312.12392397068345 107.21675958591004) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C56.02 0.32, 98.3 0.48, 204.03 0 M16.09 0 C79.15 1.37, 143.18 1.24, 204.03 0 M204.03 0 C214.29 -1.51, 219.08 4.79, 220.12 16.09 M204.03 0 C214.83 2.07, 220.94 4.49, 220.12 16.09 M220.12 16.09 C218.66 22, 218.47 31.69, 220.12 48.27 M220.12 16.09 C219.6 24.91, 221.1 31.02, 220.12 48.27 M220.12 48.27 C221.37 60.18, 215.49 65.5, 204.03 64.35 M220.12 48.27 C220.66 57.55, 215.8 66.06, 204.03 64.35 M204.03 64.35 C152.45 63.52, 96.71 64.23, 16.09 64.35 M204.03 64.35 C152.46 65.02, 101.97 65.93, 16.09 64.35 M16.09 64.35 C4.13 65.22, -1.4 58.67, 0 48.27 M16.09 64.35 C5.78 62.89, -0.39 58.71, 0 48.27 M0 48.27 C-1.2 36.64, 1.79 27.5, 0 16.09 M0 48.27 C0.1 41.44, -0.53 33.73, 0 16.09 M0 16.09 C-1.02 7.29, 3.92 -0.5, 16.09 0 M0 16.09 C1.22 6.57, 5.1 1.21, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(390.20152992229225 126.89417613678597) rotate(0 31.979965209960938 12.5)"><text x="31.979965209960938" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">pubKey</text></g><g stroke-linecap="round" transform="translate(821.4290949205064 156.92763297834836) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C64.85 -0.82, 106.22 0.08, 198.87 0 M21.25 0 C86.8 -1.76, 152.3 -1.29, 198.87 0 M198.87 0 C213.1 1.8, 220.83 6.33, 220.12 21.25 M198.87 0 C211.03 -0.95, 218.45 5.57, 220.12 21.25 M220.12 21.25 C218.66 32.92, 221.42 41.45, 220.12 63.75 M220.12 21.25 C221.1 38.8, 220.84 55.72, 220.12 63.75 M220.12 63.75 C220.59 76.66, 213.95 86.48, 198.87 85 M220.12 63.75 C219.72 77.8, 211.31 86.78, 198.87 85 M198.87 85 C139.94 87.61, 83.36 84.6, 21.25 85 M198.87 85 C152.62 86.28, 106.9 85.69, 21.25 85 M21.25 85 C7.45 83.73, -0.34 77.67, 0 63.75 M21.25 85 C8.11 83.74, -1.84 76.34, 0 63.75 M0 63.75 C-1.57 50.79, -1.24 40.29, 0 21.25 M0 63.75 C-0.19 48.37, -0.4 30.81, 0 21.25 M0 21.25 C1.06 8.14, 6.86 1.06, 21.25 0 M0 21.25 C-1.74 9, 5.48 -1.54, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(829.3667472588339 174.42763297834836) rotate(0 102.11991882324219 25)"><text x="102.11991882324219" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. hash the preImage</text><text x="102.11991882324219" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">using Poseidon</text></g><g stroke-linecap="round" transform="translate(819.2869353481848 267.96382233672193) rotate(0 194.02218165825548 55)"><path d="M27.5 0 C99.75 1.14, 170.87 0.61, 360.54 0 M27.5 0 C102.25 1.25, 177.2 0.39, 360.54 0 M360.54 0 C377.13 -0.82, 386.6 7.85, 388.04 27.5 M360.54 0 C377.8 -1.74, 390.23 7.87, 388.04 27.5 M388.04 27.5 C390.47 48.17, 387.02 66.74, 388.04 82.5 M388.04 27.5 C388.49 46.65, 388.7 67.8, 388.04 82.5 M388.04 82.5 C387.7 100.73, 377.38 111.55, 360.54 110 M388.04 82.5 C388.7 99.6, 380.35 109.32, 360.54 110 M360.54 110 C235.51 107.65, 112.3 107.43, 27.5 110 M360.54 110 C246.4 109.21, 131.89 109.56, 27.5 110 M27.5 110 C10.06 108.91, -1.6 99.46, 0 82.5 M27.5 110 C8.55 111.86, 1.62 99.42, 0 82.5 M0 82.5 C1.94 68.21, 1.87 55.87, 0 27.5 M0 82.5 C0.93 61.22, 0.28 39.42, 0 27.5 M0 27.5 C-1.51 10.83, 7.77 -1.34, 27.5 0 M0 27.5 C0.21 10.77, 10.3 -1.48, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(831.4892470113231 272.96382233672193) rotate(0 181.8198699951172 50)"><text x="181.8198699951172" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Verify using </text><text x="181.8198699951172" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">EdDSAPoseidonVerifier_patched</text><text x="181.8198699951172" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">which takes all inputs and the hash </text><text x="181.8198699951172" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">of the preImage of the signature</text></g><g stroke-linecap="round" transform="translate(818.1681233501882 401.83961586464534) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C75.84 -0.63, 132.88 0.48, 198.87 0 M21.25 0 C89.63 0.26, 159.03 0.01, 198.87 0 M198.87 0 C212.09 -1.52, 222.02 5.95, 220.12 21.25 M198.87 0 C214.07 1.87, 218.6 9.36, 220.12 21.25 M220.12 21.25 C220.99 38.3, 220.95 54.36, 220.12 63.75 M220.12 21.25 C220.14 31.29, 219.56 42.2, 220.12 63.75 M220.12 63.75 C220.68 76.85, 214.31 84.41, 198.87 85 M220.12 63.75 C221.81 79.26, 211.27 84.01, 198.87 85 M198.87 85 C154.56 82.5, 108.21 84.27, 21.25 85 M198.87 85 C157.35 84.24, 114.13 84.1, 21.25 85 M21.25 85 C6.55 86.62, 1.41 76.69, 0 63.75 M21.25 85 C5.54 83.96, -0.27 79.86, 0 63.75 M0 63.75 C1.58 52.71, -0.85 45.62, 0 21.25 M0 63.75 C-0.71 49.6, -0.65 33.11, 0 21.25 M0 21.25 C0.19 8.48, 8.07 -1.28, 21.25 0 M0 21.25 C1.8 5.83, 7.43 -0.4, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(826.6457766040431 419.33961586464534) rotate(0 101.57991790771484 25)"><text x="101.57991790771484" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Return whether is</text><text x="101.57991790771484" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">valid or not</text></g><g stroke-linecap="round" transform="translate(61.99469259540717 105.26086868321454) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C55.1 -0.82, 97.29 -0.92, 204.03 0 M16.09 0 C60.06 -0.54, 104.77 -0.21, 204.03 0 M204.03 0 C215.56 0.02, 221.19 3.66, 220.12 16.09 M204.03 0 C212.7 -0.46, 219.69 7.48, 220.12 16.09 M220.12 16.09 C218.9 24.79, 222.29 30.57, 220.12 48.27 M220.12 16.09 C219.82 25.65, 220.33 36.12, 220.12 48.27 M220.12 48.27 C220.67 59.81, 214.06 64.01, 204.03 64.35 M220.12 48.27 C218.84 57.11, 215.53 65.49, 204.03 64.35 M204.03 64.35 C134.44 65.69, 64.81 63.6, 16.09 64.35 M204.03 64.35 C143.77 63.08, 84.22 63.05, 16.09 64.35 M16.09 64.35 C3.45 63.62, -0.75 60.78, 0 48.27 M16.09 64.35 C6.47 65.87, -1.2 57.38, 0 48.27 M0 48.27 C-2.21 38.1, 1.4 31.59, 0 16.09 M0 48.27 C0.64 35.13, -1.24 22.69, 0 16.09 M0 16.09 C-1.63 6.15, 6.4 0.31, 16.09 0 M0 16.09 C-1.72 5.89, 4.62 -0.88, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(120.202311059223 124.93828523409047) rotate(0 51.849952697753906 12.5)"><text x="51.849952697753906" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">signatureR</text></g><g stroke-linecap="round" transform="translate(552.8217271194076 104.8566288276329) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C92.23 0.62, 166.8 -1.05, 204.03 0 M16.09 0 C64.87 1.81, 113.62 1.49, 204.03 0 M204.03 0 C214.38 -0.92, 220.6 5.98, 220.12 16.09 M204.03 0 C216.62 0.01, 221 5.33, 220.12 16.09 M220.12 16.09 C218.65 23.6, 220.85 34.37, 220.12 48.27 M220.12 16.09 C220.16 26.13, 220.33 37.13, 220.12 48.27 M220.12 48.27 C219.07 59.89, 216.63 66.01, 204.03 64.35 M220.12 48.27 C222.26 60.44, 215.63 64, 204.03 64.35 M204.03 64.35 C146.66 63.06, 85.76 65.02, 16.09 64.35 M204.03 64.35 C148.04 63.62, 91.25 62.28, 16.09 64.35 M16.09 64.35 C4.39 63.79, 0.45 57.77, 0 48.27 M16.09 64.35 C3.07 64.5, 0.29 58.04, 0 48.27 M0 48.27 C-1.58 36.6, -0.76 24, 0 16.09 M0 48.27 C-0.94 36.5, -0.41 25.6, 0 16.09 M0 16.09 C1.69 6.74, 3.6 -1.36, 16.09 0 M0 16.09 C-1.76 5.43, 3.32 1.68, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(611.7293501608601 124.53404537850884) rotate(0 51.14994812011719 12.5)"><text x="51.14994812011719" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">signatureS</text></g><g stroke-linecap="round" transform="translate(319.9645984579398 10) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C56.1 -3.17, 96.71 -3.37, 204.03 0 M16.09 0 C67.11 -0.94, 117.53 -0.81, 204.03 0 M204.03 0 C216.63 -1.52, 218.55 5.29, 220.12 16.09 M204.03 0 C213.59 0.13, 219.04 5.35, 220.12 16.09 M220.12 16.09 C220.84 26.31, 218.45 37.31, 220.12 48.27 M220.12 16.09 C221.15 28.91, 219.9 40.65, 220.12 48.27 M220.12 48.27 C218.34 58.62, 215.88 65.94, 204.03 64.35 M220.12 48.27 C221.98 60.4, 216.18 62.69, 204.03 64.35 M204.03 64.35 C154.41 64.6, 108.46 63.64, 16.09 64.35 M204.03 64.35 C142.34 64.99, 81.51 64.34, 16.09 64.35 M16.09 64.35 C3.84 64.21, -1.05 57.06, 0 48.27 M16.09 64.35 C6.55 66.09, -1.49 61.09, 0 48.27 M0 48.27 C0.34 36.09, -0.03 24.79, 0 16.09 M0 48.27 C-1.02 39.7, -0.21 30.88, 0 16.09 M0 16.09 C1.6 3.93, 6.96 0.4, 16.09 0 M0 16.09 C-1.78 5.13, 4.26 -1.6, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(365.8422227200955 17.177416550875932) rotate(0 64.17994689941406 25)"><text x="64.17994689941406" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">preImage (4 </text><text x="64.17994689941406" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">elements)</text></g></svg>
21
+ <rect x="0" y="0" width="1217.3312986646956" height="496.83961586464534" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(321.0041776352655 269.2483868541449) rotate(0 114.33810379333897 33.800522136203085)"><path d="M16.9 0 C88.76 -0.11, 158 0.44, 211.78 0 M16.9 0 C71.53 0.82, 127.07 1.75, 211.78 0 M211.78 0 C223.68 -0.9, 227.92 5.41, 228.68 16.9 M211.78 0 C225.18 -0.9, 226.79 5.25, 228.68 16.9 M228.68 16.9 C227.74 23.13, 228.84 30.7, 228.68 50.7 M228.68 16.9 C227.98 29.02, 228.54 40.3, 228.68 50.7 M228.68 50.7 C228.21 60.46, 222 67.03, 211.78 67.6 M228.68 50.7 C228.75 64.04, 223.87 66.73, 211.78 67.6 M211.78 67.6 C168.98 65.25, 127.31 68.09, 16.9 67.6 M211.78 67.6 C163.66 70.17, 117.7 68.45, 16.9 67.6 M16.9 67.6 C6.89 68.79, 0.74 63.11, 0 50.7 M16.9 67.6 C6.18 66.16, 1.05 63.67, 0 50.7 M0 50.7 C1.57 41.72, -1.05 32.87, 0 16.9 M0 50.7 C-1.02 41.13, -0.71 32.91, 0 16.9 M0 16.9 C-1.23 6.5, 4.23 -0.32, 16.9 0 M0 16.9 C0.42 4.17, 5.24 -0.28, 16.9 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(362.94235619667086 290.54890899034785) rotate(0 72.3999252319336 12.5)"><text x="72.3999252319336" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">VerifySignature</text></g><g stroke-linecap="round"><g transform="translate(421.4347549620111 183.87817598008132) rotate(0 -2.731305301702662 40.81570261330023)"><path d="M1.15 -0.19 C-0.03 13.24, -5.01 67.39, -6.26 80.99 M0.29 -1.34 C-0.58 12.2, -3.27 68.21, -3.96 82.19" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(421.4347549620111 183.87817598008132) rotate(0 -2.731305301702662 40.81570261330023)"><path d="M-12.83 53.53 C-9.79 62.65, -7.29 73.06, -3.96 82.19 M-12.83 53.53 C-10.21 60.96, -8.45 69.25, -3.96 82.19" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(421.4347549620111 183.87817598008132) rotate(0 -2.731305301702662 40.81570261330023)"><path d="M7.67 54.53 C3.17 63.48, -1.86 73.52, -3.96 82.19 M7.67 54.53 C4.61 61.83, 0.68 69.84, -3.96 82.19" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(467.98908237813475 222.12563565743494) rotate(0 31.809967041015625 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Inputs</text></g><g transform="translate(479.2753184901371 370.6925433639308) rotate(0 34.84996032714844 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Output</text></g><g stroke-linecap="round"><g transform="translate(418.5707446353731 356.0076752655941) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M-0.3 0.39 C-0.13 7.21, 0.53 34.01, 0.62 40.77 M0.54 0.11 C0.69 7.01, 0.41 34.44, 0.28 41.35" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(418.5707446353731 356.0076752655941) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M-6.48 21.98 C-4.26 26.72, -3.88 30.42, 0.28 41.35 M-6.48 21.98 C-4.85 27.51, -2.89 33.64, 0.28 41.35" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(418.5707446353731 356.0076752655941) rotate(0 0.2229014099474398 20.511057519056408)"><path d="M7.55 22.17 C6.58 26.82, 3.77 30.49, 0.28 41.35 M7.55 22.17 C5.13 27.61, 3.03 33.69, 0.28 41.35" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(321.73479892342675 421.93401753200305) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C61.23 -1.36, 107.97 1.26, 204.03 0 M16.09 0 C64.31 1.22, 113.35 -0.31, 204.03 0 M204.03 0 C213.58 -0.15, 219.1 6.12, 220.12 16.09 M204.03 0 C212.78 -0.82, 219.17 6.98, 220.12 16.09 M220.12 16.09 C218.79 25.21, 219.73 36.48, 220.12 48.27 M220.12 16.09 C219.36 28.22, 219.51 40.52, 220.12 48.27 M220.12 48.27 C219.18 57.48, 216.66 63.23, 204.03 64.35 M220.12 48.27 C221.16 60.86, 213.23 66.63, 204.03 64.35 M204.03 64.35 C133.07 66.27, 60.87 66.01, 16.09 64.35 M204.03 64.35 C159.24 65.69, 114.06 66.52, 16.09 64.35 M16.09 64.35 C5.93 63.28, 1.28 58.4, 0 48.27 M16.09 64.35 C7.06 65.69, -1.77 58, 0 48.27 M0 48.27 C0.71 38.68, -0.47 32.27, 0 16.09 M0 48.27 C0.5 40.12, -0.75 32.37, 0 16.09 M0 16.09 C-0.54 6.98, 6.78 -1.23, 16.09 0 M0 16.09 C-1.55 4.33, 5.09 1.94, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(409.3823893110707 441.611434082879) rotate(0 22.40998077392578 12.5)"><text x="22.40998077392578" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">valid</text></g><g transform="translate(604.3045623273312 260.52445102419415) rotate(0 49.669944763183594 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Processing</text></g><g stroke-linecap="round"><g transform="translate(610.393068410685 311.06455075794474) rotate(0 93.97450351338216 1.8903043869634075)"><path d="M-0.98 -0.2 C29.99 0.69, 155.65 4.33, 186.98 4.87 M0.7 -1.35 C31.95 -0.73, 157.73 2.44, 189.18 3.32" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(610.393068410685 311.06455075794474) rotate(0 93.97450351338216 1.8903043869634075)"><path d="M160.73 12.84 C171.61 7.71, 184.95 4, 189.18 3.32 M160.73 12.84 C167.04 10.98, 173.45 7.98, 189.18 3.32" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(610.393068410685 311.06455075794474) rotate(0 93.97450351338216 1.8903043869634075)"><path d="M161.27 -7.68 C171.86 -4.74, 184.99 -0.39, 189.18 3.32 M161.27 -7.68 C167.33 -4.66, 173.62 -2.78, 189.18 3.32" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(10 269.0311999256169) rotate(0 126.28990173339844 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Verify a EdDSA signature</text></g><g stroke-linecap="round" transform="translate(312.12392397068345 107.21675958591004) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C56.02 0.32, 98.3 0.48, 204.03 0 M16.09 0 C79.15 1.37, 143.18 1.24, 204.03 0 M204.03 0 C214.29 -1.51, 219.08 4.79, 220.12 16.09 M204.03 0 C214.83 2.07, 220.94 4.49, 220.12 16.09 M220.12 16.09 C218.66 22, 218.47 31.69, 220.12 48.27 M220.12 16.09 C219.6 24.91, 221.1 31.02, 220.12 48.27 M220.12 48.27 C221.37 60.18, 215.49 65.5, 204.03 64.35 M220.12 48.27 C220.66 57.55, 215.8 66.06, 204.03 64.35 M204.03 64.35 C152.45 63.52, 96.71 64.23, 16.09 64.35 M204.03 64.35 C152.46 65.02, 101.97 65.93, 16.09 64.35 M16.09 64.35 C4.13 65.22, -1.4 58.67, 0 48.27 M16.09 64.35 C5.78 62.89, -0.39 58.71, 0 48.27 M0 48.27 C-1.2 36.64, 1.79 27.5, 0 16.09 M0 48.27 C0.1 41.44, -0.53 33.73, 0 16.09 M0 16.09 C-1.02 7.29, 3.92 -0.5, 16.09 0 M0 16.09 C1.22 6.57, 5.1 1.21, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(390.20152992229225 126.89417613678597) rotate(0 31.979965209960938 12.5)"><text x="31.979965209960938" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">publicKey</text></g><g stroke-linecap="round" transform="translate(821.4290949205064 156.92763297834836) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C64.85 -0.82, 106.22 0.08, 198.87 0 M21.25 0 C86.8 -1.76, 152.3 -1.29, 198.87 0 M198.87 0 C213.1 1.8, 220.83 6.33, 220.12 21.25 M198.87 0 C211.03 -0.95, 218.45 5.57, 220.12 21.25 M220.12 21.25 C218.66 32.92, 221.42 41.45, 220.12 63.75 M220.12 21.25 C221.1 38.8, 220.84 55.72, 220.12 63.75 M220.12 63.75 C220.59 76.66, 213.95 86.48, 198.87 85 M220.12 63.75 C219.72 77.8, 211.31 86.78, 198.87 85 M198.87 85 C139.94 87.61, 83.36 84.6, 21.25 85 M198.87 85 C152.62 86.28, 106.9 85.69, 21.25 85 M21.25 85 C7.45 83.73, -0.34 77.67, 0 63.75 M21.25 85 C8.11 83.74, -1.84 76.34, 0 63.75 M0 63.75 C-1.57 50.79, -1.24 40.29, 0 21.25 M0 63.75 C-0.19 48.37, -0.4 30.81, 0 21.25 M0 21.25 C1.06 8.14, 6.86 1.06, 21.25 0 M0 21.25 C-1.74 9, 5.48 -1.54, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(829.3667472588339 174.42763297834836) rotate(0 102.11991882324219 25)"><text x="102.11991882324219" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. hash the preImage</text><text x="102.11991882324219" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">using Poseidon</text></g><g stroke-linecap="round" transform="translate(819.2869353481848 267.96382233672193) rotate(0 194.02218165825548 55)"><path d="M27.5 0 C99.75 1.14, 170.87 0.61, 360.54 0 M27.5 0 C102.25 1.25, 177.2 0.39, 360.54 0 M360.54 0 C377.13 -0.82, 386.6 7.85, 388.04 27.5 M360.54 0 C377.8 -1.74, 390.23 7.87, 388.04 27.5 M388.04 27.5 C390.47 48.17, 387.02 66.74, 388.04 82.5 M388.04 27.5 C388.49 46.65, 388.7 67.8, 388.04 82.5 M388.04 82.5 C387.7 100.73, 377.38 111.55, 360.54 110 M388.04 82.5 C388.7 99.6, 380.35 109.32, 360.54 110 M360.54 110 C235.51 107.65, 112.3 107.43, 27.5 110 M360.54 110 C246.4 109.21, 131.89 109.56, 27.5 110 M27.5 110 C10.06 108.91, -1.6 99.46, 0 82.5 M27.5 110 C8.55 111.86, 1.62 99.42, 0 82.5 M0 82.5 C1.94 68.21, 1.87 55.87, 0 27.5 M0 82.5 C0.93 61.22, 0.28 39.42, 0 27.5 M0 27.5 C-1.51 10.83, 7.77 -1.34, 27.5 0 M0 27.5 C0.21 10.77, 10.3 -1.48, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(831.4892470113231 272.96382233672193) rotate(0 181.8198699951172 50)"><text x="181.8198699951172" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Verify using </text><text x="181.8198699951172" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">EdDSAPoseidonVerifier_patched</text><text x="181.8198699951172" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">which takes all inputs and the hash </text><text x="181.8198699951172" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">of the preImage of the signature</text></g><g stroke-linecap="round" transform="translate(818.1681233501882 401.83961586464534) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C75.84 -0.63, 132.88 0.48, 198.87 0 M21.25 0 C89.63 0.26, 159.03 0.01, 198.87 0 M198.87 0 C212.09 -1.52, 222.02 5.95, 220.12 21.25 M198.87 0 C214.07 1.87, 218.6 9.36, 220.12 21.25 M220.12 21.25 C220.99 38.3, 220.95 54.36, 220.12 63.75 M220.12 21.25 C220.14 31.29, 219.56 42.2, 220.12 63.75 M220.12 63.75 C220.68 76.85, 214.31 84.41, 198.87 85 M220.12 63.75 C221.81 79.26, 211.27 84.01, 198.87 85 M198.87 85 C154.56 82.5, 108.21 84.27, 21.25 85 M198.87 85 C157.35 84.24, 114.13 84.1, 21.25 85 M21.25 85 C6.55 86.62, 1.41 76.69, 0 63.75 M21.25 85 C5.54 83.96, -0.27 79.86, 0 63.75 M0 63.75 C1.58 52.71, -0.85 45.62, 0 21.25 M0 63.75 C-0.71 49.6, -0.65 33.11, 0 21.25 M0 21.25 C0.19 8.48, 8.07 -1.28, 21.25 0 M0 21.25 C1.8 5.83, 7.43 -0.4, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(826.6457766040431 419.33961586464534) rotate(0 101.57991790771484 25)"><text x="101.57991790771484" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Return whether is</text><text x="101.57991790771484" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">valid or not</text></g><g stroke-linecap="round" transform="translate(61.99469259540717 105.26086868321454) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C55.1 -0.82, 97.29 -0.92, 204.03 0 M16.09 0 C60.06 -0.54, 104.77 -0.21, 204.03 0 M204.03 0 C215.56 0.02, 221.19 3.66, 220.12 16.09 M204.03 0 C212.7 -0.46, 219.69 7.48, 220.12 16.09 M220.12 16.09 C218.9 24.79, 222.29 30.57, 220.12 48.27 M220.12 16.09 C219.82 25.65, 220.33 36.12, 220.12 48.27 M220.12 48.27 C220.67 59.81, 214.06 64.01, 204.03 64.35 M220.12 48.27 C218.84 57.11, 215.53 65.49, 204.03 64.35 M204.03 64.35 C134.44 65.69, 64.81 63.6, 16.09 64.35 M204.03 64.35 C143.77 63.08, 84.22 63.05, 16.09 64.35 M16.09 64.35 C3.45 63.62, -0.75 60.78, 0 48.27 M16.09 64.35 C6.47 65.87, -1.2 57.38, 0 48.27 M0 48.27 C-2.21 38.1, 1.4 31.59, 0 16.09 M0 48.27 C0.64 35.13, -1.24 22.69, 0 16.09 M0 16.09 C-1.63 6.15, 6.4 0.31, 16.09 0 M0 16.09 C-1.72 5.89, 4.62 -0.88, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(120.202311059223 124.93828523409047) rotate(0 51.849952697753906 12.5)"><text x="51.849952697753906" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">signatureR</text></g><g stroke-linecap="round" transform="translate(552.8217271194076 104.8566288276329) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C92.23 0.62, 166.8 -1.05, 204.03 0 M16.09 0 C64.87 1.81, 113.62 1.49, 204.03 0 M204.03 0 C214.38 -0.92, 220.6 5.98, 220.12 16.09 M204.03 0 C216.62 0.01, 221 5.33, 220.12 16.09 M220.12 16.09 C218.65 23.6, 220.85 34.37, 220.12 48.27 M220.12 16.09 C220.16 26.13, 220.33 37.13, 220.12 48.27 M220.12 48.27 C219.07 59.89, 216.63 66.01, 204.03 64.35 M220.12 48.27 C222.26 60.44, 215.63 64, 204.03 64.35 M204.03 64.35 C146.66 63.06, 85.76 65.02, 16.09 64.35 M204.03 64.35 C148.04 63.62, 91.25 62.28, 16.09 64.35 M16.09 64.35 C4.39 63.79, 0.45 57.77, 0 48.27 M16.09 64.35 C3.07 64.5, 0.29 58.04, 0 48.27 M0 48.27 C-1.58 36.6, -0.76 24, 0 16.09 M0 48.27 C-0.94 36.5, -0.41 25.6, 0 16.09 M0 16.09 C1.69 6.74, 3.6 -1.36, 16.09 0 M0 16.09 C-1.76 5.43, 3.32 1.68, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(611.7293501608601 124.53404537850884) rotate(0 51.14994812011719 12.5)"><text x="51.14994812011719" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">signatureS</text></g><g stroke-linecap="round" transform="translate(319.9645984579398 10) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C56.1 -3.17, 96.71 -3.37, 204.03 0 M16.09 0 C67.11 -0.94, 117.53 -0.81, 204.03 0 M204.03 0 C216.63 -1.52, 218.55 5.29, 220.12 16.09 M204.03 0 C213.59 0.13, 219.04 5.35, 220.12 16.09 M220.12 16.09 C220.84 26.31, 218.45 37.31, 220.12 48.27 M220.12 16.09 C221.15 28.91, 219.9 40.65, 220.12 48.27 M220.12 48.27 C218.34 58.62, 215.88 65.94, 204.03 64.35 M220.12 48.27 C221.98 60.4, 216.18 62.69, 204.03 64.35 M204.03 64.35 C154.41 64.6, 108.46 63.64, 16.09 64.35 M204.03 64.35 C142.34 64.99, 81.51 64.34, 16.09 64.35 M16.09 64.35 C3.84 64.21, -1.05 57.06, 0 48.27 M16.09 64.35 C6.55 66.09, -1.49 61.09, 0 48.27 M0 48.27 C0.34 36.09, -0.03 24.79, 0 16.09 M0 48.27 C-1.02 39.7, -0.21 30.88, 0 16.09 M0 16.09 C1.6 3.93, 6.96 0.4, 16.09 0 M0 16.09 C-1.78 5.13, 4.26 -1.6, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(365.8422227200955 17.177416550875932) rotate(0 64.17994689941406 25)"><text x="64.17994689941406" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">preImage (4 </text><text x="64.17994689941406" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">elements)</text></g></svg>
@@ -23,14 +23,14 @@ Reverse processing was introduced to prevent a type of attack where a briber wou
23
23
 
24
24
  Let's take as an example the following:
25
25
 
26
- 1. Alice signs up with pub key $pub1$
27
- 2. Bob (Briber) bribes Alice and asks her to submit a key change message to $pub2$ (owned by Bob)
28
- 3. Bob submits a vote with $pub2$
29
- 4. Alice submits a vote with $pub1$
26
+ 1. Alice signs up with public key $public1$
27
+ 2. Bob (Briber) bribes Alice and asks her to submit a key change message to $public2$ (owned by Bob)
28
+ 3. Bob submits a vote with $public2$
29
+ 4. Alice submits a vote with $public1$
30
30
 
31
31
  If messages were processed in the same order as they were submitted, Alice's vote would not be valid, due to it being signed with a private key $priv1$ - which now would not be valid.
32
32
 
33
- On the other hand, due to messages being processed in reverse order, Alice's last message would be counted as valid as the key change would have not been processed yet. Then, Bob's vote would not be counted as valid as the current key for Alice would be $pub1$.
33
+ On the other hand, due to messages being processed in reverse order, Alice's last message would be counted as valid as the key change would have not been processed yet. Then, Bob's vote would not be counted as valid as the current key for Alice would be $public1$.
34
34
 
35
35
  > Note that a key change message should have the nonce set to 1 in order for it to be valid. We'll see a code example in the next sections.
36
36
 
@@ -47,7 +47,7 @@ Let's take a look into a code example:
47
47
  ```ts
48
48
  const user1Keypair = new Keypair();
49
49
  const user2Keypair = new Keypair();
50
- const secondKeyPair = new Keypair();
50
+ const secondKeypair = new Keypair();
51
51
  ```
52
52
 
53
53
  - Votes will be
@@ -77,10 +77,10 @@ As seen above, we expect the first vote weight 9 to not be counted, but instead
77
77
  - Deploy a MaciState locally and sign up
78
78
 
79
79
  ```ts
80
- const maciState: MaciState = new MaciState(STATE_TREE_DEPTH);
80
+ const maciState = new MaciState(STATE_TREE_DEPTH);
81
81
  // Sign up
82
- user1StateIndex = maciState.signUp(user1Keypair.pubKey, voiceCreditBalance, BigInt(Math.floor(Date.now() / 1000)));
83
- user2StateIndex = maciState.signUp(user2Keypair.pubKey, voiceCreditBalance, BigInt(Math.floor(Date.now() / 1000)));
82
+ user1StateIndex = maciState.signUp(user1Keypair.publicKey, voiceCreditBalance, BigInt(Math.floor(Date.now() / 1000)));
83
+ user2StateIndex = maciState.signUp(user2Keypair.publicKey, voiceCreditBalance, BigInt(Math.floor(Date.now() / 1000)));
84
84
  // deploy a poll
85
85
  pollId = maciState.deployPoll(
86
86
  duration,
@@ -97,37 +97,37 @@ pollId = maciState.deployPoll(
97
97
  const poll = maciState.polls[pollId];
98
98
  const command1 = new PCommand(
99
99
  BigInt(user1StateIndex),
100
- user1Keypair.pubKey,
100
+ user1Keypair.publicKey,
101
101
  user1VoteOptionIndex,
102
102
  user1VoteWeight,
103
103
  BigInt(1),
104
104
  BigInt(pollId),
105
105
  );
106
106
 
107
- const signature1 = command1.sign(user1Keypair.privKey);
107
+ const signature1 = command1.sign(user1Keypair.privateKey);
108
108
 
109
109
  const ecdhKeypair1 = new Keypair();
110
- const sharedKey1 = Keypair.genEcdhSharedKey(ecdhKeypair1.privKey, coordinatorKeypair.pubKey);
110
+ const sharedKey1 = Keypair.genEcdhSharedKey(ecdhKeypair1.privateKey, coordinatorKeypair.publicKey);
111
111
 
112
112
  const message1 = command1.encrypt(signature1, sharedKey1);
113
- poll.publishMessage(message1, ecdhKeypair1.pubKey);
113
+ poll.publishMessage(message1, ecdhKeypair1.publicKey);
114
114
 
115
115
  const command2 = new PCommand(
116
116
  BigInt(user2StateIndex),
117
- user2Keypair.pubKey,
117
+ user2Keypair.publicKey,
118
118
  user2VoteOptionIndex,
119
119
  user2VoteWeight,
120
120
  BigInt(1),
121
121
  BigInt(pollId),
122
122
  );
123
123
 
124
- const signature2 = command2.sign(user2Keypair.privKey);
124
+ const signature2 = command2.sign(user2Keypair.privateKey);
125
125
 
126
126
  const ecdhKeypair2 = new Keypair();
127
- const sharedKey2 = Keypair.genEcdhSharedKey(ecdhKeypair2.privKey, coordinatorKeypair.pubKey);
127
+ const sharedKey2 = Keypair.genEcdhSharedKey(ecdhKeypair2.privateKey, coordinatorKeypair.publicKey);
128
128
 
129
129
  const message2 = command2.encrypt(signature2, sharedKey2);
130
- poll.publishMessage(message2, ecdhKeypair2.pubKey);
130
+ poll.publishMessage(message2, ecdhKeypair2.publicKey);
131
131
  ```
132
132
 
133
133
  - User1 submits a key change message with the new vote
@@ -136,20 +136,20 @@ poll.publishMessage(message2, ecdhKeypair2.pubKey);
136
136
  const poll = maciState.polls[pollId];
137
137
  const command = new PCommand(
138
138
  BigInt(user1StateIndex),
139
- secondKeyPair.pubKey,
139
+ secondKeypair.publicKey,
140
140
  user1VoteOptionIndex,
141
141
  user1NewVoteWeight,
142
142
  BigInt(1),
143
143
  BigInt(pollId),
144
144
  );
145
145
 
146
- const signature = command.sign(user1Keypair.privKey);
146
+ const signature = command.sign(user1Keypair.privateKey);
147
147
 
148
148
  const ecdhKeypair = new Keypair();
149
- const sharedKey = Keypair.genEcdhSharedKey(ecdhKeypair.privKey, coordinatorKeypair.pubKey);
149
+ const sharedKey = Keypair.genEcdhSharedKey(ecdhKeypair.privateKey, coordinatorKeypair.publicKey);
150
150
 
151
151
  const message = command.encrypt(signature, sharedKey);
152
- poll.publishMessage(message, ecdhKeypair.pubKey);
152
+ poll.publishMessage(message, ecdhKeypair.publicKey);
153
153
  ```
154
154
 
155
155
  - We process the votes and check that the result is as expected (`user1NewVoteWeight` was 5 and `user2VoteWeight` 3)
@@ -158,8 +158,8 @@ poll.publishMessage(message, ecdhKeypair.pubKey);
158
158
  const poll = maciState.polls[pollId];
159
159
  poll.processMessages(pollId);
160
160
  poll.tallyVotes();
161
- expect(poll.perVOSpentVoiceCredits[0].toString()).to.eq((user1NewVoteWeight * user1NewVoteWeight).toString());
162
- expect(poll.perVOSpentVoiceCredits[1].toString()).to.eq((user2VoteWeight * user2VoteWeight).toString());
161
+ expect(poll.perVoteOptionSpentVoiceCredits[0].toString()).to.eq((user1NewVoteWeight * user1NewVoteWeight).toString());
162
+ expect(poll.perVoteOptionSpentVoiceCredits[1].toString()).to.eq((user2VoteWeight * user2VoteWeight).toString());
163
163
  ```
164
164
 
165
165
  - Finally confirm that the keypair was changed for the user1
@@ -168,8 +168,8 @@ expect(poll.perVOSpentVoiceCredits[1].toString()).to.eq((user2VoteWeight * user2
168
168
  const poll = maciState.polls[pollId];
169
169
  const stateLeaf1 = poll.stateLeaves[user1StateIndex];
170
170
  const stateLeaf2 = poll.stateLeaves[user2StateIndex];
171
- expect(stateLeaf1.pubKey.equals(user1SecondKeypair.pubKey)).to.eq(true);
172
- expect(stateLeaf2.pubKey.equals(user2Keypair.pubKey)).to.eq(true);
171
+ expect(stateLeaf1.publicKey.equals(user1SecondKeypair.publicKey)).to.eq(true);
172
+ expect(stateLeaf2.publicKey.equals(user2Keypair.publicKey)).to.eq(true);
173
173
  ```
174
174
 
175
175
  We see that is important that we set the final message (the one with the new vote) with nonce 1, as this vote would be counted as the first vote.
@@ -78,7 +78,7 @@ Serialized, these will look like **macipk.0e5194a54562ea4d440ac6a0049a41d4b600e3
78
78
  After successfully [installing](/docs/quick-start#installation) MACI, you can easily generate your MACI key pair by running:
79
79
 
80
80
  ```bash
81
- pnpm run genMaciKeyPair
81
+ pnpm run generateMaciKeyPair
82
82
  ```
83
83
 
84
84
  This command will create the necessary public and private keys required for running various MACI operations.
@@ -22,7 +22,7 @@ In the deploy-config.json file set the `useQuadraticVoting` value to **true**.
22
22
  ```json
23
23
  "Poll": {
24
24
  "pollDuration": 604800,
25
- "coordinatorPubkey": "macipk",
25
+ "coordinatorPublicKey": "macipk",
26
26
  "useQuadraticVoting": true
27
27
  }
28
28
  ```
@@ -46,7 +46,7 @@ In the deploy-config.json file set the `useQuadraticVoting` value to **false**.
46
46
  ```json
47
47
  "Poll": {
48
48
  "pollDuration": 604800,
49
- "coordinatorPubkey": "macipk",
49
+ "coordinatorPublicKey": "macipk",
50
50
  "useQuadraticVoting": false
51
51
  }
52
52
  ```